Browse Source

Merge branch 'master' of https://github.com/icsharpcode/SharpDevelop into newNRILSpyDebugger

Conflicts:
	src/AddIns/DisplayBindings/ILSpyAddIn/ILSpySymbolSource.cs
	src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Ast/Expressions/PrimitiveExpression.cs
	src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/ICSharpCode.NRefactory.CSharp.csproj
	src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/UseStringFormatAction.cs
	src/Libraries/NRefactory/ICSharpCode.NRefactory.Tests/CSharp/Parser/ParseSelfTests.cs
	src/Libraries/NRefactory/ICSharpCode.NRefactory.Tests/ICSharpCode.NRefactory.Tests.csproj
	src/Libraries/NRefactory/NRefactory.sln
	src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
	src/Main/Base/Project/Parser/IAssemblyParserService.cs
	src/Main/Base/Project/Parser/ProjectContentContainer.cs
	src/Main/SharpDevelop/Parser/AssemblyParserService.cs
newNRILSpyDebugger
Siegfried Pammer 12 years ago
parent
commit
0d9afe3387
  1. 54
      SharpDevelop.Tests.sln
  2. 54
      SharpDevelop.sln
  3. 19
      data/resources/StringResources.de.resx
  4. 206
      data/resources/StringResources.es-mx.resx
  5. 161
      data/resources/StringResources.es.resx
  6. 58
      data/resources/StringResources.fr.resx
  7. 132
      data/resources/StringResources.it.resx
  8. 31
      data/resources/StringResources.nl.resx
  9. 28
      data/resources/StringResources.resx
  10. 5
      data/resources/image/BitmapResources/BitmapList.txt
  11. 6
      data/resources/image/BitmapResources/BitmapResources.res
  12. BIN
      data/resources/image/BitmapResources/PadIcons/WatchPad.png
  13. BIN
      data/resources/image/BitmapResources/WatchIcons/WatchAdd.png
  14. BIN
      data/resources/image/BitmapResources/WatchIcons/WatchDelete.png
  15. BIN
      data/resources/image/BitmapResources/WatchIcons/Watches.pdn
  16. BIN
      data/resources/image/BitmapResources/WatchIcons/WatchesDelete.png
  17. 38
      doc/Dependencies.html
  18. 23
      doc/technotes/Versioning.html
  19. 5
      samples/PortSD4AddInToSD5/PortSD4AddInToSD5.csproj
  20. 11
      samples/PortSD4AddInToSD5/WorkbenchSingletonIssueProvider.cs
  21. 2
      src/AddIns/Analysis/CodeCoverage/Test/Utils/MockFileSystem.cs
  22. 19
      src/AddIns/Analysis/CodeQuality/CodeQuality.csproj
  23. 4
      src/AddIns/Analysis/UnitTesting/Test/UnitTesting.Tests.csproj
  24. 258
      src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin
  25. 5
      src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj
  26. 201
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/CodeManipulation.cs
  27. 14
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/CSharpCompletionDataFactory.cs
  28. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/Parser.cs
  29. 8
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/CSharpCodeActionProviderDoozer.cs
  30. 9
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/CSharpSyntaxIssue.cs
  31. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/EditorScript.cs
  32. 24
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/IssueManager.cs
  33. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SDRedundantUsingIssue.cs
  34. 6
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SDRefactoringContext.cs
  35. 8
      src/AddIns/BackendBindings/CSharpBinding/Tests/CSharpBinding.Tests.csproj
  36. 27
      src/AddIns/BackendBindings/CSharpBinding/Tests/RegistrationTests.cs
  37. 1
      src/AddIns/BackendBindings/FSharpBinding/FsOptions.cs
  38. 27
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonComponentWalker.cs
  39. 62
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/AssignmentAfterFormClassTests.cs
  40. 1
      src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj
  41. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/Chiron.exe
  42. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/DLLs/IronPython.Wpf.dll
  43. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/IronPython.Modules.dll
  44. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/IronPython.dll
  45. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Dynamic.dll
  46. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Scripting.Metadata.dll
  47. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Scripting.dll
  48. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/ipy.exe
  49. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/ipyw.exe
  50. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/Chiron.exe
  51. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/IronRuby.Libraries.Yaml.dll
  52. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/IronRuby.Libraries.dll
  53. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/IronRuby.dll
  54. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Dynamic.dll
  55. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.Metadata.dll
  56. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.dll
  57. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/ir.exe
  58. 1
      src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/ApplicationSettingsPanel.cs
  59. 1
      src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/CompilerParametersPanel.cs
  60. 1
      src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/PreprocessorVariablesPanel.cs
  61. 1
      src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/SemicolonSeparatedNameValueListBinding.cs
  62. 4
      src/AddIns/BackendBindings/XamlBinding/XamlBinding.Tests/XamlBinding.Tests.csproj
  63. 28
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCompletionItem.cs
  64. 56
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCompletionItemList.cs
  65. 56
      src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin
  66. 5
      src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.csproj
  67. 6
      src/AddIns/Debugger/Debugger.AddIn/NRefactory/ExpressionEvaluationVisitor.cs
  68. 35
      src/AddIns/Debugger/Debugger.AddIn/Pads/AutoCompleteTextBox.cs
  69. 6
      src/AddIns/Debugger/Debugger.AddIn/Pads/CallStackPad.cs
  70. 55
      src/AddIns/Debugger/Debugger.AddIn/Pads/CommonResources.xaml
  71. 139
      src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPad.cs
  72. 22
      src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPadCommands.cs
  73. 7
      src/AddIns/Debugger/Debugger.AddIn/Service/AttachToProcessForm.cs
  74. 56
      src/AddIns/Debugger/Debugger.AddIn/Tooltips/DebuggerTooltipControl.xaml
  75. 32
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/Commands.cs
  76. 30
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/SharpTreeNodeAdapter.cs
  77. 17
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/TreeNode.cs
  78. 56
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/Utils.cs
  79. 70
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/ValueNode.cs
  80. 3
      src/AddIns/Debugger/Debugger.Core/Breakpoint.cs
  81. 5
      src/AddIns/Debugger/Debugger.Core/Debugger.Core.csproj
  82. 4
      src/AddIns/Debugger/Debugger.Core/Interop/CorSym.cs
  83. 18
      src/AddIns/Debugger/Debugger.Core/Interop/CorSymExtensionMethods.generated.cs
  84. 37
      src/AddIns/Debugger/Debugger.Core/PdbSymbolSource.cs
  85. 3
      src/AddIns/Debugger/Debugger.Core/Process.cs
  86. 27
      src/AddIns/Debugger/Debugger.Core/StackFrame.cs
  87. 11
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.addin
  88. 1
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
  89. 8
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs
  90. 3
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsRenderer.cs
  91. 17
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/TextMarkerService.cs
  92. 1
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/AddComponentsDialog.cs
  93. 1
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/ConfigureSideBarDialog.cs
  94. 1
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/RenameCategoryDialog.cs
  95. 12
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/ToolboxProvider.cs
  96. 1
      src/AddIns/DisplayBindings/ILSpyAddIn/ILSpyAddIn.addin
  97. 5
      src/AddIns/DisplayBindings/ILSpyAddIn/ILSpyAddIn.csproj
  98. 10
      src/AddIns/DisplayBindings/ILSpyAddIn/ILSpySymbolSource.cs
  99. 5
      src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/AddNewFileCommand.cs
  100. 4
      src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/AddStringEntryCommand.cs
  101. Some files were not shown because too many files have changed in this diff Show More

54
SharpDevelop.Tests.sln

@ -43,6 +43,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.Xml" @@ -43,6 +43,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.Xml"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.Tests", "src\Libraries\NRefactory\ICSharpCode.NRefactory.Tests\ICSharpCode.NRefactory.Tests.csproj", "{63D3B27A-D966-4902-90B3-30290E1692F1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.Cecil", "src\Libraries\NRefactory\ICSharpCode.NRefactory.Cecil\ICSharpCode.NRefactory.Cecil.csproj", "{B2BBC7BC-837C-40ED-A6DB-D5AE8626212F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.CSharp.Refactoring", "src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp.Refactoring\ICSharpCode.NRefactory.CSharp.Refactoring.csproj", "{2A705FC6-1A9E-4941-9E47-254D79F2D9D5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonDock", "src\Libraries\AvalonDock\AvalonDock\AvalonDock.csproj", "{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit", "src\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj", "{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}"
@ -305,6 +309,10 @@ Global @@ -305,6 +309,10 @@ Global
{63D3B27A-D966-4902-90B3-30290E1692F1}.Debug|Any CPU.Build.0 = net_4_5_Debug|Any CPU
{63D3B27A-D966-4902-90B3-30290E1692F1}.Release|Any CPU.ActiveCfg = net_4_5_Release|Any CPU
{63D3B27A-D966-4902-90B3-30290E1692F1}.Release|Any CPU.Build.0 = net_4_5_Release|Any CPU
{B2BBC7BC-837C-40ED-A6DB-D5AE8626212F}.Debug|Any CPU.ActiveCfg = net_4_5_Debug|Any CPU
{B2BBC7BC-837C-40ED-A6DB-D5AE8626212F}.Debug|Any CPU.Build.0 = net_4_5_Debug|Any CPU
{B2BBC7BC-837C-40ED-A6DB-D5AE8626212F}.Release|Any CPU.ActiveCfg = net_4_5_Release|Any CPU
{B2BBC7BC-837C-40ED-A6DB-D5AE8626212F}.Release|Any CPU.Build.0 = net_4_5_Release|Any CPU
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -429,10 +437,10 @@ Global @@ -429,10 +437,10 @@ Global
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Release|Any CPU.Build.0 = Release|Any CPU
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|Any CPU.Build.0 = Release|Any CPU
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|Any CPU.ActiveCfg = Debug|x86
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|Any CPU.Build.0 = Debug|x86
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|Any CPU.ActiveCfg = Release|x86
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|Any CPU.Build.0 = Release|x86
{A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -445,10 +453,10 @@ Global @@ -445,10 +453,10 @@ Global
{56E98A01-8398-4A08-9578-C7337711A52B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{56E98A01-8398-4A08-9578-C7337711A52B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{56E98A01-8398-4A08-9578-C7337711A52B}.Release|Any CPU.Build.0 = Release|Any CPU
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Release|Any CPU.Build.0 = Release|Any CPU
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Debug|Any CPU.ActiveCfg = Debug|x86
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Debug|Any CPU.Build.0 = Debug|x86
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Release|Any CPU.ActiveCfg = Release|x86
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Release|Any CPU.Build.0 = Release|x86
{11115C83-3DB1-431F-8B98-59040359238D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{11115C83-3DB1-431F-8B98-59040359238D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{11115C83-3DB1-431F-8B98-59040359238D}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -461,18 +469,18 @@ Global @@ -461,18 +469,18 @@ Global
{0D0CB6E5-1EAD-471F-96B9-BFF84057BCF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0D0CB6E5-1EAD-471F-96B9-BFF84057BCF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0D0CB6E5-1EAD-471F-96B9-BFF84057BCF5}.Release|Any CPU.Build.0 = Release|Any CPU
{62033CC6-01CD-47A2-ADFD-188E9C524C0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{62033CC6-01CD-47A2-ADFD-188E9C524C0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{62033CC6-01CD-47A2-ADFD-188E9C524C0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{62033CC6-01CD-47A2-ADFD-188E9C524C0A}.Release|Any CPU.Build.0 = Release|Any CPU
{62033CC6-01CD-47A2-ADFD-188E9C524C0A}.Debug|Any CPU.ActiveCfg = Debug|x86
{62033CC6-01CD-47A2-ADFD-188E9C524C0A}.Debug|Any CPU.Build.0 = Debug|x86
{62033CC6-01CD-47A2-ADFD-188E9C524C0A}.Release|Any CPU.ActiveCfg = Release|x86
{62033CC6-01CD-47A2-ADFD-188E9C524C0A}.Release|Any CPU.Build.0 = Release|x86
{2EE63FDD-7F49-40BD-8A2E-240848B9FA83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2EE63FDD-7F49-40BD-8A2E-240848B9FA83}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2EE63FDD-7F49-40BD-8A2E-240848B9FA83}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2EE63FDD-7F49-40BD-8A2E-240848B9FA83}.Release|Any CPU.Build.0 = Release|Any CPU
{0884566C-E013-4185-B223-47547AA75167}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0884566C-E013-4185-B223-47547AA75167}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0884566C-E013-4185-B223-47547AA75167}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0884566C-E013-4185-B223-47547AA75167}.Release|Any CPU.Build.0 = Release|Any CPU
{0884566C-E013-4185-B223-47547AA75167}.Debug|Any CPU.ActiveCfg = Debug|x86
{0884566C-E013-4185-B223-47547AA75167}.Debug|Any CPU.Build.0 = Debug|x86
{0884566C-E013-4185-B223-47547AA75167}.Release|Any CPU.ActiveCfg = Release|x86
{0884566C-E013-4185-B223-47547AA75167}.Release|Any CPU.Build.0 = Release|x86
{1491E558-9C19-4EAC-9406-868AB8181F38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1491E558-9C19-4EAC-9406-868AB8181F38}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1491E558-9C19-4EAC-9406-868AB8181F38}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -601,10 +609,10 @@ Global @@ -601,10 +609,10 @@ Global
{D1DA3B8F-7313-4BDA-8880-461C5F007751}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D1DA3B8F-7313-4BDA-8880-461C5F007751}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D1DA3B8F-7313-4BDA-8880-461C5F007751}.Release|Any CPU.Build.0 = Release|Any CPU
{0A029008-4973-4256-9150-9AF12845C547}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0A029008-4973-4256-9150-9AF12845C547}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0A029008-4973-4256-9150-9AF12845C547}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0A029008-4973-4256-9150-9AF12845C547}.Release|Any CPU.Build.0 = Release|Any CPU
{0A029008-4973-4256-9150-9AF12845C547}.Debug|Any CPU.ActiveCfg = Debug|x86
{0A029008-4973-4256-9150-9AF12845C547}.Debug|Any CPU.Build.0 = Debug|x86
{0A029008-4973-4256-9150-9AF12845C547}.Release|Any CPU.ActiveCfg = Release|x86
{0A029008-4973-4256-9150-9AF12845C547}.Release|Any CPU.Build.0 = Release|x86
{DAEA4E6C-02CD-47DA-806B-1FCE1E9675EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DAEA4E6C-02CD-47DA-806B-1FCE1E9675EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DAEA4E6C-02CD-47DA-806B-1FCE1E9675EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -633,6 +641,10 @@ Global @@ -633,6 +641,10 @@ Global
{3DF4060F-5EE0-41CF-8096-F27355FD5511}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|Any CPU.Build.0 = Release|Any CPU
{2A705FC6-1A9E-4941-9E47-254D79F2D9D5}.Debug|Any CPU.ActiveCfg = net_4_5_Debug|Any CPU
{2A705FC6-1A9E-4941-9E47-254D79F2D9D5}.Debug|Any CPU.Build.0 = net_4_5_Debug|Any CPU
{2A705FC6-1A9E-4941-9E47-254D79F2D9D5}.Release|Any CPU.ActiveCfg = net_4_5_Release|Any CPU
{2A705FC6-1A9E-4941-9E47-254D79F2D9D5}.Release|Any CPU.Build.0 = net_4_5_Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -655,6 +667,8 @@ Global @@ -655,6 +667,8 @@ Global
{53DCA265-3C3C-42F9-B647-F72BA678122B} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{63D3B27A-D966-4902-90B3-30290E1692F1} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{B2BBC7BC-837C-40ED-A6DB-D5AE8626212F} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{2A705FC6-1A9E-4941-9E47-254D79F2D9D5} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}

54
SharpDevelop.sln

@ -35,6 +35,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.CSha @@ -35,6 +35,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.CSha
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.Xml", "src\Libraries\NRefactory\ICSharpCode.NRefactory.Xml\ICSharpCode.NRefactory.Xml.csproj", "{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.Cecil", "src\Libraries\NRefactory\ICSharpCode.NRefactory.Cecil\ICSharpCode.NRefactory.Cecil.csproj", "{2B8F4F83-C2B3-4E84-A27B-8DEE1BE0E006}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.CSharp.Refactoring", "src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp.Refactoring\ICSharpCode.NRefactory.CSharp.Refactoring.csproj", "{2A705FC6-1A9E-4941-9E47-254D79F2D9D5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonDock", "src\Libraries\AvalonDock\AvalonDock\AvalonDock.csproj", "{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit", "src\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj", "{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}"
@ -243,6 +247,14 @@ Global @@ -243,6 +247,14 @@ Global
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|Any CPU.Build.0 = net_4_5_Debug|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|Any CPU.ActiveCfg = net_4_5_Release|Any CPU
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|Any CPU.Build.0 = net_4_5_Release|Any CPU
{2B8F4F83-C2B3-4E84-A27B-8DEE1BE0E006}.Debug|Any CPU.ActiveCfg = net_4_5_Debug|Any CPU
{2B8F4F83-C2B3-4E84-A27B-8DEE1BE0E006}.Debug|Any CPU.Build.0 = net_4_5_Debug|Any CPU
{2B8F4F83-C2B3-4E84-A27B-8DEE1BE0E006}.Release|Any CPU.ActiveCfg = net_4_5_Release|Any CPU
{2B8F4F83-C2B3-4E84-A27B-8DEE1BE0E006}.Release|Any CPU.Build.0 = net_4_5_Release|Any CPU
{2A705FC6-1A9E-4941-9E47-254D79F2D9D5}.Debug|Any CPU.ActiveCfg = net_4_5_Debug|Any CPU
{2A705FC6-1A9E-4941-9E47-254D79F2D9D5}.Debug|Any CPU.Build.0 = net_4_5_Debug|Any CPU
{2A705FC6-1A9E-4941-9E47-254D79F2D9D5}.Release|Any CPU.ActiveCfg = net_4_5_Release|Any CPU
{2A705FC6-1A9E-4941-9E47-254D79F2D9D5}.Release|Any CPU.Build.0 = net_4_5_Release|Any CPU
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -343,10 +355,10 @@ Global @@ -343,10 +355,10 @@ Global
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Release|Any CPU.Build.0 = Release|Any CPU
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|Any CPU.Build.0 = Release|Any CPU
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|Any CPU.ActiveCfg = Debug|x86
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|Any CPU.Build.0 = Debug|x86
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|Any CPU.ActiveCfg = Release|x86
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|Any CPU.Build.0 = Release|x86
{A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -355,22 +367,22 @@ Global @@ -355,22 +367,22 @@ Global
{752BD058-5517-48A1-BB27-5ED186FA052B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{752BD058-5517-48A1-BB27-5ED186FA052B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{752BD058-5517-48A1-BB27-5ED186FA052B}.Release|Any CPU.Build.0 = Release|Any CPU
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Release|Any CPU.Build.0 = Release|Any CPU
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Debug|Any CPU.ActiveCfg = Debug|x86
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Debug|Any CPU.Build.0 = Debug|x86
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Release|Any CPU.ActiveCfg = Release|x86
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D}.Release|Any CPU.Build.0 = Release|x86
{60480C2F-F228-4D86-B98F-AF75A7DCEC34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{60480C2F-F228-4D86-B98F-AF75A7DCEC34}.Debug|Any CPU.Build.0 = Debug|Any CPU
{60480C2F-F228-4D86-B98F-AF75A7DCEC34}.Release|Any CPU.ActiveCfg = Release|Any CPU
{60480C2F-F228-4D86-B98F-AF75A7DCEC34}.Release|Any CPU.Build.0 = Release|Any CPU
{6FB2FE2F-4E8C-4403-99AE-0474721FFD2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6FB2FE2F-4E8C-4403-99AE-0474721FFD2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6FB2FE2F-4E8C-4403-99AE-0474721FFD2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6FB2FE2F-4E8C-4403-99AE-0474721FFD2E}.Release|Any CPU.Build.0 = Release|Any CPU
{7C3579BC-2A64-4108-82B5-3D07ADA079E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7C3579BC-2A64-4108-82B5-3D07ADA079E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7C3579BC-2A64-4108-82B5-3D07ADA079E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C3579BC-2A64-4108-82B5-3D07ADA079E7}.Release|Any CPU.Build.0 = Release|Any CPU
{6FB2FE2F-4E8C-4403-99AE-0474721FFD2E}.Debug|Any CPU.ActiveCfg = Debug|x86
{6FB2FE2F-4E8C-4403-99AE-0474721FFD2E}.Debug|Any CPU.Build.0 = Debug|x86
{6FB2FE2F-4E8C-4403-99AE-0474721FFD2E}.Release|Any CPU.ActiveCfg = Release|x86
{6FB2FE2F-4E8C-4403-99AE-0474721FFD2E}.Release|Any CPU.Build.0 = Release|x86
{7C3579BC-2A64-4108-82B5-3D07ADA079E7}.Debug|Any CPU.ActiveCfg = Debug|x86
{7C3579BC-2A64-4108-82B5-3D07ADA079E7}.Debug|Any CPU.Build.0 = Debug|x86
{7C3579BC-2A64-4108-82B5-3D07ADA079E7}.Release|Any CPU.ActiveCfg = Release|x86
{7C3579BC-2A64-4108-82B5-3D07ADA079E7}.Release|Any CPU.Build.0 = Release|x86
{9F0355DD-A394-4626-A2D9-112EBD1D36A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9F0355DD-A394-4626-A2D9-112EBD1D36A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9F0355DD-A394-4626-A2D9-112EBD1D36A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -467,10 +479,10 @@ Global @@ -467,10 +479,10 @@ Global
{D1DA3B8F-7313-4BDA-8880-461C5F007751}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D1DA3B8F-7313-4BDA-8880-461C5F007751}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D1DA3B8F-7313-4BDA-8880-461C5F007751}.Release|Any CPU.Build.0 = Release|Any CPU
{D1DF9C2D-3A5E-4985-ACA4-648C604DB562}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D1DF9C2D-3A5E-4985-ACA4-648C604DB562}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D1DF9C2D-3A5E-4985-ACA4-648C604DB562}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D1DF9C2D-3A5E-4985-ACA4-648C604DB562}.Release|Any CPU.Build.0 = Release|Any CPU
{D1DF9C2D-3A5E-4985-ACA4-648C604DB562}.Debug|Any CPU.ActiveCfg = Debug|x86
{D1DF9C2D-3A5E-4985-ACA4-648C604DB562}.Debug|Any CPU.Build.0 = Debug|x86
{D1DF9C2D-3A5E-4985-ACA4-648C604DB562}.Release|Any CPU.ActiveCfg = Release|x86
{D1DF9C2D-3A5E-4985-ACA4-648C604DB562}.Release|Any CPU.Build.0 = Release|x86
{D788789A-4D43-42B9-B0F7-CB2CA761372B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D788789A-4D43-42B9-B0F7-CB2CA761372B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D788789A-4D43-42B9-B0F7-CB2CA761372B}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -517,6 +529,8 @@ Global @@ -517,6 +529,8 @@ Global
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{53DCA265-3C3C-42F9-B647-F72BA678122B} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{2B8F4F83-C2B3-4E84-A27B-8DEE1BE0E006} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{2A705FC6-1A9E-4941-9E47-254D79F2D9D5} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}

19
data/resources/StringResources.de.resx

@ -415,11 +415,14 @@ Sie werden nicht mehr funktionieren, nachdem dieses AddIn entfernt wurde! Sind S @@ -415,11 +415,14 @@ Sie werden nicht mehr funktionieren, nachdem dieses AddIn entfernt wurde! Sind S
<value>Hilfebibliothek</value>
</data>
<data name="AddIns.HelpViewer.HelpModeLabel" xml:space="preserve">
<value>Hilfetyp</value>
<value>Hilfetyp wählen</value>
</data>
<data name="AddIns.HelpViewer.HLMNoActiveCatalogError" xml:space="preserve">
<value>Help Library Manager kann nicht gestartet werden, weil kein Hilfekatalog installiert oder ausgewählt wurde. Bitte überprüfen Sie die Hilfeeinstellungen (siehe Extras &gt; Optionen... &gt; Tools &gt; Microsoft Help Viewer).</value>
</data>
<data name="AddIns.HelpViewer.HLMNotAvailableDownloadWinSDK" xml:space="preserve">
<value>Der Help Library Manager wurde nicht gefunden. Um die Hilfe von SharpDevelop nutzen zu können, laden Sie bitte das Windows SDK 7.1 von Microsoft herunter und installieren Sie es.</value>
</data>
<data name="AddIns.HelpViewer.HLMNotFound" xml:space="preserve">
<value>Help Library Manager wurde nicht gefunden. Bitte stellen Sie sicher, dass es korrekt installiert wurde.</value>
</data>
@ -448,7 +451,7 @@ Sie werden nicht mehr funktionieren, nachdem dieses AddIn entfernt wurde! Sind S @@ -448,7 +451,7 @@ Sie werden nicht mehr funktionieren, nachdem dieses AddIn entfernt wurde! Sind S
<value>Hilfe anzeigen</value>
</data>
<data name="AddIns.HelpViewer.UseExternalHelp" xml:space="preserve">
<value>Externe Hilfe verwenden</value>
<value>Externen Hilfebetrachter verwenden</value>
</data>
<data name="AddIns.HelpViewer.UseOfflineHelpLabel" xml:space="preserve">
<value>Ich möchte die lokale Hilfe verwenden</value>
@ -2017,6 +2020,12 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value> @@ -2017,6 +2020,12 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value>
<data name="Dialog.Options.IDEOptions.Debugging" xml:space="preserve">
<value>Debugger</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.AskForArguments" xml:space="preserve">
<value>Abfrage für Argumente und Arbeitsverzeichnis beim Start der ausführbaren Datei anzeigen.</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.BreakAtBeginning" xml:space="preserve">
<value>Auf erster Anweisung des Programmes anhalten.</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.EnableDecompiler" xml:space="preserve">
<value>Decompiler aktivieren</value>
</data>
@ -2065,6 +2074,9 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value> @@ -2065,6 +2074,9 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value>
<data name="Dialog.Options.IDEOptions.Debugging.Symbols.ListCaption" xml:space="preserve">
<value>Symbol- und Quellcodepfade:</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.WithoutSource" xml:space="preserve">
<value>Debuggen ohne Quellcode</value>
</data>
<data name="Dialog.Options.IDEOptions.EditStandardHeaderPanel.HeaderLabel" xml:space="preserve">
<value>&amp;Header</value>
</data>
@ -5122,6 +5134,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5122,6 +5134,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.Console" xml:space="preserve">
<value>Konsole</value>
</data>
<data name="MainWindow.Windows.Debug.DebugExecutable" xml:space="preserve">
<value>Ausführbare Datei debuggen</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Break" xml:space="preserve">
<value>Unterbrechen</value>
</data>

206
data/resources/StringResources.es-mx.resx

@ -229,6 +229,152 @@ Descargue un complemento de Internet, luego haga clic en "Instalar AddIn" y sele @@ -229,6 +229,152 @@ Descargue un complemento de Internet, luego haga clic en "Instalar AddIn" y sele
<data name="AddInManager.UnknownFileFormat" xml:space="preserve">
<value>Formato de archivo desconocido:</value>
</data>
<data name="AddInManager2.AddInsView.InstallFromArchive" xml:space="preserve">
<value>Instalar desde archivo...</value>
</data>
<data name="AddInManager2.AddInsView.Repository" xml:space="preserve">
<value>Repositorio:</value>
</data>
<data name="AddInManager2.AddInsView.Search" xml:space="preserve">
<value>Búsqueda:</value>
</data>
<data name="AddInManager2.AddInsView.ShowPreinstalledAddIns" xml:space="preserve">
<value>Mostrar complementos instalados</value>
</data>
<data name="AddInManager2.AddInsView.ShowPrereleaseAddIns" xml:space="preserve">
<value>Mostrar versiones preliminares</value>
</data>
<data name="AddInManager2.CannotRemoveAddInManager" xml:space="preserve">
<value>No puede desinstalar el Administrador de Complementos porque lo necesita para re-instalar complementos!</value>
</data>
<data name="AddInManager2.DefaultRepository" xml:space="preserve">
<value>Repositorio de Complementos de SharpDevelop</value>
</data>
<data name="AddInManager2.Details.CreatedBy" xml:space="preserve">
<value>Creado Por:</value>
</data>
<data name="AddInManager2.Details.Dependencies" xml:space="preserve">
<value>Dependencias:</value>
</data>
<data name="AddInManager2.Details.DownloadCount" xml:space="preserve">
<value>Descargas:</value>
</data>
<data name="AddInManager2.Details.FileName" xml:space="preserve">
<value>Nombre de archivo:</value>
</data>
<data name="AddInManager2.Details.InstalledVersion" xml:space="preserve">
<value>Versión instalada:</value>
</data>
<data name="AddInManager2.Details.LastUpdated" xml:space="preserve">
<value>Última actualización:</value>
</data>
<data name="AddInManager2.Details.MoreInformation" xml:space="preserve">
<value>Más información</value>
</data>
<data name="AddInManager2.Details.NewVersion" xml:space="preserve">
<value>Nueva versión:</value>
</data>
<data name="AddInManager2.Details.Rating" xml:space="preserve">
<value>Clasificación:</value>
</data>
<data name="AddInManager2.Details.ReportAbuse" xml:space="preserve">
<value>Reportar abuso</value>
</data>
<data name="AddInManager2.Details.Version" xml:space="preserve">
<value>Versión:</value>
</data>
<data name="AddInManager2.Details.ViewLicenseTerms" xml:space="preserve">
<value>Ver Términos de Licencia</value>
</data>
<data name="AddInManager2.DisableDependentWarning" xml:space="preserve">
<value>Los siguientes complementos instalados dependen de "{0}":
{1}
Dejarán de funcionar después de deshabilitar este complemento! ¿Está seguro que quiere continuar?</value>
</data>
<data name="AddInManager2.InstallDependentMessage" xml:space="preserve">
<value>El paquete "{0}" necesita por lo menos un paquete adicional:
{1}
La aplicación tratará de descargar e instalarlos. ¿Quiere continuar?</value>
</data>
<data name="AddInManager2.InvalidPackage" xml:space="preserve">
<value>El paquete seleccionado no contiene un complemento SharpDevelop válido.</value>
</data>
<data name="AddInManager2.LicenseAcceptance.AcceptButton" xml:space="preserve">
<value>&amp;Aceptar</value>
</data>
<data name="AddInManager2.LicenseAcceptance.DeclineButton" xml:space="preserve">
<value>&amp;Rechazar</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Explanation.Package" xml:space="preserve">
<value>Al hacer clic en "Aceptar" usted está de acuerdo con los términos de licencia para el paquete listado arriba.
Si usted no está de acuerdo con los términos de licencia haga clic en "Rechazar".</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Explanation.Packages" xml:space="preserve">
<value>Al hacer clic en "Aceptar" usted está de acuerdo con los términos de licencia para los paquetes listados arriba.
Si usted no está de acuerdo con los términos de licencia haga clic en "Rechazar".</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Introduction.Package" xml:space="preserve">
<value>El siguiente paquete requiere una licencia del tipo clic para aceptar:</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Introduction.Packages" xml:space="preserve">
<value>Los siguientes paquetes requieren una licencia del tipo clic para aceptar:</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Title" xml:space="preserve">
<value>Contrato de Licencia</value>
</data>
<data name="AddInManager2.OptionPanel.Add" xml:space="preserve">
<value>Agregar</value>
</data>
<data name="AddInManager2.OptionPanel.MoveDown" xml:space="preserve">
<value>Abajo</value>
</data>
<data name="AddInManager2.OptionPanel.MoveUp" xml:space="preserve">
<value>Arriba</value>
</data>
<data name="AddInManager2.OptionPanel.Name" xml:space="preserve">
<value>Nombre:</value>
</data>
<data name="AddInManager2.OptionPanel.Remove" xml:space="preserve">
<value>Eliminar</value>
</data>
<data name="AddInManager2.OptionPanel.Source" xml:space="preserve">
<value>Fuente:</value>
</data>
<data name="AddInManager2.OptionPanel.Tree.AddIns" xml:space="preserve">
<value>Complementos</value>
</data>
<data name="AddInManager2.OptionPanel.Tree.Repositories" xml:space="preserve">
<value>Repositorios</value>
</data>
<data name="AddInManager2.RemoveDependentWarning" xml:space="preserve">
<value>Los siguientes complementos instalados dependen de "{0}":
{1}
Dejarán de funcionar después de desinstalar este complemento! ¿Esta seguro de que quiere continuar?</value>
</data>
<data name="AddInManager2.SDAddInFileFilter" xml:space="preserve">
<value>Complementos de SharpDevelop|*.sdaddin;*.addin|Todos los archivos|*.*</value>
</data>
<data name="AddInManager2.UpdateNotifier.BubbleText" xml:space="preserve">
<value>Clic aquí para ver las actualizaciones.</value>
</data>
<data name="AddInManager2.UpdateNotifier.BubbleTitle" xml:space="preserve">
<value>Se encuentran disponibles actualizaciones de SharpDevelop</value>
</data>
<data name="AddInManager2.Views.Available" xml:space="preserve">
<value>Disponible</value>
</data>
<data name="AddInManager2.Views.Installed" xml:space="preserve">
<value>Instalado</value>
</data>
<data name="AddInManager2.Views.Updates" xml:space="preserve">
<value>Actualizaciones</value>
</data>
<data name="AddIns.AvalonEdit.InconsistentNewlines.Description" xml:space="preserve">
<value>Este archivo contiene finales de línea inconsistentes.</value>
</data>
@ -1873,6 +2019,12 @@ Ejemplo: "120", "MainClass", "Main.cs, 120".</value> @@ -1873,6 +2019,12 @@ Ejemplo: "120", "MainClass", "Main.cs, 120".</value>
<data name="Dialog.Options.IDEOptions.Debugging" xml:space="preserve">
<value>Depuración</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.AskForArguments" xml:space="preserve">
<value>Preguntar por argumentos y directorio de trabajo al iniciar el ejecutable.</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.BreakAtBeginning" xml:space="preserve">
<value>Detenerse en la primera línea de ejecución.</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.EnableDecompiler" xml:space="preserve">
<value>Habilitar decompilador</value>
</data>
@ -1921,6 +2073,9 @@ Ejemplo: "120", "MainClass", "Main.cs, 120".</value> @@ -1921,6 +2073,9 @@ Ejemplo: "120", "MainClass", "Main.cs, 120".</value>
<data name="Dialog.Options.IDEOptions.Debugging.Symbols.ListCaption" xml:space="preserve">
<value>Rutas de símbolos y código fuente:</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.WithoutSource" xml:space="preserve">
<value>Sin Depuración de Código</value>
</data>
<data name="Dialog.Options.IDEOptions.EditStandardHeaderPanel.HeaderLabel" xml:space="preserve">
<value>&amp;Encabezado</value>
</data>
@ -3596,6 +3751,12 @@ ha sido cambiado de manera externa. ¿Desea recargarlo?</value> @@ -3596,6 +3751,12 @@ ha sido cambiado de manera externa. ¿Desea recargarlo?</value>
<data name="ICSharpCode.SharpDevelop.DefaultEditor.IncrementalSearch.ReverseSearchStatusBarMessage" xml:space="preserve">
<value>Invertir Búsqueda Incremental:</value>
</data>
<data name="ICSharpCode.SharpDevelop.Dom.AssemblyInvalid" xml:space="preserve">
<value>{0} no es un ensamblado .NET válido.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Dom.AssemblyNotAccessible" xml:space="preserve">
<value>{0} no es accesible o ya no existe.</value>
</data>
<data name="ICSharpCode.SharpDevelop.ErrorLoadingCodeCompletionInformation" xml:space="preserve">
<value>Error cargando información de completación de código para ${Assembly} desde ${Filename}:</value>
</data>
@ -4472,6 +4633,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4472,6 +4633,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ICSharpCode.WixBinding.WixNetFxExtensionTitle" xml:space="preserve">
<value>Extensión .NET Framework</value>
</data>
<data name="ICSharpCode.WixBinding.WixNotInstalled" xml:space="preserve">
<value>WiX no está instalado. Por favor descargue WiX de http://wixtoolset.org/</value>
</data>
<data name="ICSharpCode.WixBinding.WixPackageFilesDiffControl.NoDiffFound" xml:space="preserve">
<value>No se encontraron diferencias.</value>
</data>
@ -4493,6 +4657,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4493,6 +4657,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve">
<value>Extensión Visual Studio</value>
</data>
<data name="ICSharpCode.WpfDesign.AddIn.ThumbnailViewPad" xml:space="preserve">
<value>Diseñador WPF para vista en miniatura</value>
</data>
<data name="ICSharpCode.WPFDesigner.ContextMenu.Copy" xml:space="preserve">
<value>Copiar</value>
</data>
@ -4793,6 +4960,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4793,6 +4960,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.BookmarksLabel" xml:space="preserve">
<value>Marcadores</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.AddToWorkspace" xml:space="preserve">
<value>Agregar al área de trabajo</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.BackButton.ToolTip" xml:space="preserve">
<value>Atrás</value>
</data>
@ -4832,9 +5002,21 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4832,9 +5002,21 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.ClassBrowser.NoResultsFound" xml:space="preserve">
<value>No se encontraron resultados.</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyButton.ToolTip" xml:space="preserve">
<value>Abrir ensamblado</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromFile" xml:space="preserve">
<value>Abrir ensamblado desde archivo...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromGAC" xml:space="preserve">
<value>Abrir ensamblado desde el GAC...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.SearchButton.ToolTip" xml:space="preserve">
<value>Buscar en la Vista de Clases</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.Workspace" xml:space="preserve">
<value>Área de Trabajo {0}</value>
</data>
<data name="MainWindow.Windows.ClassScoutLabel" xml:space="preserve">
<value>Clases</value>
</data>
@ -4943,6 +5125,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4943,6 +5125,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.Console" xml:space="preserve">
<value>Consola</value>
</data>
<data name="MainWindow.Windows.Debug.DebugExecutable" xml:space="preserve">
<value>Depurar ejecutable</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Break" xml:space="preserve">
<value>Pausar</value>
</data>
@ -5300,6 +5485,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5300,6 +5485,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.SearchResultPanel.In" xml:space="preserve">
<value>en</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.NoProject" xml:space="preserve">
<value>&lt;sin proyecto&gt;</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.OccurrencesCount" xml:space="preserve">
<value>${Count} ocurrencias</value>
</data>
@ -5315,6 +5503,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5315,6 +5503,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.SearchResultPanel.PerFile" xml:space="preserve">
<value>Por archivo</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.PerProject" xml:space="preserve">
<value>Por proyecto</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.PerProjectAndFile" xml:space="preserve">
<value>Por proyecto y archivo</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.SelectViewMode.ToolTip" xml:space="preserve">
<value>Selecciona el modo de búsqueda de la lista</value>
</data>
@ -5750,6 +5944,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5750,6 +5944,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ResourceEditor.ResourceCodeGeneratorTool.CouldNotGenerateResourceProperty" xml:space="preserve">
<value>Generador de recursos de código: No se pudo generar ninguna propiedad para el recurso '{0}'.</value>
</data>
<data name="ResourceEditor.ResourceEdit.CommentColumn" xml:space="preserve">
<value>Comentario</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContentColumn" xml:space="preserve">
<value>Contenido</value>
</data>
@ -5762,6 +5959,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5762,6 +5959,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ResourceEditor.ResourceEdit.ContextMenu.CopyResourceName" xml:space="preserve">
<value>Copiar nombre de recurso</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.EditComment" xml:space="preserve">
<value>Editar comentario</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.EditCommentText" xml:space="preserve">
<value>Ingrese el nuevo texto para el comentario del recurso:</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.Rename" xml:space="preserve">
<value>&amp;Renombrar</value>
</data>
@ -5963,6 +6166,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5963,6 +6166,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="SharpDevelop.Refactoring.OverridesOf" xml:space="preserve">
<value>Overrides de ${Name}</value>
</data>
<data name="SharpDevelop.Refactoring.PartsOfClass" xml:space="preserve">
<value>Partes de ${Name}</value>
</data>
<data name="SharpDevelop.Refactoring.ReferencesTo" xml:space="preserve">
<value>Referencias a ${Name}</value>
</data>

161
data/resources/StringResources.es.resx

@ -245,9 +245,100 @@ Descargue un complemento de Internet, luego haga clic en 'Instalar Complemento' @@ -245,9 +245,100 @@ Descargue un complemento de Internet, luego haga clic en 'Instalar Complemento'
<data name="AddInManager2.AddInsView.ShowPrereleaseAddIns" xml:space="preserve">
<value>Mostrar versión preliminar</value>
</data>
<data name="AddInManager2.CannotRemoveAddInManager" xml:space="preserve">
<value>No se puede desinstalar el Administrador de complementos, porque lo necesita para volver a instalar Complementos!</value>
</data>
<data name="AddInManager2.DefaultRepository" xml:space="preserve">
<value>Repositorio de Complementos de SharpDevelop</value>
</data>
<data name="AddInManager2.Details.CreatedBy" xml:space="preserve">
<value>Creado por:</value>
</data>
<data name="AddInManager2.Details.Dependencies" xml:space="preserve">
<value>Dependencias:</value>
</data>
<data name="AddInManager2.Details.DownloadCount" xml:space="preserve">
<value>Descargas:</value>
</data>
<data name="AddInManager2.Details.FileName" xml:space="preserve">
<value>Nombre de archivo:</value>
</data>
<data name="AddInManager2.Details.InstalledVersion" xml:space="preserve">
<value>Versión instalada:</value>
</data>
<data name="AddInManager2.Details.LastUpdated" xml:space="preserve">
<value>Última actualización:</value>
</data>
<data name="AddInManager2.Details.MoreInformation" xml:space="preserve">
<value>Más información</value>
</data>
<data name="AddInManager2.Details.NewVersion" xml:space="preserve">
<value>Nueva versión:</value>
</data>
<data name="AddInManager2.Details.Rating" xml:space="preserve">
<value>Ranking:</value>
</data>
<data name="AddInManager2.Details.ReportAbuse" xml:space="preserve">
<value>Reportar abuso</value>
</data>
<data name="AddInManager2.Details.Version" xml:space="preserve">
<value>Versión:</value>
</data>
<data name="AddInManager2.Details.ViewLicenseTerms" xml:space="preserve">
<value>Ver Términos de Licencia</value>
</data>
<data name="AddInManager2.DisableDependentWarning" xml:space="preserve">
<value>Los siguientes complementos instalados dependen de "{0}":
{1}
Dejarán de funcionar luego de deshabilitar este complemento! ¿Esta seguro de querer continuar?</value>
</data>
<data name="AddInManager2.InstallDependentMessage" xml:space="preserve">
<value>Paquete "{0}" necesita por lo menos un paquete adicional:
{1}
La aplicación tratará de descargarlos e instalarlos también. ¿Quiere continuar?</value>
</data>
<data name="AddInManager2.InvalidPackage" xml:space="preserve">
<value>El paquete seleccionado no contiene un complemento válido de SharpDevelop.</value>
</data>
<data name="AddInManager2.LicenseAcceptance.AcceptButton" xml:space="preserve">
<value>&amp;Acepo</value>
</data>
<data name="AddInManager2.LicenseAcceptance.DeclineButton" xml:space="preserve">
<value>&amp;No acepto</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Explanation.Package" xml:space="preserve">
<value>Al hacer clic en "Acepto" usted acepta los términos de la licencia para el paquete listado arriba.
Si usted no esta de acuerdo con los términos de la licencia haga clic en "No acepto".</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Explanation.Packages" xml:space="preserve">
<value>Al hacer clic en "Acepto", usted acepta los términos de la licencia para los paquetes listados arriba.
Si no acepta los términos de la licencia haga clic en "No acepto".</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Introduction.Package" xml:space="preserve">
<value>El siguiente paquete requiere una licencia del tipo "clic para aceptar":</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Introduction.Packages" xml:space="preserve">
<value>El siguiente paquete requiere una licencia de tipo clic para aceptar:</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Title" xml:space="preserve">
<value>Términos de Licencia</value>
</data>
<data name="AddInManager2.OptionPanel.Add" xml:space="preserve">
<value>Agregar</value>
</data>
<data name="AddInManager2.OptionPanel.MoveDown" xml:space="preserve">
<value>Mover Abajo</value>
</data>
<data name="AddInManager2.OptionPanel.MoveUp" xml:space="preserve">
<value>Mover Arriba</value>
</data>
<data name="AddInManager2.OptionPanel.Name" xml:space="preserve">
<value>Nombre:</value>
</data>
<data name="AddInManager2.OptionPanel.Remove" xml:space="preserve">
<value>Remover</value>
</data>
@ -261,15 +352,21 @@ Descargue un complemento de Internet, luego haga clic en 'Instalar Complemento' @@ -261,15 +352,21 @@ Descargue un complemento de Internet, luego haga clic en 'Instalar Complemento'
<value>Repositorios</value>
</data>
<data name="AddInManager2.RemoveDependentWarning" xml:space="preserve">
<value>Los siguientes AddIns instalados dependen de "{0}":
<value>Los siguientes Complementos instalados dependen de "{0}":
{1}
Dejarán de funcionar al remover este AddIn! ¿Quiere continuar?</value>
Dejarán de funcionar al remover este Complemento! ¿Quiere continuar?</value>
</data>
<data name="AddInManager2.SDAddInFileFilter" xml:space="preserve">
<value>AddIns de SharpDevelop |*.sdaddin;*.addin|Todos los archivos|*.*</value>
</data>
<data name="AddInManager2.UpdateNotifier.BubbleText" xml:space="preserve">
<value>Clic aquí para ver las actualizaciones.</value>
</data>
<data name="AddInManager2.UpdateNotifier.BubbleTitle" xml:space="preserve">
<value>Actualizaciones de SharpDevelop disponibles</value>
</data>
<data name="AddInManager2.Views.Available" xml:space="preserve">
<value>Disponibles</value>
</data>
@ -1919,6 +2016,12 @@ Para crear/manipular un objeto ActiveX/COM, arrastre una clase de un Control/Bib @@ -1919,6 +2016,12 @@ Para crear/manipular un objeto ActiveX/COM, arrastre una clase de un Control/Bib
<data name="Dialog.Options.IDEOptions.Debugging" xml:space="preserve">
<value>Depuración</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.AskForArguments" xml:space="preserve">
<value>Preguntar por argumentos y directorio de trabajo al iniciar ejecutable.</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.BreakAtBeginning" xml:space="preserve">
<value>Detener ejecución en la primera línea.</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.EnableDecompiler" xml:space="preserve">
<value>Habilitar decompilador</value>
</data>
@ -1967,6 +2070,9 @@ Para crear/manipular un objeto ActiveX/COM, arrastre una clase de un Control/Bib @@ -1967,6 +2070,9 @@ Para crear/manipular un objeto ActiveX/COM, arrastre una clase de un Control/Bib
<data name="Dialog.Options.IDEOptions.Debugging.Symbols.ListCaption" xml:space="preserve">
<value>Rutas de símbolos y código fuente:</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.WithoutSource" xml:space="preserve">
<value>Sin Depuración de Fuente</value>
</data>
<data name="Dialog.Options.IDEOptions.EditStandardHeaderPanel.HeaderLabel" xml:space="preserve">
<value>&amp;Encabezado</value>
</data>
@ -3648,6 +3754,12 @@ ha sido modificado externamente. ¿Desea volver a cargarlo?</value> @@ -3648,6 +3754,12 @@ ha sido modificado externamente. ¿Desea volver a cargarlo?</value>
<data name="ICSharpCode.SharpDevelop.DefaultEditor.IncrementalSearch.ReverseSearchStatusBarMessage" xml:space="preserve">
<value>Invertir Búsqueda Incremental:</value>
</data>
<data name="ICSharpCode.SharpDevelop.Dom.AssemblyInvalid" xml:space="preserve">
<value>{0} no es un ensamblado .NET válido.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Dom.AssemblyNotAccessible" xml:space="preserve">
<value>{0} no es accesible o ya no existe.</value>
</data>
<data name="ICSharpCode.SharpDevelop.ErrorLoadingCodeCompletionInformation" xml:space="preserve">
<value>Error cargando información de completación de código para ${Assembly} desde ${Filename}:</value>
</data>
@ -4527,6 +4639,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4527,6 +4639,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ICSharpCode.WixBinding.WixNetFxExtensionTitle" xml:space="preserve">
<value>Extensión .NET Framework</value>
</data>
<data name="ICSharpCode.WixBinding.WixNotInstalled" xml:space="preserve">
<value>WiX no está instalado. Por favor descargue WiX desde http://wixtoolset.org/</value>
</data>
<data name="ICSharpCode.WixBinding.WixPackageFilesDiffControl.NoDiffFound" xml:space="preserve">
<value>No se encontraron diferencias.</value>
</data>
@ -4548,6 +4663,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4548,6 +4663,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve">
<value>Extensión Visual Studio</value>
</data>
<data name="ICSharpCode.WpfDesign.AddIn.ThumbnailViewPad" xml:space="preserve">
<value>Diseñador de Thumbnail WPF</value>
</data>
<data name="ICSharpCode.WPFDesigner.ContextMenu.Copy" xml:space="preserve">
<value>Copiar</value>
</data>
@ -4848,6 +4966,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4848,6 +4966,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.BookmarksLabel" xml:space="preserve">
<value>Marcadores</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.AddToWorkspace" xml:space="preserve">
<value>Agregar al área de trabajo</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.BackButton.ToolTip" xml:space="preserve">
<value>Atrás</value>
</data>
@ -4887,9 +5008,21 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4887,9 +5008,21 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.ClassBrowser.NoResultsFound" xml:space="preserve">
<value>No se encontraron resultados.</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyButton.ToolTip" xml:space="preserve">
<value>Abre el ensamblado</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromFile" xml:space="preserve">
<value>Abrir ensamblado desde archivo...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromGAC" xml:space="preserve">
<value>Abrir ensamblado del GAC...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.SearchButton.ToolTip" xml:space="preserve">
<value>Buscar</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.Workspace" xml:space="preserve">
<value>Área de trabajo {0}</value>
</data>
<data name="MainWindow.Windows.ClassScoutLabel" xml:space="preserve">
<value>Clases</value>
</data>
@ -4998,6 +5131,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4998,6 +5131,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.Console" xml:space="preserve">
<value>Consola</value>
</data>
<data name="MainWindow.Windows.Debug.DebugExecutable" xml:space="preserve">
<value>Depurar ejecutable</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Break" xml:space="preserve">
<value>Pausar</value>
</data>
@ -5355,6 +5491,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5355,6 +5491,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.SearchResultPanel.In" xml:space="preserve">
<value>en</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.NoProject" xml:space="preserve">
<value>&lt;sin proyecto&gt;</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.OccurrencesCount" xml:space="preserve">
<value>${Count} ocurrencias</value>
</data>
@ -5370,6 +5509,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5370,6 +5509,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.SearchResultPanel.PerFile" xml:space="preserve">
<value>Por archivo</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.PerProject" xml:space="preserve">
<value>Por proyecto</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.PerProjectAndFile" xml:space="preserve">
<value>Por proyecto y archivo</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.SelectViewMode.ToolTip" xml:space="preserve">
<value>Seleccionar modo de búsqueda</value>
</data>
@ -5805,6 +5950,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5805,6 +5950,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ResourceEditor.ResourceCodeGeneratorTool.CouldNotGenerateResourceProperty" xml:space="preserve">
<value>Generador de recursos de código: No se pudo generar ninguna propiedad para el recurso '{0}'.</value>
</data>
<data name="ResourceEditor.ResourceEdit.CommentColumn" xml:space="preserve">
<value>Comentar</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContentColumn" xml:space="preserve">
<value>Contenido</value>
</data>
@ -5817,6 +5965,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5817,6 +5965,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ResourceEditor.ResourceEdit.ContextMenu.CopyResourceName" xml:space="preserve">
<value>Copiar nombre de recurso</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.EditComment" xml:space="preserve">
<value>Editar comentario</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.EditCommentText" xml:space="preserve">
<value>Ingrese el nuevo texto para el comentario del recurso:</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.Rename" xml:space="preserve">
<value>&amp;Renombrar</value>
</data>
@ -6018,6 +6172,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -6018,6 +6172,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="SharpDevelop.Refactoring.OverridesOf" xml:space="preserve">
<value>Overrides de ${Name}</value>
</data>
<data name="SharpDevelop.Refactoring.PartsOfClass" xml:space="preserve">
<value>Partes de ${Name}</value>
</data>
<data name="SharpDevelop.Refactoring.ReferencesTo" xml:space="preserve">
<value>Referencias a ${Name}</value>
</data>

58
data/resources/StringResources.fr.resx

@ -287,7 +287,7 @@ Téléchargez un AddIn depuis l'Internet, cliquez ensuite sur 'Installer un AddI @@ -287,7 +287,7 @@ Téléchargez un AddIn depuis l'Internet, cliquez ensuite sur 'Installer un AddI
<value>Voir le contrat de license</value>
</data>
<data name="AddInManager2.DisableDependentWarning" xml:space="preserve">
<value>Les Add-Ins installés suivant sont dépendant de "{0}"
<value>Les Add-Ins installés suivant sont dépendant de "{0}":
{1}
@ -351,7 +351,7 @@ Si vous ne le souhaitez pas, veuillez cliquer "Je décline".</value> @@ -351,7 +351,7 @@ Si vous ne le souhaitez pas, veuillez cliquer "Je décline".</value>
<value>Dépots</value>
</data>
<data name="AddInManager2.RemoveDependentWarning" xml:space="preserve">
<value>Les Add-Ins installés suivant sont dépendant de "{0}"
<value>Les Add-Ins installés suivant sont dépendants de "{0}":
{1}
@ -360,6 +360,12 @@ Ils ne fonctionneront plus si vous désinstallez cet Add-In! Souhaitez-vous cont @@ -360,6 +360,12 @@ Ils ne fonctionneront plus si vous désinstallez cet Add-In! Souhaitez-vous cont
<data name="AddInManager2.SDAddInFileFilter" xml:space="preserve">
<value>SharpDevelop Add-Ins|*.sdaddin;*.addin|Tous les fichiers|*.*</value>
</data>
<data name="AddInManager2.UpdateNotifier.BubbleText" xml:space="preserve">
<value>Cliquer pour voir les mises à jour.</value>
</data>
<data name="AddInManager2.UpdateNotifier.BubbleTitle" xml:space="preserve">
<value>Des mises à jour sont disponibles</value>
</data>
<data name="AddInManager2.Views.Available" xml:space="preserve">
<value>Disponible</value>
</data>
@ -2009,6 +2015,12 @@ Voulez-vous ajouter le nouveau fichier au projet ${CurrentProjectName}?</value> @@ -2009,6 +2015,12 @@ Voulez-vous ajouter le nouveau fichier au projet ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.Debugging" xml:space="preserve">
<value>Déboguage en cours</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.AskForArguments" xml:space="preserve">
<value>Demander des arguments et le répertoire de travail lors du lancement.</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.BreakAtBeginning" xml:space="preserve">
<value>Arrêt sur la première ligne.</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.EnableDecompiler" xml:space="preserve">
<value>Activer la décompilation</value>
</data>
@ -2057,6 +2069,9 @@ Voulez-vous ajouter le nouveau fichier au projet ${CurrentProjectName}?</value> @@ -2057,6 +2069,9 @@ Voulez-vous ajouter le nouveau fichier au projet ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.Debugging.Symbols.ListCaption" xml:space="preserve">
<value>Chemins des symboles et du code source:</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.WithoutSource" xml:space="preserve">
<value>Sans débogguage du source</value>
</data>
<data name="Dialog.Options.IDEOptions.EditStandardHeaderPanel.HeaderLabel" xml:space="preserve">
<value>&amp;En-tête</value>
</data>
@ -3732,6 +3747,12 @@ Toutes les modifications seront perdues.</value> @@ -3732,6 +3747,12 @@ Toutes les modifications seront perdues.</value>
<data name="ICSharpCode.SharpDevelop.DefaultEditor.IncrementalSearch.ReverseSearchStatusBarMessage" xml:space="preserve">
<value>Recherche incrémentale inversée:</value>
</data>
<data name="ICSharpCode.SharpDevelop.Dom.AssemblyInvalid" xml:space="preserve">
<value>{0} n'est pas un assembly .NET valide.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Dom.AssemblyNotAccessible" xml:space="preserve">
<value>{0} n'est pas accessible ou n'existe plus.</value>
</data>
<data name="ICSharpCode.SharpDevelop.ErrorLoadingCodeCompletionInformation" xml:space="preserve">
<value>Impossible de charger les informations Intellisense pour ${Assembly} depuis ${Filename}:</value>
</data>
@ -4631,6 +4652,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -4631,6 +4652,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve">
<value>Extension Visual Studio</value>
</data>
<data name="ICSharpCode.WpfDesign.AddIn.ThumbnailViewPad" xml:space="preserve">
<value>Vignettes du Concepteur WPF</value>
</data>
<data name="ICSharpCode.WPFDesigner.ContextMenu.Copy" xml:space="preserve">
<value>Copier</value>
</data>
@ -4931,6 +4955,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -4931,6 +4955,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="MainWindow.Windows.BookmarksLabel" xml:space="preserve">
<value>Marque-pages</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.AddToWorkspace" xml:space="preserve">
<value>Ajouter au bureau</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.BackButton.ToolTip" xml:space="preserve">
<value>Précédent</value>
</data>
@ -4970,9 +4997,21 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -4970,9 +4997,21 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="MainWindow.Windows.ClassBrowser.NoResultsFound" xml:space="preserve">
<value>Pas de résultats à la recherche.</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyButton.ToolTip" xml:space="preserve">
<value>Ouvrir l'assembly</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromFile" xml:space="preserve">
<value>Ouvrir l'assembly depuis un fichier...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromGAC" xml:space="preserve">
<value>Ouvrir l'assembly depuis le GAC...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.SearchButton.ToolTip" xml:space="preserve">
<value>Rechercher une classe</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.Workspace" xml:space="preserve">
<value>Bureau {0}</value>
</data>
<data name="MainWindow.Windows.ClassScoutLabel" xml:space="preserve">
<value>Classes</value>
</data>
@ -5081,6 +5120,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5081,6 +5120,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="MainWindow.Windows.Debug.Console" xml:space="preserve">
<value>Console</value>
</data>
<data name="MainWindow.Windows.Debug.DebugExecutable" xml:space="preserve">
<value>Débogguer l'executable</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Break" xml:space="preserve">
<value>Break</value>
</data>
@ -5438,6 +5480,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5438,6 +5480,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="MainWindow.Windows.SearchResultPanel.In" xml:space="preserve">
<value>dans</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.NoProject" xml:space="preserve">
<value>&lt;pas de projet&gt;</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.OccurrencesCount" xml:space="preserve">
<value>${Count} occurrences</value>
</data>
@ -5453,6 +5498,12 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5453,6 +5498,12 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="MainWindow.Windows.SearchResultPanel.PerFile" xml:space="preserve">
<value>Par fichier</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.PerProject" xml:space="preserve">
<value>Par projet</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.PerProjectAndFile" xml:space="preserve">
<value>Par projet et fichier</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.SelectViewMode.ToolTip" xml:space="preserve">
<value>Sélectionnez le mode de recherche des listes</value>
</data>
@ -6110,6 +6161,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -6110,6 +6161,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="SharpDevelop.Refactoring.OverridesOf" xml:space="preserve">
<value>Surdéfinitions de ${Name}</value>
</data>
<data name="SharpDevelop.Refactoring.PartsOfClass" xml:space="preserve">
<value>Elements de ${Name}</value>
</data>
<data name="SharpDevelop.Refactoring.ReferencesTo" xml:space="preserve">
<value>Réferences à ${Name}</value>
</data>

132
data/resources/StringResources.it.resx

@ -238,39 +238,92 @@ Scaricare un componente da internet, poi cliccare 'Install AddIn' e selezionare @@ -238,39 +238,92 @@ Scaricare un componente da internet, poi cliccare 'Install AddIn' e selezionare
<data name="AddInManager2.AddInsView.Search" xml:space="preserve">
<value>Cerca:</value>
</data>
<data name="AddInManager2.AddInsView.ShowPreinstalledAddIns" xml:space="preserve">
<value>Visualizza AddIns preinstallati</value>
</data>
<data name="AddInManager2.AddInsView.ShowPrereleaseAddIns" xml:space="preserve">
<value>Visualizza prereleases</value>
</data>
<data name="AddInManager2.CannotRemoveAddInManager" xml:space="preserve">
<value>Non puoi disinstallare il gestore AddIn perché ti serve per reinstallare gli AddIns!</value>
</data>
<data name="AddInManager2.DefaultRepository" xml:space="preserve">
<value>Lista SharpDevelop AddIn</value>
</data>
<data name="AddInManager2.Details.CreatedBy" xml:space="preserve">
<value>Creato da:</value>
</data>
<data name="AddInManager2.Details.Dependencies" xml:space="preserve">
<value>Dipendenze:</value>
</data>
<data name="AddInManager2.Details.DownloadCount" xml:space="preserve">
<value>Downloads:</value>
</data>
<data name="AddInManager2.Details.FileName" xml:space="preserve">
<value>Nome file:</value>
</data>
<data name="AddInManager2.Details.InstalledVersion" xml:space="preserve">
<value>Versione installata:</value>
</data>
<data name="AddInManager2.Details.LastUpdated" xml:space="preserve">
<value>Ultimo aggiornamento:</value>
</data>
<data name="AddInManager2.Details.MoreInformation" xml:space="preserve">
<value>Più informazioni</value>
</data>
<data name="AddInManager2.Details.NewVersion" xml:space="preserve">
<value>Nuova versione:</value>
</data>
<data name="AddInManager2.Details.Rating" xml:space="preserve">
<value>Punteggio:</value>
</data>
<data name="AddInManager2.Details.ReportAbuse" xml:space="preserve">
<value>Segnala abuso</value>
</data>
<data name="AddInManager2.Details.Version" xml:space="preserve">
<value>Versione:</value>
</data>
<data name="AddInManager2.Details.ViewLicenseTerms" xml:space="preserve">
<value>Mostra i Termini di Licenza</value>
</data>
<data name="AddInManager2.DisableDependentWarning" xml:space="preserve">
<value>I seguenti AddIns dipendono da "{0}":
{1}
Smetteranno di funzionare dopo aver disabilitato questo AddIn! Sei sicuro di voler continuare?</value>
</data>
<data name="AddInManager2.InstallDependentMessage" xml:space="preserve">
<value>"{0}" richiede almeno un pacchetto aggiuntivo:
{1}
L'applicazione tenterà di scaricarlo e installarlo. Sei sicuro di voler continuare?</value>
</data>
<data name="AddInManager2.InvalidPackage" xml:space="preserve">
<value>Il pacchetto selezionato non contiene un AddIn per SharpDevelop valido.</value>
</data>
<data name="AddInManager2.LicenseAcceptance.AcceptButton" xml:space="preserve">
<value>&amp;Accetto</value>
</data>
<data name="AddInManager2.LicenseAcceptance.DeclineButton" xml:space="preserve">
<value>&amp;Rifiuto</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Introduction.Packages" xml:space="preserve">
<value>I seguenti pacchetti richiedono un clic per accettare la licenza:</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Title" xml:space="preserve">
<value>Condizioni di Licenza</value>
</data>
<data name="AddInManager2.OptionPanel.Add" xml:space="preserve">
<value>Aggiungi</value>
</data>
<data name="AddInManager2.OptionPanel.MoveDown" xml:space="preserve">
<value>Sposta Giù</value>
</data>
<data name="AddInManager2.OptionPanel.MoveUp" xml:space="preserve">
<value>Sposta Su</value>
</data>
<data name="AddInManager2.OptionPanel.Name" xml:space="preserve">
<value>Nome:</value>
</data>
@ -280,9 +333,28 @@ Scaricare un componente da internet, poi cliccare 'Install AddIn' e selezionare @@ -280,9 +333,28 @@ Scaricare un componente da internet, poi cliccare 'Install AddIn' e selezionare
<data name="AddInManager2.OptionPanel.Source" xml:space="preserve">
<value>Sorgente:</value>
</data>
<data name="AddInManager2.OptionPanel.Tree.AddIns" xml:space="preserve">
<value>AddIns</value>
</data>
<data name="AddInManager2.OptionPanel.Tree.Repositories" xml:space="preserve">
<value>Repositories</value>
</data>
<data name="AddInManager2.RemoveDependentWarning" xml:space="preserve">
<value>I seguenti AddIns dipendono da "{0}":
{1}
Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler continuare?</value>
</data>
<data name="AddInManager2.SDAddInFileFilter" xml:space="preserve">
<value>SharpDevelop AddIns|*.sdaddin;*.addin|All files|*.*</value>
</data>
<data name="AddInManager2.UpdateNotifier.BubbleText" xml:space="preserve">
<value>Clicca qui per visualizzare gli aggiornamenti.</value>
</data>
<data name="AddInManager2.UpdateNotifier.BubbleTitle" xml:space="preserve">
<value>Sono disponibili aggiornamenti per SharpDevelop</value>
</data>
<data name="AddInManager2.Views.Available" xml:space="preserve">
<value>Disponibile</value>
</data>
@ -1929,6 +2001,12 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value> @@ -1929,6 +2001,12 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.Debugging" xml:space="preserve">
<value>Debugging</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.AskForArguments" xml:space="preserve">
<value>Chiedi parametri e cartella di lavoro quando inizia l'esecuzione.</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.BreakAtBeginning" xml:space="preserve">
<value>Ferma alla prima linea in esecuzione.</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.EnableDecompiler" xml:space="preserve">
<value>Attiva decompilatore</value>
</data>
@ -1977,6 +2055,9 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value> @@ -1977,6 +2055,9 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.Debugging.Symbols.ListCaption" xml:space="preserve">
<value>Percorsi simboli e codice sorgente:</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.WithoutSource" xml:space="preserve">
<value>Debug Senza Sorgenti</value>
</data>
<data name="Dialog.Options.IDEOptions.EditStandardHeaderPanel.HeaderLabel" xml:space="preserve">
<value>&amp;Intestazione</value>
</data>
@ -3658,6 +3739,12 @@ ${File} @@ -3658,6 +3739,12 @@ ${File}
<data name="ICSharpCode.SharpDevelop.DefaultEditor.IncrementalSearch.ReverseSearchStatusBarMessage" xml:space="preserve">
<value>Ricerca Incrementale Inversa:</value>
</data>
<data name="ICSharpCode.SharpDevelop.Dom.AssemblyInvalid" xml:space="preserve">
<value>{0} non è un assembly .NET valido.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Dom.AssemblyNotAccessible" xml:space="preserve">
<value>{0} non è accessibile o non esiste più.</value>
</data>
<data name="ICSharpCode.SharpDevelop.ErrorLoadingCodeCompletionInformation" xml:space="preserve">
<value>Errore nel caricamento delle informazioni di completamento codice per ${Assembly} da ${Filename}:</value>
</data>
@ -4533,6 +4620,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4533,6 +4620,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ICSharpCode.WixBinding.WixNetFxExtensionTitle" xml:space="preserve">
<value>Estensione .NET Framework</value>
</data>
<data name="ICSharpCode.WixBinding.WixNotInstalled" xml:space="preserve">
<value>WiX non è installato. Per favore scarica WiX da http://wixtoolset.org/</value>
</data>
<data name="ICSharpCode.WixBinding.WixPackageFilesDiffControl.NoDiffFound" xml:space="preserve">
<value>Nessuna differenza trovata.</value>
</data>
@ -4554,6 +4644,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4554,6 +4644,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve">
<value>Estensione Visual Studio</value>
</data>
<data name="ICSharpCode.WpfDesign.AddIn.ThumbnailViewPad" xml:space="preserve">
<value>Anteprima WPF Designer</value>
</data>
<data name="ICSharpCode.WPFDesigner.ContextMenu.Copy" xml:space="preserve">
<value>Copia</value>
</data>
@ -4854,6 +4947,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4854,6 +4947,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.BookmarksLabel" xml:space="preserve">
<value>Segnalibri</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.AddToWorkspace" xml:space="preserve">
<value>Aggiungi allo spazio di lavoro</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.BackButton.ToolTip" xml:space="preserve">
<value>Indietro</value>
</data>
@ -4893,9 +4989,21 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4893,9 +4989,21 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.ClassBrowser.NoResultsFound" xml:space="preserve">
<value>Nessun risultato trovato.</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyButton.ToolTip" xml:space="preserve">
<value>Apri assembly</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromFile" xml:space="preserve">
<value>Apri assembly da file...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromGAC" xml:space="preserve">
<value>Apri assembly dalla GAC...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.SearchButton.ToolTip" xml:space="preserve">
<value>Ricerca nel visualizzatore di classi</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.Workspace" xml:space="preserve">
<value>Spazio di lavoro {0}</value>
</data>
<data name="MainWindow.Windows.ClassScoutLabel" xml:space="preserve">
<value>Classi</value>
</data>
@ -5004,6 +5112,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5004,6 +5112,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.Console" xml:space="preserve">
<value>Console</value>
</data>
<data name="MainWindow.Windows.Debug.DebugExecutable" xml:space="preserve">
<value>Debug eseguibile</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Break" xml:space="preserve">
<value>Interrompi</value>
</data>
@ -5361,6 +5472,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5361,6 +5472,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.SearchResultPanel.In" xml:space="preserve">
<value>in</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.NoProject" xml:space="preserve">
<value>&lt;nessun progetto&gt;</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.OccurrencesCount" xml:space="preserve">
<value>${Count} occorrenze</value>
</data>
@ -5376,6 +5490,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5376,6 +5490,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.SearchResultPanel.PerFile" xml:space="preserve">
<value>Per file</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.PerProject" xml:space="preserve">
<value>Per progetto</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.PerProjectAndFile" xml:space="preserve">
<value>Per progetto e file</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.SelectViewMode.ToolTip" xml:space="preserve">
<value>Seleziona la modalità di ricerca in lista</value>
</data>
@ -5811,6 +5931,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5811,6 +5931,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ResourceEditor.ResourceCodeGeneratorTool.CouldNotGenerateResourceProperty" xml:space="preserve">
<value>Generatore del codice risorsa: nessuna proprietà può essere generata per la risorsa '{0}'.</value>
</data>
<data name="ResourceEditor.ResourceEdit.CommentColumn" xml:space="preserve">
<value>Note</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContentColumn" xml:space="preserve">
<value>Contenuto</value>
</data>
@ -5826,6 +5949,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5826,6 +5949,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ResourceEditor.ResourceEdit.ContextMenu.EditComment" xml:space="preserve">
<value>Modifica descrizione</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.EditCommentText" xml:space="preserve">
<value>Inserisci il nuovo testo per le note della risorsa:</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.Rename" xml:space="preserve">
<value>&amp;Rinomina</value>
</data>
@ -5841,6 +5967,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5841,6 +5967,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="SharpDevelop.FileFilter.AllFiles" xml:space="preserve">
<value>Tutti i file (*.*)</value>
</data>
<data name="SharpDevelop.FileFilter.AllKnownFiles" xml:space="preserve">
<value>Estensioni file conosciute</value>
</data>
<data name="SharpDevelop.FileFilter.AssemblyFiles" xml:space="preserve">
<value>File di Assembly (*.exe;*.dll)</value>
</data>
@ -6024,6 +6153,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -6024,6 +6153,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="SharpDevelop.Refactoring.OverridesOf" xml:space="preserve">
<value>Overrides di ${Name}</value>
</data>
<data name="SharpDevelop.Refactoring.PartsOfClass" xml:space="preserve">
<value>Parti di ${Name}</value>
</data>
<data name="SharpDevelop.Refactoring.ReferencesTo" xml:space="preserve">
<value>Riferimenti a ${Name}</value>
</data>

31
data/resources/StringResources.nl.resx

@ -290,7 +290,7 @@ @@ -290,7 +290,7 @@
{1}
Ze stoppen met werken als deze AddIn uitgeschakeld wordt. Wilt u doorgaan?</value>
Ze stoppen met werken nadat deze AddIn wordt uitgeschakeld. Weet u zeker dat u wilt doorgaan?</value>
</data>
<data name="AddInManager2.InstallDependentMessage" xml:space="preserve">
<value>Package "{0}" heeft tenminste één toegevoegde package nodig:
@ -353,7 +353,7 @@ Als u het niet eens bent met de licentie voorwaarden, klik dan de "Ik weiger" kn @@ -353,7 +353,7 @@ Als u het niet eens bent met de licentie voorwaarden, klik dan de "Ik weiger" kn
{1}
Deze stoppen met werken na verwijderen van deze AddIn.</value>
Deze stoppen met werken nadat deze AddIn wordt verwijderd. Weet u zeker dat u wilt doorgaan?</value>
</data>
<data name="AddInManager2.SDAddInFileFilter" xml:space="preserve">
<value>SharpDevelop AddIns|*.sdaddin;*.addin|Alle bestanden|*.*</value>
@ -2020,6 +2020,12 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value> @@ -2020,6 +2020,12 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.Debugging" xml:space="preserve">
<value>Foutopsporing</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.AskForArguments" xml:space="preserve">
<value>Vraag naar argumenten en werkmap bij starten uitvoerend bestand.</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.BreakAtBeginning" xml:space="preserve">
<value>Breek op de eerste uitvoeringsregel.</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.EnableDecompiler" xml:space="preserve">
<value>Decompiler inschakelen</value>
</data>
@ -2068,6 +2074,9 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value> @@ -2068,6 +2074,9 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.Debugging.Symbols.ListCaption" xml:space="preserve">
<value>Symbool- en broncodepaden:</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.WithoutSource" xml:space="preserve">
<value>Zonder broncode fout-opsporing.</value>
</data>
<data name="Dialog.Options.IDEOptions.EditStandardHeaderPanel.HeaderLabel" xml:space="preserve">
<value>&amp;Koptekst</value>
</data>
@ -4998,6 +5007,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -4998,6 +5007,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromGAC" xml:space="preserve">
<value>Assembly openen vanuit GAK...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenInClassBrowser" xml:space="preserve">
<value>Open in de klasse bladeraar</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.SearchButton.ToolTip" xml:space="preserve">
<value>Zoeken in Klassen Overzicht</value>
</data>
@ -5112,6 +5124,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5112,6 +5124,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="MainWindow.Windows.Debug.Console" xml:space="preserve">
<value>Console</value>
</data>
<data name="MainWindow.Windows.Debug.DebugExecutable" xml:space="preserve">
<value>Fout-opsporen in uitvoerend bestand</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Break" xml:space="preserve">
<value>Onderbreken</value>
</data>
@ -5469,6 +5484,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5469,6 +5484,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="MainWindow.Windows.SearchResultPanel.In" xml:space="preserve">
<value>in</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.NoProject" xml:space="preserve">
<value>&lt;geen project&gt;</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.OccurrencesCount" xml:space="preserve">
<value>${Count} resultaten</value>
</data>
@ -5484,6 +5502,12 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5484,6 +5502,12 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="MainWindow.Windows.SearchResultPanel.PerFile" xml:space="preserve">
<value>Per bestand</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.PerProject" xml:space="preserve">
<value>Per project</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.PerProjectAndFile" xml:space="preserve">
<value>Per project en bestand</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.SelectViewMode.ToolTip" xml:space="preserve">
<value>Selecteer de zoeklijst modus</value>
</data>
@ -6141,6 +6165,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -6141,6 +6165,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="SharpDevelop.Refactoring.OverridesOf" xml:space="preserve">
<value>Overschrijvingen van $(Name)</value>
</data>
<data name="SharpDevelop.Refactoring.PartsOfClass" xml:space="preserve">
<value>Delen van ${Name}</value>
</data>
<data name="SharpDevelop.Refactoring.ReferencesTo" xml:space="preserve">
<value>Referenties met ${Name}</value>
</data>

28
data/resources/StringResources.resx

@ -329,6 +329,9 @@ If you do not agree to the license terms click "I Decline".</value> @@ -329,6 +329,9 @@ If you do not agree to the license terms click "I Decline".</value>
<data name="AddInManager2.OptionPanel.Add" xml:space="preserve">
<value>Add</value>
</data>
<data name="AddInManager2.OptionPanel.AutoCheckForUpdates" xml:space="preserve">
<value>Automatically check for updates</value>
</data>
<data name="AddInManager2.OptionPanel.MoveDown" xml:space="preserve">
<value>Move Down</value>
</data>
@ -347,6 +350,9 @@ If you do not agree to the license terms click "I Decline".</value> @@ -347,6 +350,9 @@ If you do not agree to the license terms click "I Decline".</value>
<data name="AddInManager2.OptionPanel.Tree.AddIns" xml:space="preserve">
<value>AddIns</value>
</data>
<data name="AddInManager2.OptionPanel.Tree.General" xml:space="preserve">
<value>General</value>
</data>
<data name="AddInManager2.OptionPanel.Tree.Repositories" xml:space="preserve">
<value>Repositories</value>
</data>
@ -420,12 +426,15 @@ They will stop working after removing this AddIn! Are you sure you want to conti @@ -420,12 +426,15 @@ They will stop working after removing this AddIn! Are you sure you want to conti
<value>Help Library</value>
</data>
<data name="AddIns.HelpViewer.HelpModeLabel" xml:space="preserve">
<value>Help Mode</value>
<value>Set Help Preference</value>
</data>
<data name="AddIns.HelpViewer.HLMNoActiveCatalogError" xml:space="preserve">
<value>Cannot launch Help Library Manager, because there is no help catalog installed/selected. Please check your help settings (see Tools &gt; Options &gt; Tools &gt; Microsoft Help Viewer).</value>
<comment>Error message when there is no help catalog active</comment>
</data>
<data name="AddIns.HelpViewer.HLMNotAvailableDownloadWinSDK" xml:space="preserve">
<value>The Help Library Manager was not found. In order to use SharpDevelop's help feature please download and install Microsoft's Windows SDK 7.1.</value>
</data>
<data name="AddIns.HelpViewer.HLMNotFound" xml:space="preserve">
<value>Help Library Manager was not found. Please check if it was installed correctly.</value>
</data>
@ -454,7 +463,7 @@ They will stop working after removing this AddIn! Are you sure you want to conti @@ -454,7 +463,7 @@ They will stop working after removing this AddIn! Are you sure you want to conti
<value>Show Help</value>
</data>
<data name="AddIns.HelpViewer.UseExternalHelp" xml:space="preserve">
<value>Use external help</value>
<value>Use external help viewer</value>
</data>
<data name="AddIns.HelpViewer.UseOfflineHelpLabel" xml:space="preserve">
<value>I want to use local help</value>
@ -2079,6 +2088,12 @@ Do you want to add the new file to the project ${CurrentProjectName}?</value> @@ -2079,6 +2088,12 @@ Do you want to add the new file to the project ${CurrentProjectName}?</value>
<value>Debugging</value>
<comment>The root node in the options dialog</comment>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.AskForArguments" xml:space="preserve">
<value>Ask for arguments and working directory on executable launch.</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.BreakAtBeginning" xml:space="preserve">
<value>Break at first line of execution.</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.EnableDecompiler" xml:space="preserve">
<value>Enable decompiler</value>
</data>
@ -2127,6 +2142,9 @@ Do you want to add the new file to the project ${CurrentProjectName}?</value> @@ -2127,6 +2142,9 @@ Do you want to add the new file to the project ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.Debugging.Symbols.ListCaption" xml:space="preserve">
<value>Symbol and source code paths:</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.WithoutSource" xml:space="preserve">
<value>Without Source Debugging</value>
</data>
<data name="Dialog.Options.IDEOptions.EditStandardHeaderPanel.HeaderLabel" xml:space="preserve">
<value>&amp;Header</value>
</data>
@ -5276,6 +5294,9 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs</comment> @@ -5276,6 +5294,9 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs</comment>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromGAC" xml:space="preserve">
<value>Open assembly from GAC...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenInClassBrowser" xml:space="preserve">
<value>Open in Class Browser</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.SearchButton.ToolTip" xml:space="preserve">
<value>Class View Search</value>
</data>
@ -5393,6 +5414,9 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs</comment> @@ -5393,6 +5414,9 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs</comment>
<data name="MainWindow.Windows.Debug.Console" xml:space="preserve">
<value>Console</value>
</data>
<data name="MainWindow.Windows.Debug.DebugExecutable" xml:space="preserve">
<value>Debug executable</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Break" xml:space="preserve">
<value>Break</value>
<comment>Button.

5
data/resources/image/BitmapResources/BitmapList.txt

@ -272,6 +272,7 @@ PadIcons\Parallel.png @@ -272,6 +272,7 @@ PadIcons\Parallel.png
PadIcons\ProjectBrowser.png
PadIcons\TaskList.png
PadIcons\Toolbar.png
PadIcons\WatchPad.png
PadIcons\memory.png
PadIcons\nextmemory.png
PadIcons\previousmemory.png
@ -326,7 +327,9 @@ SubversionIcons\Svn.CreatePatch.png @@ -326,7 +327,9 @@ SubversionIcons\Svn.CreatePatch.png
SubversionIcons\Svn.Export.png
SubversionIcons\Svn.Import.png
SubversionIcons\Svn.Update.png
WatchIcons\WatchAdd.png
WatchIcons\WatchDelete.png
WatchIcons\WatchesDelete.png
-------------------------------------------------------------------------------
Copied from the Fugue Icon Library and modified or mashed up with other Fugue

6
data/resources/image/BitmapResources/BitmapResources.res

@ -88,6 +88,11 @@ Icons.16x16.Debug.StepInto = DebuggerIcons\Icons.16x16.Debug.StepInto.png @@ -88,6 +88,11 @@ Icons.16x16.Debug.StepInto = DebuggerIcons\Icons.16x16.Debug.StepInto.png
Icons.16x16.Debug.StepOut = DebuggerIcons\Icons.16x16.Debug.StepOut.png
Icons.16x16.Debug.Assembly = DebuggerIcons\Icons.16x16.Debug.Assembly.png
# Watches
Icons.16x16.WatchAdd = WatchIcons\WatchAdd.png
Icons.16x16.WatchDelete = WatchIcons\WatchDelete.png
Icons.16x16.WatchesDelete = WatchIcons\WatchesDelete.png
# TestRunner
Icons.16x16.TestRunner.Yellow = BitmapResources-data\Icons.16x16.TestRunner.Yellow.png
Icons.16x16.TestRunner.Red = BitmapResources-data\Icons.16x16.TestRunner.Red.png
@ -271,6 +276,7 @@ PadIcons.BreakPoints = PadIcons\Breakpoints.png @@ -271,6 +276,7 @@ PadIcons.BreakPoints = PadIcons\Breakpoints.png
PadIcons.CallStack = PadIcons\CallStack.png
PadIcons.LoadedModules = PadIcons\LoadedModules.png
PadIcons.LocalVariables = PadIcons\LocalVariables.png
PadIcons.Watches = PadIcons\WatchPad.png
PadIcons.Threads = PadIcons\Threads.png
PadIcons.Exceptions = PadIcons\Exceptions.png
PadIcons.XPathQuery = PadIcons\XPathQuery.png

BIN
data/resources/image/BitmapResources/PadIcons/WatchPad.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 B

BIN
data/resources/image/BitmapResources/WatchIcons/WatchAdd.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

BIN
data/resources/image/BitmapResources/WatchIcons/WatchDelete.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

BIN
data/resources/image/BitmapResources/WatchIcons/Watches.pdn

Binary file not shown.

BIN
data/resources/image/BitmapResources/WatchIcons/WatchesDelete.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 B

38
doc/Dependencies.html

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
<html>
<head>
<title>SharpDevelop Dependencies</title>
</head>
<body>
<p>
<strong>SharpDevelop can take advantage of the following software if you install it:</strong>
</p>
<ul>
<li>
<a href="http://www.microsoft.com/en-us/download/details.aspx?id=40772">Microsoft .NET Framework 4.5.1 Developer Pack</a> for .NET 4.5 code completion documentation
</li>
<li>
<a href="http://www.microsoft.com/downloads/details.aspx?familyid=6B6C21D2-2006-4AFA-9702-529FA782D63B&amp;displaylang=en">Microsoft Windows SDK for Windows 7 and .NET Framework 4</a> (strongly recommended!)
</li>
<li>
<a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=effc5bc4-c3df-4172-ad1c-bc62935861c5">Microsoft F#</a> for F# support
</li>
<li>
<a href="http://code.msdn.microsoft.com/sourceanalysis">StyleCop</a> for source analysis support.
</li>
<li>
<a href="https://code.google.com/p/tortoisegit/">TortoiseGit</a> for Git source control support.
</li>
<li>
<a href="http://tortoisesvn.net/">TortoiseSVN</a> for Subversion source control support.
</li>
<li>
<a href="http://shfb.codeplex.com/">SHFB</a> for documentation generation support.
</li>
<li>
<a href="http://wixtoolset.org/">WiX</a> for building installers.
</li>
</ul>
</body>
</html>

23
doc/technotes/Versioning.html

@ -13,15 +13,14 @@ @@ -13,15 +13,14 @@
<P>The assemblyInfo.cs files are updated by the tool
&quot;UpdateAssemblyInfo&quot;. UpdateAssemblyInfo
runs as pre-compile target and always sets the number in GlobalAssemblyInfo.cs
to the subversion revision number. That number is displayed
to the number of commits since a hard-coded start commit (<code>const string BaseCommit</code>). That number is displayed
in the splash screen, error dialog and about dialog.
It is also used as assembly version.
</P>
<p>
The revision number is retrieved by running a function in NSvn.Core.dll equivalent to "svn info"
in the "src" folder.
When this doesn't work (e.g. in an exported tree like the source code download on the build server), the
content of the file src/REVISION is used as revision number.
The revision number is retrieved by running "git rev-list" and counting the number of output lines.
When this doesn't work (e.g. in an exported tree like the source code download on the build server; or git not present in PATH),
the content of the file src/REVISION is used as revision number.
When even this fails, the revision '0' is used.
</p>
<H2>Publisher Policy</H2>
@ -39,7 +38,7 @@ would want to reference. @@ -39,7 +38,7 @@ would want to reference.
</P>
<P>The binding redirects always redirect requests of a version in the range
from some past version containing large breaking changes to the current version.
We will not do such changes anymore after the first release candidate of a SharpDevelop version,
We try to avoid such changes after the first release candidate of a SharpDevelop version,
so after the release of SharpDevelop x.y RC1, all future SharpDevelop x.y.*.* versions will be
in large parts binary compatible.
<br>
@ -51,5 +50,17 @@ compile it against the oldest SharpDevelop version you want your AddIn to run wi @@ -51,5 +50,17 @@ compile it against the oldest SharpDevelop version you want your AddIn to run wi
An AddIn compiled against 2.1.0.1800 will run with 2.1.0.1801 (and hopefully even with 2.1.23.45678),
but an AddIn compiled against 2.1.0.1801 will fail to load in SharpDevelop 2.1.0.1800.
</P>
<P>
Additionally, your AddIn should include a <code>&lt;Dependency&gt;</code> in its
.addin file to indicate which SharpDevelop version it is intended for.
This way, users trying to install the AddIn in an incompatible SharpDevelop version will be warned about the
incompatibility, instead of getting an obscure error message.
</P>
<pre>
&lt;Manifest>
&lt;Identity name = "YourAddInName"/>
&lt;Dependency addin="SharpDevelop" version="5.0"/>
&lt;/Manifest>
</pre>
</BODY>
</HTML>

5
samples/PortSD4AddInToSD5/PortSD4AddInToSD5.csproj

@ -65,6 +65,11 @@ @@ -65,6 +65,11 @@
<Compile Include="WorkbenchSingletonIssueProvider.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp.Refactoring\ICSharpCode.NRefactory.CSharp.Refactoring.csproj">
<Project>{2A705FC6-1A9E-4941-9E47-254D79F2D9D5}</Project>
<Name>ICSharpCode.NRefactory.CSharp.Refactoring</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>

11
samples/PortSD4AddInToSD5/WorkbenchSingletonIssueProvider.cs

@ -22,11 +22,10 @@ namespace PortSD4AddInToSD5 @@ -22,11 +22,10 @@ namespace PortSD4AddInToSD5
[IssueDescription ("Usage of SD4 WorkbenchSingleton",
Description = "Usage of SD4 WorkbenchSingleton",
Category = "SD4->SD5",
Severity = Severity.Warning,
IssueMarker = IssueMarker.Underline)]
public class WorkbenchSingletonIssueProvider : ICodeIssueProvider
Severity = Severity.Warning)]
public class WorkbenchSingletonIssueProvider : CodeIssueProvider
{
public IEnumerable<CodeIssue> GetIssues (BaseRefactoringContext context)
public override IEnumerable<CodeIssue> GetIssues(BaseRefactoringContext context, string subIssue = null)
{
foreach (var mre in context.RootNode.Descendants.OfType<MemberReferenceExpression>()) {
var rr = context.Resolve(mre);
@ -129,8 +128,8 @@ namespace PortSD4AddInToSD5 @@ -129,8 +128,8 @@ namespace PortSD4AddInToSD5
if (invocationExpression.Clone().Invoke("FireAndForget").IsMatch(invocationExpression.Parent.Parent)) {
var ident = invocationExpression.Parent.GetChildByRole(Roles.Identifier);
yield return new CodeIssue(
"Use InvokeAsyncAndForget() instead",
ident.StartLocation, ident.EndLocation,
"Use InvokeAsyncAndForget() instead",
new CodeAction("Use InvokeAsyncAndForget() instead",
script => {
var newInvocation = (InvocationExpression)invocationExpression.Clone();
@ -146,7 +145,7 @@ namespace PortSD4AddInToSD5 @@ -146,7 +145,7 @@ namespace PortSD4AddInToSD5
CodeIssue Issue(AstNode node, Action<Script> fix = null)
{
return new CodeIssue("WorkbenchSingleton is obsolete", node.StartLocation, node.EndLocation,
return new CodeIssue(node.StartLocation, node.EndLocation, "WorkbenchSingleton is obsolete",
fix != null ? new CodeAction("Use SD5 API", fix, node) : null);
}
}

2
src/AddIns/Analysis/CodeCoverage/Test/Utils/MockFileSystem.cs

@ -63,7 +63,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Utils @@ -63,7 +63,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Utils
throw new NotImplementedException();
}
System.Collections.Generic.IEnumerable<FileName> IReadOnlyFileSystem.GetFiles(DirectoryName directory, string searchPattern, SearchOption searchOption)
System.Collections.Generic.IEnumerable<FileName> IReadOnlyFileSystem.GetFiles(DirectoryName directory, string searchPattern, DirectorySearchOptions searchOptions)
{
throw new NotImplementedException();
}

19
src/AddIns/Analysis/CodeQuality/CodeQuality.csproj

@ -16,13 +16,6 @@ @@ -16,13 +16,6 @@
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'x86' ">
<PlatformTarget>x86</PlatformTarget>
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
<BaseAddress>4194304</BaseAddress>
<FileAlignment>4096</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>Full</DebugType>
@ -37,6 +30,13 @@ @@ -37,6 +30,13 @@
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'x86' ">
<PlatformTarget>x86</PlatformTarget>
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
<BaseAddress>4194304</BaseAddress>
<FileAlignment>4096</FileAlignment>
</PropertyGroup>
<ItemGroup>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
@ -132,6 +132,11 @@ @@ -132,6 +132,11 @@
<Name>Mono.Cecil</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.Cecil\ICSharpCode.NRefactory.Cecil.csproj">
<Project>{B2BBC7BC-837C-40ED-A6DB-D5AE8626212F}</Project>
<Name>ICSharpCode.NRefactory.Cecil</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>

4
src/AddIns/Analysis/UnitTesting/Test/UnitTesting.Tests.csproj

@ -103,6 +103,10 @@ @@ -103,6 +103,10 @@
<Compile Include="Utils\NRefactoryHelper.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.Cecil\ICSharpCode.NRefactory.Cecil.csproj">
<Project>{B2BBC7BC-837C-40ED-A6DB-D5AE8626212F}</Project>
<Name>ICSharpCode.NRefactory.Cecil</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>

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

@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
<Doozer name="CSharpCodeActionProvider" class="CSharpBinding.Refactoring.CSharpCodeActionProviderDoozer"/>
</Import>
<Import assembly = ":ICSharpCode.SharpDevelop"/>
<Import assembly = ":ICSharpCode.NRefactory.CSharp"/>
<Import assembly = ":ICSharpCode.NRefactory.CSharp.Refactoring"/>
</Runtime>
<Path name = "/SharpDevelop/Workbench/Ambiences">
@ -165,103 +165,254 @@ @@ -165,103 +165,254 @@
<Path path = "/SharpDevelop/ViewContent/TextEditor/C#/IssueProviders">
<Class class = "CSharpBinding.Refactoring.CSharpSyntaxIssue" />
<Class class = "CSharpBinding.Refactoring.SDRedundantUsingIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.AssignmentMadeToSameVariableIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.BitwiseOperationOnNonFlagsEnumIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.BaseMethodCallWithDefaultParameterIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.AccessToDisposedClosureIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.AccessToModifiedClosureIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.AccessToStaticMemberViaDerivedTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.AdditionalOfTypeIssues" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ArrayCreationCanBeReplacedWithArrayInitializerIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.AutoAsyncIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.BaseMemberHasParamsIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.BaseMethodParameterNameMismatchIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.BitwiseOperatorOnEnumWithoutFlagsIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CallToObjectEqualsViaBaseIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CallToVirtualFunctionFromConstructorIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CanBeReplacedWithTryCastAndCheckForNullIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CastExpressionOfIncompatibleTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CompareBooleanWithTrueOrFalseIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CompareFloatWithEqualityOperatorIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConditionalToNullCoalescingIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CheckNamespaceIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CompareNonConstrainedGenericWithNullIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CompareOfFloatsByEqualityOperatorIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConditionalTernaryEqualBranchIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConditionIsAlwaysTrueOrFalseIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConstantConditionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConstantNullCoalescingConditionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertClosureToMethodGroupIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertConditionalTernaryToNullCoalescingIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertIfDoToWhileIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertIfStatementToConditionalTernaryExpressionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertIfStatementToNullCoalescingExpressionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertIfStatementToSwitchStatementIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertIfToAndExpressionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertIfToOrExpressionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertNullableToShortFormIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertToAutoPropertyIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertToConstantIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertToLambdaExpressionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertToStaticTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CS0029InvalidConversionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CS0126ReturnMustBeFollowedByAnyExpression" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CS0127ReturnMustNotBeFollowedByAnyExpression" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.DoubleNegationIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.DuplicateExpressionsInConditionsIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.DuplicateIfInIfChainIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CS0152DuplicateCaseLabelValueIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CS0183ExpressionIsAlwaysOfProvidedTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CS0659ClassOverrideEqualsWithoutGetHashCode" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CS0759RedundantPartialMethodIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CS1573ParameterHasNoMatchingParamTagIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CS1717AssignmentMadeToSameVariableIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CS1729TypeHasNoConstructorWithNArgumentsIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.DelegateSubtractionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.DisposeMethodInNonIDisposableTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.DoNotCallOverridableMethodsInConstructorIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.DontUseLinqWhenItsVerboseAndInefficientIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.DoubleNegationOperatorIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.DuplicatedLinqToListOrArrayIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.EmptyConstructorIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.EmptyDestructorIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.EmptyEmbeddedStatementIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.EmptyGeneralCatchClauseIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.EmptyNamespaceIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.EmptyStatementIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.EnumUnderlyingTypeIsIntIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.EqualExpressionComparisonIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.EventUnsubscriptionViaAnonymousDelegateIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExceptionRethrowIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExplicitConversionInForEachIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExpressionIsAlwaysOfProvidedTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExpressionIsNeverOfProvidedTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ForControlVariableNotModifiedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.FormatStringIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.IdenticalConditionalBranchIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.FieldCanBeMadeReadOnlyIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ForCanBeConvertedToForeachIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ForControlVariableIsNeverModifiedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.FormatStringProblemIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ForStatementConditionIsTrueIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.FunctionNeverReturnsIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.InconsistentNamingIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.IncorrectCallToObjectGetHashCodeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.IncorrectExceptionParameterOrderingIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.InvokeAsExtensionMethodIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.LocalVariableHidesMemberIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.LocalVariableNotUsedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.MethodNeverReturnsIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.LockThisIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.LongLiteralEndingLowerLIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.MemberCanBeMadeStaticIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.MemberHidesStaticFromOuterClassIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.MethodOverloadHidesOptionalParameterIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.MissingStringComparisonIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.MethodOverloadWithOptionalParameterIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.MissingInterfaceMemberImplementationIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.NegativeRelationalExpressionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.NoDefaultConstructorIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.NonPublicMethodWithTestAttributeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.NonReadonlyReferencedInGetHashCodeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.NotImplementedExceptionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.NotResolvedInTextIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ObjectCreationAsStatementIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.OperatorIsCanBeUsedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.OptionalParameterCouldBeSkippedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ParameterCanBeDemotedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.OptionalParameterHierarchyMismatchIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.OptionalParameterRefOutIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ParameterCanBeDeclaredWithBaseTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ParameterHidesMemberIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ParameterNotUsedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ParameterOnlyAssignedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.PartialMethodParameterNameMismatchIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.PartialTypeWithSinglePartIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.PolymorphicFieldLikeEventInvocationIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.PossibleAssignmentToReadonlyFieldIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.PossibleMistakenCallToGetTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ProhibitedModifiersIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.PublicConstructorInAbstractClassIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantArrayInitializerCommaIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantAnonymousTypePropertyNameIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantArgumentDefaultValueIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantArgumentNameIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantAttributeParenthesesIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantBaseConstructorIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantBaseConstructorCallIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantBaseQualifierIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantBlockInDifferentBranchesIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantBoolCompareIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantCaseLabelIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantCatchIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantConstructorIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantElseIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantFieldInitializerIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantCatchClauseIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantCheckBeforeAssignmentIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantCommaInArrayInitializerIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantComparisonWithNullIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantDefaultFieldInitializerIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantDelegateCreationIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantEmptyDefaultSwitchBranchIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantEmptyFinallyBlockIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantEnumerableCastCallIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantExplicitArrayCreationIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantExplicitArraySizeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantExplicitNullableCreationIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantExtendsListEntryIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantIfElseBlockIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantInternalIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantNamespaceUsageIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantNullCheckIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantLambdaParameterTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantLambdaSignatureParenthesesIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantLogicalConditionalExpressionOperandIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantNameQualifierIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantNotNullAttributeInNonNullableTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantObjectCreationArgumentListIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantObjectOrCollectionInitializerIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantOverridenMemberIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantParamsIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantPrivateIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantThisIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantToStringIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantWhereWithPredicateIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReferenceEqualsCalledWithValueTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReferenceToStaticMemberViaDerivedTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantStringToCharArrayCallIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantTernaryExpressionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantThisQualifierIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantToStringCallForValueTypesIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantToStringCallIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantUnsafeContextIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReferenceEqualsWithValueTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RemoveRedundantOrStatementIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithFirstOrDefaultIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithLastOrDefaultIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithOfTypeAnyIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithOfTypeCountIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithOfTypeFirstIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithOfTypeFirstOrDefaultIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithOfTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithOfTypeLastIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithOfTypeLastOrDefaultIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithOfTypeLongCountIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithOfTypeSingleIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithOfTypeSingleOrDefaultIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithOfTypeWhereIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithSimpleAssignmentIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithSingleCallToAnyIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithSingleCallToCountIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithSingleCallToFirstIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithSingleCallToFirstOrDefaultIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithSingleCallToLastIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithSingleCallToLastOrDefaultIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithSingleCallToLongCountIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithSingleCallToSingleIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithSingleCallToSingleOrDefaultIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithStringIsNullOrEmptyIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ResultOfAsyncCallShouldNotBeIgnoredIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.SimplifyAnonymousMethodToDelegateIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.StaticConstructorAccessModifierIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RewriteIfReturnToReturnIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.SameGuardConditionExpressionInIfelseBranchesIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.SealedMemberInSealedClassIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.SimplifyConditionalTernaryExpressionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.SimplifyLinqExpressionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.StaticConstructorParameterIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.StaticFieldInGenericTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.StringIsNullOrEmptyIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ThreadStaticOnInstanceFieldIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.TypeParameterNotUsedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.StringCompareIsCultureSpecificIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.StringCompareToIsCultureSpecificIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.StringEndsWithIsCultureSpecificIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.StringIndexOfIsCultureSpecificIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.StringLastIndexOfIsCultureSpecificIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.StringStartsWithIsCultureSpecificIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.SuggestUseVarKeywordEvidentIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ThreadStaticAtInstanceFieldIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UnassignedReadonlyFieldIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UnmatchedSizeSpecificationInArrayCreationIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UnreachableCodeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseBlockInsteadColonIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseVarKeywordIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ValueParameterUnusedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UnusedAnonymousMethodSignatureIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UnusedLabelIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UnusedParameterIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UnusedTypeParameterIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseArrayCreationExpressionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseIsOperatorIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseMethodAnyIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseMethodIsInstanceOfTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseOfMemberOfNullReference" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ValueParameterNotUsedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.XmlDocIssue" />
</Path>
<Path path = "/SharpDevelop/ViewContent/TextEditor/C#/ContextActions">
<!-- In this path, you can add SD context action providers using <Class>,
or you can add NR5 code action providers using <CSharpCodeActionProvider> -->
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AbstractAndVirtualConversionAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddAnotherAccessorAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddArgumentNameAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddBracesAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddCatchTypeAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddExceptionDescriptionAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddOptionalParameterToInvocationAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddUsingAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AutoLinqSumAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ChangeAccessModifierAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CheckIfParameterIsNullAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ComputeConstantValueAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertAnonymousDelegateToLambdaAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertAssignmentToIfAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertAsToCastAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertBitwiseFlagComparisonToHasFlagsAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertCastToAsAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertConditionalToIfAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertDecToHexAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertDoWhileToWhileLoopAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertEqualityOperatorToEqualsAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertEqualsToEqualityOperatorAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertExplicitToImplicitImplementationAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertForeachToForAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertForToWhileAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertHasFlagsToBitwiseFlagComparisonAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertHexToDecAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertIfToConditionalAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertIfToSwitchAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertIfStatementToConditionalTernaryExpressionAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertIfStatementToNullCoalescingExpressionAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertIfStatementToReturnStatementAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertIfStatementToSwitchStatementAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertImplicitToExplicitImplementationAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertInitializerToExplicitInitializationsAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertLambdaBodyExpressionToStatementAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertLambdaBodyStatementToExpressionAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertLambdaToAnonymousDelegateAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertMethodGroupToAnonymousMethodAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertMethodGroupToLambdaAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertMultiplyToShiftAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertNullCoalescingToConditionalExpressionAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertReturnStatementToIfAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertShiftToMultiplyAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertSwitchToIfAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertToInitializerAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertWhileToDoWhileLoopAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CopyCommentsFromBase" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CopyCommentsFromInterface" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateBackingStoreAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateChangedEvent" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateChangedEventAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateClassDeclarationAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateConstructorDeclarationAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateCustomEventImplementationAction" />
@ -274,11 +425,14 @@ @@ -274,11 +425,14 @@
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateMethodDeclarationAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateOverloadWithoutParameterAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreatePropertyAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CS1520MethodMustHaveAReturnTypeAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.DeclareLocalVariableAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExtensionMethodInvocationToStaticMethodInvocationAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExtractAnonymousMethodAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExtractFieldAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExtractMethod.ExtractMethodAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExtractWhileConditionToInternalIfStatementAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.FlipEqualsTargetAndArgumentAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.FlipOperatorArgumentsAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.GenerateGetterAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.GeneratePropertyAction" />
@ -286,31 +440,43 @@ @@ -286,31 +440,43 @@
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ImplementAbstractMembersAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ImplementInterfaceAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ImplementInterfaceExplicitAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ImplementNotImplementedProperty" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.InlineLocalVariableAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.InsertAnonymousMethodSignatureAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.IntroduceConstantAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.IntroduceFormatItemAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.InvertConditionalOperatorAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.InvertIfAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.InvertIfAndSimplify" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.InvertLogicalExpressionAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.IterateViaForeachAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.JoinDeclarationAndAssignmentAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.JoinStringAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.LinqFluentToQueryAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.LinqQueryToFluentAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.MergeNestedIfAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.MoveToOuterScopeAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.NegateIsExpressionAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.NegateRelationalExpressionAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.PutInsideUsingAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.RemoveBackingStoreAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.RemoveBracesAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.RemoveRedundantCatchTypeAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.RemoveRegionAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceAssignmentWithPostfixExpressionAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceEmptyStringAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceOperatorAssignmentWithAssignmentAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplacePostfixExpressionWithAssignmentAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceWithOperatorAssignmentAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReverseDirectionForForLoopAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.SimplifyIfFlowAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.SimplifyIfInLoopsFlowAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.SortUsingsAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.SplitDeclarationAndAssignmentAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.SplitDeclarationListAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.SplitIfAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.SplitStringAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.StaticMethodInvocationToExtensionMethodInvocationAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseAsAndNullCheckAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseExplicitTypeAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseStringFormatAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseVarKeywordAction" />

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

@ -169,6 +169,11 @@ @@ -169,6 +169,11 @@
<Name>ICSharpCode.AvalonEdit</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp.Refactoring\ICSharpCode.NRefactory.CSharp.Refactoring.csproj">
<Project>{2A705FC6-1A9E-4941-9E47-254D79F2D9D5}</Project>
<Name>ICSharpCode.NRefactory.CSharp.Refactoring</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>

201
src/AddIns/BackendBindings/CSharpBinding/Project/Src/CodeManipulation.cs

@ -13,6 +13,7 @@ using ICSharpCode.NRefactory; @@ -13,6 +13,7 @@ using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.CSharp;
using ICSharpCode.NRefactory.Editor;
using ICSharpCode.NRefactory.PatternMatching;
using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor;
@ -153,78 +154,152 @@ namespace CSharpBinding @@ -153,78 +154,152 @@ namespace CSharpBinding
if (currentStatement.Parent == null)
return;
var siblings = currentStatement.Parent.Children.Where(c => (c.Role.GetType() == currentStatement.Role.GetType())).ToList();
int currentStatementPos = siblings.IndexOf(currentStatement);
int currentStatementStartPos = siblings.IndexOf(currentStatement);
int currentStatementEndPos = currentStatementStartPos;
int swapIndex = currentStatementPos + (direction == MoveStatementDirection.Down ? 1 : -1);
if (swapIndex < 0 || swapIndex >= siblings.Count)
return;
AstNode swapSibling = siblings[swapIndex];
AstNode swapStartSibling = null;
AstNode swapEndSibling = null;
// Expand selection to full line, if there is more than one statement in it, and set swapped sibling appropriately
AstNode tempSwapSibling = currentStatement;
int tempSwapIndex = currentStatementPos;
while ((tempSwapIndex == currentStatementPos) || (tempSwapSibling.StartLocation.Line == statementSelection.End.Line)) {
tempSwapIndex++;
if (tempSwapSibling.EndLocation > statementSelection.End)
statementSelection.End = tempSwapSibling.EndLocation;
if (tempSwapIndex >= siblings.Count) {
if (direction == MoveStatementDirection.Down)
return;
else
break;
// Expand selection to full line, if there is more than one statement in it
AstNode currentSelectionStartNode = currentStatement;
while ((currentSelectionStartNode.PrevSibling != null)
&& !(currentSelectionStartNode.PrevSibling is NewLineNode)
&& (currentSelectionStartNode.Parent == currentSelectionStartNode.PrevSibling.Parent)) {
currentSelectionStartNode = currentSelectionStartNode.PrevSibling;
if (currentSelectionStartNode.EndLocation.Line >= statementSelection.Start.Line) {
statementSelection.Start = currentSelectionStartNode.StartLocation;
if (!(currentSelectionStartNode is Comment))
currentStatementStartPos--;
} else {
// This node won't belong to current selection, so go back to next element
currentSelectionStartNode = currentSelectionStartNode.NextSibling;
break;
}
tempSwapSibling = siblings[tempSwapIndex];
if (direction == MoveStatementDirection.Down) {
swapSibling = tempSwapSibling;
swapIndex = tempSwapIndex;
}
AstNode currentSelectionEndNode = currentStatement;
while ((currentSelectionEndNode.NextSibling != null)
&& !(currentSelectionEndNode.NextSibling is NewLineNode)
&& (currentSelectionEndNode.Parent == currentSelectionEndNode.NextSibling.Parent)) {
currentSelectionEndNode = currentSelectionEndNode.NextSibling;
if (currentSelectionEndNode.StartLocation.Line <= statementSelection.End.Line) {
statementSelection.End = currentSelectionEndNode.EndLocation;
if (!(currentSelectionEndNode is Comment))
currentStatementEndPos++;
} else {
// This node won't belong to current selection, so go back to next element
currentSelectionEndNode = currentSelectionEndNode.NextSibling;
break;
}
}
tempSwapSibling = currentStatement;
tempSwapIndex = currentStatementPos;
while ((tempSwapIndex == currentStatementPos) || (tempSwapSibling.EndLocation.Line == statementSelection.Start.Line)) {
tempSwapIndex--;
if (tempSwapSibling.StartLocation < statementSelection.Start)
statementSelection.Start = tempSwapSibling.StartLocation;
if (tempSwapIndex < 0) {
if (direction == MoveStatementDirection.Up)
return;
else
break;
int swapIndex = 0;
if (direction == MoveStatementDirection.Down) {
swapIndex = currentStatementEndPos + 1;
} else {
swapIndex = currentStatementStartPos - 1;
}
Func<AstNode, bool> isAllowedGrandParentNode =
(n => (n is IfElseStatement) || (n is ForStatement) || (n is ForeachStatement) || (n is WhileStatement) || (n is DoWhileStatement));
if (swapIndex < 0) {
// This is the 1st statement in block, so swap it with beginning of the block to get it outside of it
var parentNode = currentStatement.Parent as BlockStatement;
if (parentNode != null) {
var grandParentNode = parentNode.Parent;
if ((grandParentNode != null) && isAllowedGrandParentNode(grandParentNode)) {
// Swap with head of grandparent statement
swapStartSibling = grandParentNode;
swapEndSibling = ((BlockStatement) parentNode).LBraceToken;
}
}
tempSwapSibling = siblings[tempSwapIndex];
if (direction == MoveStatementDirection.Up) {
swapSibling = tempSwapSibling;
swapIndex = tempSwapIndex;
} else if (swapIndex >= siblings.Count) {
// This is the last statement in block, so swap it with block end to get the statement outside of it
var parentNode = currentStatement.Parent as BlockStatement;
if (parentNode != null) {
var grandParentNode = parentNode.Parent;
if ((grandParentNode != null) && isAllowedGrandParentNode(grandParentNode)) {
// Swap with rest of grandparent control statement
swapStartSibling = ((BlockStatement) parentNode).RBraceToken;
swapEndSibling = grandParentNode;
}
}
} else {
// In the middle of current block
swapStartSibling = siblings[swapIndex];
swapEndSibling = swapStartSibling;
// Special handling for swap nodes containing blocks: Move current statement into it
if (swapStartSibling is IfElseStatement) {
var ifElseStatement = swapStartSibling as IfElseStatement;
if (direction == MoveStatementDirection.Up) {
BlockStatement swappedIfElseBlock = ifElseStatement.FalseStatement as BlockStatement;
if (swappedIfElseBlock == null)
swappedIfElseBlock = ifElseStatement.TrueStatement as BlockStatement;
if (swappedIfElseBlock != null) {
swapStartSibling = swappedIfElseBlock.RBraceToken;
}
} else {
BlockStatement swappedIfElseBlock = ifElseStatement.TrueStatement as BlockStatement;
if (swappedIfElseBlock == null)
swappedIfElseBlock = ifElseStatement.TrueStatement as BlockStatement;
if (swappedIfElseBlock != null) {
swapEndSibling = swappedIfElseBlock.LBraceToken;
}
}
} else {
BlockStatement innerBlockStatement = GetInnerBlockOfControlNode(swapStartSibling);
if (innerBlockStatement != null) {
if (direction == MoveStatementDirection.Up) {
swapStartSibling = innerBlockStatement.RBraceToken;
} else {
swapEndSibling = innerBlockStatement.LBraceToken;
}
}
}
}
if ((swapStartSibling == null) || (swapEndSibling == null))
return;
Selection swapSiblingSelection = ExtendSelectionToComments(editor.Document, swapSibling.StartLocation, swapSibling.EndLocation, commentsBlankLines);
Selection swapSiblingSelection = ExtendSelectionToComments(editor.Document, swapStartSibling.StartLocation, swapEndSibling.EndLocation, commentsBlankLines);
if (swapSiblingSelection == null)
swapSiblingSelection = new Selection() { Start = swapSibling.StartLocation, End = swapSibling.EndLocation };
swapSiblingSelection = new Selection() { Start = swapStartSibling.StartLocation, End = swapEndSibling.EndLocation };
// Expand swapSiblingSelection, too, if there are > 1 statements in line
tempSwapSibling = swapSibling;
tempSwapIndex = swapIndex;
if (direction == MoveStatementDirection.Down) {
while ((tempSwapIndex == swapIndex) || (tempSwapSibling.StartLocation.Line == swapSiblingSelection.End.Line)) {
tempSwapIndex++;
if (tempSwapSibling.EndLocation > swapSiblingSelection.End)
swapSiblingSelection.End = tempSwapSibling.EndLocation;
if (tempSwapIndex >= siblings.Count)
if (direction == MoveStatementDirection.Up) {
AstNode tempNode = swapStartSibling;
while ((tempNode.PrevSibling != null) && !(tempNode.PrevSibling is NewLineNode)) {
tempNode = tempNode.PrevSibling;
if (tempNode.EndLocation.Line >= swapSiblingSelection.Start.Line) {
swapSiblingSelection.Start = tempNode.StartLocation;
} else {
break;
tempSwapSibling = siblings[tempSwapIndex];
}
}
} else if (direction == MoveStatementDirection.Up) {
while ((tempSwapIndex == swapIndex) || (tempSwapSibling.EndLocation.Line == swapSiblingSelection.Start.Line)) {
tempSwapIndex--;
if (tempSwapSibling.StartLocation < swapSiblingSelection.Start)
swapSiblingSelection.Start = tempSwapSibling.StartLocation;
if (tempSwapIndex < 0)
} else {
AstNode tempNode = swapEndSibling;
while ((tempNode.NextSibling != null) && !(tempNode.NextSibling is NewLineNode)) {
tempNode = tempNode.NextSibling;
if (tempNode.StartLocation.Line <= swapSiblingSelection.End.Line) {
swapSiblingSelection.End = tempNode.EndLocation;
} else {
break;
tempSwapSibling = siblings[tempSwapIndex];
}
}
}
// Preserve the indentation of moved statement
if (statementSelection.Start.Column > swapSiblingSelection.Start.Column) {
statementSelection = new Selection {
Start = new TextLocation(statementSelection.Start.Line, swapSiblingSelection.Start.Column),
End = statementSelection.End
};
} else if (statementSelection.Start.Column < swapSiblingSelection.Start.Column) {
swapSiblingSelection = new Selection {
Start = new TextLocation(swapSiblingSelection.Start.Line, statementSelection.Start.Column),
End = swapSiblingSelection.End
};
}
// Swap them
string currentNodeText = editor.Document.GetText(statementSelection.Start, statementSelection.End);
SwapText(editor.Document, statementSelection.Start, statementSelection.End, swapSiblingSelection.Start, swapSiblingSelection.End);
@ -239,6 +314,24 @@ namespace CSharpBinding @@ -239,6 +314,24 @@ namespace CSharpBinding
}
}
BlockStatement GetInnerBlockOfControlNode(AstNode node)
{
if (node is ForStatement) {
return ((ForStatement) node).EmbeddedStatement as BlockStatement;
}
if (node is ForeachStatement) {
return ((ForeachStatement) node).EmbeddedStatement as BlockStatement;
}
if (node is WhileStatement) {
return ((WhileStatement) node).EmbeddedStatement as BlockStatement;
}
if (node is DoWhileStatement) {
return ((DoWhileStatement) node).EmbeddedStatement as BlockStatement;
}
return null;
}
Selection TryExtendSelectionToComments(IDocument document, Selection selection, IList<AstNode> commentsBlankLines)
{
var extendedToComments = ExtendSelectionToComments(document, selection, commentsBlankLines);

14
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/CSharpCompletionDataFactory.cs

@ -46,7 +46,7 @@ namespace CSharpBinding.Completion @@ -46,7 +46,7 @@ namespace CSharpBinding.Completion
};
}
ICompletionData ICompletionDataFactory.CreateTypeCompletionData(IType type, bool showFullName, bool isInAttributeContext)
ICompletionData ICompletionDataFactory.CreateTypeCompletionData(IType type, bool showFullName, bool isInAttributeContext, bool addForTypeCreation)
{
var data = new TypeCompletionData(type);
if (showFullName) {
@ -135,7 +135,7 @@ namespace CSharpBinding.Completion @@ -135,7 +135,7 @@ namespace CSharpBinding.Completion
return completionContext.ParseInformation.SyntaxTree.ConditionalSymbols.Select(def => new CompletionData(def));
}
ICompletionData ICompletionDataFactory.CreateImportCompletionData(IType type, bool useFullName)
ICompletionData ICompletionDataFactory.CreateImportCompletionData(IType type, bool useFullName, bool addForTypeCreation)
{
ITypeDefinition typeDef = type.GetDefinition();
if (typeDef != null)
@ -143,6 +143,16 @@ namespace CSharpBinding.Completion @@ -143,6 +143,16 @@ namespace CSharpBinding.Completion
else
throw new InvalidOperationException("Should never happen");
}
ICompletionData ICompletionDataFactory.CreateFormatItemCompletionData(string format, string description, object example)
{
return new CompletionData("TODO: format item completion");
}
ICompletionData ICompletionDataFactory.CreateXmlDocCompletionData(string tag, string description, string tagInsertionText)
{
return new CompletionData("TODO: XmlDoc completion");
}
#endregion
#region IParameterCompletionDataFactory implementation

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

@ -186,7 +186,7 @@ namespace CSharpBinding.Parser @@ -186,7 +186,7 @@ namespace CSharpBinding.Parser
typeof(Uri).Assembly,
typeof(Enumerable).Assembly
};
return assemblies.Select(asm => new CecilLoader().LoadAssemblyFile(asm.Location)).ToArray();
return assemblies.Select(asm => SD.AssemblyParserService.GetAssembly(FileName.Create(asm.Location))).ToArray();
});
public ICompilation CreateCompilationForSingleFile(FileName fileName, IUnresolvedFile unresolvedFile)

8
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/CSharpCodeActionProviderDoozer.cs

@ -37,8 +37,8 @@ namespace CSharpBinding.Refactoring @@ -37,8 +37,8 @@ namespace CSharpBinding.Refactoring
LoggingService.Error("[ContextAction] attribute is missing on " + providerType.FullName);
return null;
}
if (!typeof(ICodeActionProvider).IsAssignableFrom(providerType)) {
LoggingService.Error(providerType.FullName + " does nto implement ICodeActionProvider");
if (!typeof(CodeActionProvider).IsAssignableFrom(providerType)) {
LoggingService.Error(providerType.FullName + " does not implement CodeActionProvider");
return null;
}
return new CSharpContextActionProviderWrapper((ContextActionAttribute)attributes[0], providerType);
@ -55,13 +55,13 @@ namespace CSharpBinding.Refactoring @@ -55,13 +55,13 @@ namespace CSharpBinding.Refactoring
this.type = type;
}
ICodeActionProvider codeActionProvider;
CodeActionProvider codeActionProvider;
bool CreateCodeActionProvider()
{
lock (this) {
if (codeActionProvider == null) {
codeActionProvider = (ICodeActionProvider)Activator.CreateInstance(type);
codeActionProvider = (CodeActionProvider)Activator.CreateInstance(type);
}
return true;
}

9
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/CSharpSyntaxIssue.cs

@ -16,11 +16,10 @@ namespace CSharpBinding.Refactoring @@ -16,11 +16,10 @@ namespace CSharpBinding.Refactoring
[IssueDescription("C# syntax error",
Description = "Displays syntax errors",
Category = IssueCategories.CompilerErrors,
Severity = Severity.Error,
IssueMarker = IssueMarker.Underline)]
public class CSharpSyntaxIssue : ICodeIssueProvider
Severity = Severity.Error)]
public class CSharpSyntaxIssue : CodeIssueProvider
{
public IEnumerable<CodeIssue> GetIssues(BaseRefactoringContext context)
public override IEnumerable<CodeIssue> GetIssues(BaseRefactoringContext context, string subIssue = null)
{
var refactoringContext = context as SDRefactoringContext;
if (refactoringContext == null)
@ -50,7 +49,7 @@ namespace CSharpBinding.Refactoring @@ -50,7 +49,7 @@ namespace CSharpBinding.Refactoring
}
TextLocation end = document.GetLocation(offset + length);
return new CodeIssue(error.Message, begin, end);
return new CodeIssue(begin, end, error.Message);
}
}
}

2
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/EditorScript.cs

@ -81,6 +81,7 @@ namespace CSharpBinding.Refactoring @@ -81,6 +81,7 @@ namespace CSharpBinding.Refactoring
return completedTask;
}
/*
public override Task InsertWithCursor(string operation, InsertPosition defaultPosition, IEnumerable<AstNode> nodes)
{
AstNode contextNode = context.GetNode();
@ -107,6 +108,7 @@ namespace CSharpBinding.Refactoring @@ -107,6 +108,7 @@ namespace CSharpBinding.Refactoring
}
return completedTask;
}
*/
public override void Dispose()
{

24
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/IssueManager.cs

@ -28,7 +28,7 @@ namespace CSharpBinding.Refactoring @@ -28,7 +28,7 @@ namespace CSharpBinding.Refactoring
public class IssueManager : IDisposable, IContextActionProvider
{
static readonly Lazy<IReadOnlyList<IssueProvider>> issueProviders = new Lazy<IReadOnlyList<IssueProvider>>(
() => AddInTree.BuildItems<ICodeIssueProvider>("/SharpDevelop/ViewContent/TextEditor/C#/IssueProviders", null, false)
() => AddInTree.BuildItems<CodeIssueProvider>("/SharpDevelop/ViewContent/TextEditor/C#/IssueProviders", null, false)
.Select(p => new IssueProvider(p)).ToList());
internal static IReadOnlyList<IssueProvider> IssueProviders {
@ -40,7 +40,7 @@ namespace CSharpBinding.Refactoring @@ -40,7 +40,7 @@ namespace CSharpBinding.Refactoring
public readonly Type ProviderType;
public readonly IssueDescriptionAttribute Attribute;
public IssueProvider(ICodeIssueProvider provider)
public IssueProvider(CodeIssueProvider provider)
{
if (provider == null)
throw new ArgumentNullException("provider");
@ -51,7 +51,7 @@ namespace CSharpBinding.Refactoring @@ -51,7 +51,7 @@ namespace CSharpBinding.Refactoring
if (attributes.Length == 1) {
this.Attribute = (IssueDescriptionAttribute)attributes[0];
defaultSeverity = this.Attribute.Severity;
IsRedundancy = this.Attribute.Category == IssueCategories.Redundancies;
IsRedundancy = this.Attribute.Category == IssueCategories.RedundanciesInCode || this.Attribute.Category == IssueCategories.RedundanciesInDeclarations;
} else {
SD.Log.Warn("Issue provider without attribute: " + ProviderType);
}
@ -62,15 +62,11 @@ namespace CSharpBinding.Refactoring @@ -62,15 +62,11 @@ namespace CSharpBinding.Refactoring
public Severity CurrentSeverity { get; set; }
public bool IsRedundancy { get; set; }
public IssueMarker MarkerType {
get { return Attribute != null ? Attribute.IssueMarker : IssueMarker.Underline; }
}
public IEnumerable<CodeIssue> GetIssues(BaseRefactoringContext context)
{
// use a separate instance for every call, this is necessary
// for thread-safety
var provider = (ICodeIssueProvider)Activator.CreateInstance(ProviderType);
var provider = (CodeIssueProvider)Activator.CreateInstance(ProviderType);
return provider.GetIssues(context);
}
}
@ -119,8 +115,9 @@ namespace CSharpBinding.Refactoring @@ -119,8 +115,9 @@ namespace CSharpBinding.Refactoring
public readonly int EndOffset;
public readonly IReadOnlyList<IContextAction> Actions;
public readonly Severity Severity;
public readonly IssueMarker MarkerType;
public InspectionTag(IssueManager manager, IssueProvider provider, ITextSourceVersion inspectedVersion, string description, int startOffset, int endOffset, IEnumerable<CodeAction> actions)
public InspectionTag(IssueManager manager, IssueProvider provider, ITextSourceVersion inspectedVersion, string description, int startOffset, int endOffset, IssueMarker markerType, IEnumerable<CodeAction> actions)
{
this.manager = manager;
this.Provider = provider;
@ -129,6 +126,7 @@ namespace CSharpBinding.Refactoring @@ -129,6 +126,7 @@ namespace CSharpBinding.Refactoring
this.StartOffset = startOffset;
this.EndOffset = endOffset;
this.Severity = provider.CurrentSeverity;
this.MarkerType = markerType;
this.Actions = actions.Select(Wrap).ToList();
}
@ -175,10 +173,13 @@ namespace CSharpBinding.Refactoring @@ -175,10 +173,13 @@ namespace CSharpBinding.Refactoring
marker.MarkerColor = color;
if (!Provider.IsRedundancy)
marker.MarkerTypes = TextMarkerTypes.ScrollBarRightTriangle;
switch (Provider.MarkerType) {
case IssueMarker.Underline:
switch (MarkerType) {
case IssueMarker.WavedLine:
marker.MarkerTypes |= TextMarkerTypes.SquigglyUnderline;
break;
case IssueMarker.DottedLine:
marker.MarkerTypes |= TextMarkerTypes.DottedUnderline;
break;
case IssueMarker.GrayOut:
marker.ForegroundColor = SystemColors.GrayTextColor;
break;
@ -272,6 +273,7 @@ namespace CSharpBinding.Refactoring @@ -272,6 +273,7 @@ namespace CSharpBinding.Refactoring
issue.Description,
context.GetOffset(issue.Start),
context.GetOffset(issue.End),
issue.IssueMarker,
issue.Actions));
}
}

2
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SDRedundantUsingIssue.cs

@ -6,7 +6,7 @@ using ICSharpCode.NRefactory.CSharp.Refactoring; @@ -6,7 +6,7 @@ using ICSharpCode.NRefactory.CSharp.Refactoring;
namespace CSharpBinding.Refactoring
{
public class SDRedundantUsingIssue : RedundantUsingIssue
public class SDRedundantUsingIssue : RedundantUsingDirectiveIssue
{
public SDRedundantUsingIssue()
{

6
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SDRefactoringContext.cs

@ -146,6 +146,12 @@ namespace CSharpBinding.Refactoring @@ -146,6 +146,12 @@ namespace CSharpBinding.Refactoring
}
}
public override string DefaultNamespace {
get {
return string.Empty; // TODO: get namespace from current project
}
}
public override string GetText(int offset, int length)
{
return textSource.GetText(offset, length);

8
src/AddIns/BackendBindings/CSharpBinding/Tests/CSharpBinding.Tests.csproj

@ -81,6 +81,14 @@ @@ -81,6 +81,14 @@
<Project>{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}</Project>
<Name>ICSharpCode.AvalonEdit</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.Cecil\ICSharpCode.NRefactory.Cecil.csproj">
<Project>{B2BBC7BC-837C-40ED-A6DB-D5AE8626212F}</Project>
<Name>ICSharpCode.NRefactory.Cecil</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp.Refactoring\ICSharpCode.NRefactory.CSharp.Refactoring.csproj">
<Project>{2A705FC6-1A9E-4941-9E47-254D79F2D9D5}</Project>
<Name>ICSharpCode.NRefactory.CSharp.Refactoring</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>

27
src/AddIns/BackendBindings/CSharpBinding/Tests/RegistrationTests.cs

@ -21,12 +21,13 @@ namespace CSharpBinding.Tests @@ -21,12 +21,13 @@ namespace CSharpBinding.Tests
public class RegistrationTests
{
Type[] exceptions = {
typeof(MultipleEnumerationIssue), // disabled due to https://github.com/icsharpcode/NRefactory/issues/123
typeof(PossibleMultipleEnumerationIssue), // disabled due to https://github.com/icsharpcode/NRefactory/issues/123
typeof(RedundantAssignmentIssue), // disabled due to https://github.com/icsharpcode/NRefactory/issues/123
typeof(RedundantTypeCastIssue), // disabled due to plenty of false positives (e.g. when cast is necessary for overload resolution)
typeof(RedundantCastIssue), // disabled due to plenty of false positives (e.g. when cast is necessary for overload resolution)
};
Assembly NRCSharp = typeof(ICodeIssueProvider).Assembly;
Assembly NRCSharp = typeof(CodeIssueProvider).Assembly;
Assembly NRCSharpRefactoring = typeof(AddBracesAction).Assembly;
Assembly CSharpBinding = typeof(SDRefactoringContext).Assembly;
AddIn addIn;
@ -37,7 +38,7 @@ namespace CSharpBinding.Tests @@ -37,7 +38,7 @@ namespace CSharpBinding.Tests
Type FindType(string @class)
{
return CSharpBinding.GetType(@class, false) ?? NRCSharp.GetType(@class, true);
return CSharpBinding.GetType(@class, false) ?? NRCSharpRefactoring.GetType(@class, false);
}
[TestFixtureSetUpAttribute]
@ -47,12 +48,22 @@ namespace CSharpBinding.Tests @@ -47,12 +48,22 @@ namespace CSharpBinding.Tests
addIn = AddIn.Load(addInTree, "CSharpBinding.addin");
registeredIssueProviders = addIn.Paths["/SharpDevelop/ViewContent/TextEditor/C#/IssueProviders"].Codons
.Select(c => FindType(c.Properties["class"])).ToList();
NRissueProviders = NRCSharp.ExportedTypes.Where(t => t.GetCustomAttribute<IssueDescriptionAttribute>() != null).ToList();
.Select(c => FindType(c.Properties["class"])).Where(t => t != null).ToList();
NRissueProviders = NRCSharpRefactoring.ExportedTypes.Where(t => t.GetCustomAttribute<IssueDescriptionAttribute>() != null).ToList();
registeredContextActions = addIn.Paths["/SharpDevelop/ViewContent/TextEditor/C#/ContextActions"].Codons
.Select(c => FindType(c.Properties["class"])).ToList();
NRcontextActions = NRCSharp.ExportedTypes.Where(t => t.GetCustomAttribute<ContextActionAttribute>() != null).ToList();
.Select(c => FindType(c.Properties["class"])).Where(t => t != null).ToList();
NRcontextActions = NRCSharpRefactoring.ExportedTypes.Where(t => t.GetCustomAttribute<ContextActionAttribute>() != null).ToList();
}
[Test]
public void NoMissingClasses()
{
var classNames = addIn.Paths["/SharpDevelop/ViewContent/TextEditor/C#/IssueProviders"].Codons
.Concat(addIn.Paths["/SharpDevelop/ViewContent/TextEditor/C#/ContextActions"].Codons)
.Select(c => c.Properties["class"]);
Assert.IsEmpty(classNames.Where(c => FindType(c) == null));
}
[Test]

1
src/AddIns/BackendBindings/FSharpBinding/FsOptions.cs

@ -7,6 +7,7 @@ using System.Windows.Forms; @@ -7,6 +7,7 @@ using System.Windows.Forms;
namespace FSharpBinding
{
[Obsolete("TODO: rewrite me in WPF")]
public class FsOptions : AbstractXmlFormsProjectOptionPanel
{
public override void LoadPanelContents()

27
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonComponentWalker.cs

@ -31,6 +31,7 @@ namespace ICSharpCode.PythonBinding @@ -31,6 +31,7 @@ namespace ICSharpCode.PythonBinding
string componentName = String.Empty;
PythonCodeDeserializer deserializer;
ClassDefinition classDefinition;
bool walkingInitializeComponentMethod;
public PythonComponentWalker(IComponentCreator componentCreator)
{
@ -42,13 +43,13 @@ namespace ICSharpCode.PythonBinding @@ -42,13 +43,13 @@ namespace ICSharpCode.PythonBinding
/// Creates a control either a UserControl or Form from the python code.
/// </summary>
public IComponent CreateComponent(string pythonCode)
{
{
PythonParser parser = new PythonParser();
PythonAst ast = parser.CreateAst(@"Control.py", new StringTextBuffer(pythonCode));
ast.Walk(this);
// Did we find the InitializeComponent method?
if (!FoundInitializeComponentMethod) {
if (component == null) {
throw new PythonComponentWalkerException("Unable to find InitializeComponents method.");
}
return component;
@ -88,14 +89,16 @@ namespace ICSharpCode.PythonBinding @@ -88,14 +89,16 @@ namespace ICSharpCode.PythonBinding
if (reader != null) {
reader.Dispose();
}
walkingInitializeComponentMethod = true;
node.Body.Walk(this);
walkingInitializeComponentMethod = false;
}
return false;
}
public override bool Walk(AssignmentStatement node)
{
if (!FoundInitializeComponentMethod) {
{
if (!walkingInitializeComponentMethod) {
return false;
}
@ -120,7 +123,7 @@ namespace ICSharpCode.PythonBinding @@ -120,7 +123,7 @@ namespace ICSharpCode.PythonBinding
public override bool Walk(ConstantExpression node)
{
if (!FoundInitializeComponentMethod) {
if (!walkingInitializeComponentMethod) {
return false;
}
@ -129,8 +132,8 @@ namespace ICSharpCode.PythonBinding @@ -129,8 +132,8 @@ namespace ICSharpCode.PythonBinding
}
public override bool Walk(CallExpression node)
{
if (!FoundInitializeComponentMethod) {
{
if (!walkingInitializeComponentMethod) {
return false;
}
@ -144,7 +147,7 @@ namespace ICSharpCode.PythonBinding @@ -144,7 +147,7 @@ namespace ICSharpCode.PythonBinding
public override bool Walk(NameExpression node)
{
if (!FoundInitializeComponentMethod) {
if (!walkingInitializeComponentMethod) {
return false;
}
@ -159,7 +162,7 @@ namespace ICSharpCode.PythonBinding @@ -159,7 +162,7 @@ namespace ICSharpCode.PythonBinding
/// </summary>
public override bool Walk(AugmentedAssignStatement node)
{
if (!FoundInitializeComponentMethod) {
if (!walkingInitializeComponentMethod) {
return false;
}
@ -176,7 +179,7 @@ namespace ICSharpCode.PythonBinding @@ -176,7 +179,7 @@ namespace ICSharpCode.PythonBinding
PropertyDescriptor propertyDescriptor = componentCreator.GetEventProperty(eventDescriptor);
propertyDescriptor.SetValue(currentComponent, eventHandlerName);
return false;
}
}
/// <summary>
/// Walks the binary expression which is the right hand side of an assignment statement.
@ -357,10 +360,6 @@ namespace ICSharpCode.PythonBinding @@ -357,10 +360,6 @@ namespace ICSharpCode.PythonBinding
return null;
}
bool FoundInitializeComponentMethod {
get { return component != null; }
}
/// <summary>
/// Returns true if the expression is of the form:
///

62
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/AssignmentAfterFormClassTests.cs

@ -0,0 +1,62 @@ @@ -0,0 +1,62 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Resources;
using ICSharpCode.Core;
using NUnit.Framework;
namespace PythonBinding.Tests.Designer
{
/// <summary>
/// Tests that only the InitializeComponents method is processed
/// when walking the AST.
/// </summary>
[TestFixture]
public class AssignmentAfterFormClassTests : LoadFormTestFixtureBase
{
public override void BeforeSetUpFixture()
{
var rm = new ResourceManager("PythonBinding.Tests.Strings", GetType().Assembly);
ResourceService.RegisterNeutralStrings(rm);
}
public override string PythonCode {
get {
return
"import clr\r\n" +
"clr.AddReference('System.Windows.Forms')\r\n" +
"clr.AddReference('System.Drawing')\r\n" +
"\r\n" +
"import System.Drawing\r\n" +
"import System.Windows.Forms\r\n" +
"\r\n" +
"from System.Drawing import *\r\n" +
"from System.Windows.Forms import *\r\n" +
"\r\n" +
"class MainForm(System.Windows.Forms.Form):\r\n" +
" def __init__(self):\r\n" +
" self.InitializeComponent()\r\n" +
" \r\n" +
" def InitializeComponent(self):\r\n" +
" self.SuspendLayout()\r\n" +
" # \r\n" +
" # MainForm\r\n" +
" # \r\n" +
" self.ClientSize = System.Drawing.Size(300, 400)\r\n" +
" self.Name = \"MainForm\"\r\n" +
" self.ResumeLayout(False)\r\n" +
"\r\n" +
"test = MainForm()\r\n" +
"Application.Run(test)\r\n" +
"\r\n";
}
}
[Test]
public void MainFormName()
{
Assert.AreEqual("MainForm", Form.Name);
}
}
}

1
src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj

@ -183,6 +183,7 @@ @@ -183,6 +183,7 @@
<Compile Include="Converter\VBStringConcatTestFixture.cs" />
<Compile Include="Converter\WhileLoopConversionTestFixture.cs" />
<Compile Include="Converter\XmlDocCommentConversionTestFixture.cs" />
<Compile Include="Designer\AssignmentAfterFormClassTests.cs" />
<Compile Include="Designer\CallBeginInitOnLoadTestFixture.cs" />
<Compile Include="Designer\ConvertCustomClassUsingTypeConverterTestFixture.cs" />
<Compile Include="Designer\CursorTypeResolutionTestFixture.cs" />

BIN
src/AddIns/BackendBindings/Python/RequiredLibraries/Chiron.exe

Binary file not shown.

BIN
src/AddIns/BackendBindings/Python/RequiredLibraries/DLLs/IronPython.Wpf.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Python/RequiredLibraries/IronPython.Modules.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Python/RequiredLibraries/IronPython.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Dynamic.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Scripting.Metadata.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Scripting.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Python/RequiredLibraries/ipy.exe

Binary file not shown.

BIN
src/AddIns/BackendBindings/Python/RequiredLibraries/ipyw.exe

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/Chiron.exe

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/IronRuby.Libraries.Yaml.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/IronRuby.Libraries.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/IronRuby.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Dynamic.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.Metadata.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/ir.exe

Binary file not shown.

1
src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/ApplicationSettingsPanel.cs

@ -10,6 +10,7 @@ using ICSharpCode.SharpDevelop.Project; @@ -10,6 +10,7 @@ using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.WixBinding
{
[Obsolete("TODO: rewrite me in WPF")]
public class ApplicationSettingsPanel : AbstractXmlFormsProjectOptionPanel
{
public override void LoadPanelContents()

1
src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/CompilerParametersPanel.cs

@ -9,6 +9,7 @@ using StringPair = System.Collections.Generic.KeyValuePair<System.String, System @@ -9,6 +9,7 @@ using StringPair = System.Collections.Generic.KeyValuePair<System.String, System
namespace ICSharpCode.WixBinding
{
[Obsolete("TODO: rewrite me in WPF")]
public class CompilerParametersPanel : AbstractXmlFormsProjectOptionPanel
{
public override void LoadPanelContents()

1
src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/PreprocessorVariablesPanel.cs

@ -6,6 +6,7 @@ using ICSharpCode.SharpDevelop.Gui.OptionPanels; @@ -6,6 +6,7 @@ using ICSharpCode.SharpDevelop.Gui.OptionPanels;
namespace ICSharpCode.WixBinding
{
[Obsolete("TODO: rewrite me in WPF")]
public class PreprocessorVariablesPanel : AbstractXmlFormsProjectOptionPanel
{
public override void LoadPanelContents()

1
src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/SemicolonSeparatedNameValueListBinding.cs

@ -11,6 +11,7 @@ namespace ICSharpCode.WixBinding @@ -11,6 +11,7 @@ namespace ICSharpCode.WixBinding
/// list of name/value pairs separated by a semicolon.
/// (e.g. "DATADIR=C:\projects\data; SRCDIR=C:\projects\src")
/// </summary>
[Obsolete("XML Forms are obsolete")]
public class SemicolonSeparatedNameValueListBinding : ConfigurationGuiBinding
{
NameValueListEditor editor;

4
src/AddIns/BackendBindings/XamlBinding/XamlBinding.Tests/XamlBinding.Tests.csproj

@ -93,6 +93,10 @@ @@ -93,6 +93,10 @@
<Project>{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}</Project>
<Name>ICSharpCode.AvalonEdit</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.Cecil\ICSharpCode.NRefactory.Cecil.csproj">
<Project>{B2BBC7BC-837C-40ED-A6DB-D5AE8626212F}</Project>
<Name>ICSharpCode.NRefactory.Cecil</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>

28
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCompletionItem.cs

@ -194,8 +194,6 @@ namespace ICSharpCode.XamlBinding @@ -194,8 +194,6 @@ namespace ICSharpCode.XamlBinding
}
string headerText;
bool descriptionCreated;
string description;
public object Header {
get {
@ -210,17 +208,7 @@ namespace ICSharpCode.XamlBinding @@ -210,17 +208,7 @@ namespace ICSharpCode.XamlBinding
}
public object Content {
get {
// if (!descriptionCreated) {
// string entityDoc = ctor.Documentation;
// if (!string.IsNullOrEmpty(entityDoc)) {
// description = CodeCompletionItem.ConvertDocumentation(entityDoc);
// }
// descriptionCreated = true;
// }
// return description;
return null;
}
get { return ctor.Documentation; }
}
}
@ -228,8 +216,6 @@ namespace ICSharpCode.XamlBinding @@ -228,8 +216,6 @@ namespace ICSharpCode.XamlBinding
{
string insightText;
string headerText;
string description;
bool descriptionCreated;
IMember member;
public MemberInsightItem(IMember member, string insightText)
@ -249,17 +235,7 @@ namespace ICSharpCode.XamlBinding @@ -249,17 +235,7 @@ namespace ICSharpCode.XamlBinding
}
public object Content {
get {
// if (!descriptionCreated) {
// string entityDoc = member.Documentation;
// if (!string.IsNullOrEmpty(entityDoc)) {
// description = CompletionItem.ConvertDocumentation(entityDoc);
// }
// descriptionCreated = true;
// }
// return description;
return null;
}
get { return member.Documentation; }
}
}
}

56
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCompletionItemList.cs

@ -60,40 +60,38 @@ namespace ICSharpCode.XamlBinding @@ -60,40 +60,38 @@ namespace ICSharpCode.XamlBinding
context.EndOffset++;
}
if (item is XamlCompletionItem) {
if (item is XamlCompletionItem && !item.Text.EndsWith(":", StringComparison.Ordinal)) {
XamlCompletionItem cItem = item as XamlCompletionItem;
if (cItem.Entity is IProperty || cItem.Entity is IEvent) {
if (xamlContext.Description == XamlContextDescription.InTag) {
context.Editor.Document.Insert(context.EndOffset, "=\"\"");
context.CompletionCharHandled = context.CompletionChar == '=';
context.Editor.Caret.Offset--;
new XamlCodeCompletionBinding().CtrlSpace(context.Editor);
} else if (xamlContext.Description == XamlContextDescription.InMarkupExtension && !string.IsNullOrEmpty(xamlContext.RawAttributeValue)) {
string valuePart = xamlContext.RawAttributeValue.Substring(0, xamlContext.ValueStartOffset);
AttributeValue value = MarkupExtensionParser.ParseValue(valuePart);
if (value != null && !value.IsString) {
var markup = Utils.GetMarkupExtensionAtPosition(value.ExtensionValue, context.Editor.Caret.Offset);
if (markup.NamedArguments.Count > 0 || markup.PositionalArguments.Count > 0) {
int oldOffset = context.Editor.Caret.Offset;
context.Editor.Caret.Offset = context.StartOffset;
string word = context.Editor.GetWordBeforeCaret().TrimEnd();
int spaces = CountWhiteSpacesAtEnd(context.Editor.GetWordBeforeCaret());
int typeNameStart = markup.ExtensionType.IndexOf(':') + 1;
if (!(word == "." || word == "," || word == ":") && markup.ExtensionType.Substring(typeNameStart, markup.ExtensionType.Length - typeNameStart) != word) {
context.Editor.Document.Replace(context.Editor.Caret.Offset - spaces, spaces, ", ");
oldOffset += (2 - spaces);
}
context.Editor.Caret.Offset = oldOffset;
if (xamlContext.Description == XamlContextDescription.InTag) {
context.Editor.Document.Insert(context.EndOffset, "=\"\"");
context.CompletionCharHandled = context.CompletionChar == '=';
context.Editor.Caret.Offset--;
new XamlCodeCompletionBinding().CtrlSpace(context.Editor);
} else if (xamlContext.Description == XamlContextDescription.InMarkupExtension && !string.IsNullOrEmpty(xamlContext.RawAttributeValue)) {
string valuePart = xamlContext.RawAttributeValue.Substring(0, xamlContext.ValueStartOffset);
AttributeValue value = MarkupExtensionParser.ParseValue(valuePart);
if (value != null && !value.IsString) {
var markup = Utils.GetMarkupExtensionAtPosition(value.ExtensionValue, context.Editor.Caret.Offset);
if (markup.NamedArguments.Count > 0 || markup.PositionalArguments.Count > 0) {
int oldOffset = context.Editor.Caret.Offset;
context.Editor.Caret.Offset = context.StartOffset;
string word = context.Editor.GetWordBeforeCaret().TrimEnd();
int spaces = CountWhiteSpacesAtEnd(context.Editor.GetWordBeforeCaret());
int typeNameStart = markup.ExtensionType.IndexOf(':') + 1;
if (!(word == "." || word == "," || word == ":") && markup.ExtensionType.Substring(typeNameStart, markup.ExtensionType.Length - typeNameStart) != word) {
context.Editor.Document.Replace(context.Editor.Caret.Offset - spaces, spaces, ", ");
oldOffset += (2 - spaces);
}
context.Editor.Caret.Offset = oldOffset;
}
if (cItem.Text.EndsWith("=", StringComparison.OrdinalIgnoreCase))
new XamlCodeCompletionBinding().CtrlSpace(context.Editor);
}
if (cItem.Text.EndsWith("=", StringComparison.OrdinalIgnoreCase))
new XamlCodeCompletionBinding().CtrlSpace(context.Editor);
}
}

56
src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin

@ -75,6 +75,16 @@ @@ -75,6 +75,16 @@
label = "${res:MainWindow.Windows.Debug.DebugExecutable}"
class = "Debugger.AddIn.DebugExecutableMenuCommand"/>
</Condition>
<!-- <MenuItem id="AddExpressionBreakpoint"
insertafter="Toggle Breakpoint"
label = "${res:MainWindow.Windows.Debug.AddExpressionBreakpoint}"
shortcut="Shift|F7"
class = "Debugger.AddIn.AddExpressionBreakpointCommand"/>-->
<MenuItem id="AddWatchExpression"
insertafter="AddExpressionBreakpoint"
label = "${res:MainWindow.Windows.Debug.AddWatchExpression}"
shortcut="Ctrl|F7"
class = "Debugger.AddIn.AddWatchExpressionCommand"/>
</Path>
<Path name="/SharpDevelop/Pads/ClassBrowser/Toolbar">
@ -132,17 +142,11 @@ @@ -132,17 +142,11 @@
<Pad id = "WatchPad"
category = "Debugger"
title = "${res:MainWindow.Windows.Debug.Watch}"
icon = "PadIcons.LocalVariables"
icon = "PadIcons.Watches"
class = "ICSharpCode.SharpDevelop.Gui.Pads.WatchPad"
defaultPosition = "Bottom, Hidden" />
</Path>
<Path name ="/SharpDevelop/Pads/WatchPad/ContextMenu">
<MenuItem id="AddWatch" label="${res:MainWindow.Windows.Debug.Watch.AddWatch}" class="Debugger.AddIn.AddWatchCommand" />
<MenuItem id="RemoveWatch" label="${res:MainWindow.Windows.Debug.Watch.RemoveWatch}" class="Debugger.AddIn.RemoveWatchCommand" />
<MenuItem id="ClearWatches" label="${res:MainWindow.Windows.Debug.Watch.RemoveAll}" class="Debugger.AddIn.ClearWatchesCommand" />
</Path>
<Path name = "/SharpDevelop/Dialogs/OptionsDialog">
<OptionPanel id = "Debugging"
label = "${res:Dialog.Options.IDEOptions.Debugging}"
@ -169,7 +173,8 @@ @@ -169,7 +173,8 @@
</Path>
<Path name="/SharpDevelop/TreeNodeFactories">
<Class id="DebuggerTreeNodesFactory" class="ICSharpCode.SharpDevelop.Gui.Pads.DebuggerTreeNodesFactory" />
<Class id="DebuggerTreeNodesFactory"
class="ICSharpCode.SharpDevelop.Gui.Pads.DebuggerTreeNodesFactory" />
</Path>
<Path name = "/SharpDevelop/Services/DebuggerService/ModuleContextMenu">
@ -178,4 +183,39 @@ @@ -178,4 +183,39 @@
icon = "Icons.16x16.AssemblyFromFile"
class = "ICSharpCode.SharpDevelop.Gui.Pads.AddModuleToWorkspaceCommand"/>
</Path>
<Path name="/AddIns/Debugger/Tooltips/ContextMenu/TreeNode">
<MenuItem id="Copy"
label="${res:MainWindow.Windows.Debug.LocalVariables.CopyToClipboard}"
icon="Icons.16x16.CopyIcon"
class="Debugger.AddIn.TreeModel.CopyCommand" />
</Path>
<Path name="/AddIns/Debugger/Tooltips/ContextMenu/ErrorNode">
<MenuItem id="ShowFullError"
label="${res:MainWindow.Windows.Debug.LocalVariables.ShowFullError}"
class="Debugger.AddIn.TreeModel.ShowFullErrorCommand" />
<Include path="/AddIns/Debugger/Tooltips/ContextMenu/TreeNode" />
</Path>
<Path name="/AddIns/Debugger/Tooltips/ContextMenu/ValueNode">
<Include path="/AddIns/Debugger/Tooltips/ContextMenu/TreeNode" />
</Path>
<Path name="/SharpDevelop/Pads/WatchPad/ToolBar">
<ToolbarItem id="AddWatch"
icon="Icons.16x16.WatchAdd"
tooltip="${res:MainWindow.Windows.Debug.Watch.AddWatch}"
class="Debugger.AddIn.AddWatchCommand" />
<ToolbarItem id="RemoveWatch"
icon="Icons.16x16.WatchDelete"
tooltip="${res:MainWindow.Windows.Debug.Watch.RemoveWatch}"
class="Debugger.AddIn.RemoveWatchCommand" />
<ToolbarItem type="Separator" />
<ToolbarItem id="ClearWatches"
icon="Icons.16x16.WatchesDelete"
tooltip="${res:MainWindow.Windows.Debug.Watch.RemoveAll}"
class="Debugger.AddIn.ClearWatchesCommand" />
<ToolbarItem type="Separator" />
</Path>
</AddIn>

5
src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.csproj

@ -142,8 +142,11 @@ @@ -142,8 +142,11 @@
<Compile Include="Service\ExecuteProcessWindow.xaml.cs">
<DependentUpon>ExecuteProcessWindow.xaml</DependentUpon>
</Compile>
<Compile Include="Tooltips\DebuggerTooltipControl.xaml.cs" />
<Compile Include="Tooltips\DebuggerTooltipControl.xaml.cs">
<DependentUpon>DebuggerTooltipControl.xaml</DependentUpon>
</Compile>
<Compile Include="Tooltips\VisualizerPicker.cs" />
<Compile Include="TreeModel\Commands.cs" />
<Compile Include="TreeModel\SharpTreeNodeAdapter.cs" />
<Compile Include="TreeModel\TreeNode.cs" />
<Compile Include="Visualizers\Commands\ExpressionVisualizerCommand.cs" />

6
src/AddIns/Debugger/Debugger.AddIn/NRefactory/ExpressionEvaluationVisitor.cs

@ -300,17 +300,17 @@ namespace Debugger.AddIn @@ -300,17 +300,17 @@ namespace Debugger.AddIn
Value Visit(TypeResolveResult result)
{
throw new GetValueException("Types not supported!");
throw new GetValueException("Error: Types not supported.");
}
Value Visit(UnknownMemberResolveResult result)
{
throw new GetValueException("Member not found!");
throw new GetValueException("Error: Member '{0}' not found.", result.MemberName);
}
Value Visit(UnknownIdentifierResolveResult result)
{
throw new GetValueException("Identifier not found!");
throw new GetValueException("Error: Identifier '{0}' not declared.", result.Identifier);
}
Value Visit(ArrayAccessResolveResult result)

35
src/AddIns/Debugger/Debugger.AddIn/Pads/AutoCompleteTextBox.cs

@ -28,7 +28,7 @@ namespace Debugger.AddIn.Pads.Controls @@ -28,7 +28,7 @@ namespace Debugger.AddIn.Pads.Controls
public static readonly DependencyProperty IsEditableProperty =
DependencyProperty.Register("IsEditable", typeof(bool), typeof(AutoCompleteTextBox),
new FrameworkPropertyMetadata(true, IsEditableChanged));
new FrameworkPropertyMetadata(true, IsEditableChanged));
public string Text {
get { return (string)GetValue(TextProperty); }
@ -65,23 +65,30 @@ namespace Debugger.AddIn.Pads.Controls @@ -65,23 +65,30 @@ namespace Debugger.AddIn.Pads.Controls
this.editor.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden;
this.editor.TextArea.GotKeyboardFocus += delegate {
this.Background = Brushes.White;
this.Foreground = Brushes.Black;
};
this.editor.TextArea.LostKeyboardFocus += delegate {
this.Background = Brushes.Transparent;
this.ClearValue(ForegroundProperty);
this.Text = this.editor.Text;
this.editor.Select(0, 0);
this.editorAdapter.ClearSelection();
};
this.editor.TextArea.PreviewKeyDown += editor_TextArea_PreviewKeyDown;
this.editor.TextArea.TextEntered += editor_TextArea_TextEntered;
this.Content = this.editor.TextArea;
HorizontalContentAlignment = HorizontalAlignment.Stretch;
VerticalContentAlignment = VerticalAlignment.Stretch;
}
void editor_TextArea_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return || e.Key == Key.Escape) {
if (e.Key == Key.Return)
if (e.Key == Key.Return) {
this.Text = this.editor.Text;
editor.SelectionStart = this.Text.Length;
}
e.Handled = true;
}
@ -99,25 +106,31 @@ namespace Debugger.AddIn.Pads.Controls @@ -99,25 +106,31 @@ namespace Debugger.AddIn.Pads.Controls
string language = ProjectService.CurrentProject == null ? "C#" : ProjectService.CurrentProject.Language;
#warning reimplement this!
// NRefactoryResolver resolver = new NRefactoryResolver(LanguageProperties.GetLanguage(language));
//
//
// var seg = frame.NextStatement;
//
//
// var expressionFinder = ParserService.GetExpressionFinder(seg.Filename);
// var info = ParserService.GetParseInformation(seg.Filename);
//
//
// string text = ParserService.GetParseableFileContent(seg.Filename).Text;
//
//
// int currentOffset = this.editor.CaretOffset;
//
//
// var expr = expressionFinder.FindExpression(currentText, currentOffset);
//
//
// expr.Region = new DomRegion(seg.StartLine, seg.StartColumn, seg.EndLine, seg.EndColumn);
//
//
// var rr = resolver.Resolve(expr, info, text);
//
//
// if (rr != null) {
// editorAdapter.ShowCompletionWindow(new DotCodeCompletionItemProvider().GenerateCompletionListForResolveResult(rr, expr.Context));
// }
}
public void FocusEditor()
{
editor.TextArea.Focus();
editor.SelectAll();
}
}
}

6
src/AddIns/Debugger/Debugger.AddIn/Pads/CallStackPad.cs

@ -116,15 +116,15 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -116,15 +116,15 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
void RefreshPad()
{
Thread thead = WindowsDebugger.CurrentThread;
if (thead == null) {
Thread thread = WindowsDebugger.CurrentThread;
if (thread == null) {
listView.ItemsSource = null;
} else {
var items = new ObservableCollection<CallStackItem>();
bool previousItemIsExternalMethod = false;
WindowsDebugger.CurrentProcess.EnqueueForEach(
listView.Dispatcher,
thead.GetCallstack(100),
thread.GetCallstack(100),
f => items.AddIfNotNull(CreateItem(f, ref previousItemIsExternalMethod))
);
listView.ItemsSource = items;

55
src/AddIns/Debugger/Debugger.AddIn/Pads/CommonResources.xaml

@ -5,7 +5,8 @@ @@ -5,7 +5,8 @@
xmlns:local="clr-namespace:Debugger.AddIn.Pads.Controls"
xmlns:core="http://icsharpcode.net/sharpdevelop/core"
xmlns:tv="http://icsharpcode.net/sharpdevelop/treeview"
>
>
<core:ContextMenuBuilder x:Key="menuBuilder" />
<Style x:Key="itemContainerStyle" TargetType="{x:Type ListViewItem}">
<Setter Property="Background" Value="Transparent" />
@ -14,13 +15,13 @@ @@ -14,13 +15,13 @@
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<Border Name="Bd"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="true">
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="true">
<GridViewRowPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
@ -39,8 +40,15 @@ @@ -39,8 +40,15 @@
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<tv:SharpTreeNodeView/>
<local:AutoCompleteTextBox Margin="-6 0 0 0" Text="{Binding Node.Name}" IsEditable="{Binding Node.CanSetName}"/>
<tv:SharpTreeNodeView />
<local:AutoCompleteTextBox x:Name="name" Margin="-6 0 0 0" MinWidth="100" Text="{Binding Node.Name}" IsEditable="{Binding Node.CanSetName}">
<local:AutoCompleteTextBox.ContextMenu>
<MultiBinding Converter="{StaticResource menuBuilder}">
<Binding Path="Node.ContextMenuAddInTreeEntry" />
<Binding Path="Node" />
</MultiBinding>
</local:AutoCompleteTextBox.ContextMenu>
</local:AutoCompleteTextBox>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
@ -48,14 +56,31 @@ @@ -48,14 +56,31 @@
<GridViewColumn Header="{core:Localize MainWindow.Windows.Debug.LocalVariables.ValueColumn}" Width="200">
<GridViewColumn.CellTemplate>
<DataTemplate>
<local:AutoCompleteTextBox Text="{Binding Node.Value}" IsEditable="{Binding Node.CanSetValue}"/>
<local:AutoCompleteTextBox
MinWidth="100"
Text="{Binding Node.Value}"
IsEditable="{Binding Node.CanSetValue}">
<local:AutoCompleteTextBox.ContextMenu>
<MultiBinding Converter="{StaticResource menuBuilder}">
<Binding Path="Node.ContextMenuAddInTreeEntry" />
<Binding Path="Node" />
</MultiBinding>
</local:AutoCompleteTextBox.ContextMenu>
</local:AutoCompleteTextBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="{core:Localize MainWindow.Windows.Debug.LocalVariables.TypeColumn}" Width="200">
<GridViewColumn.CellTemplate>
<DataTemplate>
<local:AutoCompleteTextBox Text="{Binding Node.Type}" IsEditable="False"/>
<local:AutoCompleteTextBox MinWidth="100" Text="{Binding Node.Type}" IsEditable="False">
<local:AutoCompleteTextBox.ContextMenu>
<MultiBinding Converter="{StaticResource menuBuilder}">
<Binding Path="Node.ContextMenuAddInTreeEntry" />
<Binding Path="Node" />
</MultiBinding>
</local:AutoCompleteTextBox.ContextMenu>
</local:AutoCompleteTextBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
@ -78,14 +103,14 @@ @@ -78,14 +103,14 @@
<!-- Breakpoints Pad -->
<GridView x:Key="breakpointsGridView" AllowsColumnReorder="False">
<GridViewColumn Header="" Width="Auto">
<GridViewColumn Header="">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=IsEnabled, Mode=TwoWay}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="{core:Localize MainWindow.Windows.BookmarkPad.LocationText}" Width="Auto">
<GridViewColumn Header="{core:Localize MainWindow.Windows.BookmarkPad.LocationText}">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
@ -95,7 +120,7 @@ @@ -95,7 +120,7 @@
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="{core:Localize MainWindow.Windows.Debug.Conditional.Breakpoints.ConditionalColumnHeader}" Width="Auto">
<GridViewColumn Header="{core:Localize MainWindow.Windows.Debug.Conditional.Breakpoints.ConditionalColumnHeader}">
<GridViewColumn.CellTemplate>
<DataTemplate>
<local:AutoCompleteTextBox Text="{Binding Condition}" MinWidth="100" />
@ -120,5 +145,5 @@ @@ -120,5 +145,5 @@
<GridViewColumn Header="{core:Localize MainWindow.Windows.Debug.Threads.Priority}" Width="120" DisplayMemberBinding="{Binding Priority}"/>
<GridViewColumn Header="{core:Localize MainWindow.Windows.Debug.Threads.Frozen}" Width="80" DisplayMemberBinding="{Binding Frozen}"/>
</GridView>
</ResourceDictionary>

139
src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPad.cs

@ -2,10 +2,12 @@ @@ -2,10 +2,12 @@
// This code is distributed under the BSD license (for details please see \src\AddIns\Debugger\Debugger.AddIn\license.txt)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Threading;
using Debugger;
@ -14,8 +16,6 @@ using Debugger.AddIn.Pads.Controls; @@ -14,8 +16,6 @@ using Debugger.AddIn.Pads.Controls;
using Debugger.AddIn.TreeModel;
using ICSharpCode.Core;
using ICSharpCode.Core.Presentation;
using ICSharpCode.NRefactory;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Services;
using ICSharpCode.SharpDevelop.Workbench;
using ICSharpCode.TreeView;
@ -24,10 +24,12 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -24,10 +24,12 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
{
public class WatchPad : AbstractPadContent
{
DockPanel panel;
ToolBar toolBar;
SharpTreeView tree;
public override object Control {
get { return tree; }
get { return panel; }
}
public SharpTreeView Tree {
@ -43,44 +45,47 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -43,44 +45,47 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
var res = new CommonResources();
res.InitializeComponent();
this.tree = new SharpTreeView();
this.tree.Root = new SharpTreeNode();
this.tree.ShowRoot = false;
this.tree.View = (GridView)res["variableGridView"];
this.tree.ContextMenu = MenuService.CreateContextMenu(this, "/SharpDevelop/Pads/WatchPad/ContextMenu");
this.tree.MouseDoubleClick += delegate(object sender, MouseButtonEventArgs e) {
panel = new DockPanel();
toolBar = ToolBarService.CreateToolBar(toolBar, this, "/SharpDevelop/Pads/WatchPad/ToolBar");
toolBar.SetValue(DockPanel.DockProperty, Dock.Top);
panel.Children.Add(toolBar);
tree = new SharpTreeView();
tree.Root = new WatchRootNode();
tree.ShowRoot = false;
tree.View = (GridView)res["variableGridView"];
tree.SetValue(GridViewColumnAutoSize.AutoWidthProperty, "50%;25%;25%");
tree.MouseDoubleClick += delegate(object sender, MouseButtonEventArgs e) {
if (this.tree.SelectedItem == null) {
AddWatchCommand cmd = new AddWatchCommand { Owner = this };
cmd.Run();
AddWatch(focus: true);
}
};
panel.Children.Add(tree);
ProjectService.SolutionLoaded += delegate { LoadNodes(); };
ProjectService.SolutionClosing += delegate { SaveNodes(); };
LoadNodes();
// ProjectService.SolutionLoaded += delegate { LoadNodes(); };
// SD.ProjectService.CurrentSolution.PreferencesSaving += delegate { SaveNodes(); };
// LoadNodes();
WindowsDebugger.RefreshingPads += RefreshPad;
RefreshPad();
}
void LoadNodes()
{
if (ProjectService.OpenSolution != null) {
var props = ProjectService.OpenSolution.Preferences.NestedProperties("Watches");
foreach (var key in props.Keys) {
this.Items.Add(new TreeNode(props.Get(key, ""), () => null).ToSharpTreeNode());
}
}
}
void SaveNodes()
public void AddWatch(string expression = null, bool focus = false)
{
if (ProjectService.OpenSolution != null) {
var props = new Properties();
ProjectService.OpenSolution.Preferences.SetNestedProperties("Watches", props);
foreach(var node in this.Items.OfType<TreeNode>()) {
props.Set(node.Name, (object)null);
}
var node = MakeNode(expression);
this.Items.Add(node);
if (focus) {
var view = tree.View as SharpGridView;
tree.Dispatcher.BeginInvoke(
DispatcherPriority.Input, (Action)delegate {
var container = tree.ItemContainerGenerator.ContainerFromItem(node) as SharpTreeViewItem;
if (container == null) return;
var textBox = container.NodeView.FindAncestor<StackPanel>().FindName("name") as AutoCompleteTextBox;
if (textBox == null) return;
textBox.FocusEditor();
});
}
}
@ -89,28 +94,84 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -89,28 +94,84 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
LoggingService.Info("Evaluating watch: " + name);
TreeNode node = null;
try {
node = new ValueNode(null, name, () => WindowsDebugger.Evaluate(name));
node = new ValueNode(null, name,
() => {
if (string.IsNullOrWhiteSpace(name))
return null;
return WindowsDebugger.Evaluate(name);
});
} catch (GetValueException e) {
node = new TreeNode(SD.ResourceService.GetImage("Icons.16x16.Error"), name, e.Message, string.Empty, null);
node = new TreeNode(null, name, e.Message, string.Empty, null);
}
node.CanDelete = true;
node.CanSetName = true;
node.PropertyChanged += (s, e) => { if (e.PropertyName == "Name") WindowsDebugger.RefreshPads(); };
node.PropertyChanged += (s, e) => {
if (e.PropertyName == "Name")
WindowsDebugger.RefreshPads();
};
return node.ToSharpTreeNode();
}
protected void RefreshPad()
{
Process process = WindowsDebugger.CurrentProcess;
if (process != null) {
var names = this.Items.OfType<SharpTreeNodeAdapter>().Select(n => n.Node.Name).ToList();
if (process != null && process.IsPaused) {
var expressions = this.Items.OfType<SharpTreeNodeAdapter>()
.Select(n => n.Node.Name)
.ToList();
this.Items.Clear();
process.EnqueueForEach(
Dispatcher.CurrentDispatcher,
names,
name => this.Items.Add(MakeNode(name))
expressions,
expr => this.Items.Add(MakeNode(expr)),
expr => this.Items.Add(MakeNode(expr))
);
}
}
}
class WatchRootNode : SharpTreeNode
{
public override bool CanDrop(DragEventArgs e, int index)
{
e.Effects = DragDropEffects.None;
if (e.Data.GetDataPresent(DataFormats.StringFormat)) {
e.Effects = DragDropEffects.Copy;
return true;
}
return false;
}
public override void Drop(DragEventArgs e, int index)
{
if (e.Data == null) return;
if (!e.Data.GetDataPresent(DataFormats.StringFormat)) return;
var watchValue = e.Data.GetData(DataFormats.StringFormat).ToString();
if (string.IsNullOrEmpty(watchValue)) return;
var pad = SD.Workbench.GetPad(typeof(WatchPad)).PadContent as WatchPad;
if (pad == null) return;
pad.AddWatch(watchValue);
WindowsDebugger.RefreshPads();
}
}
static class WpfExtensions
{
public static T FindAncestor<T>(this DependencyObject d) where T : class
{
return AncestorsAndSelf(d).OfType<T>().FirstOrDefault();
}
public static IEnumerable<DependencyObject> AncestorsAndSelf(this DependencyObject d)
{
while (d != null) {
yield return d;
d = VisualTreeHelper.GetParent(d);
}
}
}
}

22
src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPadCommands.cs

@ -3,6 +3,9 @@ @@ -3,6 +3,9 @@
using System;
using System.Linq;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Gui;
using Debugger.AddIn.Pads;
using Debugger.AddIn.Pads.Controls;
using Debugger.AddIn.TreeModel;
@ -20,11 +23,7 @@ namespace Debugger.AddIn @@ -20,11 +23,7 @@ namespace Debugger.AddIn
{
if (this.Owner is WatchPad) {
WatchPad pad = (WatchPad)this.Owner;
var node = new TreeNode(string.Empty, null);
node.CanSetName = true;
var sharpNode = node.ToSharpTreeNode();
pad.Items.Add(sharpNode);
pad.Tree.FocusNode(sharpNode);
pad.AddWatch(focus: true);
}
}
}
@ -51,4 +50,17 @@ namespace Debugger.AddIn @@ -51,4 +50,17 @@ namespace Debugger.AddIn
}
}
}
public class AddWatchExpressionCommand : AbstractMenuCommand
{
public override void Run()
{
var editor = SD.GetActiveViewContentService<ITextEditor>();
if (editor == null) return;
var pad = SD.Workbench.GetPad(typeof(WatchPad));
if (pad == null) return;
pad.BringPadToFront();
((WatchPad)pad.PadContent).AddWatch(editor.SelectedText);
}
}
}

7
src/AddIns/Debugger/Debugger.AddIn/Service/AttachToProcessForm.cs

@ -25,10 +25,9 @@ namespace ICSharpCode.SharpDevelop.Services @@ -25,10 +25,9 @@ namespace ICSharpCode.SharpDevelop.Services
{
this.process = process;
try {
var modules = process.Modules.Cast<ProcessModule>().Where(
m => m.ModuleName.StartsWith("mscor", StringComparison.InvariantCultureIgnoreCase));
managed = modules.Count() > 0;
managed = process.Modules
.OfType<ProcessModule>()
.Any(m => m.ModuleName.StartsWith("mscor", StringComparison.InvariantCultureIgnoreCase));
} catch { }
string fileName = Path.GetFileName(process.MainModule.FileName);

56
src/AddIns/Debugger/Debugger.AddIn/Tooltips/DebuggerTooltipControl.xaml

@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:aero="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
xmlns:debugging="clr-namespace:Debugger.AddIn.Tooltips"
xmlns:core="http://icsharpcode.net/sharpdevelop/core"
AllowsTransparency="True"
>
<Popup.Resources>
@ -62,7 +63,7 @@ @@ -62,7 +63,7 @@
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<ControlTemplate x:Key="PinButtonTemplate" TargetType="Button">
<Border Width="16" Height="16" Name="TheBorder" CornerRadius="3" BorderThickness="1" BorderBrush="Black" Background="{StaticResource SilverPressedBrushKey}">
<Canvas Name="TheCanvas">
@ -86,7 +87,7 @@ @@ -86,7 +87,7 @@
</ControlTemplate>
<SolidColorBrush x:Key="MouseOverPinBrush" Color="Black" />
<Style TargetType="{x:Type TextBox}" x:Key="TextStyle">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="VerticalAlignment" Value="Center" />
@ -104,7 +105,7 @@ @@ -104,7 +105,7 @@
</Setter.Value>
</Setter>
</Style>
<Style x:Key="PinThumbStyle" TargetType="Thumb">
<Setter Property="Template">
<Setter.Value>
@ -114,6 +115,8 @@ @@ -114,6 +115,8 @@
</Setter.Value>
</Setter>
</Style>
<core:ContextMenuBuilder x:Key="menuBuilder" />
</ResourceDictionary>
</Popup.Resources>
@ -126,7 +129,7 @@ @@ -126,7 +129,7 @@
MaxHeight="202"
SelectionMode="Single"
SelectionUnit="FullRow"
Name="dataGrid"
x:Name="dataGrid"
AutoGenerateColumns="False"
CanUserAddRows="False"
HeadersVisibility="None"
@ -179,16 +182,16 @@ @@ -179,16 +182,16 @@
Focusable="False"
Width="19"
Height="13"
>
>
<ToggleButton.Template>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Border Width="19" Height="13" Background="Transparent">
<Border Width="9"
Height="9"
BorderThickness="1"
BorderBrush="#FF7898B5"
CornerRadius="1"
SnapsToDevicePixels="true">
Height="9"
BorderThickness="1"
BorderBrush="#FF7898B5"
CornerRadius="1"
SnapsToDevicePixels="true">
<Border.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<LinearGradientBrush.GradientStops>
@ -198,9 +201,9 @@ @@ -198,9 +201,9 @@
</LinearGradientBrush>
</Border.Background>
<Path x:Name="ExpandPath"
Margin="1,1,1,1"
Fill="Black"
Data="M 0 2 L 0 3 L 2 3 L 2 5 L 3 5 L 3 3 L 5 3 L 5 2 L 3 2 L 3 0 L 2 0 L 2 2 Z"/>
Margin="1,1,1,1"
Fill="Black"
Data="M 0 2 L 0 3 L 2 3 L 2 5 L 3 5 L 3 3 L 5 3 L 5 2 L 3 2 L 3 0 L 2 0 L 2 2 Z"/>
</Border>
</Border>
<ControlTemplate.Triggers>
@ -239,6 +242,16 @@ @@ -239,6 +242,16 @@
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<!-- Type -->
<DataGridTemplateColumn MinWidth="20" Header="Type">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Border BorderBrush="#FFDDDDDD" BorderThickness="0 0 1 0">
<TextBlock Margin="6 0" Text="{Binding Path=Type, Mode=OneWay}" VerticalAlignment="Top"></TextBlock>
</Border>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<!-- Visualizer picker -->
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
@ -257,19 +270,16 @@ @@ -257,19 +270,16 @@
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox
x:Name="valueText"
Style="{StaticResource TextStyle}"
IsEnabled="{Binding CanSetValue}"
ContextMenuService.ShowOnDisabled="True"
Text="{Binding Value}"
>
Text="{Binding Value}">
<TextBox.ContextMenu>
<ContextMenu>
<!-- <MenuItem Header="{core:Localize XML.MainMenu.EditMenu.Copy}" DataContext="{Binding}" Click="CopyMenuItemClick">
<MenuItem.Icon>
<Image Source="{core:GetBitmap Icons.16x16.CopyIcon}" />
</MenuItem.Icon>
</MenuItem>-->
</ContextMenu>
<MultiBinding Converter="{StaticResource menuBuilder}">
<Binding Path="ContextMenuAddInTreeEntry" />
<Binding />
</MultiBinding>
</TextBox.ContextMenu>
</TextBox>
</DataTemplate>
@ -277,7 +287,7 @@ @@ -277,7 +287,7 @@
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<!-- <StackPanel Opacity="0.2" Name="SideButtons" Margin="3">
<!-- <StackPanel Opacity="0.2" Name="SideButtons" Margin="3">
<Button
Name="CloseButton"
Click="CloseButton_Click"

32
src/AddIns/Debugger/Debugger.AddIn/TreeModel/Commands.cs

@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Controls;
using ICSharpCode.SharpDevelop;
namespace Debugger.AddIn.TreeModel
{
public class CopyCommand : SimpleCommand
{
public override void Execute(object parameter)
{
var node = parameter as ValueNode;
if (node == null) return;
SD.Clipboard.SetText(node.FullText);
}
}
public class ShowFullErrorCommand : SimpleCommand
{
public override void Execute(object parameter)
{
var node = parameter as ValueNode;
if (node == null) return;
SD.MessageService.ShowException(node.error, null);
}
}
}

30
src/AddIns/Debugger/Debugger.AddIn/TreeModel/SharpTreeNodeAdapter.cs

@ -52,35 +52,5 @@ namespace Debugger.AddIn.Pads.Controls @@ -52,35 +52,5 @@ namespace Debugger.AddIn.Pads.Controls
process.EnqueueWork(Dispatcher.CurrentDispatcher, () => Children.AddRange(this.Node.GetChildren().Select(node => node.ToSharpTreeNode())));
}
}
/*
public override bool CanDrop(System.Windows.DragEventArgs e, int index)
{
e.Effects = DragDropEffects.None;
if (e.Data.GetDataPresent(DataFormats.StringFormat)) {
e.Effects = DragDropEffects.Copy;
return true;
}
return false;
}
public override void Drop(DragEventArgs e, int index)
{
if (ProjectService.CurrentProject == null) return;
if (e.Data == null) return;
if (!e.Data.GetDataPresent(DataFormats.StringFormat)) return;
if (string.IsNullOrEmpty(e.Data.GetData(DataFormats.StringFormat).ToString())) return;
string language = ProjectService.CurrentProject.Language;
var text = new TreeNode(e.Data.GetData(DataFormats.StringFormat).ToString(), null);
var node = text.ToSharpTreeNode();
if (!WatchPad.Instance.WatchList.WatchItems.Any(n => text.Name == ((SharpTreeNodeAdapter)n).Node.Name))
WatchPad.Instance.WatchList.WatchItems.Add(node);
WindowsDebugger.RefreshPads();
}
*/
}
}

17
src/AddIns/Debugger/Debugger.AddIn/TreeModel/TreeNode.cs

@ -4,9 +4,7 @@ @@ -4,9 +4,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Windows.Media;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Debugging;
@ -84,6 +82,17 @@ namespace Debugger.AddIn.TreeModel @@ -84,6 +82,17 @@ namespace Debugger.AddIn.TreeModel
}
}
string contextMenuAddInTreeEntry = "/AddIns/Debugger/Tooltips/ContextMenu/TreeNode";
public string ContextMenuAddInTreeEntry {
get { return contextMenuAddInTreeEntry; }
set {
if (this.contextMenuAddInTreeEntry != value) {
contextMenuAddInTreeEntry = value;
OnPropertyChanged("ContextMenuAddInTreeEntry");
}
}
}
public Func<IEnumerable<TreeNode>> GetChildren { get; protected set; }
public bool HasChildren {
@ -92,9 +101,9 @@ namespace Debugger.AddIn.TreeModel @@ -92,9 +101,9 @@ namespace Debugger.AddIn.TreeModel
public IEnumerable<IVisualizerCommand> VisualizerCommands { get; protected set; }
public bool HasVisualizerCommands {
public bool HasVisualizerCommands {
get {
return (VisualizerCommands != null) && (VisualizerCommands.Count() > 0);
return (VisualizerCommands != null) && VisualizerCommands.Any();
}
}

56
src/AddIns/Debugger/Debugger.AddIn/TreeModel/Utils.cs

@ -7,6 +7,7 @@ using System.Reflection; @@ -7,6 +7,7 @@ using System.Reflection;
using System.Windows.Forms;
using System.Windows.Threading;
using ICSharpCode.SharpDevelop;
using Debugger.AddIn.Pads.Controls;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
@ -41,46 +42,39 @@ namespace Debugger.AddIn.TreeModel @@ -41,46 +42,39 @@ namespace Debugger.AddIn.TreeModel
);
}
public static void EnqueueForEach<T>(this Process process, Dispatcher dispatcher, IList<T> items, Action<T> work)
public static void EnqueueForEach<T>(this Process process, Dispatcher dispatcher, IList<T> items, Action<T> work, Action<T> failAction = null)
{
long debuggeeStateWhenEnqueued = process.DebuggeeState;
dispatcher.BeginInvoke(
DispatcherPriority.Normal,
(Action)delegate { ProcessItems(process, dispatcher, 0, items, work, debuggeeStateWhenEnqueued); }
);
foreach (T item in items) {
var workItem = item;
dispatcher.BeginInvoke(
DispatcherPriority.Normal,
(Action)delegate {
if (!ProcessItem(process, workItem, work, debuggeeStateWhenEnqueued) && failAction != null)
failAction(workItem);
}
);
}
}
static void ProcessItems<T>(Process process, Dispatcher dispatcher, int startIndex, IList<T> items, Action<T> work, long debuggeeStateWhenEnqueued)
static bool ProcessItem<T>(Process process, T item, Action<T> work, long debuggeeStateWhenEnqueued)
{
var watch = new System.Diagnostics.Stopwatch();
watch.Start();
for (int i = startIndex; i < items.Count; i++) {
int index = i;
if (process.IsPaused && debuggeeStateWhenEnqueued == process.DebuggeeState) {
try {
// Do the work, this may recursively enqueue more work
work(items[index]);
} catch (System.Exception ex) {
if (process == null || process.HasExited) {
// Process unexpectedly exited - silently ignore
} else {
MessageService.ShowException(ex);
}
break;
if (process.IsPaused && debuggeeStateWhenEnqueued == process.DebuggeeState) {
try {
// Do the work, this may recursively enqueue more work
work(item);
return true;
} catch (System.Exception ex) {
if (process == null || process.HasExited) {
// Process unexpectedly exited - silently ignore
} else {
MessageService.ShowException(ex);
}
}
// if we are too slow move to background
if (watch.ElapsedMilliseconds > 100) {
dispatcher.BeginInvoke(
DispatcherPriority.Background,
(Action)delegate { ProcessItems(process, dispatcher, index, items, work, debuggeeStateWhenEnqueued); }
);
break;
SD.Log.Error("ProcessItem cancelled", ex);
}
}
return false;
}
}

70
src/AddIns/Debugger/Debugger.AddIn/TreeModel/ValueNode.cs

@ -43,7 +43,7 @@ namespace Debugger.AddIn.TreeModel @@ -43,7 +43,7 @@ namespace Debugger.AddIn.TreeModel
long cachedValueDebuggeeState;
string fullValue;
GetValueException error;
internal GetValueException error;
public string FullText {
get { return this.Value; }
@ -57,6 +57,7 @@ namespace Debugger.AddIn.TreeModel @@ -57,6 +57,7 @@ namespace Debugger.AddIn.TreeModel
this.getValue = getValue;
this.setValue = setValue;
this.ContextMenuAddInTreeEntry = "/AddIns/Debugger/Tooltips/ContextMenu/ValueNode";
GetValueAndUpdateUI();
}
@ -106,6 +107,14 @@ namespace Debugger.AddIn.TreeModel @@ -106,6 +107,14 @@ namespace Debugger.AddIn.TreeModel
// Do not keep permanent reference
Value val = this.getValue();
if (val == null) {
Value = string.Empty;
Type = string.Empty;
GetChildren = null;
VisualizerCommands = null;
return;
}
// Note that the child collections are lazy-evaluated
if (val.IsNull) {
this.GetChildren = null;
@ -186,57 +195,14 @@ namespace Debugger.AddIn.TreeModel @@ -186,57 +195,14 @@ namespace Debugger.AddIn.TreeModel
this.Type = string.Empty;
this.GetChildren = null;
this.VisualizerCommands = null;
} finally {
if (error == null)
ContextMenuAddInTreeEntry = "/AddIns/Debugger/Tooltips/ContextMenu/ValueNode";
else
ContextMenuAddInTreeEntry = "/AddIns/Debugger/Tooltips/ContextMenu/ErrorNode";
}
}
// public ContextMenuStrip GetContextMenu()
// {
// if (this.Error != null) return GetErrorContextMenu();
//
// ContextMenuStrip menu = new ContextMenuStrip();
//
// ToolStripMenuItem copyItem;
// copyItem = new ToolStripMenuItem();
// copyItem.Text = ResourceService.GetString("MainWindow.Windows.Debug.LocalVariables.CopyToClipboard");
// copyItem.Checked = false;
// copyItem.Click += delegate {
// ClipboardWrapper.SetText(fullText);
// };
// ToolStripMenuItem hexView;
// hexView = new ToolStripMenuItem();
// hexView.Text = ResourceService.GetString("MainWindow.Windows.Debug.LocalVariables.ShowInHexadecimal");
// hexView.Checked = DebuggingOptions.Instance.ShowValuesInHexadecimal;
// hexView.Click += delegate {
// // refresh all pads that use ValueNode for display
// DebuggingOptions.Instance.ShowValuesInHexadecimal = !DebuggingOptions.Instance.ShowValuesInHexadecimal;
// // always check if instance is null, might be null if pad is not opened
// if (LocalVarPad.Instance != null)
// LocalVarPad.Instance.RefreshPad();
// if (WatchPad.Instance != null)
// WatchPad.Instance.RefreshPad();
// };
// menu.Items.AddRange(new ToolStripItem[] {
// copyItem,
// //hexView
// });
//
// return menu;
// }
ContextMenuStrip GetErrorContextMenu()
{
ContextMenuStrip menu = new ContextMenuStrip();
ToolStripMenuItem showError = new ToolStripMenuItem();
showError.Text = StringParser.Parse("${res:MainWindow.Windows.Debug.LocalVariables.ShowFullError}");
showError.Click += delegate { MessageService.ShowException(error, null); };
menu.Items.Add(showError);
return menu;
}
/// <summary>
/// The root of any node evaluation is valid stack frame.
/// </summary>
@ -273,7 +239,7 @@ namespace Debugger.AddIn.TreeModel @@ -273,7 +239,7 @@ namespace Debugger.AddIn.TreeModel
foreach(LocalVariable locVar in localVars) {
var locVarCopy = locVar;
yield return new ValueNode(ClassBrowserIconService.LocalVariable, locVar.Name,
() => locVarCopy.GetValue(stackFrame));
() => locVarCopy.GetValue(stackFrame));
}
}
@ -294,7 +260,7 @@ namespace Debugger.AddIn.TreeModel @@ -294,7 +260,7 @@ namespace Debugger.AddIn.TreeModel
ClassBrowserIconService.Class,
StringParser.Parse("${res:MainWindow.Windows.Debug.LocalVariables.BaseClass}"),
baseType.Name,
baseType.FullName,
string.Empty,
baseType.FullName == "System.Object" ? (Func<IEnumerable<TreeNode>>) null : () => GetObjectChildren(baseType)
);
}
@ -368,7 +334,7 @@ namespace Debugger.AddIn.TreeModel @@ -368,7 +334,7 @@ namespace Debugger.AddIn.TreeModel
int count = 0;
try {
Value list = getValue();
IType iListType = list.Type.GetAllBaseTypeDefinitions().Where(t => t.FullName == typeof(IList).FullName).FirstOrDefault();
IType iListType = list.Type.GetAllBaseTypeDefinitions().FirstOrDefault(t => t.FullName == typeof(IList).FullName);
itemProp = iListType.GetProperties(p => p.Name == "Item").Single();
// Do not get string representation since it can be printed in hex
count = (int)list.GetPropertyValue(WindowsDebugger.EvalThread, iListType.GetProperties(p => p.Name == "Count").Single()).PrimitiveValue;

3
src/AddIns/Debugger/Debugger.Core/Breakpoint.cs

@ -70,8 +70,7 @@ namespace Debugger @@ -70,8 +70,7 @@ namespace Debugger
public void SetBreakpoint(Module module)
{
foreach(var symbolSource in module.Process.Debugger.SymbolSources) {
var seq = symbolSource.GetSequencePoint(module, this.FileName, this.Line, this.Column);
if (seq != null) {
foreach (var seq in symbolSource.GetSequencePoints(module, this.FileName, this.Line, this.Column)) {
ICorDebugFunction corFunction = module.CorModule.GetFunctionFromToken(seq.MethodDefToken);
ICorDebugFunctionBreakpoint corBreakpoint = corFunction.GetILCode().CreateBreakpoint((uint)seq.ILOffset);
corBreakpoint.Activate(enabled ? 1 : 0);

5
src/AddIns/Debugger/Debugger.Core/Debugger.Core.csproj

@ -131,6 +131,11 @@ @@ -131,6 +131,11 @@
<Name>Mono.Cecil</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.Cecil\ICSharpCode.NRefactory.Cecil.csproj">
<Project>{B2BBC7BC-837C-40ED-A6DB-D5AE8626212F}</Project>
<Name>ICSharpCode.NRefactory.Cecil</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>
<Name>ICSharpCode.NRefactory</Name>

4
src/AddIns/Debugger/Debugger.Core/Interop/CorSym.cs

@ -77,7 +77,7 @@ namespace Debugger.Interop.CorSym @@ -77,7 +77,7 @@ namespace Debugger.Interop.CorSym
public virtual extern ISymUnmanagedMethod __GetMethodFromDocumentPosition([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument document, [In] uint line, [In] uint column);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
public virtual extern void __GetMethodsFromDocumentPosition([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument document, [In] uint line, [In] uint column, [In] uint cMethod, out uint pcMethod, [Out] IntPtr pRetVal);
public virtual extern void __GetMethodsFromDocumentPosition([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument document, [In] uint line, [In] uint column, [In] uint cMethod, out uint pcMethod, [Out, MarshalAs(UnmanagedType.LPArray)] ISymUnmanagedMethod[] pRetVal);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
public virtual extern void __GetMethodVersion([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedMethod pMethod, out int version);
@ -332,7 +332,7 @@ namespace Debugger.Interop.CorSym @@ -332,7 +332,7 @@ namespace Debugger.Interop.CorSym
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void __GetSymbolStoreFileName([In] uint cchName, out uint pcchName, [Out] IntPtr szName);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void __GetMethodsFromDocumentPosition([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument document, [In] uint line, [In] uint column, [In] uint cMethod, out uint pcMethod, [Out] IntPtr pRetVal);
void __GetMethodsFromDocumentPosition([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument document, [In] uint line, [In] uint column, [In] uint cMethod, out uint pcMethod, [Out, MarshalAs(UnmanagedType.LPArray)] ISymUnmanagedMethod[] pRetVal);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void __GetDocumentVersion([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument pDoc, out int version, out int pbCurrent);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]

18
src/AddIns/Debugger/Debugger.Core/Interop/CorSymExtensionMethods.generated.cs

@ -67,9 +67,14 @@ namespace Debugger.Interop.CorSym @@ -67,9 +67,14 @@ namespace Debugger.Interop.CorSym
return returnValue;
}
public static void GetMethodsFromDocumentPosition(this CorSymReader_SxSClass instance, ISymUnmanagedDocument document, uint line, uint column, uint cMethod, out uint pcMethod, IntPtr pRetVal)
public static ISymUnmanagedMethod[] GetMethodsFromDocumentPosition(this CorSymReader_SxSClass instance, ISymUnmanagedDocument document, uint line, uint column)
{
instance.__GetMethodsFromDocumentPosition(document, line, column, cMethod, out pcMethod, pRetVal);
uint count;
instance.__GetMethodsFromDocumentPosition(document, line, column, 0, out count, new ISymUnmanagedMethod[0]);
var methods = new ISymUnmanagedMethod[count];
instance.__GetMethodsFromDocumentPosition(document, line, column, count, out count, methods);
ProcessOutParameter(methods);
return methods;
}
public static int GetMethodVersion(this CorSymReader_SxSClass instance, ISymUnmanagedMethod pMethod)
@ -485,9 +490,14 @@ namespace Debugger.Interop.CorSym @@ -485,9 +490,14 @@ namespace Debugger.Interop.CorSym
instance.__GetSymbolStoreFileName(cchName, out pcchName, szName);
}
public static void GetMethodsFromDocumentPosition(this ISymUnmanagedReader instance, ISymUnmanagedDocument document, uint line, uint column, uint cMethod, out uint pcMethod, IntPtr pRetVal)
public static ISymUnmanagedMethod[] GetMethodsFromDocumentPosition(this ISymUnmanagedReader instance, ISymUnmanagedDocument document, uint line, uint column)
{
instance.__GetMethodsFromDocumentPosition(document, line, column, cMethod, out pcMethod, pRetVal);
uint count;
instance.__GetMethodsFromDocumentPosition(document, line, column, 0, out count, new ISymUnmanagedMethod[0]);
var methods = new ISymUnmanagedMethod[count];
instance.__GetMethodsFromDocumentPosition(document, line, column, count, out count, methods);
ProcessOutParameter(methods);
return methods;
}
public static void GetDocumentVersion(this ISymUnmanagedReader instance, ISymUnmanagedDocument pDoc, out int version, out int pbCurrent)

37
src/AddIns/Debugger/Debugger.Core/PdbSymbolSource.cs

@ -72,9 +72,9 @@ namespace Debugger @@ -72,9 +72,9 @@ namespace Debugger
/// <summary> Find sequence point by IL offset </summary>
SequencePoint GetSequencePoint(IMethod method, int iloffset);
/// <summary> Find sequence point by source code location </summary>
/// <summary> Find sequence points by source code location. Might find multiple methods at one location (lambda expressions, etc.) </summary>
/// <remarks> Only source files corresponding to the given module are searched </remarks>
SequencePoint GetSequencePoint(Module module, string filename, int line, int column);
IEnumerable<SequencePoint> GetSequencePoints(Module module, string filename, int line, int column);
/// <summary> Get IL ranges that should be always stepped over by the debugger </summary>
/// <remarks> This is used for compiler generated code </remarks>
@ -190,14 +190,14 @@ namespace Debugger @@ -190,14 +190,14 @@ namespace Debugger
return sequencePoint;
}
public SequencePoint GetSequencePoint(Module module, string filename, int line, int column)
public IEnumerable<SequencePoint> GetSequencePoints(Module module, string filename, int line, int column)
{
// Do not use ISymUnmanagedReader.GetDocument! It is broken if two files have the same name
// Do not use ISymUnmanagedMethod.GetOffset! It sometimes returns negative offset
ISymUnmanagedReader symReader = module.SymReader;
if (symReader == null)
return null; // No symbols
yield break; // No symbols
// Find ISymUnmanagedDocument which excactly matches the filename.
var symDoc = module.SymDocuments.FirstOrDefault(d => string.Equals(filename, d.GetURL(), StringComparison.OrdinalIgnoreCase));
@ -205,26 +205,29 @@ namespace Debugger @@ -205,26 +205,29 @@ namespace Debugger
// Find the file even if the symbol is relative or if the file was moved
var symDocs = module.SymDocuments.Where(d => string.Equals(Path.GetFileName(filename), Path.GetFileName(d.GetURL()), StringComparison.OrdinalIgnoreCase));
symDoc = symDoc ?? symDocs.FirstOrDefault(d => string.Equals(GetSourceCodePath(module.Process, d.GetURL()), filename, StringComparison.OrdinalIgnoreCase));
if (symDoc == null) return null; // Document not found
if (symDoc == null) yield break; // Document not found
ISymUnmanagedMethod symMethod;
ISymUnmanagedMethod[] symMethods;
try {
uint validLine = symDoc.FindClosestLine((uint)line);
symMethod = symReader.GetMethodFromDocumentPosition(symDoc, (uint)validLine, (uint)column);
symMethods = symReader.GetMethodsFromDocumentPosition(symDoc, validLine, (uint)column);
} catch {
return null; //Not found
yield break; //Not found
}
var corFunction = module.CorModule.GetFunctionFromToken(symMethod.GetToken());
int codesize = (int)corFunction.GetILCode().GetSize();
var seqPoints = symMethod.GetSequencePoints(codesize).Where(s => s.StartLine != 0xFEEFEE);
SequencePoint seqPoint = null;
if (column != 0) {
seqPoint = seqPoints.FirstOrDefault(s => (s.StartLine < line || (s.StartLine == line && s.StartColumn <= column)) &&
(line < s.EndLine || (line == s.EndLine && column <= s.EndColumn)));
foreach (ISymUnmanagedMethod symMethod in symMethods) {
var corFunction = module.CorModule.GetFunctionFromToken(symMethod.GetToken());
int codesize = (int)corFunction.GetILCode().GetSize();
var seqPoints = symMethod.GetSequencePoints(codesize).Where(s => s.StartLine != 0xFEEFEE);
SequencePoint seqPoint = null;
if (column != 0) {
seqPoint = seqPoints.FirstOrDefault(s => (s.StartLine < line || (s.StartLine == line && s.StartColumn <= column)) &&
(line < s.EndLine || (line == s.EndLine && column <= s.EndColumn)));
}
seqPoint = seqPoint ?? seqPoints.FirstOrDefault(s => line <= s.StartLine);
if (seqPoint != null)
yield return seqPoint;
}
seqPoint = seqPoint ?? seqPoints.FirstOrDefault(s => line <= s.StartLine);
return seqPoint;
}
public IEnumerable<ILRange> GetIgnoredILRanges(IMethod method)

3
src/AddIns/Debugger/Debugger.Core/Process.cs

@ -438,8 +438,7 @@ namespace Debugger @@ -438,8 +438,7 @@ namespace Debugger
foreach(var symbolSource in this.Debugger.SymbolSources) {
foreach(Module module in this.Modules) {
// Note the we might get multiple matches
SequencePoint seq = symbolSource.GetSequencePoint(module, fileName, line, column);
if (seq != null) {
foreach (SequencePoint seq in symbolSource.GetSequencePoints(module, fileName, line, column)) {
ICorDebugFunction corFunction = module.CorModule.GetFunctionFromToken(seq.MethodDefToken);
ICorDebugFunctionBreakpoint corBreakpoint = corFunction.GetILCode().CreateBreakpoint((uint)seq.ILOffset);
corBreakpoint.Activate(1);

27
src/AddIns/Debugger/Debugger.Core/StackFrame.cs

@ -198,21 +198,22 @@ namespace Debugger @@ -198,21 +198,22 @@ namespace Debugger
this.Process.AssertPaused();
foreach(var symbolSource in this.Process.Debugger.SymbolSources) {
var seq = symbolSource.GetSequencePoint(this.Module, filename, line, column);
if (seq != null && seq.MethodDefToken == this.MethodInfo.GetMetadataToken()) {
try {
if (dryRun) {
CorILFrame.CanSetIP((uint)seq.ILOffset);
} else {
CorILFrame.SetIP((uint)seq.ILOffset);
// Invalidates all frames and chains for the current thread
this.Process.NotifyResumed(DebuggeeStateAction.Keep);
this.Process.NotifyPaused();
foreach (var seq in symbolSource.GetSequencePoints(this.Module, filename, line, column)) {
if (seq.MethodDefToken == this.MethodInfo.GetMetadataToken()) {
try {
if (dryRun) {
CorILFrame.CanSetIP((uint)seq.ILOffset);
} else {
CorILFrame.SetIP((uint)seq.ILOffset);
// Invalidates all frames and chains for the current thread
this.Process.NotifyResumed(DebuggeeStateAction.Keep);
this.Process.NotifyPaused();
}
} catch {
return false;
}
} catch {
return false;
return true;
}
return true;
}
}
return false;

11
src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.addin

@ -157,6 +157,17 @@ @@ -157,6 +157,17 @@
class = "ICSharpCode.AvalonEdit.AddIn.ContextActions.FindBaseClasses"/>
</Path>
<Path name = "/SharpDevelop/EntityContextMenu">
<Condition name="SymbolTypeAtCaret" type="type" action="Exclude">
<Include id="FindDerivedOrOverridesClasses"
insertafter="FindReferences"
item="/SharpDevelop/Workbench/MainMenu/Search/FindDerivedOrOverridesClasses" />
<Include id="FindBaseClasses"
insertafter="FindDerivedOrOverridesClasses"
item="/SharpDevelop/Workbench/MainMenu/Search/FindBaseClasses" />
</Condition>
</Path>
<Path name = "/SharpDevelop/Dialogs/OptionsDialog/CodingOptions">
<OptionPanel id = "CodeTemplates"
label = "${res:Dialog.Options.CodeTemplatesText}"

1
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs

@ -55,7 +55,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -55,7 +55,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
get { return primaryTextEditor; }
}
[Obsolete()]
public CodeEditorView ActiveTextEditor {
get { return primaryTextEditor; }
}

8
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs

@ -27,6 +27,7 @@ using ICSharpCode.AvalonEdit.Highlighting; @@ -27,6 +27,7 @@ using ICSharpCode.AvalonEdit.Highlighting;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.NRefactory.Editor;
using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.AvalonEdit;
@ -231,7 +232,12 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -231,7 +232,12 @@ namespace ICSharpCode.AvalonEdit.AddIn
}
MemberResolveResult mrr = result as MemberResolveResult;
if (mrr != null) {
HelpProvider.ShowHelp(mrr.Member);
if ((mrr.Member.DeclaringType.Kind == TypeKind.Enum) &&
(mrr.Member.DeclaringType.GetDefinition() != null)) {
HelpProvider.ShowHelp(mrr.Member.DeclaringType.GetDefinition());
} else {
HelpProvider.ShowHelp(mrr.Member);
}
}
}
#endregion

3
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsRenderer.cs

@ -128,6 +128,9 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions @@ -128,6 +128,9 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
if (!editorRect.Contains(caretRect))
return;
// Don't show the context action popup when the text editor is invisible, i.e., the Forms Designer is active.
if (PresentationSource.FromVisual(textView) == null) return;
ContextActionsBulbViewModel popupVM = BuildPopupViewModel();
this.cancellationTokenSourceForPopupBeingOpened = new CancellationTokenSource();
var cancellationToken = cancellationTokenSourceForPopupBeingOpened.Token;

17
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/TextMarkerService.cs

@ -168,13 +168,14 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -168,13 +168,14 @@ namespace ICSharpCode.AvalonEdit.AddIn
drawingContext.DrawGeometry(brush, null, geometry);
}
}
if ((marker.MarkerTypes & (TextMarkerTypes.SquigglyUnderline | TextMarkerTypes.NormalUnderline)) != 0) {
var underlineMarkerTypes = TextMarkerTypes.SquigglyUnderline | TextMarkerTypes.NormalUnderline | TextMarkerTypes.DottedUnderline;
if ((marker.MarkerTypes & underlineMarkerTypes) != 0) {
foreach (Rect r in BackgroundGeometryBuilder.GetRectsForSegment(textView, marker)) {
Point startPoint = r.BottomLeft;
Point endPoint = r.BottomRight;
Pen usedPen = new Pen(new SolidColorBrush(marker.MarkerColor), 1);
usedPen.Freeze();
Brush usedBrush = new SolidColorBrush(marker.MarkerColor);
usedBrush.Freeze();
if ((marker.MarkerTypes & TextMarkerTypes.SquigglyUnderline) != 0) {
double offset = 2.5;
@ -189,9 +190,19 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -189,9 +190,19 @@ namespace ICSharpCode.AvalonEdit.AddIn
geometry.Freeze();
Pen usedPen = new Pen(usedBrush, 1);
usedPen.Freeze();
drawingContext.DrawGeometry(Brushes.Transparent, usedPen, geometry);
}
if ((marker.MarkerTypes & TextMarkerTypes.NormalUnderline) != 0) {
Pen usedPen = new Pen(usedBrush, 1);
usedPen.Freeze();
drawingContext.DrawLine(usedPen, startPoint, endPoint);
}
if ((marker.MarkerTypes & TextMarkerTypes.DottedUnderline) != 0) {
Pen usedPen = new Pen(usedBrush, 1);
usedPen.DashStyle = DashStyles.Dot;
usedPen.Freeze();
drawingContext.DrawLine(usedPen, startPoint, endPoint);
}
}

1
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/AddComponentsDialog.cs

@ -18,6 +18,7 @@ using ICSharpCode.SharpDevelop.Parser; @@ -18,6 +18,7 @@ using ICSharpCode.SharpDevelop.Parser;
namespace ICSharpCode.FormsDesigner.Gui
{
#pragma warning disable 618
public class AddComponentsDialog : BaseSharpDevelopForm
{
ArrayList selectedComponents;

1
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/ConfigureSideBarDialog.cs

@ -13,6 +13,7 @@ using ICSharpCode.SharpDevelop.Gui.XmlForms; @@ -13,6 +13,7 @@ using ICSharpCode.SharpDevelop.Gui.XmlForms;
namespace ICSharpCode.FormsDesigner.Gui
{
#pragma warning disable 618
public class ConfigureSideBarDialog : BaseSharpDevelopForm
{
ArrayList oldComponents;

1
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/RenameCategoryDialog.cs

@ -11,6 +11,7 @@ using ICSharpCode.SharpDevelop.Widgets.SideBar; @@ -11,6 +11,7 @@ using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.FormsDesigner.Gui
{
#pragma warning disable 618
public class RenameCategoryDialog : BaseSharpDevelopForm
{
string categoryName = String.Empty;

12
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/ToolboxProvider.cs

@ -177,7 +177,7 @@ namespace ICSharpCode.FormsDesigner @@ -177,7 +177,7 @@ namespace ICSharpCode.FormsDesigner
LoggingService.Debug("Checking project reference: " + referenceItem.Include);
if (referenceItem.HintPath.Length > 0 && File.Exists(referenceItem.FileName)) {
LoggingService.Debug("Checking assembly reference");
AssemblyName assemblyName = AssemblyName.GetAssemblyName(referenceItem.FileName);
AssemblyName assemblyName = GetAssemblyName(referenceItem.FileName);
if (assemblyName != null && assemblyName.FullName == referenceName.FullName) {
isAlreadyInRefFolder = true;
break;
@ -196,6 +196,16 @@ namespace ICSharpCode.FormsDesigner @@ -196,6 +196,16 @@ namespace ICSharpCode.FormsDesigner
return isAlreadyInRefFolder;
}
static AssemblyName GetAssemblyName(string fileName)
{
try {
return AssemblyName.GetAssemblyName(fileName);
} catch (Exception ex) {
LoggingService.Debug(ex.ToString());
}
return null;
}
static void AddReferenceToProject(IProject project, AssemblyName referenceName)
{
LoggingService.Warn("Adding reference to project: " + referenceName.FullName);

1
src/AddIns/DisplayBindings/ILSpyAddIn/ILSpyAddIn.addin

@ -29,6 +29,7 @@ @@ -29,6 +29,7 @@
<!-- Text editor context menu: Launch ILSpy command -->
<Path name="/SharpDevelop/EntityContextMenu">
<MenuItem id="ILSpySeparator" type="Separator" />
<MenuItem id="ILSpy" icon="ILSpy" type="Item" label="${res:ILSpyAddIn.OpenILSpyCommand}" class="ICSharpCode.ILSpyAddIn.OpenInILSpyCommand"/>
</Path>
</AddIn>

5
src/AddIns/DisplayBindings/ILSpyAddIn/ILSpyAddIn.csproj

@ -104,6 +104,11 @@ @@ -104,6 +104,11 @@
<Name>Mono.Cecil</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.Cecil\ICSharpCode.NRefactory.Cecil.csproj">
<Project>{2B8F4F83-C2B3-4E84-A27B-8DEE1BE0E006}</Project>
<Name>ICSharpCode.NRefactory.Cecil</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>

10
src/AddIns/DisplayBindings/ILSpyAddIn/ILSpySymbolSource.cs

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Debugger;
@ -56,15 +57,15 @@ namespace ICSharpCode.ILSpyAddIn @@ -56,15 +57,15 @@ namespace ICSharpCode.ILSpyAddIn
return null;
}
public Debugger.SequencePoint GetSequencePoint(Module module, string filename, int line, int column)
public IEnumerable<Debugger.SequencePoint> GetSequencePoints(Module module, string filename, int line, int column)
{
var name = DecompiledTypeReference.FromFileName(filename);
if (name == null || !FileUtility.IsEqualFileName(module.FullPath, name.AssemblyFile))
return null;
yield break;
var content = DecompiledViewContent.Get(name);
if (content == null)
return null;
yield break;
TextLocation loc = new TextLocation(line, column);
foreach(var symbols in content.DebugSymbols.Values.Where(s => s.StartLocation <= loc && loc <= s.EndLocation)) {
@ -74,9 +75,8 @@ namespace ICSharpCode.ILSpyAddIn @@ -74,9 +75,8 @@ namespace ICSharpCode.ILSpyAddIn
if (seq == null)
seq = symbols.SequencePoints.FirstOrDefault(p => line <= p.StartLocation.Line);
if (seq != null)
return seq.ToDebugger(symbols, content.PrimaryFileName);
yield return seq.ToDebugger(symbols, content.PrimaryFileName);
}
return null;
}
public IEnumerable<ILRange> GetIgnoredILRanges(IMethod method)

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

@ -8,6 +8,7 @@ using System.Runtime.Serialization.Formatters.Binary; @@ -8,6 +8,7 @@ using System.Runtime.Serialization.Formatters.Binary;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
namespace ResourceEditor
@ -16,7 +17,7 @@ namespace ResourceEditor @@ -16,7 +17,7 @@ namespace ResourceEditor
{
public override void Run()
{
ResourceEditorControl editor = ((ResourceEditWrapper)WorkbenchSingleton.Workbench.ActiveViewContent).ResourceEditor;
ResourceEditorControl editor = ((ResourceEditWrapper)SD.Workbench.ActiveViewContent).ResourceEditor;
if(editor.ResourceList.WriteProtected) {
return;
@ -28,7 +29,7 @@ namespace ResourceEditor @@ -28,7 +29,7 @@ namespace ResourceEditor
fdiag.Multiselect = true;
fdiag.CheckFileExists = true;
if (fdiag.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) {
if (fdiag.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) {
foreach (string filename in fdiag.FileNames) {
string oresname = Path.ChangeExtension(Path.GetFileName(filename), null);
if (oresname == "") oresname = "new";

4
src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/AddStringEntryCommand.cs

@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
using System;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop;
namespace ResourceEditor
{
@ -12,7 +12,7 @@ namespace ResourceEditor @@ -12,7 +12,7 @@ namespace ResourceEditor
{
public override void Run()
{
ResourceEditorControl editor = ((ResourceEditWrapper)WorkbenchSingleton.Workbench.ActiveViewContent).ResourceEditor;
ResourceEditorControl editor = ((ResourceEditWrapper)SD.Workbench.ActiveViewContent).ResourceEditor;
if(editor.ResourceList.WriteProtected) {
return;

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save