diff --git a/SharpDevelop.sln b/SharpDevelop.sln
index 9eb0534988..08f278ad0d 100644
--- a/SharpDevelop.sln
+++ b/SharpDevelop.sln
@@ -69,7 +69,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WixBinding", "src\AddIns\Ba
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Scripting", "src\AddIns\BackendBindings\Scripting\Project\ICSharpCode.Scripting.csproj", "{7048AE18-EB93-4A84-82D0-DD60EB58ADBD}"
EndProject
-Project("{00000000-0000-0000-0000-000000000000}") = "VBNetBinding", "src\AddIns\BackendBindings\VBNetBinding\Project\VBNetBinding.vbproj", "{EB9FBA17-88C7-4BA6-8471-1088F8C494F5}"
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VBNetBinding", "src\AddIns\BackendBindings\VBNetBinding\Project\VBNetBinding.vbproj", "{EB9FBA17-88C7-4BA6-8471-1088F8C494F5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{F3662720-9EA2-4591-BBC6-97361DCE50A9}"
EndProject
@@ -149,6 +149,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.Designer", "src\A
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FormsDesigner", "src\AddIns\DisplayBindings\FormsDesigner\Project\FormsDesigner.csproj", "{0CD86A0B-73BB-4E7E-B476-AB84389164B1}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceEditor", "src\AddIns\DisplayBindings\ResourceEditor\Project\ResourceEditor.csproj", "{E378E217-0C0C-473F-88A2-BF9748207511}"
+EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analysis", "Analysis", "{7019F43E-DFD7-4D1C-8C96-E75D55646DE7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting", "src\AddIns\Analysis\UnitTesting\UnitTesting.csproj", "{1F261725-6318-4434-A1B1-6C70CE4CD324}"
@@ -279,6 +281,10 @@ Global
{7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EB9FBA17-88C7-4BA6-8471-1088F8C494F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EB9FBA17-88C7-4BA6-8471-1088F8C494F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EB9FBA17-88C7-4BA6-8471-1088F8C494F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EB9FBA17-88C7-4BA6-8471-1088F8C494F5}.Release|Any CPU.Build.0 = Release|Any CPU
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -443,10 +449,10 @@ Global
{3DF4060F-5EE0-41CF-8096-F27355FD5511}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|Any CPU.Build.0 = Release|Any CPU
- {EB9FBA17-88C7-4BA6-8471-1088F8C494F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EB9FBA17-88C7-4BA6-8471-1088F8C494F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EB9FBA17-88C7-4BA6-8471-1088F8C494F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EB9FBA17-88C7-4BA6-8471-1088F8C494F5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E378E217-0C0C-473F-88A2-BF9748207511}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E378E217-0C0C-473F-88A2-BF9748207511}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E378E217-0C0C-473F-88A2-BF9748207511}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E378E217-0C0C-473F-88A2-BF9748207511}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -521,6 +527,7 @@ Global
{88DA149F-21B2-48AB-82C4-28FB6BDFD783} = {D54BEB89-8CBE-475C-8BB9-836D2FD71260}
{78CC29AC-CC79-4355-B1F2-97936DF198AC} = {D54BEB89-8CBE-475C-8BB9-836D2FD71260}
{0CD86A0B-73BB-4E7E-B476-AB84389164B1} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
+ {E378E217-0C0C-473F-88A2-BF9748207511} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{7019F43E-DFD7-4D1C-8C96-E75D55646DE7} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{1F261725-6318-4434-A1B1-6C70CE4CD324} = {7019F43E-DFD7-4D1C-8C96-E75D55646DE7}
{3EAA45A9-735C-4AC7-A799-947B93EA449D} = {7019F43E-DFD7-4D1C-8C96-E75D55646DE7}
diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj b/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj
index ddfb47d90d..883b300713 100644
--- a/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj
+++ b/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj
@@ -45,6 +45,7 @@
+
3.0
diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpLanguageBinding.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpLanguageBinding.cs
index 6e2c5b2696..67bf90bfdc 100644
--- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpLanguageBinding.cs
+++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpLanguageBinding.cs
@@ -35,5 +35,9 @@ namespace CSharpBinding
public override ICodeGenerator CodeGenerator {
get { return new CSharpCodeGenerator(); }
}
+
+ public override System.CodeDom.Compiler.CodeDomProvider CodeDomProvider {
+ get { return new Microsoft.CSharp.CSharpCodeProvider(); }
+ }
}
}
diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj b/src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj
index ab36b14336..5d221b8110 100644
--- a/src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj
+++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj
@@ -21,7 +21,7 @@
4096
4
false
- v4.0
+ v4.5
@@ -92,6 +92,11 @@
+
+ {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}
+ ICSharpCode.NRefactory
+ False
+
{2748AD25-9C63-4E12-877B-4DCE96FBED54}
ICSharpCode.SharpDevelop
@@ -107,11 +112,6 @@
ICSharpCode.Core.WinForms
False
-
- {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}
- ICSharpCode.SharpDevelop.Dom
- False
-
{8035765F-D51F-4A0C-A746-2FD100E19419}
ICSharpCode.SharpDevelop.Widgets
diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj.user b/src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj.user
deleted file mode 100644
index 4b01670e0b..0000000000
--- a/src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj.user
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- 8.0.50215
- ShowAllFiles
- 0
-
-
\ No newline at end of file
diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/CopyResourceNameCommand.cs b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/CopyResourceNameCommand.cs
index 112ccf5cb6..df8da1936b 100644
--- a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/CopyResourceNameCommand.cs
+++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/CopyResourceNameCommand.cs
@@ -2,8 +2,9 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
+using System.Windows.Forms;
using ICSharpCode.Core;
-using ICSharpCode.Core.WinForms;
+using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
namespace ResourceEditor
@@ -12,10 +13,10 @@ namespace ResourceEditor
{
public override void Run()
{
- ResourceEditorControl editor = ((ResourceEditWrapper)WorkbenchSingleton.Workbench.ActiveViewContent).ResourceEditor;
+ ResourceEditorControl editor = ((ResourceEditWrapper)SD.Workbench.ActiveViewContent).ResourceEditor;
if(editor.ResourceList.SelectedItems.Count > 0) {
- ClipboardWrapper.SetText(editor.ResourceList.SelectedItems[0].Text);
+ Clipboard.SetText(editor.ResourceList.SelectedItems[0].Text);
}
}
}
diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs
index c26f53f39c..1b7e271225 100644
--- a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs
+++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs
@@ -10,13 +10,15 @@ using ICSharpCode.Core;
using ICSharpCode.Core.WinForms;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
+using ICSharpCode.SharpDevelop.WinForms;
+using ICSharpCode.SharpDevelop.Workbench;
namespace ResourceEditor
{
public class ResourceEditorDisplayBinding : IDisplayBinding
{
// IDisplayBinding interface
- public bool CanCreateContentForFile(string fileName)
+ public bool CanCreateContentForFile(FileName fileName)
{
return true; // definition in .addin does extension-based filtering
}
@@ -26,12 +28,12 @@ namespace ResourceEditor
return new ResourceEditWrapper(file);
}
- public bool IsPreferredBindingForFile(string fileName)
+ public bool IsPreferredBindingForFile(FileName fileName)
{
return true;
}
- public double AutoDetectFileContent(string fileName, Stream fileContent, string detectedMimeType)
+ public double AutoDetectFileContent(FileName fileName, Stream fileContent, string detectedMimeType)
{
return 1;
}
@@ -146,7 +148,7 @@ namespace ResourceEditor
resourceEditor.ResourceList.Items.Remove(item);
}
resourceEditor.ResourceList.OnChanged();
- ClipboardWrapper.SetDataObject(tmphash);
+ SD.Clipboard.SetDataObject(tmphash);
}
public void Copy()
@@ -160,7 +162,7 @@ namespace ResourceEditor
object resourceValue = GetClonedResource(resourceEditor.ResourceList.Resources[item.Text].ResourceValue);
tmphash.Add(item.Text, resourceValue); // copy a clone to clipboard
}
- ClipboardWrapper.SetDataObject(tmphash);
+ SD.Clipboard.SetDataObject(tmphash);
}
public void Paste()
@@ -169,7 +171,7 @@ namespace ResourceEditor
return;
}
- IDataObject dob = ClipboardWrapper.GetDataObject();
+ IDataObject dob = Clipboard.GetDataObject();
if (dob == null)
return;
diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceCodeGeneratorTool.cs b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceCodeGeneratorTool.cs
index 0c1140abef..367ffb5685 100644
--- a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceCodeGeneratorTool.cs
+++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceCodeGeneratorTool.cs
@@ -8,6 +8,7 @@ using System.Resources.Tools;
using System.IO;
using ICSharpCode.Core;
+using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
@@ -29,12 +30,17 @@ namespace ResourceEditor
// Ensure that the generated code will not conflict with an
// existing class.
if (context.Project != null) {
- IProjectContent pc = ParserService.GetProjectContent(context.Project);
+ ICompilation pc = SD.ParserService.GetCompilation(context.Project);
if (pc != null) {
- IClass existingClass = pc.GetClass(context.OutputNamespace + "." + StronglyTypedResourceBuilder.VerifyResourceName(Path.GetFileNameWithoutExtension(inputFilePath), pc.Language.CodeDomProvider), 0);
+ var codeDomProvider = context.Project.LanguageBinding.CodeDomProvider;
+ string resourceName = Path.GetFileNameWithoutExtension(inputFilePath);
+ if (codeDomProvider != null) {
+ resourceName = StronglyTypedResourceBuilder.VerifyResourceName(resourceName, codeDomProvider);
+ }
+ var existingClass = pc.FindType(new FullTypeName(context.OutputNamespace + "." + resourceName)).GetDefinition();
if (existingClass != null) {
if (!IsGeneratedResourceClass(existingClass)) {
- context.MessageView.AppendLine(String.Format(System.Globalization.CultureInfo.CurrentCulture, ResourceService.GetString("ResourceEditor.ResourceCodeGeneratorTool.ClassConflict"), inputFilePath, existingClass.FullyQualifiedName));
+ context.MessageView.AppendLine(String.Format(System.Globalization.CultureInfo.CurrentCulture, ResourceService.GetString("ResourceEditor.ResourceCodeGeneratorTool.ClassConflict"), inputFilePath, existingClass.FullName));
return;
}
}
@@ -66,7 +72,7 @@ namespace ResourceEditor
Path.GetFileNameWithoutExtension(inputFilePath), // baseName
generatedCodeNamespace, // generatedCodeNamespace
context.OutputNamespace, // resourcesNamespace
- context.Project.LanguageProperties.CodeDomProvider, // codeProvider
+ context.Project.LanguageBinding.CodeDomProvider, // codeProvider
createInternalClass, // internal class
out unmatchable
));
@@ -80,20 +86,19 @@ namespace ResourceEditor
/// Determines whether the specified class is a generated resource
/// class, based on the attached attributes.
///
- static bool IsGeneratedResourceClass(IClass @class)
+ static bool IsGeneratedResourceClass(ITypeDefinition type)
{
- IClass generatedCodeAttributeClass = @class.ProjectContent.GetClass("System.CodeDom.Compiler.GeneratedCodeAttribute", 0);
- if (generatedCodeAttributeClass == null) {
+ var generatedCodeAttributeType = type.Compilation.FindType(typeof(System.CodeDom.Compiler.GeneratedCodeAttribute));
+ if (generatedCodeAttributeType.Kind == TypeKind.Unknown) {
LoggingService.Info("Could not find the class for 'System.CodeDom.Compiler.GeneratedCodeAttribute'.");
return false;
}
- IReturnType generatedCodeAttribute = generatedCodeAttributeClass.DefaultReturnType;
- foreach (IAttribute att in @class.Attributes) {
- if (att.AttributeType.Equals(generatedCodeAttribute) &&
- att.PositionalArguments.Count == 2 &&
- String.Equals("System.Resources.Tools.StronglyTypedResourceBuilder", att.PositionalArguments[0] as string, StringComparison.Ordinal)) {
- return true;
+ foreach (IAttribute att in type.Attributes) {
+ if (att.AttributeType.Equals(generatedCodeAttributeType) && att.PositionalArguments.Count == 2) {
+ var firstArg = att.PositionalArguments[0].ConstantValue as string;
+ if (string.Equals(typeof(StronglyTypedResourceBuilder).FullName, firstArg, StringComparison.Ordinal))
+ return true;
}
}
return false;
diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceList.cs b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceList.cs
index 7c6d199542..2381741816 100644
--- a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceList.cs
+++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceList.cs
@@ -129,7 +129,7 @@ namespace ResourceEditor
}
}
- public void LoadFile(string filename, Stream stream)
+ public void LoadFile(FileName filename, Stream stream)
{
resources.Clear();
metadata.Clear();
@@ -168,7 +168,7 @@ namespace ResourceEditor
InitializeListView();
}
- public void SaveFile(string filename, Stream stream)
+ public void SaveFile(FileName filename, Stream stream)
{
switch (Path.GetExtension(filename).ToLowerInvariant()) {
diff --git a/src/Main/Base/Project/Src/Services/LanguageBinding/DefaultLanguageBinding.cs b/src/Main/Base/Project/Src/Services/LanguageBinding/DefaultLanguageBinding.cs
index 1d44d917e3..ac1d41e147 100644
--- a/src/Main/Base/Project/Src/Services/LanguageBinding/DefaultLanguageBinding.cs
+++ b/src/Main/Base/Project/Src/Services/LanguageBinding/DefaultLanguageBinding.cs
@@ -36,5 +36,11 @@ namespace ICSharpCode.SharpDevelop
return DefaultCodeGenerator.DefaultInstance;
}
}
+
+ public virtual System.CodeDom.Compiler.CodeDomProvider CodeDomProvider {
+ get {
+ return null;
+ }
+ }
}
}
diff --git a/src/Main/Base/Project/Src/Services/LanguageBinding/ILanguageBinding.cs b/src/Main/Base/Project/Src/Services/LanguageBinding/ILanguageBinding.cs
index b3f9bdb825..22260c36e8 100644
--- a/src/Main/Base/Project/Src/Services/LanguageBinding/ILanguageBinding.cs
+++ b/src/Main/Base/Project/Src/Services/LanguageBinding/ILanguageBinding.cs
@@ -46,5 +46,13 @@ namespace ICSharpCode.SharpDevelop
ICodeGenerator CodeGenerator {
get;
}
+
+ ///
+ /// Provides access to the for this language.
+ /// Can be null, if not available.
+ ///
+ System.CodeDom.Compiler.CodeDomProvider CodeDomProvider {
+ get;
+ }
}
}