diff --git a/AddIns/ICSharpCode.SharpDevelop.addin b/AddIns/ICSharpCode.SharpDevelop.addin
index b1e1e7730e..26821c8991 100644
--- a/AddIns/ICSharpCode.SharpDevelop.addin
+++ b/AddIns/ICSharpCode.SharpDevelop.addin
@@ -329,6 +329,11 @@
+
diff --git a/data/templates/project/CSharp/FormsProject.xpt b/data/templates/project/CSharp/FormsProject.xpt
index 57184d1e9f..dfa4a5dbef 100644
--- a/data/templates/project/CSharp/FormsProject.xpt
+++ b/data/templates/project/CSharp/FormsProject.xpt
@@ -64,6 +64,7 @@ namespace ${StandardNamespace}
public static void Main(string[] args)
{
Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.addin b/src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.addin
index 5097d200c9..da3c3e409f 100644
--- a/src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.addin
+++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.addin
@@ -22,6 +22,19 @@
extensions = "*.boo"/>
+
+
+
+
+
+
+
+
+
+
diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/ConvertBuffer.cs b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/ConvertBuffer.cs
index a502a634b7..0ce5c90d25 100644
--- a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/ConvertBuffer.cs
+++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/ConvertBuffer.cs
@@ -25,7 +25,7 @@ namespace Grunwald.BooBinding
{
public class ConvertBuffer : AbstractMenuCommand
{
- ConverterSettings ApplySettings(string fileName, CompilerErrorCollection errors, CompilerWarningCollection warnings)
+ public static ConverterSettings ApplySettings(string fileName, CompilerErrorCollection errors, CompilerWarningCollection warnings)
{
ConverterSettings settings = new ConverterSettings(fileName, errors, warnings);
settings.SimplifyTypeNames = true;
@@ -57,24 +57,30 @@ namespace Grunwald.BooBinding
}
}
MessageService.ShowError(errorBuilder.ToString());
- return;
+ } else {
+ FileService.NewFile("Generated.boo", "Boo", CreateBooCode(errors, warnings, module, specials));
}
- using (StringWriter w = new StringWriter()) {
- foreach (CompilerError error in errors) {
- w.WriteLine("ERROR: " + error.ToString());
- }
- if (errors.Count > 0)
- w.WriteLine();
- foreach (CompilerWarning warning in warnings) {
- w.WriteLine("# WARNING: " + warning.ToString());
- }
- if (warnings.Count > 0)
- w.WriteLine();
- BooPrinterVisitorWithComments printer = new BooPrinterVisitorWithComments(specials, w);
- printer.OnModule(module);
- printer.Finish();
- FileService.NewFile("Generated.boo", "Boo", w.ToString());
+ }
+ }
+
+ public static string CreateBooCode(CompilerErrorCollection errors, CompilerWarningCollection warnings,
+ Module module, IList specials)
+ {
+ using (StringWriter w = new StringWriter()) {
+ foreach (CompilerError error in errors) {
+ w.WriteLine("ERROR: " + error.ToString());
+ }
+ if (errors.Count > 0)
+ w.WriteLine();
+ foreach (CompilerWarning warning in warnings) {
+ w.WriteLine("# WARNING: " + warning.ToString());
}
+ if (warnings.Count > 0)
+ w.WriteLine();
+ BooPrinterVisitorWithComments printer = new BooPrinterVisitorWithComments(specials, w);
+ printer.OnModule(module);
+ printer.Finish();
+ return w.ToString();
}
}
}
diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/ConvertProject.cs b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/ConvertProject.cs
new file mode 100644
index 0000000000..281c508cc5
--- /dev/null
+++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/ConvertProject.cs
@@ -0,0 +1,102 @@
+/*
+ * Created by SharpDevelop.
+ * User: Daniel Grunwald
+ * Date: 14.01.2006
+ * Time: 17:05
+ */
+
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using ICSharpCode.Core;
+using ICSharpCode.SharpDevelop.Project;
+using ICSharpCode.SharpDevelop.Project.Converter;
+using ICSharpCode.SharpDevelop.Internal.Templates;
+
+using ICSharpCode.NRefactory.PrettyPrinter;
+using ICSharpCode.NRefactory.Parser;
+using Boo.Lang.Compiler;
+using Boo.Lang.Compiler.Ast;
+using NRefactoryToBooConverter;
+
+namespace Grunwald.BooBinding
+{
+ public class ProjectToBooConverter : LanguageConverter
+ {
+ public override string TargetLanguageName {
+ get {
+ return BooLanguageBinding.LanguageName;
+ }
+ }
+
+ CompilerErrorCollection errors = new CompilerErrorCollection();
+ CompilerWarningCollection warnings = new CompilerWarningCollection();
+
+ protected override IProject CreateProject(string targetProjectDirectory, IProject sourceProject)
+ {
+ errors.Clear();
+ warnings.Clear();
+
+ ProjectCreateInformation info = new ProjectCreateInformation();
+ info.ProjectBasePath = targetProjectDirectory;
+ info.ProjectName = sourceProject.Name;
+ info.OutputProjectFileName = Path.Combine(targetProjectDirectory, Path.GetFileNameWithoutExtension(sourceProject.FileName) + ".booproj");
+ return new BooProject(info);
+ }
+
+ protected override void ConvertFile(FileProjectItem sourceItem, FileProjectItem targetItem)
+ {
+ string ext = Path.GetExtension(sourceItem.FileName);
+ if (".cs".Equals(ext, StringComparison.OrdinalIgnoreCase) || ".vb".Equals(ext, StringComparison.OrdinalIgnoreCase)) {
+ Module module;
+ IList specials;
+ CompileUnit compileUnit = new CompileUnit();
+ using (StringReader r = new StringReader(ParserService.GetParseableFileContent(sourceItem.FileName))) {
+ module = Parser.ParseModule(compileUnit, r, ConvertBuffer.ApplySettings(sourceItem.VirtualName, errors, warnings), out specials);
+ }
+ if (module == null) {
+ conversionLog.AppendLine("Could not parse '" + sourceItem.FileName + "', see error list for details.");
+ base.ConvertFile(sourceItem, targetItem);
+ } else {
+ using (StringWriter w = new StringWriter()) {
+ BooPrinterVisitorWithComments printer = new BooPrinterVisitorWithComments(specials, w);
+ printer.OnModule(module);
+ printer.Finish();
+
+ targetItem.Include = Path.ChangeExtension(targetItem.Include, ".boo");
+ File.WriteAllText(targetItem.FileName, w.ToString());
+ }
+ }
+ } else {
+ base.ConvertFile(sourceItem, targetItem);
+ }
+ }
+
+ protected override void AfterConversion(IProject targetProject)
+ {
+ base.AfterConversion(targetProject);
+
+ if (errors.Count > 0) {
+ conversionLog.AppendLine(errors.Count + " conversion errors:");
+ foreach (CompilerError error in errors) {
+ conversionLog.Append(" ");
+ conversionLog.AppendLine(error.ToString());
+ }
+ conversionLog.AppendLine();
+ }
+ if (warnings.Count > 0) {
+ conversionLog.AppendLine(warnings.Count + " warnings:");
+ foreach (CompilerWarning warning in warnings) {
+ conversionLog.Append(" ");
+ conversionLog.AppendLine(warning.ToString());
+ }
+ conversionLog.AppendLine();
+ }
+
+
+ errors.Clear();
+ warnings.Clear();
+ }
+ }
+}
diff --git a/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorGlobal.cs b/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorGlobal.cs
index 42d513dd79..bf33bca2ad 100644
--- a/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorGlobal.cs
+++ b/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorGlobal.cs
@@ -178,7 +178,7 @@ namespace NRefactoryToBooConverter
public object Visit(AttributeSection s, object data)
{
- if (s.AttributeTarget.ToLower() == "assembly") {
+ if (s.AttributeTarget.Equals("assembly", StringComparison.OrdinalIgnoreCase)) {
foreach (ICSharpCode.NRefactory.Parser.AST.Attribute a in s.Attributes) {
module.AssemblyAttributes.Add((B.Attribute)Visit(a, null));
}
diff --git a/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/Parser.cs b/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/Parser.cs
index 0bd11108b6..8ddcc3518b 100644
--- a/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/Parser.cs
+++ b/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/Parser.cs
@@ -40,6 +40,9 @@ namespace NRefactoryToBooConverter
parser.Errors.Error = errorTrap.DefaultMsgError;
parser.Parse();
specials = parser.Lexer.SpecialTracker.CurrentSpecials;
+ if (settings.IsVisualBasic) {
+ PreProcessingDirective.VBToCSharp(specials);
+ }
// abort when file has errors
if (errorTrap.count > 0)
return null;
diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin b/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin
index ad2777cef8..4895c59487 100644
--- a/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin
+++ b/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin
@@ -17,6 +17,14 @@
class = "ICSharpCode.Core.CSharpAmbience"/>
+
+
+
+
+
+
+
diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpLanguageBinding.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpLanguageBinding.cs
index 34f7c6c792..aa50090061 100644
--- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpLanguageBinding.cs
+++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpLanguageBinding.cs
@@ -42,7 +42,7 @@ namespace CSharpBinding
if (ext == null) {
return false;
}
- return ext.ToUpper() == ".CS";
+ return ext.Equals(".CS", StringComparison.OrdinalIgnoreCase);
}
public string GetCompiledOutputName(string fileName)
diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/Parser.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/Parser.cs
index d1605773cc..50fe55564e 100644
--- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/Parser.cs
+++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/Parser.cs
@@ -45,7 +45,7 @@ namespace CSharpBinding.Parser
public bool CanParse(string fileName)
{
- return Path.GetExtension(fileName).ToUpper() == ".CS";
+ return Path.GetExtension(fileName).Equals(".CS", StringComparison.OrdinalIgnoreCase);
}
public bool CanParse(IProject project)
diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/VBToCSharpConverter.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/VBToCSharpConverter.cs
new file mode 100644
index 0000000000..da68c86a85
--- /dev/null
+++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/VBToCSharpConverter.cs
@@ -0,0 +1,49 @@
+/*
+ * Created by SharpDevelop.
+ * User: Daniel Grunwald
+ * Date: 14.01.2006
+ * Time: 14:50
+ */
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using ICSharpCode.Core;
+using ICSharpCode.SharpDevelop.Project;
+using ICSharpCode.SharpDevelop.Project.Converter;
+using ICSharpCode.SharpDevelop.Internal.Templates;
+using ICSharpCode.NRefactory.Parser;
+using ICSharpCode.NRefactory.Parser.AST;
+using ICSharpCode.NRefactory.PrettyPrinter;
+
+namespace CSharpBinding
+{
+ public class VBToCSharpConverter : NRefactoryLanguageConverter
+ {
+ public override string TargetLanguageName {
+ get {
+ return CSharpLanguageBinding.LanguageName;
+ }
+ }
+
+ protected override void ConvertFile(FileProjectItem sourceItem, FileProjectItem targetItem)
+ {
+ ConvertFile(sourceItem, targetItem, ".vb", ".cs", SupportedLanguage.VBNet, new CSharpOutputVisitor());
+ }
+
+ protected override void ConvertAst(CompilationUnit compilationUnit, List specials)
+ {
+ PreProcessingDirective.VBToCSharp(specials);
+ new VBNetToCSharpConvertVisitor().Visit(compilationUnit, null);
+ }
+
+ protected override IProject CreateProject(string targetProjectDirectory, IProject sourceProject)
+ {
+ ProjectCreateInformation info = new ProjectCreateInformation();
+ info.ProjectBasePath = targetProjectDirectory;
+ info.ProjectName = sourceProject.Name;
+ info.OutputProjectFileName = Path.Combine(targetProjectDirectory, Path.GetFileNameWithoutExtension(sourceProject.FileName) + ".csproj");
+ return new CSharpProject(info);
+ }
+ }
+}
diff --git a/src/AddIns/BackendBindings/ILAsmBinding/Project/Src/ILAsmLanguageBinding.cs b/src/AddIns/BackendBindings/ILAsmBinding/Project/Src/ILAsmLanguageBinding.cs
index c7f38f472f..bed2afe40b 100644
--- a/src/AddIns/BackendBindings/ILAsmBinding/Project/Src/ILAsmLanguageBinding.cs
+++ b/src/AddIns/BackendBindings/ILAsmBinding/Project/Src/ILAsmLanguageBinding.cs
@@ -43,7 +43,7 @@ namespace ICSharpCode.ILAsmBinding
if (ext == null) {
return false;
}
- return ext.ToUpper() == ".IL";
+ return ext.Equals(".IL", StringComparison.OrdinalIgnoreCase);
}
public string GetCompiledOutputName(string fileName)
diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs
index 200411b258..7b9fd3c493 100644
--- a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs
+++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs
@@ -221,7 +221,7 @@ namespace VBNetBinding.FormattingStrategy
bool IsElseConstruct(string line)
{
- string t = StripComment(line).ToLower();
+ string t = StripComment(line).ToLowerInvariant();
if (t.StartsWith("case ")) return true;
if (t == "else" || t.StartsWith("elseif ")) return true;
if (t == "catch" || t.StartsWith("catch ")) return true;
diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/Parser/Parser.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/Parser/Parser.cs
index 3dfc7f5f9a..435dae835b 100644
--- a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/Parser/Parser.cs
+++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/Parser/Parser.cs
@@ -45,7 +45,7 @@ namespace VBNetBinding.Parser
public bool CanParse(string fileName)
{
- return Path.GetExtension(fileName).ToUpper() == ".VB";
+ return Path.GetExtension(fileName).Equals(".VB", StringComparison.OrdinalIgnoreCase);
}
public bool CanParse(IProject project)
@@ -60,7 +60,7 @@ namespace VBNetBinding.Parser
ICSharpCode.NRefactory.Parser.PreProcessingDirective directive = tracker.CurrentSpecials[i] as ICSharpCode.NRefactory.Parser.PreProcessingDirective;
if (directive != null)
{
- if (directive.Cmd.ToLower() == "#region")
+ if (directive.Cmd.Equals("#region", StringComparison.OrdinalIgnoreCase))
{
int deep = 1;
for (int j = i + 1; j < tracker.CurrentSpecials.Count; ++j)
@@ -68,13 +68,13 @@ namespace VBNetBinding.Parser
ICSharpCode.NRefactory.Parser.PreProcessingDirective nextDirective = tracker.CurrentSpecials[j] as ICSharpCode.NRefactory.Parser.PreProcessingDirective;
if (nextDirective != null)
{
- switch (nextDirective.Cmd.ToLower())
+ switch (nextDirective.Cmd.ToLowerInvariant())
{
case "#region":
++deep;
break;
case "#end":
- if (nextDirective.Arg.ToLower() == "region") {
+ if (nextDirective.Arg.Equals("region", StringComparison.OrdinalIgnoreCase)) {
--deep;
if (deep == 0) {
cu.FoldingRegions.Add(new FoldingRegion(directive.Arg.Trim('"'), new DomRegion(directive.StartPosition, nextDirective.EndPosition)));
diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/CSharpToVBConverter.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/CSharpToVBConverter.cs
new file mode 100644
index 0000000000..4f80e83124
--- /dev/null
+++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/CSharpToVBConverter.cs
@@ -0,0 +1,49 @@
+/*
+ * Created by SharpDevelop.
+ * User: Daniel Grunwald
+ * Date: 14.01.2006
+ * Time: 14:50
+ */
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using ICSharpCode.Core;
+using ICSharpCode.SharpDevelop.Project;
+using ICSharpCode.SharpDevelop.Project.Converter;
+using ICSharpCode.SharpDevelop.Internal.Templates;
+using ICSharpCode.NRefactory.Parser;
+using ICSharpCode.NRefactory.Parser.AST;
+using ICSharpCode.NRefactory.PrettyPrinter;
+
+namespace VBNetBinding
+{
+ public class CSharpToVBConverter : NRefactoryLanguageConverter
+ {
+ public override string TargetLanguageName {
+ get {
+ return VBNetLanguageBinding.LanguageName;
+ }
+ }
+
+ protected override void ConvertFile(FileProjectItem sourceItem, FileProjectItem targetItem)
+ {
+ ConvertFile(sourceItem, targetItem, ".cs", ".vb", SupportedLanguage.CSharp, new VBNetOutputVisitor());
+ }
+
+ protected override void ConvertAst(CompilationUnit compilationUnit, List specials)
+ {
+ PreProcessingDirective.CSharpToVB(specials);
+ new CSharpToVBNetConvertVisitor().Visit(compilationUnit, null);
+ }
+
+ protected override IProject CreateProject(string targetProjectDirectory, IProject sourceProject)
+ {
+ ProjectCreateInformation info = new ProjectCreateInformation();
+ info.ProjectBasePath = targetProjectDirectory;
+ info.ProjectName = sourceProject.Name;
+ info.OutputProjectFileName = Path.Combine(targetProjectDirectory, Path.GetFileNameWithoutExtension(sourceProject.FileName) + ".vbproj");
+ return new VBNetProject(info);
+ }
+ }
+}
diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/VBNetProject.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/VBNetProject.cs
index 8d3299ce07..d91ec5277a 100644
--- a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/VBNetProject.cs
+++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/VBNetProject.cs
@@ -72,7 +72,9 @@ namespace VBNetBinding
{
ParseProjectContent pc = base.CreateProjectContent();
ReferenceProjectItem vbRef = new ReferenceProjectItem(this, "Microsoft.VisualBasic");
- pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference(vbRef));
+ if (vbRef != null) {
+ pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference(vbRef));
+ }
MyNamespaceBuilder.BuildNamespace(this, pc);
return pc;
}
diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetLanguageBinding.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetLanguageBinding.cs
index 4106d024e7..6d5668813f 100644
--- a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetLanguageBinding.cs
+++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetLanguageBinding.cs
@@ -43,7 +43,7 @@ namespace VBNetBinding
if (ext == null) {
return false;
}
- return ext.ToUpper() == ".VB";
+ return ext.Equals(".VB", StringComparison.OrdinalIgnoreCase);
}
public string GetCompiledOutputName(string fileName)
diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/VBNetBinding.addin b/src/AddIns/BackendBindings/VBNetBinding/Project/VBNetBinding.addin
index 6ed59331f4..cd91c6d966 100644
--- a/src/AddIns/BackendBindings/VBNetBinding/Project/VBNetBinding.addin
+++ b/src/AddIns/BackendBindings/VBNetBinding/Project/VBNetBinding.addin
@@ -31,6 +31,14 @@
class = "VBNetBinding.Parser.TParser"/>
+
+
+
+
+
+
+
diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/AddNewFileCommand.cs b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/AddNewFileCommand.cs
index 51c1c4b3a6..9dd6bef156 100644
--- a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/AddNewFileCommand.cs
+++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/AddNewFileCommand.cs
@@ -67,7 +67,7 @@ namespace ResourceEditor
object loadResource(string name)
{
- switch (Path.GetExtension(name).ToUpper()) {
+ switch (Path.GetExtension(name).ToUpperInvariant()) {
case ".CUR":
try {
return new Cursor(name);
diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs
index 9c64d30eed..bad31cd0d2 100644
--- a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs
+++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs
@@ -22,8 +22,8 @@ namespace ResourceEditor
// IDisplayBinding interface
public bool CanCreateContentForFile(string fileName)
{
- return Path.GetExtension(fileName).ToUpper() == ".RESOURCES" ||
- Path.GetExtension(fileName).ToUpper() == ".RESX";
+ return Path.GetExtension(fileName).Equals(".RESOURCES", StringComparison.OrdinalIgnoreCase) ||
+ Path.GetExtension(fileName).Equals(".RESX", StringComparison.OrdinalIgnoreCase);
}
public bool CanCreateContentForLanguage(string language)
@@ -87,7 +87,7 @@ namespace ResourceEditor
{
Save(FileName);
}
-
+
public override void Load(string filename)
{
resourceEditor.ResourceList.LoadFile(filename);
@@ -144,7 +144,7 @@ namespace ResourceEditor
public void Cut()
{
- if (resourceEditor.ResourceList.WriteProtected || resourceEditor.ResourceList.SelectedItems.Count < 1)
+ if (resourceEditor.ResourceList.WriteProtected || resourceEditor.ResourceList.SelectedItems.Count < 1)
return;
Hashtable tmphash = new Hashtable();
@@ -183,11 +183,11 @@ namespace ResourceEditor
Hashtable tmphash = (Hashtable)dob.GetData(typeof(Hashtable));
foreach (DictionaryEntry entry in tmphash) {
- object resourceValue = GetClonedResource(entry.Value);
+ object resourceValue = GetClonedResource(entry.Value);
ResourceItem item;
if (!resourceEditor.ResourceList.Resources.ContainsKey((string)entry.Key)) {
- item = new ResourceItem(entry.Key.ToString(), resourceValue);
+ item = new ResourceItem(entry.Key.ToString(), resourceValue);
} else {
int count = 1;
string newNameBase = entry.Key.ToString() + " ";
@@ -212,7 +212,7 @@ namespace ResourceEditor
///
/// A resource to clone.
/// A cloned resource if the object implements
- /// the ICloneable interface, otherwise the
+ /// the ICloneable interface, otherwise the
/// object.
object GetClonedResource(object resource)
{
@@ -224,7 +224,7 @@ namespace ResourceEditor
} else {
clonedResource = resource;
}
-
+
return clonedResource;
}
@@ -238,7 +238,7 @@ namespace ResourceEditor
DialogResult rc;
try {
-
+
rc=MessageBox.Show(ResourceService.GetString("ResourceEditor.DeleteEntry.Confirm"),ResourceService.GetString("ResourceEditor.DeleteEntry.Title"),MessageBoxButtons.OKCancel);
}
catch {
@@ -255,7 +255,7 @@ namespace ResourceEditor
////if (item.Text != null) {
resourceEditor.ResourceList.Resources.Remove(item.Text);
resourceEditor.ResourceList.Items.Remove(item);
- // and set dirty flag
+ // and set dirty flag
resourceEditor.ResourceList.OnChanged();
}
}
diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaAssociation.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaAssociation.cs
index 31f7372e5b..4a914e1ddf 100644
--- a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaAssociation.cs
+++ b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaAssociation.cs
@@ -84,7 +84,7 @@ namespace ICSharpCode.XmlEditor
{
XmlSchemaAssociation association = null;
- switch (extension.ToLower()) {
+ switch (extension.ToLowerInvariant()) {
case ".wxs":
association = new XmlSchemaAssociation(extension, @"http://schemas.microsoft.com/wix/2003/01/wi");
break;
diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs
index b69708ce4c..6bd06a2796 100644
--- a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs
+++ b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs
@@ -675,7 +675,7 @@ namespace ICSharpCode.XmlEditor
///
void PropertyChanged(object sender, PropertyChangedEventArgs e)
{
- string extension = Path.GetExtension(xmlEditor.FileName).ToLower();
+ string extension = Path.GetExtension(xmlEditor.FileName).ToLowerInvariant();
if (e.Key == extension) {
SetDefaultSchema(extension);
} else if (e.Key == XmlEditorAddInOptions.ShowAttributesWhenFoldedPropertyName) {
@@ -699,7 +699,7 @@ namespace ICSharpCode.XmlEditor
///
void UserSchemaAdded(object source, EventArgs e)
{
- SetDefaultSchema(Path.GetExtension(xmlEditor.FileName).ToLower());
+ SetDefaultSchema(Path.GetExtension(xmlEditor.FileName).ToLowerInvariant());
}
///
@@ -708,7 +708,7 @@ namespace ICSharpCode.XmlEditor
///
void UserSchemaRemoved(object source, EventArgs e)
{
- SetDefaultSchema(Path.GetExtension(xmlEditor.FileName).ToLower());
+ SetDefaultSchema(Path.GetExtension(xmlEditor.FileName).ToLowerInvariant());
}
///
diff --git a/src/AddIns/Misc/AddinScout/Project/Src/Gui/AddInDetailsPanel.cs b/src/AddIns/Misc/AddinScout/Project/Src/Gui/AddInDetailsPanel.cs
index 70322345ee..2aa23de39b 100644
--- a/src/AddIns/Misc/AddinScout/Project/Src/Gui/AddInDetailsPanel.cs
+++ b/src/AddIns/Misc/AddinScout/Project/Src/Gui/AddInDetailsPanel.cs
@@ -51,7 +51,7 @@ namespace AddInScout
ListViewItem selectedItem = ((ListView)sender).SelectedItems[0];
- if (selectedItem.Text.ToLower().Equals("url")) {
+ if (selectedItem.Text.Equals("url", StringComparison.OrdinalIgnoreCase)) {
string url = selectedItem.SubItems[1].Text;
try {
System.Diagnostics.Process.Start(url);
@@ -59,7 +59,7 @@ namespace AddInScout
// Silent: On my System the browser starts but Process.Start throws an exception. Mike 2.11.2004/Notebook/ICE 1517 on the way to DevCon Europe 2004
// MessageBox.Show("Unable to Start Browser\n" + ex.ToString());
}
- } else if (selectedItem.Text.ToLower().Equals("filename")) {
+ } else if (selectedItem.Text.Equals("filename", StringComparison.OrdinalIgnoreCase)) {
FileService.OpenFile(selectedItem.SubItems[1].Text);
}
diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/RemotingConfigurationHelpper.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/RemotingConfigurationHelpper.cs
index 3b6869084e..40b5d24fd6 100644
--- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/RemotingConfigurationHelpper.cs
+++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/RemotingConfigurationHelpper.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.SharpDevelop.Services
string path = null;
foreach (System.Reflection.Assembly assembly in AppDomain.CurrentDomain.GetAssemblies()) {
string fullFilename = assembly.Location;
- if (Path.GetFileName(fullFilename).ToLower() == assemblyName.ToLower()) {
+ if (Path.GetFileName(fullFilename).Equals(assemblyName, StringComparison.OrdinalIgnoreCase)) {
path = Path.GetDirectoryName(fullFilename);
break;
}
@@ -67,7 +67,7 @@ namespace ICSharpCode.SharpDevelop.Services
{
foreach (System.Reflection.Assembly assembly in AppDomain.CurrentDomain.GetAssemblies()) {
string fullFilename = assembly.Location;
- if (Path.GetFileNameWithoutExtension(fullFilename).ToLower() == args.Name.ToLower() ||
+ if (Path.GetFileNameWithoutExtension(fullFilename).Equals(args.Name, StringComparison.OrdinalIgnoreCase) ||
assembly.FullName == args.Name) {
return assembly;
}
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/EditorHighlightColor.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/EditorHighlightColor.cs
index a1bc9def95..7221675bde 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/EditorHighlightColor.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/EditorHighlightColor.cs
@@ -212,8 +212,8 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
public string ToXml()
{
string str = "";
- str += "bold=\"" + bold.ToString().ToLower() + "\" ";
- str += "italic=\"" + italic.ToString().ToLower() + "\" ";
+ str += "bold=\"" + bold.ToString().ToLowerInvariant() + "\" ";
+ str += "italic=\"" + italic.ToString().ToLowerInvariant() + "\" ";
if (hasForeColor) {
str += "color=\"";
if (sysForeColor) {
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetNode.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetNode.cs
index 0439b58626..05f211b785 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetNode.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetNode.cs
@@ -105,7 +105,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
{
if (reference != "") return "\t\t\n\n";
- string ret = "\t\t\n";
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpanNode.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpanNode.cs
index 9c0f4532b8..d701af5ad4 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpanNode.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpanNode.cs
@@ -65,7 +65,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
ret = "\t\t\t\n";
diff --git a/src/AddIns/Misc/HtmlHelp2/Project/Configuration/AssemblyInfo.cs b/src/AddIns/Misc/HtmlHelp2/Project/Configuration/AssemblyInfo.cs
index 66fc44afe7..ca3eb42aa3 100644
--- a/src/AddIns/Misc/HtmlHelp2/Project/Configuration/AssemblyInfo.cs
+++ b/src/AddIns/Misc/HtmlHelp2/Project/Configuration/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-//
+//
//
//
//
diff --git a/src/AddIns/Misc/PInvokeAddIn/Project/Src/InsertPInvokeSignaturesForm.cs b/src/AddIns/Misc/PInvokeAddIn/Project/Src/InsertPInvokeSignaturesForm.cs
index a9a1e3404e..1b1cc3304c 100644
--- a/src/AddIns/Misc/PInvokeAddIn/Project/Src/InsertPInvokeSignaturesForm.cs
+++ b/src/AddIns/Misc/PInvokeAddIn/Project/Src/InsertPInvokeSignaturesForm.cs
@@ -182,7 +182,7 @@ namespace ICSharpCode.PInvokeAddIn
StringBuilder signatureBuilder = new StringBuilder();
foreach (SignatureInfo info in signatures) {
- if (info.Language.ToLower() == language.ToLower()) {
+ if (info.Language.Equals(language, StringComparison.OrdinalIgnoreCase)) {
signatureBuilder.Append(GetSignature(info));
signatureBuilder.Append("\r\n");
}
@@ -212,7 +212,7 @@ namespace ICSharpCode.PInvokeAddIn
foreach (SignatureInfo info in signatures) {
bool languageWanted = false;
- if ((language == allLanguages) || (language.ToLower() == info.Language.ToLower())) {
+ if ((language == allLanguages) || (language.Equals(info.Language, StringComparison.OrdinalIgnoreCase))) {
languageWanted = true;
}
@@ -313,8 +313,8 @@ namespace ICSharpCode.PInvokeAddIn
{
TextEditorControl textEditor = GetTextEditorControl();
if (textEditor != null) {
- string fileExtension = Path.GetExtension(textEditor.ActiveTextAreaControl.TextArea.MotherTextEditorControl.FileName).ToLower();
- if (fileExtension == ".vb") {
+ string fileExtension = Path.GetExtension(textEditor.ActiveTextAreaControl.TextArea.MotherTextEditorControl.FileName);
+ if (fileExtension.Equals(".vb", StringComparison.OrdinalIgnoreCase)) {
return "VB";
}
}
diff --git a/src/AddIns/Misc/StartPage/Project/Src/ICSharpCodePage.cs b/src/AddIns/Misc/StartPage/Project/Src/ICSharpCodePage.cs
index 316ffaf849..3e8fff9e93 100644
--- a/src/AddIns/Misc/StartPage/Project/Src/ICSharpCodePage.cs
+++ b/src/AddIns/Misc/StartPage/Project/Src/ICSharpCodePage.cs
@@ -635,7 +635,7 @@ namespace ICSharpCode.StartPage
public string Render(string section)
{
startPageLocation = FileUtility.Combine(Application.StartupPath, "..", "data", "resources", "startpage");
- switch (section.ToLower()) {
+ switch (section.ToLowerInvariant()) {
case "start":
ContentBarText = StringParser.Parse("${res:StartPage.StartMenu.BarNameName}");
break;
@@ -655,7 +655,7 @@ namespace ICSharpCode.StartPage
RenderPageTopSection(builder);
RenderFirstPageBodySection(builder);
- switch (section.ToLower()) {
+ switch (section.ToLowerInvariant()) {
case "start":
RenderSectionStartBody(builder);
break;
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/FileSyntaxModeProvider.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/FileSyntaxModeProvider.cs
index 0b76972442..257788cc3c 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/FileSyntaxModeProvider.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/FileSyntaxModeProvider.cs
@@ -58,7 +58,7 @@ namespace ICSharpCode.TextEditor.Document
string[] files = Directory.GetFiles(directory);
ArrayList modes = new ArrayList();
foreach (string file in files) {
- if (Path.GetExtension(file).ToUpper() == ".XSHD") {
+ if (Path.GetExtension(file).Equals(".XSHD", StringComparison.OrdinalIgnoreCase)) {
XmlTextReader reader = new XmlTextReader(file);
while (reader.Read()) {
if (reader.NodeType == XmlNodeType.Element) {
diff --git a/src/Libraries/NRefactory/Project/Src/Lexer/Special/PreProcessingDirective.cs b/src/Libraries/NRefactory/Project/Src/Lexer/Special/PreProcessingDirective.cs
index c8e27c498f..7e663db306 100644
--- a/src/Libraries/NRefactory/Project/Src/Lexer/Special/PreProcessingDirective.cs
+++ b/src/Libraries/NRefactory/Project/Src/Lexer/Special/PreProcessingDirective.cs
@@ -14,7 +14,7 @@ namespace ICSharpCode.NRefactory.Parser
{
public class PreProcessingDirective : AbstractSpecial
{
- public static void VBToCSharp(List list)
+ public static void VBToCSharp(IList list)
{
for (int i = 0; i < list.Count; ++i) {
if (list[i] is PreProcessingDirective)
diff --git a/src/Libraries/NRefactory/Project/Src/Output/IOutputASTVisitor.cs b/src/Libraries/NRefactory/Project/Src/Output/IOutputASTVisitor.cs
index 2c333957e3..9c8bed3369 100644
--- a/src/Libraries/NRefactory/Project/Src/Output/IOutputASTVisitor.cs
+++ b/src/Libraries/NRefactory/Project/Src/Output/IOutputASTVisitor.cs
@@ -21,6 +21,10 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
///
public interface IOutputASTVisitor : IAstVisitor
{
+ NodeTracker NodeTracker {
+ get;
+ }
+
string Text {
get;
}
diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
index 32bc838bad..0416fa1f27 100644
--- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
+++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
@@ -742,6 +742,7 @@
+
diff --git a/src/Main/Base/Project/Src/Commands/CustomStringTagProvider.cs b/src/Main/Base/Project/Src/Commands/CustomStringTagProvider.cs
index c52fb6cf6a..817f5c9e08 100644
--- a/src/Main/Base/Project/Src/Commands/CustomStringTagProvider.cs
+++ b/src/Main/Base/Project/Src/Commands/CustomStringTagProvider.cs
@@ -75,7 +75,7 @@ namespace ICSharpCode.SharpDevelop.Commands
return ProjectService.CurrentProject == null ? "" : ProjectService.CurrentProject.Name;
}
- switch (tag.ToUpper()) {
+ switch (tag.ToUpperInvariant()) {
case "NETSDKDIR":
return FileUtility.NetSdkInstallRoot;
case "ITEMPATH":
diff --git a/src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryASTConvertVisitor.cs b/src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryASTConvertVisitor.cs
index dc308eae57..8410e0a8c6 100644
--- a/src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryASTConvertVisitor.cs
+++ b/src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryASTConvertVisitor.cs
@@ -191,7 +191,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
AttributeTarget target = AttributeTarget.None;
if (section.AttributeTarget != null && section.AttributeTarget != "") {
- switch (section.AttributeTarget.ToUpper()) {
+ switch (section.AttributeTarget.ToUpperInvariant()) {
case "ASSEMBLY":
target = AttributeTarget.Assembly;
break;
diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/WebReference.cs b/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/WebReference.cs
index 8541b40378..6ada4fc3ca 100644
--- a/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/WebReference.cs
+++ b/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/WebReference.cs
@@ -262,7 +262,7 @@ namespace ICSharpCode.SharpDevelop.Gui
CodeDomProvider provider;
- switch(Path.GetExtension(fileName).ToLower()) {
+ switch(Path.GetExtension(fileName).ToLowerInvariant()) {
case ".cs":
provider = new Microsoft.CSharp.CSharpCodeProvider();
break;
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ReferenceFolderNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ReferenceFolderNode.cs
index f6d9bb0075..ae1d80e5c4 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ReferenceFolderNode.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ReferenceFolderNode.cs
@@ -104,7 +104,7 @@ namespace ICSharpCode.SharpDevelop.Gui
int pos = rootNamespace.IndexOf(',');
if (pos > 0)
rootNamespace = rootNamespace.Substring(0, pos);
- if (directory.ToLower().StartsWith(rootNamespace.ToLower())) {
+ if (directory.ToLowerInvariant().StartsWith(rootNamespace.ToLowerInvariant())) {
directory = directory.Substring(rootNamespace.Length);
}
return directory;
diff --git a/src/Main/Base/Project/Src/Gui/Pads/FileScout.cs b/src/Main/Base/Project/Src/Gui/Pads/FileScout.cs
index a62ca6727d..75c17add57 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/FileScout.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/FileScout.cs
@@ -188,8 +188,8 @@ namespace ICSharpCode.SharpDevelop.Gui
string key;
// icon files and exe files can have their custom icons
- if(Path.GetExtension(file).ToLower() == ".ico" ||
- Path.GetExtension(file).ToLower() == ".exe") {
+ if(Path.GetExtension(file).Equals(".ico", StringComparison.OrdinalIgnoreCase) ||
+ Path.GetExtension(file).Equals(".exe", StringComparison.OrdinalIgnoreCase)) {
key = file;
} else {
key = Path.GetExtension(file).ToLower();
@@ -258,7 +258,7 @@ namespace ICSharpCode.SharpDevelop.Gui
{
foreach(FileListItem fileItem in Items)
{
- if(fileItem.FullName.ToLower() == e.FullPath.ToLower()) {
+ if(fileItem.FullName.Equals(e.FullPath, StringComparison.OrdinalIgnoreCase)) {
Items.Remove(fileItem);
break;
}
@@ -269,7 +269,7 @@ namespace ICSharpCode.SharpDevelop.Gui
{
foreach(FileListItem fileItem in Items)
{
- if(fileItem.FullName.ToLower() == e.FullPath.ToLower()) {
+ if(fileItem.FullName.Equals(e.FullPath, StringComparison.OrdinalIgnoreCase)) {
FileInfo info = new FileInfo(e.FullPath);
@@ -295,7 +295,7 @@ namespace ICSharpCode.SharpDevelop.Gui
{
foreach(FileListItem fileItem in Items)
{
- if(fileItem.FullName.ToLower() == e.OldFullPath.ToLower()) {
+ if(fileItem.FullName.Equals(e.OldFullPath, StringComparison.OrdinalIgnoreCase)) {
fileItem.FullName = e.FullPath;
fileItem.Text = e.Name;
break;
@@ -474,18 +474,12 @@ namespace ICSharpCode.SharpDevelop.Gui
void FileSelected(object sender, EventArgs e)
{
foreach (FileList.FileListItem item in filelister.SelectedItems) {
-
- switch (Path.GetExtension(item.FullName).ToUpper()) {
- case ".CMBX":
- case ".SLN":
- ProjectService.LoadSolution(item.FullName);
- break;
- case ".PRJX":
- // TODO: Load old projects.
- break;
- default:
- FileService.OpenFile(item.FullName);
- break;
+ if (ProjectService.IsSolutionExtension(Path.GetExtension(item.FullName))) {
+ ProjectService.LoadSolution(item.FullName);
+ } else if (ProjectService.IsProjectExtension(Path.GetExtension(item.FullName))) {
+ ProjectService.LoadProject(item.FullName);
+ } else {
+ FileService.OpenFile(item.FullName);
}
}
}
@@ -619,7 +613,7 @@ namespace ICSharpCode.SharpDevelop.Gui
foreach(string dir in pathlist) {
foreach(TreeNode childnode in curnode) {
- if (((string)childnode.Tag).ToUpper().Equals(dir.ToUpper())) {
+ if (((string)childnode.Tag).Equals(dir, StringComparison.OrdinalIgnoreCase)) {
SelectedNode = childnode;
PopulateSubDirectory(childnode, 2);
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs
index d289547fe0..9062c3ab7a 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs
@@ -29,7 +29,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
LanguageBindingDescriptor languageCodon = LanguageBindingService.GetCodonPerLanguageName(project.Language);
for (int i = 0; i < fileFilters.Length; ++i) {
for (int j = 0; j < languageCodon.Supportedextensions.Length; ++j) {
- if (fileFilters[i].ToUpper().IndexOf(languageCodon.Supportedextensions[j].ToUpper()) >= 0) {
+ if (fileFilters[i].ToUpperInvariant().IndexOf(languageCodon.Supportedextensions[j].ToUpperInvariant()) >= 0) {
return i + 1;
}
}
diff --git a/src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs b/src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs
index f52e86f7bd..bff16ff682 100644
--- a/src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs
+++ b/src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs
@@ -278,7 +278,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
string newFileDialogVisibleAttr = config.GetAttribute("newfiledialogvisible");
if (newFileDialogVisibleAttr != null && newFileDialogVisibleAttr.Length != 0) {
- if (newFileDialogVisibleAttr.ToLower() == "false")
+ if (newFileDialogVisibleAttr.Equals("false", StringComparison.OrdinalIgnoreCase))
newFileDialogVisible = false;
}
diff --git a/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectTemplate.cs b/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectTemplate.cs
index e3fe29b88f..f7a3b7b37f 100644
--- a/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectTemplate.cs
+++ b/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectTemplate.cs
@@ -172,7 +172,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
string newProjectDialogVisibleAttr = doc.DocumentElement.GetAttribute("newprojectdialogvisible");
if (newProjectDialogVisibleAttr != null && newProjectDialogVisibleAttr.Length != 0) {
- if (newProjectDialogVisibleAttr.ToLower() == "false")
+ if (newProjectDialogVisibleAttr.Equals("false", StringComparison.OrdinalIgnoreCase))
newProjectDialogVisible = false;
}
diff --git a/src/Main/Base/Project/Src/Project/ConfigurationGuiHelper.cs b/src/Main/Base/Project/Src/Project/ConfigurationGuiHelper.cs
index 125a831d2f..178805b7d5 100644
--- a/src/Main/Base/Project/Src/Project/ConfigurationGuiHelper.cs
+++ b/src/Main/Base/Project/Src/Project/ConfigurationGuiHelper.cs
@@ -188,7 +188,7 @@ namespace ICSharpCode.SharpDevelop.Project
string oldValue = Get("True");
if (oldValue == "true" || oldValue == "false") {
// keep value in lower case
- Set(control.Checked.ToString().ToLower());
+ Set(control.Checked.ToString().ToLowerInvariant());
} else {
Set(control.Checked.ToString());
}
diff --git a/src/Main/Base/Project/Src/Project/Converter/CombineToSolution.cs b/src/Main/Base/Project/Src/Project/Converter/CombineToSolution.cs
index f13d80b3db..7a045841eb 100644
--- a/src/Main/Base/Project/Src/Project/Converter/CombineToSolution.cs
+++ b/src/Main/Base/Project/Src/Project/Converter/CombineToSolution.cs
@@ -33,7 +33,7 @@ namespace ICSharpCode.SharpDevelop.Project.Converter
Match match = combineLinePattern.Match(content);
while (match.Success) {
string path = Path.Combine(solutionDirectory, match.Result("${FileName}"));
- if (Path.GetExtension(path).ToUpper() == ".CMBX") {
+ if (".CMBX".Equals(Path.GetExtension(path), StringComparison.OrdinalIgnoreCase)) {
ReadProjects(newSolution, path, projectFiles);
} else {
projectFiles.Add(path);
diff --git a/src/Main/Base/Project/Src/Project/Converter/LanguageConverter.cs b/src/Main/Base/Project/Src/Project/Converter/LanguageConverter.cs
new file mode 100644
index 0000000000..39c486f6e1
--- /dev/null
+++ b/src/Main/Base/Project/Src/Project/Converter/LanguageConverter.cs
@@ -0,0 +1,152 @@
+/*
+ * Created by SharpDevelop.
+ * User: Daniel Grunwald
+ * Date: 14.01.2006
+ * Time: 14:10
+ */
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using System.Windows.Forms;
+using ICSharpCode.Core;
+using ICSharpCode.SharpDevelop.Project.Commands;
+using ICSharpCode.NRefactory.Parser;
+using ICSharpCode.NRefactory.Parser.AST;
+using ICSharpCode.NRefactory.PrettyPrinter;
+
+namespace ICSharpCode.SharpDevelop.Project.Converter
+{
+ ///
+ /// Converts projects from one language to another, for example C# <-> VB
+ ///
+ public abstract class LanguageConverter : AbstractMenuCommand
+ {
+ protected abstract IProject CreateProject(string targetProjectDirectory, IProject sourceProject);
+ protected virtual void AfterConversion(IProject targetProject) {}
+
+ public abstract string TargetLanguageName { get; }
+
+ protected virtual void ConvertFile(FileProjectItem sourceItem, FileProjectItem targetItem)
+ {
+ if (!File.Exists(targetItem.FileName)) {
+ File.Copy(sourceItem.FileName, targetItem.FileName);
+ }
+ }
+
+ protected virtual void CopyProperties(IProject sourceProject, IProject targetProject)
+ {
+
+ }
+
+ protected virtual void CopyItems(IProject sourceProject, IProject targetProject)
+ {
+ foreach (ProjectItem item in sourceProject.Items) {
+ FileProjectItem fileItem = item as FileProjectItem;
+ if (fileItem != null && FileUtility.IsBaseDirectory(sourceProject.Directory, fileItem.FileName)) {
+ FileProjectItem targetItem = new FileProjectItem(targetProject, fileItem.ItemType);
+ fileItem.CopyExtraPropertiesTo(targetItem);
+ targetItem.Include = fileItem.Include;
+ if (!Directory.Exists(Path.GetDirectoryName(targetItem.FileName))) {
+ Directory.CreateDirectory(Path.GetDirectoryName(targetItem.FileName));
+ }
+ ConvertFile(fileItem, targetItem);
+ targetProject.Items.Add(targetItem);
+ } else {
+ // Adding the same item to two projects is only allowed because we will save and reload
+ // the target project.
+ targetProject.Items.Add(item);
+ }
+ }
+ }
+
+ protected StringBuilder conversionLog;
+
+ public override void Run()
+ {
+ conversionLog = new StringBuilder();
+ conversionLog.AppendLine("SharpDevelop Project Converter");
+ conversionLog.AppendLine("==============================");
+ conversionLog.AppendLine("");
+ IProject sourceProject = ProjectService.CurrentProject;
+ string targetProjectDirectory = sourceProject.Directory + ".ConvertedTo" + TargetLanguageName;
+ if (Directory.Exists(targetProjectDirectory)) {
+ MessageService.ShowMessage(targetProjectDirectory + " already exists, cannot convert.");
+ return;
+ }
+ conversionLog.AppendLine("Source: " + sourceProject.Directory);
+ conversionLog.AppendLine("Target: " + targetProjectDirectory);
+
+ Directory.CreateDirectory(targetProjectDirectory);
+ IProject targetProject = CreateProject(targetProjectDirectory, sourceProject);
+ CopyProperties(sourceProject, targetProject);
+ conversionLog.AppendLine();
+ CopyItems(sourceProject, targetProject);
+ conversionLog.AppendLine();
+ AfterConversion(targetProject);
+ conversionLog.AppendLine("Conversion complete.");
+ targetProject.Save();
+ targetProject.Dispose();
+ TreeNode node = ProjectBrowserPad.Instance.SelectedNode;
+ while (node != null) {
+ if (node is ISolutionFolderNode) {
+ AddExitingProjectToSolution.AddProject((ISolutionFolderNode)node, targetProject.FileName);
+ ProjectService.SaveSolution();
+ break;
+ }
+ node = node.Parent;
+ }
+ FileService.NewFile("Conversion Results", "Text", conversionLog.ToString());
+ }
+ }
+
+ public abstract class NRefactoryLanguageConverter : LanguageConverter
+ {
+ protected abstract void ConvertAst(CompilationUnit compilationUnit, List specials);
+
+ protected void ConvertFile(FileProjectItem sourceItem, FileProjectItem targetItem,
+ string sourceExtension, string targetExtension,
+ SupportedLanguage sourceLanguage, IOutputASTVisitor outputVisitor)
+ {
+ if (sourceExtension.Equals(Path.GetExtension(sourceItem.FileName), StringComparison.OrdinalIgnoreCase)) {
+ string code = ParserService.GetParseableFileContent(sourceItem.FileName);
+ IParser p = ParserFactory.CreateParser(sourceLanguage, new StringReader(code));
+ p.Parse();
+ if (p.Errors.count > 0) {
+ conversionLog.AppendLine();
+ conversionLog.AppendLine(sourceItem.FileName + " is not converted:");
+ conversionLog.AppendLine("Parser found " + p.Errors.count + " error(s)");
+ conversionLog.AppendLine(p.Errors.ErrorOutput);
+ base.ConvertFile(sourceItem, targetItem);
+ return;
+ }
+
+ List specials = p.Lexer.SpecialTracker.CurrentSpecials;
+
+ ConvertAst(p.CompilationUnit, specials);
+
+ SpecialNodesInserter sni = new SpecialNodesInserter(specials,
+ new SpecialOutputVisitor(outputVisitor.OutputFormatter));
+ outputVisitor.NodeTracker.NodeVisiting += sni.AcceptNodeStart;
+ outputVisitor.NodeTracker.NodeVisited += sni.AcceptNodeEnd;
+ outputVisitor.NodeTracker.NodeChildrenVisited += sni.AcceptNodeEnd;
+ outputVisitor.Visit(p.CompilationUnit, null);
+ sni.Finish();
+
+ p.Dispose();
+
+ if (outputVisitor.Errors.count > 0) {
+ conversionLog.AppendLine();
+ conversionLog.AppendLine(outputVisitor.Errors.count + " error(s) converting " + sourceItem.FileName + ":");
+ conversionLog.AppendLine(outputVisitor.Errors.ErrorOutput);
+ }
+
+ targetItem.Include = Path.ChangeExtension(targetItem.Include, targetExtension);
+ File.WriteAllText(targetItem.FileName, outputVisitor.Text);
+ } else {
+ base.ConvertFile(sourceItem, targetItem);
+ }
+ }
+ }
+}
diff --git a/src/Main/Base/Project/Src/Project/MSBuildProject.cs b/src/Main/Base/Project/Src/Project/MSBuildProject.cs
index 3f51ecaf96..2d8d613015 100644
--- a/src/Main/Base/Project/Src/Project/MSBuildProject.cs
+++ b/src/Main/Base/Project/Src/Project/MSBuildProject.cs
@@ -34,7 +34,7 @@ namespace ICSharpCode.SharpDevelop.Project
protected virtual void Create(ProjectCreateInformation information)
{
Name = information.ProjectName;
- IdGuid = "{" + Guid.NewGuid().ToString().ToUpper() + "}";
+ IdGuid = "{" + Guid.NewGuid().ToString().ToUpperInvariant() + "}";
BaseConfiguration["OutputType"] = "Exe";
BaseConfiguration["RootNamespace"] = information.ProjectName;
BaseConfiguration["AssemblyName"] = information.ProjectName;
diff --git a/src/Main/Base/Project/Src/Project/Solution/Solution.cs b/src/Main/Base/Project/Src/Project/Solution/Solution.cs
index c4ed350d25..cf6cf82231 100644
--- a/src/Main/Base/Project/Src/Project/Solution/Solution.cs
+++ b/src/Main/Base/Project/Src/Project/Solution/Solution.cs
@@ -218,7 +218,7 @@ namespace ICSharpCode.SharpDevelop.Project
public SolutionFolder CreateFolder(string folderName)
{
- return new SolutionFolder(folderName, folderName, "{" + Guid.NewGuid().ToString().ToUpper() + "}");
+ return new SolutionFolder(folderName, folderName, "{" + Guid.NewGuid().ToString().ToUpperInvariant() + "}");
}
diff --git a/src/Main/Base/Project/Src/Services/File/RecentOpen.cs b/src/Main/Base/Project/Src/Services/File/RecentOpen.cs
index b53e87d1b8..0cf65f4409 100644
--- a/src/Main/Base/Project/Src/Services/File/RecentOpen.cs
+++ b/src/Main/Base/Project/Src/Services/File/RecentOpen.cs
@@ -91,7 +91,7 @@ namespace ICSharpCode.Core
public void AddLastFile(string name)
{
for (int i = 0; i < lastfile.Count; ++i) {
- if (lastfile[i].ToString().ToLower() == name.ToLower()) {
+ if (lastfile[i].ToString().Equals(name, StringComparison.OrdinalIgnoreCase)) {
lastfile.RemoveAt(i);
}
}
@@ -126,7 +126,7 @@ namespace ICSharpCode.Core
public void AddLastProject(string name)
{
for (int i = 0; i < lastproject.Count; ++i) {
- if (lastproject[i].ToString().ToLower() == name.ToLower()) {
+ if (lastproject[i].ToString().Equals(name, StringComparison.OrdinalIgnoreCase)) {
lastproject.RemoveAt(i);
}
}
diff --git a/src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingService.cs b/src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingService.cs
index bdf4fac1d7..da3d4ea65b 100644
--- a/src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingService.cs
+++ b/src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingService.cs
@@ -66,9 +66,9 @@ namespace ICSharpCode.Core
public static LanguageBindingDescriptor GetCodonPerProjectFile(string fileName)
{
- string ext = Path.GetExtension(fileName).ToUpper();
+ string ext = Path.GetExtension(fileName).ToUpperInvariant();
foreach (LanguageBindingDescriptor binding in bindings) {
- if (binding.ProjectFileExtension.ToUpper() == ext) {
+ if (binding.ProjectFileExtension.ToUpperInvariant() == ext) {
return binding;
}
}
diff --git a/src/Main/Base/Project/Src/Services/ParserService/ParserService.cs b/src/Main/Base/Project/Src/Services/ParserService/ParserService.cs
index 8b1834e497..d6d1ff3f57 100644
--- a/src/Main/Base/Project/Src/Services/ParserService/ParserService.cs
+++ b/src/Main/Base/Project/Src/Services/ParserService/ParserService.cs
@@ -400,7 +400,9 @@ namespace ICSharpCode.Core
foreach (string defaultReference in defaultReferences) {
ReferenceProjectItem item = new ReferenceProjectItem(null, defaultReference);
IProjectContent pc = ProjectContentRegistry.GetProjectContentForReference(item);
- defaultProjectContent.ReferencedContents.Add(pc);
+ if (pc != null) {
+ defaultProjectContent.ReferencedContents.Add(pc);
+ }
}
WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged += delegate {
if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow != null) {
diff --git a/src/Main/Base/Project/Src/TextEditor/Commands/ToolCommands.cs b/src/Main/Base/Project/Src/TextEditor/Commands/ToolCommands.cs
index 2c65b6dfc8..dbe7b87f28 100644
--- a/src/Main/Base/Project/Src/TextEditor/Commands/ToolCommands.cs
+++ b/src/Main/Base/Project/Src/TextEditor/Commands/ToolCommands.cs
@@ -41,7 +41,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
using (ColorDialog cd = new ColorDialog()) {
if (cd.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm) == DialogResult.OK) {
- string ext = Path.GetExtension(textarea.FileName).ToLower();
+ string ext = Path.GetExtension(textarea.FileName).ToLowerInvariant();
string colorstr;
if (ext == ".cs" || ext == ".vb" || ext == ".boo") {
if (cd.Color.IsKnownColor) {
@@ -228,7 +228,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
return;
}
- string newGuid = Guid.NewGuid().ToString().ToUpper();
+ string newGuid = Guid.NewGuid().ToString().ToUpperInvariant();
textEditor.ActiveTextAreaControl.TextArea.InsertString(newGuid);
}
diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs
index 29c671577d..5e08a80a73 100644
--- a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs
+++ b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs
@@ -231,7 +231,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
xml.Read();
do {
if (xml.NodeType == XmlNodeType.Element) {
- string elname = xml.Name.ToLower();
+ string elname = xml.Name.ToLowerInvariant();
switch (elname) {
case "filterpriority":
xml.Skip();
diff --git a/src/Main/Core/Project/Src/Services/FileUtility/FileUtility.cs b/src/Main/Core/Project/Src/Services/FileUtility/FileUtility.cs
index 056940c6c4..edf69396aa 100644
--- a/src/Main/Core/Project/Src/Services/FileUtility/FileUtility.cs
+++ b/src/Main/Core/Project/Src/Services/FileUtility/FileUtility.cs
@@ -117,7 +117,7 @@ namespace ICSharpCode.Core
string[] aPath = absPath.Split(separators);
int indx = 0;
for(; indx < Math.Min(bPath.Length, aPath.Length); ++indx){
- if(!bPath[indx].ToUpper().Equals(aPath[indx].ToUpper()))
+ if(!bPath[indx].Equals(aPath[indx], StringComparison.OrdinalIgnoreCase))
break;
}
diff --git a/src/Main/StartUp/Project/SharpDevelopMain.cs b/src/Main/StartUp/Project/SharpDevelopMain.cs
index 7bb2e66bc7..592fb4af19 100644
--- a/src/Main/StartUp/Project/SharpDevelopMain.cs
+++ b/src/Main/StartUp/Project/SharpDevelopMain.cs
@@ -125,6 +125,7 @@ namespace ICSharpCode.SharpDevelop
commandLineArgs = args;
bool noLogo = false;
+ Application.SetCompatibleTextRenderingDefault(false);
SplashScreenForm.SetCommandLineArgs(args);
foreach (string parameter in SplashScreenForm.GetParameterList()) {