Browse Source

Fixed some code completion bugs.

Reactivated FiletypeRegisterer addin.
Added HandleConditions property to IErbauer.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@238 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 21 years ago
parent
commit
4f2ce47b02
  1. 12
      data/resources/filetypes/Filetypes.xml
  2. BIN
      data/resources/filetypes/c.ico
  3. BIN
      data/resources/filetypes/xml.ico
  4. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs
  5. 2
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs
  6. 14
      src/AddIns/Misc/FiletypeRegisterer/Project/FiletypeRegisterer.addin
  7. 43
      src/AddIns/Misc/FiletypeRegisterer/Project/FiletypeRegisterer.csproj
  8. 59
      src/AddIns/Misc/FiletypeRegisterer/Project/Src/RegisterFiletypesCommand.cs
  9. 10
      src/AddIns/Misc/FiletypeRegisterer/Project/Src/RegisterFiletypesPanel.cs
  10. BIN
      src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/cmbx.ico
  11. BIN
      src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/cs.ico
  12. BIN
      src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/java.ico
  13. BIN
      src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/prjx.ico
  14. BIN
      src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/resx.ico
  15. BIN
      src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/vb.ico
  16. BIN
      src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/xfrm.ico
  17. BIN
      src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/xml.ico
  18. 9
      src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/Filetypes.xml
  19. 0
      src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/cmbx.ico
  20. 0
      src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/cs.ico
  21. 0
      src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/java.ico
  22. 0
      src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/prjx.ico
  23. 0
      src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/resx.ico
  24. 0
      src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/vb.ico
  25. 0
      src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/xfrm.ico
  26. BIN
      src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/xml.ico
  27. 4
      src/Libraries/NRefactory/Project/Src/Parser/AST/General/Expressions/GlobalReferenceExpression.cs
  28. 24
      src/Libraries/NRefactory/Project/Src/Parser/AST/General/TypeReference.cs
  29. 1
      src/Libraries/NRefactory/Test/NRefactoryTests.csproj
  30. 37
      src/Libraries/NRefactory/Test/Parser/Expressions/GlobalReferenceExpressionTests.cs
  31. 158
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs
  32. 33
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/TypeVisitor.cs
  33. 10
      src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/SchemeExtension.cs
  34. 12
      src/Main/Base/Project/Src/Internal/Erbauer/DialogPanelErbauer.cs
  35. 10
      src/Main/Base/Project/Src/Internal/Erbauer/PadErbauer.cs
  36. 10
      src/Main/Base/Project/Src/Services/DisplayBinding/DisplayBindingErbauer.cs
  37. 10
      src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingErbauer.cs
  38. 15
      src/Main/Base/Project/Src/Services/ParserService/DefaultProjectContent.cs
  39. 10
      src/Main/Base/Project/Src/Services/ParserService/Erbauer/ParserErbauer.cs
  40. 7
      src/Main/Base/Project/Src/Services/ParserService/IProjectContent.cs
  41. 10
      src/Main/Base/Project/Src/Services/ParserService/ParseProjectContent.cs
  42. 10
      src/Main/Base/Project/Src/TextEditor/Codons/EditActionErbauer.cs
  43. 10
      src/Main/Base/Project/Src/TextEditor/Codons/SyntaxModeErbauer.cs
  44. 14
      src/Main/Core/Project/Src/AddInTree/AddIn/Codon.cs
  45. 9
      src/Main/Core/Project/Src/AddInTree/AddIn/IErbauer.cs
  46. 10
      src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/ClassErbauer.cs
  47. 10
      src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/FileFilterErbauer.cs
  48. 10
      src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/Icon/IconErbauer.cs
  49. 10
      src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/IncludeErbauer.cs
  50. 12
      src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/LazyLoaderErbauer.cs
  51. 10
      src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/MenuItem/MenuItemErbauer.cs
  52. 10
      src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/ToolBarItem/ToolBarItemErbauer.cs

12
data/resources/filetypes/Filetypes.xml

@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
<?xml version="1.0" ?>
<Filetypes>
<Filetype ext="cmbx" icon="cmbx.ico">${res:ICSharpCode.FiletypeRegisterer.SharpDevelopCombineFileAssozisation}</Filetype>
<Filetype ext="prjx" icon="prjx.ico">${res:ICSharpCode.FiletypeRegisterer.SharpDevelopProjectFileAssozisation}</Filetype>
<Filetype ext="cs" icon="cs.ico">${res:ICSharpCode.FiletypeRegisterer.CSharpSourceFileAssozisation}</Filetype>
<Filetype ext="vb" icon="vb.ico">${res:ICSharpCode.FiletypeRegisterer.VBNetSourceFileAssozisation}</Filetype>
<Filetype ext="java" icon="java.ico">${res:ICSharpCode.FiletypeRegisterer.JavaSourceFileAssozisation}</Filetype>
<Filetype ext="xfrm" icon="xfrm.ico">${res:ICSharpCode.FiletypeRegisterer.XMLFormFileAssozisation}</Filetype>
<Filetype ext="resx" icon="resx.ico">${res:ICSharpCode.FiletypeRegisterer.ResXResourceFilesFileAssozisation}</Filetype>
<Filetype ext="resources" icon="resx.ico">${res:ICSharpCode.FiletypeRegisterer.BinaryResourceFilesFileAssozisation}</Filetype>
<Filetype ext="xml" icon="xml.ico">${res:ICSharpCode.FiletypeRegisterer.XmlFileAssozisation}</Filetype>
</Filetypes>

BIN
data/resources/filetypes/c.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

BIN
data/resources/filetypes/xml.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

2
src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs

@ -122,7 +122,7 @@ namespace CSharpBinding @@ -122,7 +122,7 @@ namespace CSharpBinding
parameterTypes[i] = rr.ResolvedType;
}
}
dp.DefaultIndex = TypeVisitor.FindOverload(new ArrayList(methods), parameterTypes, false, out overloadIsSure);
dp.DefaultIndex = TypeVisitor.FindOverload(methods, parameterTypes, false, out overloadIsSure);
}
editor.ShowInsightWindow(dp);
if (overloadIsSure) {

2
src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs

@ -146,7 +146,7 @@ namespace VBNetBinding @@ -146,7 +146,7 @@ namespace VBNetBinding
parameterTypes[i] = rr.ResolvedType;
}
}
dp.DefaultIndex = TypeVisitor.FindOverload(new ArrayList(methods), parameterTypes, false, out overloadIsSure);
dp.DefaultIndex = TypeVisitor.FindOverload(methods, parameterTypes, false, out overloadIsSure);
}
editor.ShowInsightWindow(dp);
if (overloadIsSure) {

14
src/AddIns/Misc/FiletypeRegisterer/Project/FiletypeRegisterer.addin

@ -6,18 +6,20 @@ @@ -6,18 +6,20 @@
version = "1.0.0">
<Runtime>
<Import assembly="FiletypeRegisterer.dll"/>
<Import assembly = "ICSharpCode.FiletypeRegisterer.dll"/>
</Runtime>
<Path name = "/Workspace/Autostart">
<Class id = "RegisterFiletypes"
class = "ICSharpCode.FiletypeRegisterer.RegisterFiletypesCommand"/>
<Condition name = "Compare" string = "${property:SharpDevelop.FiletypesRegisterStartup}" equals = "True">
<Class id = "RegisterFiletypes"
class = "ICSharpCode.FiletypeRegisterer.RegisterFiletypesCommand"/>
</Condition>
</Path>
<Path name = "/SharpDevelop/Dialogs/OptionsDialog/UIOptions">
<DialogPanel id = "RegisterFiletypes"
label = "${res:ICSharpCode.SharpDevelop.Gui.Dialogs.OptionPanels.RegisterFiletypesPanel.PanelName}"
insertafter = "LoadSave"
class = "ICSharpCode.SharpDevelop.Gui.Dialogs.OptionPanels.RegisterFiletypesPanel"/>
class = "ICSharpCode.FiletypeRegisterer.RegisterFiletypesPanel"/>
</Path>
</AddIn>

43
src/AddIns/Misc/FiletypeRegisterer/Project/FiletypeRegisterer.csproj

@ -12,6 +12,7 @@ @@ -12,6 +12,7 @@
<NoConfig>False</NoConfig>
<RunPostBuildEvent>OnSuccessfulBuild</RunPostBuildEvent>
<OutputType>Library</OutputType>
<RootNamespace>ICSharpCode.FiletypeRegisterer</RootNamespace>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>True</DebugSymbols>
@ -36,7 +37,36 @@ @@ -36,7 +37,36 @@
<Compile Include="Src\RegisterFiletypesPanel.cs">
<SubType>UserControl</SubType>
</Compile>
<None Include="FiletypeRegisterer.addin" />
<None Include="FiletypeRegisterer.addin">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="filetypes\cs.ico">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="filetypes\cmbx.ico">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="filetypes\Filetypes.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="filetypes\java.ico">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="filetypes\prjx.ico">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="filetypes\resx.ico">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="filetypes\vb.ico">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="filetypes\xfrm.ico">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="filetypes\xml.ico">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">
@ -49,16 +79,7 @@ @@ -49,16 +79,7 @@
<Name>ICSharpCode.Core</Name>
<Private>False</Private>
</ProjectReference>
<Content Include="Src\filetypes\cmbx.ico" />
<Content Include="Src\filetypes\cs.ico" />
<Content Include="Src\filetypes\Filetypes.xml" />
<Content Include="Src\filetypes\java.ico" />
<Content Include="Src\filetypes\prjx.ico" />
<Content Include="Src\filetypes\resx.ico" />
<Content Include="Src\filetypes\vb.ico" />
<Content Include="Src\filetypes\xfrm.ico" />
<Content Include="Src\filetypes\xml.ico" />
<Folder Include="Resources\" />
<Folder Include="filetypes" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
</Project>

59
src/AddIns/Misc/FiletypeRegisterer/Project/Src/RegisterFiletypesCommand.cs

@ -24,21 +24,14 @@ namespace ICSharpCode.FiletypeRegisterer { @@ -24,21 +24,14 @@ namespace ICSharpCode.FiletypeRegisterer {
public class RegisterFiletypesCommand : AbstractCommand
{
readonly public static string uiFiletypesProperty = "SharpDevelop.Filetypes";
// used in .addin file
readonly public static string uiRegisterStartupProperty = "SharpDevelop.FiletypesRegisterStartup";
const int SHCNE_ASSOCCHANGED = 0x08000000;
const int SHCNF_IDLIST = 0x0;
readonly public static string[,] FileTypes_err = new string[,]
{{"${res:ICSharpCode.FiletypeRegisterer.SharpDevelopCombineFileAssozisation}", "cmbx", "cmbx.ico"},
{"${res:ICSharpCode.FiletypeRegisterer.SharpDevelopProjectFileAssozisation}", "prjx", "prjx.ico"},
{"${res:ICSharpCode.FiletypeRegisterer.CSharpSourceFileAssozisation}" , "cs" , "cs.ico"},
{"${res:ICSharpCode.FiletypeRegisterer.VBNetSourceFileAssozisation}" , "vb" , "vb.ico"},
{"${res:ICSharpCode.FiletypeRegisterer.JavaSourceFileAssozisation}" , "java", "java.ico"},
{"${res:ICSharpCode.FiletypeRegisterer.XMLFormFileAssozisation}" , "xfrm", "xfrm.ico"},
{"${res:ICSharpCode.FiletypeRegisterer.ResXResourceFilesFileAssozisation}" , "resx", "resx.ico"},
{"${res:ICSharpCode.FiletypeRegisterer.BinaryResourceFilesFileAssozisation}", "resources", "resx.ico"},
{"${res:ICSharpCode.FiletypeRegisterer.XmlFileAssozisation}" , "xml", "xml.ico"}};
public static string DefaultExtensions = "sln|csproj|vbproj";
public static string[,] GetFileTypes()
{
@ -46,10 +39,8 @@ namespace ICSharpCode.FiletypeRegisterer { @@ -46,10 +39,8 @@ namespace ICSharpCode.FiletypeRegisterer {
XmlDocument doc = new XmlDocument();
doc.Load(System.IO.Path.Combine(PropertyService.DataDirectory, "resources") +
Path.DirectorySeparatorChar + "filetypes" +
Path.DirectorySeparatorChar + "Filetypes.xml");
doc.Load(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "filetypes\\Filetypes.xml"));
XmlNodeList nodes = doc.DocumentElement.ChildNodes;
string[,] ret = new string[doc.DocumentElement.ChildNodes.Count, 3];
@ -60,19 +51,18 @@ namespace ICSharpCode.FiletypeRegisterer { @@ -60,19 +51,18 @@ namespace ICSharpCode.FiletypeRegisterer {
ret[i, 2] = el.Attributes["icon"].InnerText;
}
return ret;
} catch (Exception) {
return FileTypes_err;
} catch (Exception ex) {
MessageService.ShowError(ex);
return new string[0, 0];
}
}
public override void Run()
{
// register Combine and Project by default
RegisterFiletypes(PropertyService.Get(uiFiletypesProperty, DefaultExtensions));
if (PropertyService.Get(uiRegisterStartupProperty, true)) {
// register Combine and Project by default
RegisterFiletypes(PropertyService.Get(uiFiletypesProperty, "cmbx|prjx"));
}
RegisterUnknownFiletypes();
}
public static void RegisterFiletypes(string types)
@ -81,7 +71,7 @@ namespace ICSharpCode.FiletypeRegisterer { @@ -81,7 +71,7 @@ namespace ICSharpCode.FiletypeRegisterer {
string mainExe = Assembly.GetEntryAssembly().Location;
string[,] FileTypes = GetFileTypes();
string resPath = System.IO.Path.Combine(PropertyService.DataDirectory, "resources") + Path.DirectorySeparatorChar + "filetypes" + Path.DirectorySeparatorChar;
string resPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "filetypes") + Path.DirectorySeparatorChar;
foreach(string type in singleTypes) {
for(int i = 0; i < FileTypes.GetLength(0); ++i) {
if(FileTypes[i, 1] == type) {
@ -91,6 +81,27 @@ namespace ICSharpCode.FiletypeRegisterer { @@ -91,6 +81,27 @@ namespace ICSharpCode.FiletypeRegisterer {
}
}
public static void RegisterUnknownFiletypes()
{
string mainExe = Assembly.GetEntryAssembly().Location;
string[,] FileTypes = GetFileTypes();
string resPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "filetypes") + Path.DirectorySeparatorChar;
for(int i = 0; i < FileTypes.GetLength(0); ++i) {
if (!IsRegisteredFileType(FileTypes[i, 1])) {
RegisterFiletype(FileTypes[i, 1], FileTypes[i, 0], '"' + Path.GetFullPath(mainExe) + '"' + " \"%1\"", Path.GetFullPath(resPath + FileTypes[i, 2]));
}
}
}
public static bool IsRegisteredFileType(string extension)
{
RegistryKey key = Registry.ClassesRoot.OpenSubKey("." + extension);
if (key == null)
return false;
key.Close();
return true;
}
public static void RegisterFiletype(string extension, string description, string command, string icon)
{
try {
@ -100,7 +111,7 @@ namespace ICSharpCode.FiletypeRegisterer { @@ -100,7 +111,7 @@ namespace ICSharpCode.FiletypeRegisterer {
// save previous association
string prev = (string)extKey.GetValue("", "");
if (prev != "" && prev != ("SD." + extension + "file")) {
extKey.SetValue("PreSD", extKey.GetValue(""));
extKey.SetValue("PreSD", extKey.GetValue(""));
}
extKey.SetValue("", "SD." + extension + "file");
extKey.Close();
@ -136,7 +147,7 @@ namespace ICSharpCode.FiletypeRegisterer { @@ -136,7 +147,7 @@ namespace ICSharpCode.FiletypeRegisterer {
// restore previous association
string prev = (string)extKey.GetValue("PreSD", "");
if(prev != "") {
extKey.SetValue("", prev);
extKey.SetValue("", prev);
}
extKey.Close();

10
src/AddIns/Misc/FiletypeRegisterer/Project/Src/RegisterFiletypesPanel.cs

@ -15,8 +15,10 @@ using System.Collections; @@ -15,8 +15,10 @@ using System.Collections;
using ICSharpCode.SharpDevelop.Internal.ExternalTool;
using ICSharpCode.Core;
using ICSharpCode.FiletypeRegisterer;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
namespace ICSharpCode.FiletypeRegisterer
{
class RegisterFiletypesPanel : AbstractOptionPanel {
@ -24,10 +26,6 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -24,10 +26,6 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
Label capLbl = new Label();
CheckBox regChk = new CheckBox();
Hashtable wasChecked = new Hashtable();
public RegisterFiletypesPanel()
@ -36,7 +34,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -36,7 +34,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
InitializeComponent();
// Set previous values
SelectFiletypes(PropertyService.Get(RegisterFiletypesCommand.uiFiletypesProperty, "cmbx|prjx"));
SelectFiletypes(PropertyService.Get(RegisterFiletypesCommand.uiFiletypesProperty, RegisterFiletypesCommand.DefaultExtensions));
regChk.Checked = PropertyService.Get(RegisterFiletypesCommand.uiRegisterStartupProperty, true);
}

BIN
src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/cmbx.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

BIN
src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/cs.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

BIN
src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/java.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

BIN
src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/prjx.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

BIN
src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/resx.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

BIN
src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/vb.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

BIN
src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/xfrm.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

BIN
src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/xml.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

9
src/AddIns/Misc/FiletypeRegisterer/Project/Src/filetypes/Filetypes.xml → src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/Filetypes.xml

@ -1,7 +1,10 @@ @@ -1,7 +1,10 @@
<?xml version="1.0" ?>
<Filetypes>
<Filetype ext="cmbx" icon="cmbx.ico">SharpDevelop Combine</Filetype>
<Filetype ext="prjx" icon="prjx.ico">SharpDevelop Project</Filetype>
<Filetype ext="cmbx" icon="cmbx.ico">SharpDevelop 1.x Combine</Filetype>
<Filetype ext="prjx" icon="prjx.ico">SharpDevelop 1.x Project</Filetype>
<Filetype ext="sln" icon="cmbx.ico">SharpDevelop Solution</Filetype>
<Filetype ext="csproj" icon="prjx.ico">SharpDevelop C# Project</Filetype>
<Filetype ext="vbproj" icon="prjx.ico">SharpDevelop VB Project</Filetype>
<Filetype ext="cs" icon="cs.ico">C# Source File</Filetype>
<Filetype ext="vb" icon="vb.ico">VB.NET Source File</Filetype>
<Filetype ext="java" icon="java.ico">Java Source File</Filetype>
@ -9,4 +12,4 @@ @@ -9,4 +12,4 @@
<Filetype ext="resx" icon="resx.ico">.NET Resource File</Filetype>
<Filetype ext="resources" icon="resx.ico">.NET Resource File (Binary)</Filetype>
<Filetype ext="xml" icon="xml.ico">XML Document</Filetype>
</Filetypes>
</Filetypes>

0
data/resources/filetypes/cmbx.ico → src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/cmbx.ico

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

0
data/resources/filetypes/cs.ico → src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/cs.ico

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

0
data/resources/filetypes/java.ico → src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/java.ico

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

0
data/resources/filetypes/prjx.ico → src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/prjx.ico

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

0
data/resources/filetypes/resx.ico → src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/resx.ico

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
data/resources/filetypes/vb.ico → src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/vb.ico

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

0
data/resources/filetypes/xfrm.ico → src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/xfrm.ico

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
src/AddIns/Misc/FiletypeRegisterer/Project/filetypes/xml.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

4
src/Libraries/NRefactory/Project/Src/Parser/AST/General/Expressions/GlobalReferenceExpression.cs

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// <file>
// <copyright see="prj:///doc/copyright.txt">2002-2005 AlphaSierraPapa</copyright>
// <license see="prj:///doc/license.txt">GNU General Public License</license>
// <owner name="none" email=""/>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision$</version>
// </file>
@ -19,7 +19,7 @@ namespace ICSharpCode.NRefactory.Parser.AST @@ -19,7 +19,7 @@ namespace ICSharpCode.NRefactory.Parser.AST
public override string ToString()
{
return String.Format("[ThisReferenceExpression]");
return String.Format("[GlobalReferenceExpression]");
}
}
}

24
src/Libraries/NRefactory/Project/Src/Parser/AST/General/TypeReference.cs

@ -21,8 +21,8 @@ namespace ICSharpCode.NRefactory.Parser.AST @@ -21,8 +21,8 @@ namespace ICSharpCode.NRefactory.Parser.AST
int[] rankSpecifier = null;
List<TypeReference> genericTypes = new List<TypeReference>(1);
static Hashtable types = new Hashtable();
static Hashtable vbtypes = new Hashtable();
static Dictionary<string, string> types = new Dictionary<string, string>();
static Dictionary<string, string> vbtypes = new Dictionary<string, string>();
static TypeReference()
{
@ -47,6 +47,7 @@ namespace ICSharpCode.NRefactory.Parser.AST @@ -47,6 +47,7 @@ namespace ICSharpCode.NRefactory.Parser.AST
// VB.NET types
vbtypes.Add("boolean", "System.Boolean");
vbtypes.Add("byte", "System.Byte");
vbtypes.Add("sbyte", "System.SByte");
vbtypes.Add("date", "System.DateTime");
vbtypes.Add("char", "System.Char");
vbtypes.Add("decimal", "System.Decimal");
@ -54,19 +55,22 @@ namespace ICSharpCode.NRefactory.Parser.AST @@ -54,19 +55,22 @@ namespace ICSharpCode.NRefactory.Parser.AST
vbtypes.Add("single", "System.Single");
vbtypes.Add("integer", "System.Int32");
vbtypes.Add("long", "System.Int64");
vbtypes.Add("uinteger","System.UInt32");
vbtypes.Add("ulong", "System.UInt64");
vbtypes.Add("object", "System.Object");
vbtypes.Add("short", "System.Int16");
vbtypes.Add("ushort", "System.UInt16");
vbtypes.Add("string", "System.String");
}
public static ICollection GetPrimitiveTypes()
public static IEnumerable<KeyValuePair<string, string>> GetPrimitiveTypesCSharp()
{
return types.Keys;
return types;
}
public static ICollection GetPrimitiveTypesVB()
public static IEnumerable<KeyValuePair<string, string>> GetPrimitiveTypesVB()
{
return vbtypes.Keys;
return vbtypes;
}
public string Type {
@ -134,12 +138,12 @@ namespace ICSharpCode.NRefactory.Parser.AST @@ -134,12 +138,12 @@ namespace ICSharpCode.NRefactory.Parser.AST
string GetSystemType(string type)
{
if (types.Contains(type)) {
return (string)types[type];
if (types.ContainsKey(type)) {
return types[type];
}
string lowerType = type.ToLower();
if (vbtypes.Contains(lowerType)) {
return (string)vbtypes[lowerType];
if (vbtypes.ContainsKey(lowerType)) {
return vbtypes[lowerType];
}
return type;
}

1
src/Libraries/NRefactory/Test/NRefactoryTests.csproj

@ -126,6 +126,7 @@ @@ -126,6 +126,7 @@
<Compile Include="Parser\Expressions\AnonymousMethodTests.cs" />
<Compile Include="Output\CodeDOM\InvocationExpressionTest.cs" />
<Compile Include="Parser\Expressions\TypeReferenceExpressionTests.cs" />
<Compile Include="Parser\Expressions\GlobalReferenceExpressionTests.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Project\NRefactory.csproj">

37
src/Libraries/NRefactory/Test/Parser/Expressions/GlobalReferenceExpressionTests.cs

@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
// <file>
// <copyright see="prj:///doc/copyright.txt">2002-2005 AlphaSierraPapa</copyright>
// <license see="prj:///doc/license.txt">GNU General Public License</license>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision$</version>
// </file>
using System;
using System.IO;
using NUnit.Framework;
using ICSharpCode.NRefactory.Parser;
using ICSharpCode.NRefactory.Parser.AST;
namespace ICSharpCode.NRefactory.Tests.AST
{
[TestFixture]
public class GlobalReferenceExpressionTests
{
#region C#
[Test]
public void CSharpGlobalReferenceExpressionTest()
{
FieldReferenceExpression fre = (FieldReferenceExpression)ParseUtilCSharp.ParseExpression("global::System", typeof(FieldReferenceExpression));
Assert.IsTrue(fre.TargetObject is GlobalReferenceExpression);
}
#endregion
#region VB.NET
[Test]
public void VBNetGlobalReferenceExpressionTest()
{
FieldReferenceExpression fre = (FieldReferenceExpression)ParseUtilVBNet.ParseExpression("Global.System", typeof(FieldReferenceExpression));
Assert.IsTrue(fre.TargetObject is GlobalReferenceExpression);
}
#endregion
}
}

158
src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs

@ -214,7 +214,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -214,7 +214,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
attributeName = GetAttributeName(ie.TargetObject);
c = GetAttribute(attributeName);
if (c != null) {
ArrayList ctors = new ArrayList();
List<IMethod> ctors = new List<IMethod>();
foreach (IMethod m in c.Methods) {
if (m.IsConstructor && !m.IsStatic)
ctors.Add(m);
@ -296,7 +296,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -296,7 +296,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return null;
}
if (expr is ObjectCreateExpression) {
ArrayList constructors = new ArrayList();
List<IMethod> constructors = new List<IMethod>();
foreach (IMethod m in type.GetMethods()) {
if (m.IsConstructor && !m.IsStatic)
constructors.Add(m);
@ -319,7 +319,11 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -319,7 +319,11 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
IClass c;
IMember member;
if (type is TypeVisitor.NamespaceReturnType) {
string combinedName = type.FullyQualifiedName + "." + fieldReferenceExpression.FieldName;
string combinedName;
if (type.FullyQualifiedName == "")
combinedName = fieldReferenceExpression.FieldName;
else
combinedName = type.FullyQualifiedName + "." + fieldReferenceExpression.FieldName;
if (projectContent.NamespaceExists(combinedName)) {
return new NamespaceResolveResult(callingClass, callingMember, combinedName);
}
@ -331,8 +335,9 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -331,8 +335,9 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
// go through the members of the modules
foreach (object o in projectContent.GetNamespaceContents(type.FullyQualifiedName)) {
member = o as IMember;
if (member != null && IsSameName(member.Name, fieldReferenceExpression.FieldName))
if (member != null && IsSameName(member.Name, fieldReferenceExpression.FieldName)) {
return CreateMemberResolveResult(member);
}
}
}
return null;
@ -429,12 +434,10 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -429,12 +434,10 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
#region Resolve Identifier
ResolveResult ResolveIdentifier(string identifier)
{
string name = SearchNamespace(identifier);
if (name != null && name != "") {
return new NamespaceResolveResult(callingClass, callingMember, name);
}
ResolveResult result = ResolveIdentifierInternal(identifier);
if (result is TypeResolveResult)
return result;
ResolveResult result2 = null;
IClass c = SearchType(identifier);
@ -489,12 +492,37 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -489,12 +492,37 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
// try if there exists a static member in outer classes named typeName
List<IClass> classes = cu.GetOuterClasses(caretLine, caretColumn);
foreach (IClass c2 in classes) {
IMember member = GetMember(c2.DefaultReturnType, identifier);
foreach (IClass c in classes) {
IMember member = GetMember(c.DefaultReturnType, identifier);
if (member != null && member.IsStatic) {
return new MemberResolveResult(callingClass, callingMember, member);
}
}
string namespaceName = SearchNamespace(identifier);
if (namespaceName != null && namespaceName.Length > 0) {
return new NamespaceResolveResult(callingClass, callingMember, namespaceName);
}
if (languageProperties.ImportModules) {
ArrayList list = new ArrayList();
AddImportedNamespaceContents(list);
foreach (object o in list) {
IClass c = o as IClass;
if (c != null && IsSameName(identifier, c.Name)) {
return new TypeResolveResult(callingClass, callingMember, c);
}
IMember member = o as IMember;
if (member != null && IsSameName(identifier, member.Name)) {
if (member is IMethod) {
return new MethodResolveResult(callingClass, callingMember, member.DeclaringType.DefaultReturnType, member.Name);
} else {
return CreateMemberResolveResult(member);
}
}
}
}
return null;
}
#endregion
@ -622,12 +650,31 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -622,12 +650,31 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
#region Helper for TypeVisitor
#region SearchMethod
public List<IMethod> SearchMethod(string memberName)
{
List<IMethod> methods = SearchMethod(callingClass.DefaultReturnType, memberName);
if (methods.Count > 0)
return methods;
if (languageProperties.ImportModules) {
ArrayList list = new ArrayList();
AddImportedNamespaceContents(list);
foreach (object o in list) {
IMethod m = o as IMethod;
if (m != null && IsSameName(m.Name, memberName)) {
methods.Add(m);
}
}
}
return methods;
}
/// <summary>
/// Gets the list of methods on the return type that have the specified name.
/// </summary>
public ArrayList SearchMethod(IReturnType type, string memberName)
public List<IMethod> SearchMethod(IReturnType type, string memberName)
{
ArrayList methods = new ArrayList();
List<IMethod> methods = new List<IMethod>();
if (type == null)
return methods;
@ -642,16 +689,6 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -642,16 +689,6 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
methods.Add(m);
}
}
// if (methods.Count == 0) {
// foreach (IEvent m in type.GetEvents()) {
// if (IsSameName(m.Name, memberName)
// && m.IsAccessible(callingClass, isClassInInheritanceTree)
// ) {
// methods.Add(m);
// break;
// }
// }
// }
return methods;
}
#endregion
@ -783,16 +820,36 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -783,16 +820,36 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
#endregion
#endregion
IClass GetPrimitiveClass(string systemType, string newName)
{
IClass c = ProjectContentRegistry.Mscorlib.GetClass(systemType);
DefaultClass c2 = new DefaultClass(c.CompilationUnit, newName);
c2.ClassType = c.ClassType;
c2.Modifiers = c.Modifiers;
c2.Documentation = c.Documentation;
c2.BaseTypes.AddRange(c.BaseTypes);
c2.Methods.AddRange(c.Methods);
c2.Fields.AddRange(c.Fields);
c2.Properties.AddRange(c.Properties);
c2.Indexer.AddRange(c.Indexer);
c2.Events.AddRange(c.Events);
return c2;
}
public ArrayList CtrlSpace(int caretLine, int caretColumn, string fileName, string fileContent)
{
ArrayList result;
ArrayList result = new ArrayList();
if (language == SupportedLanguages.VBNet) {
result = new ArrayList();
foreach (string primitive in TypeReference.GetPrimitiveTypesVB()) {
result.Add(Char.ToUpper(primitive[0]) + primitive.Substring(1));
foreach (KeyValuePair<string, string> pair in TypeReference.GetPrimitiveTypesVB()) {
string primitive = Char.ToUpper(pair.Key[0]) + pair.Key.Substring(1);
if ("System." + primitive != pair.Value) {
result.Add(GetPrimitiveClass(pair.Value, primitive));
}
}
} else {
result = new ArrayList(TypeReference.GetPrimitiveTypes());
foreach (KeyValuePair<string, string> pair in TypeReference.GetPrimitiveTypesCSharp()) {
result.Add(GetPrimitiveClass(pair.Value, pair.Key));
}
}
ParseInformation parseInfo = ParserService.GetParseInformation(fileName);
if (parseInfo == null) {
@ -827,9 +884,6 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -827,9 +884,6 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
result.Add(new DefaultField(p.ReturnType, p.Name, ModifierEnum.None, method.Region, callingClass));
}
}
if (callingClass != null) {
result.AddRange(projectContent.GetNamespaceContents(callingClass.Namespace));
}
bool inStatic = true;
if (callingMember != null)
@ -840,7 +894,6 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -840,7 +894,6 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
result.AddRange(callingClass.GetAccessibleMembers(callingClass, false));
}
result.AddRange(callingClass.GetAccessibleMembers(callingClass, true));
result.AddRange(callingClass.GetAccessibleTypes(callingClass));
}
foreach (KeyValuePair<string, List<LocalLookupVariable>> pair in lookupTableVisitor.Variables) {
if (pair.Value != null && pair.Value.Count > 0) {
@ -853,21 +906,42 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -853,21 +906,42 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
}
}
}
AddImportedNamespaceContents(result);
return result;
}
void AddImportedNamespaceContents(ArrayList result)
{
if (callingClass != null) {
result.AddRange(callingClass.GetAccessibleTypes(callingClass));
result.AddRange(projectContent.GetNamespaceContents(callingClass.Namespace));
}
projectContent.AddNamespaceContents(result, "", languageProperties, true);
foreach (IUsing u in cu.Usings) {
if (u != null) {
foreach (string name in u.Usings) {
foreach (object o in projectContent.GetNamespaceContents(name)) {
if (!(o is string))
result.Add(o);
}
}
foreach (string alias in u.Aliases.Keys) {
result.Add(alias);
AddUsing(result, u);
}
AddUsing(result, projectContent.DefaultImports);
}
void AddUsing(ArrayList result, IUsing u)
{
if (u == null) {
return;
}
bool importNamespaces = languageProperties.ImportNamespaces;
foreach (string name in u.Usings) {
if (importNamespaces) {
projectContent.AddNamespaceContents(result, name, languageProperties, true);
} else {
foreach (object o in projectContent.GetNamespaceContents(name)) {
if (!(o is string))
result.Add(o);
}
}
}
return result;
foreach (string alias in u.Aliases.Keys) {
result.Add(alias);
}
}
}
}

33
src/Main/Base/Project/Src/Dom/NRefactoryResolver/TypeVisitor.cs

@ -88,7 +88,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -88,7 +88,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return null;
}
public IMethod FindOverload(ArrayList methods, ArrayList arguments, object data)
public IMethod FindOverload(List<IMethod> methods, ArrayList arguments, object data)
{
if (methods.Count <= 0) {
return null;
@ -101,7 +101,8 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -101,7 +101,8 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
types[i] = ((Expression)arguments[i]).AcceptVisitor(this, data) as IReturnType;
}
bool tmp;
return (IMethod)methods[FindOverload(methods, types, true, out tmp)];
List<IMethodOrIndexer> methodList = methods.ConvertAll<IMethodOrIndexer>(delegate (IMethod m) { return m; });
return (IMethod)methods[FindOverload(methodList, types, true, out tmp)];
}
/// <summary>
@ -115,18 +116,18 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -115,18 +116,18 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
/// <param name="singleBestOverload">Returns true when the overload returned is
/// the only overload that had the highest score or false when there were
/// multiple overloads with an equal score.</param>
public static int FindOverload(ArrayList methods, IReturnType[] types, bool forceParameterCount, out bool singleBestOverload)
public static int FindOverload(List<IMethodOrIndexer> methods, IReturnType[] types, bool forceParameterCount, out bool singleBestOverload)
{
singleBestOverload = true;
if (methods.Count == 1)
return 0;
IMethodOrIndexer bestMethod = (IMethodOrIndexer)methods[0];
IMethodOrIndexer bestMethod = methods[0];
int bestIndex = 0;
int bestScore = ScoreOverload(bestMethod, types, forceParameterCount);
for (int i = 1; i < methods.Count; ++i) {
IMethodOrIndexer method = (IMethodOrIndexer)methods[i];
IMethodOrIndexer method = methods[i];
int score = ScoreOverload(method, types, forceParameterCount);
if (score > bestScore) {
bestScore = score;
@ -185,7 +186,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -185,7 +186,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
if (invocationExpression.TargetObject is FieldReferenceExpression) {
FieldReferenceExpression field = (FieldReferenceExpression)invocationExpression.TargetObject;
IReturnType type = field.TargetObject.AcceptVisitor(this, data) as IReturnType;
ArrayList methods = resolver.SearchMethod(type, field.FieldName);
List<IMethod> methods = resolver.SearchMethod(type, field.FieldName);
InjectMethodTypeParameters(methods, invocationExpression);
return FindOverload(methods, invocationExpression.Parameters, data);
} else if (invocationExpression.TargetObject is IdentifierExpression) {
@ -193,14 +194,14 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -193,14 +194,14 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
if (resolver.CallingClass == null) {
return null;
}
ArrayList methods = resolver.SearchMethod(resolver.CallingClass.DefaultReturnType, id);
List<IMethod> methods = resolver.SearchMethod(id);
InjectMethodTypeParameters(methods, invocationExpression);
return FindOverload(methods, invocationExpression.Parameters, data);
}
return null;
}
void InjectMethodTypeParameters(ArrayList methods, InvocationExpression invocationExpression)
void InjectMethodTypeParameters(List<IMethod> methods, InvocationExpression invocationExpression)
{
if (invocationExpression.TypeParameters == null) return;
if (invocationExpression.TypeParameters.Count == 0) return;
@ -234,10 +235,13 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -234,10 +235,13 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
}
IReturnType returnType = fieldReferenceExpression.TargetObject.AcceptVisitor(this, data) as IReturnType;
if (returnType != null) {
NamespaceReturnType namespaceRT = returnType as NamespaceReturnType;
if (namespaceRT != null) {
string name = namespaceRT.FullyQualifiedName;
string combinedName = name + "." + fieldReferenceExpression.FieldName;
if (returnType is NamespaceReturnType) {
string name = returnType.FullyQualifiedName;
string combinedName;
if (name.Length == 0)
combinedName = fieldReferenceExpression.FieldName;
else
combinedName = name + "." + fieldReferenceExpression.FieldName;
if (resolver.ProjectContent.NamespaceExists(combinedName)) {
return new NamespaceReturnType(combinedName);
}
@ -412,6 +416,11 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -412,6 +416,11 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return baseClass.DefaultReturnType;
}
public override object Visit(GlobalReferenceExpression globalReferenceExpression, object data)
{
return new NamespaceReturnType("");
}
public override object Visit(ObjectCreateExpression objectCreateExpression, object data)
{
return CreateReturnType(objectCreateExpression.CreateType);

10
src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/SchemeExtension.cs

@ -51,6 +51,16 @@ namespace ICSharpCode.SharpDevelop.BrowserDisplayBinding @@ -51,6 +51,16 @@ namespace ICSharpCode.SharpDevelop.BrowserDisplayBinding
public class SchemeExtensionErbauer : IErbauer
{
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
public bool HandleConditions {
get {
return false;
}
}
public object BuildItem(object caller, Codon codon, ArrayList subItems)
{
return new SchemeExtensionDescriptor(codon);

12
src/Main/Base/Project/Src/Internal/Erbauer/DialogPanelErbauer.cs

@ -13,6 +13,16 @@ namespace ICSharpCode.Core @@ -13,6 +13,16 @@ namespace ICSharpCode.Core
{
public class DialogPanelErbauer : IErbauer
{
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
public bool HandleConditions {
get {
return false;
}
}
/// <summary>
/// Creates an item with the specified sub items. And the current
/// Condition status for this item.
@ -21,7 +31,7 @@ namespace ICSharpCode.Core @@ -21,7 +31,7 @@ namespace ICSharpCode.Core
{
string label = codon.Properties["label"];
if (subItems == null || subItems.Count == 0) {
if (subItems == null || subItems.Count == 0) {
if (codon.Properties.Contains("class")) {
return new DefaultDialogPanelDescriptor(codon.Id, StringParser.Parse(label), (IDialogPanel)codon.AddIn.CreateObject(codon.Properties["class"]));
} else {

10
src/Main/Base/Project/Src/Internal/Erbauer/PadErbauer.cs

@ -14,6 +14,16 @@ namespace ICSharpCode.Core @@ -14,6 +14,16 @@ namespace ICSharpCode.Core
{
public class PadErbauer : IErbauer
{
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
public bool HandleConditions {
get {
return false;
}
}
public object BuildItem(object caller, Codon codon, ArrayList subItems)
{
return new PadDescriptor(codon);

10
src/Main/Base/Project/Src/Services/DisplayBinding/DisplayBindingErbauer.cs

@ -15,6 +15,16 @@ namespace ICSharpCode.Core @@ -15,6 +15,16 @@ namespace ICSharpCode.Core
{
public class DisplayBindingErbauer : IErbauer
{
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
public bool HandleConditions {
get {
return false;
}
}
/// <summary>
/// Creates an item with the specified sub items. And the current
/// Condition status for this item.

10
src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingErbauer.cs

@ -16,6 +16,16 @@ namespace ICSharpCode.Core @@ -16,6 +16,16 @@ namespace ICSharpCode.Core
{
public class LanguageBindingErbauer : IErbauer
{
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
public bool HandleConditions {
get {
return false;
}
}
/// <summary>
/// Creates an item with the specified sub items. And the current
/// Condition status for this item.

15
src/Main/Base/Project/Src/Services/ParserService/DefaultProjectContent.cs

@ -36,12 +36,15 @@ namespace ICSharpCode.Core @@ -36,12 +36,15 @@ namespace ICSharpCode.Core
List<Dictionary<string, IClass>> classLists = new List<Dictionary<string, IClass>>();
List<Dictionary<string, NamespaceStruct>> namespaces = new List<Dictionary<string, NamespaceStruct>>();
protected XmlDoc xmlDoc = new XmlDoc();
List<IUsing> defaultImports = new List<IUsing>();
IUsing defaultImports;
public List<IUsing> DefaultImports {
public IUsing DefaultImports {
get {
return defaultImports;
}
set {
defaultImports = value;
}
}
public List<Dictionary<string, IClass>> ClassLists {
@ -502,8 +505,8 @@ namespace ICSharpCode.Core @@ -502,8 +505,8 @@ namespace ICSharpCode.Core
}
}
}
foreach (IUsing u in defaultImports) {
string nameSpace = u.SearchNamespace(name);
if (defaultImports != null) {
string nameSpace = defaultImports.SearchNamespace(name);
if (nameSpace != null) {
return nameSpace;
}
@ -589,8 +592,8 @@ namespace ICSharpCode.Core @@ -589,8 +592,8 @@ namespace ICSharpCode.Core
}
}
}
foreach (IUsing u in defaultImports) {
c = u.SearchType(name);
if (defaultImports != null) {
c = defaultImports.SearchType(name);
if (c != null) {
return c;
}

10
src/Main/Base/Project/Src/Services/ParserService/Erbauer/ParserErbauer.cs

@ -16,6 +16,16 @@ namespace ICSharpCode.Core @@ -16,6 +16,16 @@ namespace ICSharpCode.Core
{
public class ParserErbauer : IErbauer
{
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
public bool HandleConditions {
get {
return false;
}
}
/// <summary>
/// Creates an item with the specified sub items. And the current
/// Condition status for this item.

7
src/Main/Base/Project/Src/Services/ParserService/IProjectContent.cs

@ -48,6 +48,13 @@ namespace ICSharpCode.Core @@ -48,6 +48,13 @@ namespace ICSharpCode.Core
get;
}
/// <summary>
/// Gets the default imports of the project content. Can return null.
/// </summary>
IUsing DefaultImports {
get;
}
string GetXmlDocumentation(string memberTag);
void AddClassToNamespaceList(IClass addClass);

10
src/Main/Base/Project/Src/Services/ParserService/ParseProjectContent.cs

@ -104,15 +104,13 @@ namespace ICSharpCode.Core @@ -104,15 +104,13 @@ namespace ICSharpCode.Core
void UpdateDefaultImports(ProjectItem[] items)
{
DefaultImports.Clear();
DefaultUsing u = null;
DefaultImports = null;
foreach (ProjectItem item in items) {
if (item.ItemType == ItemType.Import) {
if (u == null) {
u = new DefaultUsing(this);
DefaultImports.Add(u);
if (DefaultImports == null) {
DefaultImports = new DefaultUsing(this);
}
u.Usings.Add(item.Include);
DefaultImports.Usings.Add(item.Include);
}
}
}

10
src/Main/Base/Project/Src/TextEditor/Codons/EditActionErbauer.cs

@ -20,6 +20,16 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Codons @@ -20,6 +20,16 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Codons
// [CodonNameAttribute("EditAction")]
public class EditActionErbauer : IErbauer
{
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
public bool HandleConditions {
get {
return false;
}
}
public object BuildItem(object caller, Codon codon, ArrayList subItems)
{
IEditAction editAction = (IEditAction)codon.AddIn.CreateObject(codon.Properties["class"]);

10
src/Main/Base/Project/Src/TextEditor/Codons/SyntaxModeErbauer.cs

@ -45,6 +45,16 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Codons @@ -45,6 +45,16 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Codons
// [CodonNameAttribute("SyntaxMode")]
public class SyntaxModeErbauer : IErbauer
{
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
public bool HandleConditions {
get {
return false;
}
}
public object BuildItem(object caller, Codon codon, ArrayList subItems)
{
string highlightingName = codon.Properties["name"];

14
src/Main/Core/Project/Src/AddInTree/AddIn/Codon.cs

@ -120,16 +120,24 @@ namespace ICSharpCode.Core @@ -120,16 +120,24 @@ namespace ICSharpCode.Core
public object BuildItem(object owner, ArrayList subItems)
{
try {
return AddInTree.Erbauer[Name].BuildItem(owner, this, subItems);
IErbauer erbauer = AddInTree.Erbauer[Name];
if (!erbauer.HandleConditions && conditions.Length > 0) {
ConditionFailedAction action = GetFailedAction(owner);
if (action != ConditionFailedAction.Nothing) {
return null;
}
}
return erbauer.BuildItem(owner, this, subItems);
} catch (KeyNotFoundException) {
throw new CoreException("Erbauer " + Name + " not found!");
}
}
public override string ToString() {
public override string ToString()
{
return String.Format("[Codon: name = {0}, addIn={1}]",
name,
addIn.FileName);
}
}
}

9
src/Main/Core/Project/Src/AddInTree/AddIn/IErbauer.cs

@ -10,11 +10,14 @@ using System.Collections; @@ -10,11 +10,14 @@ using System.Collections;
namespace ICSharpCode.Core
{
/// <summary>
/// Description of Erbauer.
/// </summary>
public interface IErbauer
{
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
bool HandleConditions { get; }
object BuildItem(object caller, Codon codon, ArrayList subItems);
}
}

10
src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/ClassErbauer.cs

@ -15,6 +15,16 @@ namespace ICSharpCode.Core @@ -15,6 +15,16 @@ namespace ICSharpCode.Core
/// </summary>
public class ClassErbauer : IErbauer
{
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
public bool HandleConditions {
get {
return false;
}
}
public object BuildItem(object caller, Codon codon, ArrayList subItems)
{
return codon.AddIn.CreateObject(codon.Properties["class"]);

10
src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/FileFilterErbauer.cs

@ -15,6 +15,16 @@ namespace ICSharpCode.Core @@ -15,6 +15,16 @@ namespace ICSharpCode.Core
/// </summary>
public class FileFilterErbauer : IErbauer
{
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
public bool HandleConditions {
get {
return false;
}
}
public object BuildItem(object caller, Codon codon, ArrayList subItems)
{
return StringParser.Parse(codon.Properties["name"]) + "|" + codon.Properties["extensions"];

10
src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/Icon/IconErbauer.cs

@ -14,6 +14,16 @@ namespace ICSharpCode.Core @@ -14,6 +14,16 @@ namespace ICSharpCode.Core
{
public class IconErbauer : IErbauer
{
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
public bool HandleConditions {
get {
return false;
}
}
public object BuildItem(object caller, Codon codon, ArrayList subItems)
{
return new IconDescriptor(codon);

10
src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/IncludeErbauer.cs

@ -15,6 +15,16 @@ namespace ICSharpCode.Core @@ -15,6 +15,16 @@ namespace ICSharpCode.Core
/// </summary>
public class IncludeErbauer : IErbauer
{
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
public bool HandleConditions {
get {
return false;
}
}
public object BuildItem(object caller, Codon codon, ArrayList subItems)
{
string item = codon.Properties["item"];

12
src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/LazyLoaderErbauer.cs

@ -39,6 +39,16 @@ namespace ICSharpCode.Core @@ -39,6 +39,16 @@ namespace ICSharpCode.Core
}
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
public bool HandleConditions {
get {
return false;
}
}
public object BuildItem(object caller, Codon codon, ArrayList subItems)
{
IErbauer erbauer = (IErbauer)addIn.CreateObject(className);
@ -46,7 +56,7 @@ namespace ICSharpCode.Core @@ -46,7 +56,7 @@ namespace ICSharpCode.Core
return erbauer.BuildItem(caller, codon, subItems);
}
public override string ToString()
public override string ToString()
{
return String.Format("[LazyLoadErbauer: className = {0}, name = {1}]",
className,

10
src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/MenuItem/MenuItemErbauer.cs

@ -16,6 +16,16 @@ namespace ICSharpCode.Core @@ -16,6 +16,16 @@ namespace ICSharpCode.Core
/// </summary>
public class MenuItemErbauer : IErbauer
{
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
public bool HandleConditions {
get {
return true;
}
}
public object BuildItem(object caller, Codon codon, ArrayList subItems)
{
string type = codon.Properties.Contains("type") ? codon.Properties["type"] : "Command";

10
src/Main/Core/Project/Src/AddInTree/AddIn/StandardErbauer/ToolBarItem/ToolBarItemErbauer.cs

@ -16,6 +16,16 @@ namespace ICSharpCode.Core @@ -16,6 +16,16 @@ namespace ICSharpCode.Core
/// </summary>
public class ToolbarItemErbauer : IErbauer
{
/// <summary>
/// Gets if the erbauer handles codon conditions on its own.
/// If this property return false, the item is excluded when the condition is not met.
/// </summary>
public bool HandleConditions {
get {
return true;
}
}
public object BuildItem(object caller, Codon codon, ArrayList subItems)
{
string type = codon.Properties.Contains("type") ? codon.Properties["type"] : "Item";

Loading…
Cancel
Save