Browse Source

Added project converter (C# <-> VB -> Boo). Project settings are currently not converted.

Replaced most ToLower() and ToUpper() calls with ToLowerInvariant() and ToUpperInvariant(), or with string.Equals(, StringComparison.OrdinalIgnoreCase). This fixes file name comparisons in cultures with different ToLower/ToUpper rules.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@988 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 21 years ago
parent
commit
cf8f7e43f2
  1. 5
      AddIns/ICSharpCode.SharpDevelop.addin
  2. 1
      data/templates/project/CSharp/FormsProject.xpt
  3. 13
      src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.addin
  4. 1
      src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.csproj
  5. 40
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/ConvertBuffer.cs
  6. 102
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/ConvertProject.cs
  7. 2
      src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorGlobal.cs
  8. 3
      src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/Parser.cs
  9. 8
      src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin
  10. 1
      src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj
  11. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpLanguageBinding.cs
  12. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/Parser.cs
  13. 49
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/VBToCSharpConverter.cs
  14. 2
      src/AddIns/BackendBindings/ILAsmBinding/Project/Src/ILAsmLanguageBinding.cs
  15. 2
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs
  16. 8
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/Parser/Parser.cs
  17. 49
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/CSharpToVBConverter.cs
  18. 4
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/VBNetProject.cs
  19. 2
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetLanguageBinding.cs
  20. 8
      src/AddIns/BackendBindings/VBNetBinding/Project/VBNetBinding.addin
  21. 1
      src/AddIns/BackendBindings/VBNetBinding/Project/VBNetBinding.csproj
  22. 2
      src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/AddNewFileCommand.cs
  23. 20
      src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs
  24. 2
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaAssociation.cs
  25. 6
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs
  26. 4
      src/AddIns/Misc/AddinScout/Project/Src/Gui/AddInDetailsPanel.cs
  27. 4
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/RemotingConfigurationHelpper.cs
  28. 4
      src/AddIns/Misc/HighlightingEditor/Project/Src/EditorHighlightColor.cs
  29. 2
      src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetNode.cs
  30. 2
      src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpanNode.cs
  31. 2
      src/AddIns/Misc/HtmlHelp2/Project/Configuration/AssemblyInfo.cs
  32. 8
      src/AddIns/Misc/PInvokeAddIn/Project/Src/InsertPInvokeSignaturesForm.cs
  33. 4
      src/AddIns/Misc/StartPage/Project/Src/ICSharpCodePage.cs
  34. 2
      src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/FileSyntaxModeProvider.cs
  35. 2
      src/Libraries/NRefactory/Project/Src/Lexer/Special/PreProcessingDirective.cs
  36. 4
      src/Libraries/NRefactory/Project/Src/Output/IOutputASTVisitor.cs
  37. 1
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  38. 2
      src/Main/Base/Project/Src/Commands/CustomStringTagProvider.cs
  39. 2
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryASTConvertVisitor.cs
  40. 2
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/WebReference.cs
  41. 2
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ReferenceFolderNode.cs
  42. 30
      src/Main/Base/Project/Src/Gui/Pads/FileScout.cs
  43. 2
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs
  44. 2
      src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs
  45. 2
      src/Main/Base/Project/Src/Internal/Templates/Project/ProjectTemplate.cs
  46. 2
      src/Main/Base/Project/Src/Project/ConfigurationGuiHelper.cs
  47. 2
      src/Main/Base/Project/Src/Project/Converter/CombineToSolution.cs
  48. 152
      src/Main/Base/Project/Src/Project/Converter/LanguageConverter.cs
  49. 2
      src/Main/Base/Project/Src/Project/MSBuildProject.cs
  50. 2
      src/Main/Base/Project/Src/Project/Solution/Solution.cs
  51. 4
      src/Main/Base/Project/Src/Services/File/RecentOpen.cs
  52. 4
      src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingService.cs
  53. 4
      src/Main/Base/Project/Src/Services/ParserService/ParserService.cs
  54. 4
      src/Main/Base/Project/Src/TextEditor/Commands/ToolCommands.cs
  55. 2
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs
  56. 2
      src/Main/Core/Project/Src/Services/FileUtility/FileUtility.cs
  57. 1
      src/Main/StartUp/Project/SharpDevelopMain.cs

5
AddIns/ICSharpCode.SharpDevelop.addin

@ -329,6 +329,11 @@ @@ -329,6 +329,11 @@
<MenuItem id = "ExportToHtml"
label = "${res:ProjectComponent.ContextMenu.HtmlExport}"
class = "ICSharpCode.SharpDevelop.Project.Commands.ExportProjectToHtml"/>
<MenuItem id = "Convert"
label = "${res:ICSharpCode.SharpDevelop.Commands.Convert}"
type = "Menu">
<!-- elements are added by backend bindings -->
</MenuItem>
<MenuItem id = "GenerateDocumentation"
label = "${res:ProjectComponent.ContextMenu.GenerateDocumentation}"
class = "ICSharpCode.SharpDevelop.Project.Commands.GenerateProjectDocumentation"/>

1
data/templates/project/CSharp/FormsProject.xpt

@ -64,6 +64,7 @@ namespace ${StandardNamespace} @@ -64,6 +64,7 @@ namespace ${StandardNamespace}
public static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}

13
src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.addin

@ -22,6 +22,19 @@ @@ -22,6 +22,19 @@
extensions = "*.boo"/>
</Path>
<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ProjectActions/Convert">
<Condition name = "ProjectActive" activeproject="VBNet">
<MenuItem id = "VBToBooConverter"
label = "From VB.NET to Boo"
class = "Grunwald.BooBinding.ProjectToBooConverter"/>
</Condition>
<Condition name = "ProjectActive" activeproject="C#">
<MenuItem id = "CSharpToBooConverter"
label = "From C# to Boo"
class = "Grunwald.BooBinding.ProjectToBooConverter"/>
</Condition>
</Path>
<Path name = "/Workspace/Icons">
<Icon id = "BooPrj"
language = "Boo"

1
src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.csproj

@ -80,6 +80,7 @@ @@ -80,6 +80,7 @@
<Compile Include="Src\BooCodeGenerator.cs" />
<Compile Include="Src\CodeCompletion\ElementReturnType.cs" />
<Compile Include="Src\FormattingStrategy.cs" />
<Compile Include="Src\ConvertProject.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="BooBinding.addin">

40
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/ConvertBuffer.cs

@ -25,7 +25,7 @@ namespace Grunwald.BooBinding @@ -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 @@ -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<ICSharpCode.NRefactory.Parser.ISpecial> 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();
}
}
}

102
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/ConvertProject.cs

@ -0,0 +1,102 @@ @@ -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<ICSharpCode.NRefactory.Parser.ISpecial> 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();
}
}
}

2
src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorGlobal.cs

@ -178,7 +178,7 @@ namespace NRefactoryToBooConverter @@ -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));
}

3
src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/Parser.cs

@ -40,6 +40,9 @@ namespace NRefactoryToBooConverter @@ -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;

8
src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin

@ -17,6 +17,14 @@ @@ -17,6 +17,14 @@
class = "ICSharpCode.Core.CSharpAmbience"/>
</Path>
<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ProjectActions/Convert">
<Condition name = "ProjectActive" activeproject="VBNet">
<MenuItem id = "VBToCSharpConverter"
label = "${res:ICSharpCode.SharpDevelop.Commands.VBConvertProjectToCSharp}"
class = "CSharpBinding.VBToCSharpConverter"/>
</Condition>
</Path>
<Path name = "/SharpDevelop/Workbench/FileFilter">
<FileFilter id = "C#"
insertbefore="AllFiles"

1
src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj

@ -53,6 +53,7 @@ @@ -53,6 +53,7 @@
</None>
<Compile Include="Src\CSharpCompletionBinding.cs" />
<Compile Include="Src\EventHandlerCompletitionDataProvider.cs" />
<Compile Include="Src\Project\VBToCSharpConverter.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj">

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

@ -42,7 +42,7 @@ namespace CSharpBinding @@ -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)

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

@ -45,7 +45,7 @@ namespace CSharpBinding.Parser @@ -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)

49
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/VBToCSharpConverter.cs

@ -0,0 +1,49 @@ @@ -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<ISpecial> 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);
}
}
}

2
src/AddIns/BackendBindings/ILAsmBinding/Project/Src/ILAsmLanguageBinding.cs

@ -43,7 +43,7 @@ namespace ICSharpCode.ILAsmBinding @@ -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)

2
src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs

@ -221,7 +221,7 @@ namespace VBNetBinding.FormattingStrategy @@ -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;

8
src/AddIns/BackendBindings/VBNetBinding/Project/Src/Parser/Parser.cs

@ -45,7 +45,7 @@ namespace VBNetBinding.Parser @@ -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 @@ -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 @@ -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)));

49
src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/CSharpToVBConverter.cs

@ -0,0 +1,49 @@ @@ -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<ISpecial> 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);
}
}
}

4
src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/VBNetProject.cs

@ -72,7 +72,9 @@ namespace VBNetBinding @@ -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;
}

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

@ -43,7 +43,7 @@ namespace VBNetBinding @@ -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)

8
src/AddIns/BackendBindings/VBNetBinding/Project/VBNetBinding.addin

@ -31,6 +31,14 @@ @@ -31,6 +31,14 @@
class = "VBNetBinding.Parser.TParser"/>
</Path>
<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ProjectActions/Convert">
<Condition name = "ProjectActive" activeproject="C#">
<MenuItem id = "CSharpToVBConverter"
label = "${res:ICSharpCode.SharpDevelop.Commands.CharpConvertProjectToVB}"
class = "VBNetBinding.CSharpToVBConverter"/>
</Condition>
</Path>
<Path name = "/SharpDevelop/Dialogs/OptionsDialog/TextEditorOptions">
<DialogPanel id = "VBSpecificOptions"
label = "${res:Dialog.Options.IDEOptions.TextEditor.VB.PanelName}"

1
src/AddIns/BackendBindings/VBNetBinding/Project/VBNetBinding.csproj

@ -58,6 +58,7 @@ @@ -58,6 +58,7 @@
<EmbeddedResource Include="Resources\ProjectImports.xfrm" />
<Compile Include="Src\OptionPanels\TextEditorOptions.cs" />
<EmbeddedResource Include="Resources\VBNetTextEditorOptions.xfrm" />
<Compile Include="Src\Project\CSharpToVBConverter.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj">

2
src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/AddNewFileCommand.cs

@ -67,7 +67,7 @@ namespace ResourceEditor @@ -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);

20
src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs

@ -22,8 +22,8 @@ namespace ResourceEditor @@ -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 @@ -87,7 +87,7 @@ namespace ResourceEditor
{
Save(FileName);
}
public override void Load(string filename)
{
resourceEditor.ResourceList.LoadFile(filename);
@ -144,7 +144,7 @@ namespace ResourceEditor @@ -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 @@ -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 @@ -212,7 +212,7 @@ namespace ResourceEditor
/// </summary>
/// <param name="resource">A resource to clone.</param>
/// <returns>A cloned resource if the object implements
/// the ICloneable interface, otherwise the
/// the ICloneable interface, otherwise the
/// <paramref name="resource"/> object.</returns>
object GetClonedResource(object resource)
{
@ -224,7 +224,7 @@ namespace ResourceEditor @@ -224,7 +224,7 @@ namespace ResourceEditor
} else {
clonedResource = resource;
}
return clonedResource;
}
@ -238,7 +238,7 @@ namespace ResourceEditor @@ -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 @@ -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();
}
}

2
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaAssociation.cs

@ -84,7 +84,7 @@ namespace ICSharpCode.XmlEditor @@ -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;

6
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs

@ -675,7 +675,7 @@ namespace ICSharpCode.XmlEditor @@ -675,7 +675,7 @@ namespace ICSharpCode.XmlEditor
/// </summary>
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 @@ -699,7 +699,7 @@ namespace ICSharpCode.XmlEditor
/// </summary>
void UserSchemaAdded(object source, EventArgs e)
{
SetDefaultSchema(Path.GetExtension(xmlEditor.FileName).ToLower());
SetDefaultSchema(Path.GetExtension(xmlEditor.FileName).ToLowerInvariant());
}
/// <summary>
@ -708,7 +708,7 @@ namespace ICSharpCode.XmlEditor @@ -708,7 +708,7 @@ namespace ICSharpCode.XmlEditor
/// </summary>
void UserSchemaRemoved(object source, EventArgs e)
{
SetDefaultSchema(Path.GetExtension(xmlEditor.FileName).ToLower());
SetDefaultSchema(Path.GetExtension(xmlEditor.FileName).ToLowerInvariant());
}
/// <summary>

4
src/AddIns/Misc/AddinScout/Project/Src/Gui/AddInDetailsPanel.cs

@ -51,7 +51,7 @@ namespace AddInScout @@ -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 @@ -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);
}

4
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/RemotingConfigurationHelpper.cs

@ -30,7 +30,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -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 @@ -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;
}

4
src/AddIns/Misc/HighlightingEditor/Project/Src/EditorHighlightColor.cs

@ -212,8 +212,8 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -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) {

2
src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetNode.cs

@ -105,7 +105,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -105,7 +105,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
{
if (reference != "") return "\t\t<RuleSet name=\"" + ReplaceXmlChars(name) + "\" reference=\"" + ReplaceXmlChars(reference) + "\"></RuleSet>\n\n";
string ret = "\t\t<RuleSet ignorecase=\"" + ignoreCase.ToString().ToLower() + "\" ";
string ret = "\t\t<RuleSet ignorecase=\"" + ignoreCase.ToString().ToLowerInvariant() + "\" ";
if (noEscapeSequences) ret += "noescapesequences=\"true\" ";
if (!isRoot) ret += "name=\"" + ReplaceXmlChars(name) + "\" ";
ret += ">\n";

2
src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpanNode.cs

@ -65,7 +65,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -65,7 +65,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
ret = "\t\t\t<Span name=\"" + ReplaceXmlChars(name) + "\" ";
if (noEscapeSequences) ret += "noescapesequences=\"true\" ";
if (rule != "") ret += "rule=\"" + ReplaceXmlChars(rule) + "\" ";
ret += "stopateol=\"" + stopEOL.ToString().ToLower() + "\" ";
ret += "stopateol=\"" + stopEOL.ToString().ToLowerInvariant() + "\" ";
ret += color.ToXml();
ret += ">\n";

2
src/AddIns/Misc/HtmlHelp2/Project/Configuration/AssemblyInfo.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// <file>
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mathias Simmack" email="mathias@simmack.de"/>

8
src/AddIns/Misc/PInvokeAddIn/Project/Src/InsertPInvokeSignaturesForm.cs

@ -182,7 +182,7 @@ namespace ICSharpCode.PInvokeAddIn @@ -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 @@ -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 @@ -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";
}
}

4
src/AddIns/Misc/StartPage/Project/Src/ICSharpCodePage.cs

@ -635,7 +635,7 @@ namespace ICSharpCode.StartPage @@ -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 @@ -655,7 +655,7 @@ namespace ICSharpCode.StartPage
RenderPageTopSection(builder);
RenderFirstPageBodySection(builder);
switch (section.ToLower()) {
switch (section.ToLowerInvariant()) {
case "start":
RenderSectionStartBody(builder);
break;

2
src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/FileSyntaxModeProvider.cs

@ -58,7 +58,7 @@ namespace ICSharpCode.TextEditor.Document @@ -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) {

2
src/Libraries/NRefactory/Project/Src/Lexer/Special/PreProcessingDirective.cs

@ -14,7 +14,7 @@ namespace ICSharpCode.NRefactory.Parser @@ -14,7 +14,7 @@ namespace ICSharpCode.NRefactory.Parser
{
public class PreProcessingDirective : AbstractSpecial
{
public static void VBToCSharp(List<ISpecial> list)
public static void VBToCSharp(IList<ISpecial> list)
{
for (int i = 0; i < list.Count; ++i) {
if (list[i] is PreProcessingDirective)

4
src/Libraries/NRefactory/Project/Src/Output/IOutputASTVisitor.cs

@ -21,6 +21,10 @@ namespace ICSharpCode.NRefactory.PrettyPrinter @@ -21,6 +21,10 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
/// </summary>
public interface IOutputASTVisitor : IAstVisitor
{
NodeTracker NodeTracker {
get;
}
string Text {
get;
}

1
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -742,6 +742,7 @@ @@ -742,6 +742,7 @@
<Compile Include="Src\Gui\Dialogs\ReferenceDialog\WebReferenceChanges.cs" />
<Compile Include="Src\TextEditor\Commands\CodeGenerators\CodeGenerationForm.cs" />
<Compile Include="Src\Dom\NRefactoryResolver\NRefactoryInformationProvider.cs" />
<Compile Include="Src\Project\Converter\LanguageConverter.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj">

2
src/Main/Base/Project/Src/Commands/CustomStringTagProvider.cs

@ -75,7 +75,7 @@ namespace ICSharpCode.SharpDevelop.Commands @@ -75,7 +75,7 @@ namespace ICSharpCode.SharpDevelop.Commands
return ProjectService.CurrentProject == null ? "<empty>" : ProjectService.CurrentProject.Name;
}
switch (tag.ToUpper()) {
switch (tag.ToUpperInvariant()) {
case "NETSDKDIR":
return FileUtility.NetSdkInstallRoot;
case "ITEMPATH":

2
src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryASTConvertVisitor.cs

@ -191,7 +191,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -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;

2
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/WebReference.cs

@ -262,7 +262,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -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;

2
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ReferenceFolderNode.cs

@ -104,7 +104,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -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;

30
src/Main/Base/Project/Src/Gui/Pads/FileScout.cs

@ -188,8 +188,8 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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);

2
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs

@ -29,7 +29,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -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;
}
}

2
src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs

@ -278,7 +278,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -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;
}

2
src/Main/Base/Project/Src/Internal/Templates/Project/ProjectTemplate.cs

@ -172,7 +172,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -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;
}

2
src/Main/Base/Project/Src/Project/ConfigurationGuiHelper.cs

@ -188,7 +188,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -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());
}

2
src/Main/Base/Project/Src/Project/Converter/CombineToSolution.cs

@ -33,7 +33,7 @@ namespace ICSharpCode.SharpDevelop.Project.Converter @@ -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);

152
src/Main/Base/Project/Src/Project/Converter/LanguageConverter.cs

@ -0,0 +1,152 @@ @@ -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
{
/// <summary>
/// Converts projects from one language to another, for example C# &lt;-&gt; VB
/// </summary>
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<ISpecial> 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<ISpecial> 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);
}
}
}
}

2
src/Main/Base/Project/Src/Project/MSBuildProject.cs

@ -34,7 +34,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -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;

2
src/Main/Base/Project/Src/Project/Solution/Solution.cs

@ -218,7 +218,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -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() + "}");
}

4
src/Main/Base/Project/Src/Services/File/RecentOpen.cs

@ -91,7 +91,7 @@ namespace ICSharpCode.Core @@ -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 @@ -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);
}
}

4
src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingService.cs

@ -66,9 +66,9 @@ namespace ICSharpCode.Core @@ -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;
}
}

4
src/Main/Base/Project/Src/Services/ParserService/ParserService.cs

@ -400,7 +400,9 @@ namespace ICSharpCode.Core @@ -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) {

4
src/Main/Base/Project/Src/TextEditor/Commands/ToolCommands.cs

@ -41,7 +41,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands @@ -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 @@ -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);
}

2
src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs

@ -231,7 +231,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -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();

2
src/Main/Core/Project/Src/Services/FileUtility/FileUtility.cs

@ -117,7 +117,7 @@ namespace ICSharpCode.Core @@ -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;
}

1
src/Main/StartUp/Project/SharpDevelopMain.cs

@ -125,6 +125,7 @@ namespace ICSharpCode.SharpDevelop @@ -125,6 +125,7 @@ namespace ICSharpCode.SharpDevelop
commandLineArgs = args;
bool noLogo = false;
Application.SetCompatibleTextRenderingDefault(false);
SplashScreenForm.SetCommandLineArgs(args);
foreach (string parameter in SplashScreenForm.GetParameterList()) {

Loading…
Cancel
Save