Browse Source

Merge branch 'xmlForms' of github.com:icsharpcode/SharpDevelop into xmlForms

pull/30/head
PeterForstmeier 13 years ago
parent
commit
a2b9954af9
  1. 14
      README.txt
  2. 17
      SharpDevelop.Tests.sln
  3. 2
      SharpDevelop.sln
  4. 3
      data/resources/StringResources.cz.resx
  5. 155
      data/resources/StringResources.de.resx
  6. 51
      data/resources/StringResources.es-mx.resx
  7. 12
      data/resources/StringResources.es.resx
  8. 12
      data/resources/StringResources.fr.resx
  9. 3
      data/resources/StringResources.hu.resx
  10. 12
      data/resources/StringResources.it.resx
  11. 3
      data/resources/StringResources.kr.resx
  12. 48
      data/resources/StringResources.nl.resx
  13. 3
      data/resources/StringResources.no.resx
  14. 3
      data/resources/StringResources.pl.resx
  15. 91
      data/resources/StringResources.pt-br.resx
  16. 3
      data/resources/StringResources.pt.resx
  17. 53
      data/resources/StringResources.resx
  18. 3
      data/resources/StringResources.ro.resx
  19. 3
      data/resources/StringResources.ru.resx
  20. 275
      data/resources/StringResources.se.resx
  21. 225
      data/resources/StringResources.zh.resx
  22. 2
      data/resources/languages/LanguageDefinition.xml
  23. 2
      src/AddIns/Analysis/CodeQuality/CodeQuality.addin
  24. 12
      src/AddIns/Analysis/CodeQuality/CodeQuality.csproj
  25. 2
      src/AddIns/Analysis/CodeQuality/Gui/MainView.xaml
  26. 29
      src/AddIns/Analysis/CodeQuality/Gui/MainView.xaml.cs
  27. 8
      src/AddIns/Analysis/CodeQuality/Reporting/BaseReport.cs
  28. 8
      src/AddIns/Analysis/CodeQuality/Reporting/DependencyReport.cs
  29. 11
      src/AddIns/Analysis/CodeQuality/Reporting/OverviewReport.cs
  30. 7
      src/AddIns/Analysis/UnitTesting/Src/NUnitConsoleCommandLine.cs
  31. 14
      src/AddIns/Analysis/UnitTesting/Test/Frameworks/NUnitConsoleExeSelectedTestFixture.cs
  32. 8
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooProject.cs
  33. 9
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/CSharpProject.cs
  34. 13
      src/AddIns/BackendBindings/CppBinding/CppBinding/Project/CppProject.cs
  35. 8
      src/AddIns/BackendBindings/FSharpBinding/FSharpProject.cs
  36. 21
      src/AddIns/BackendBindings/JavaScriptBinding/Project/Src/JavaScriptParser.cs
  37. 8
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonProject.cs
  38. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/Chiron.exe
  39. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/DLLs/IronPython.Wpf.dll
  40. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/IronPython.Modules.dll
  41. 73
      src/AddIns/BackendBindings/Python/RequiredLibraries/IronPython.Modules.xml
  42. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/IronPython.dll
  43. 71
      src/AddIns/BackendBindings/Python/RequiredLibraries/IronPython.xml
  44. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Dynamic.dll
  45. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Scripting.Metadata.dll
  46. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Scripting.Silverlight.dll
  47. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/Microsoft.Scripting.dll
  48. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/ipy.exe
  49. 12
      src/AddIns/BackendBindings/Python/RequiredLibraries/ipy.exe.config
  50. BIN
      src/AddIns/BackendBindings/Python/RequiredLibraries/ipyw.exe
  51. 12
      src/AddIns/BackendBindings/Python/RequiredLibraries/ipyw.exe.config
  52. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/Chiron.exe
  53. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/IronRuby.Libraries.Yaml.dll
  54. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/IronRuby.Libraries.dll
  55. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/IronRuby.dll
  56. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Dynamic.dll
  57. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.Metadata.dll
  58. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.dll
  59. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/ir.exe
  60. 3
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/RubyBinding.csproj
  61. 8
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyProject.cs
  62. 2
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/RubyBinding.Tests.csproj
  63. 12
      src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingDesignerLoader.cs
  64. 8
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/VBNetProject.cs
  65. 8
      src/AddIns/BackendBindings/WixBinding/Project/Src/Project/WixProject.cs
  66. 17
      src/AddIns/BackendBindings/XamlBinding/XamlBinding.Tests/ResolveContextTests.cs
  67. 4
      src/AddIns/BackendBindings/XamlBinding/XamlBinding.Tests/UtilsTests.cs
  68. 19
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/Utils.cs
  69. 6
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlExpressionFinder.cs
  70. 13
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlResolver.cs
  71. 7
      src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.csproj
  72. 65
      src/AddIns/Debugger/Debugger.AddIn/Options/DebuggingOptionsPanel.xaml
  73. 131
      src/AddIns/Debugger/Debugger.AddIn/Pads/CallStackPad.xaml.cs
  74. 6
      src/AddIns/Debugger/Debugger.AddIn/Pads/Commands/WatchPadCommands.cs
  75. 16
      src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/SimpleListViewControl.xaml
  76. 62
      src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/SimpleListViewControl.xaml.cs
  77. 9
      src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/TreeNodeWrapper.cs
  78. 10
      src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/WatchList.xaml.cs
  79. 23
      src/AddIns/Debugger/Debugger.AddIn/Pads/DebuggerPad.cs
  80. 64
      src/AddIns/Debugger/Debugger.AddIn/Pads/LoadedModulesPad.cs
  81. 42
      src/AddIns/Debugger/Debugger.AddIn/Pads/LocalVarPad.cs
  82. 2
      src/AddIns/Debugger/Debugger.AddIn/Pads/MemoryPad.cs
  83. 8
      src/AddIns/Debugger/Debugger.AddIn/Pads/ObjectGraphPad.cs
  84. 180
      src/AddIns/Debugger/Debugger.AddIn/Pads/ParallelPad/ParallelStackFrameModel.cs
  85. 116
      src/AddIns/Debugger/Debugger.AddIn/Pads/ParallelPad/ParallelStackPad.cs
  86. 45
      src/AddIns/Debugger/Debugger.AddIn/Pads/ParallelPad/ThreadStack.xaml.cs
  87. 17
      src/AddIns/Debugger/Debugger.AddIn/Pads/RunningThreadsPad.Menu.cs
  88. 127
      src/AddIns/Debugger/Debugger.AddIn/Pads/RunningThreadsPad.cs
  89. 7
      src/AddIns/Debugger/Debugger.AddIn/Pads/WatchInputBox.xaml.cs
  90. 62
      src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPad.cs
  91. 6
      src/AddIns/Debugger/Debugger.AddIn/Service/DebuggeeExceptionForm.cs
  92. 31
      src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs
  93. 83
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/Utils.cs
  94. 21
      src/AddIns/Debugger/Debugger.AddIn/Visualizers/Graph/ObjectGraphControl.xaml.cs
  95. 2
      src/AddIns/Debugger/Debugger.AddIn/Visualizers/Graph/ObjectGraphWindow.xaml.cs
  96. 8
      src/AddIns/Debugger/Debugger.AddIn/Visualizers/PresentationBindings/EnumViewModel.cs
  97. 6
      src/AddIns/Debugger/Debugger.AddIn/Visualizers/PresentationBindings/GridViewColumnHider.cs
  98. 23
      src/AddIns/Debugger/Debugger.AddIn/Visualizers/PresentationBindings/ViewModelBase.cs
  99. 1
      src/AddIns/Debugger/Debugger.Core/Debugger.Core.csproj
  100. 154
      src/AddIns/Debugger/Debugger.Core/IDStringProvider.cs
  101. Some files were not shown because too many files have changed in this diff Show More

14
README.txt

@ -19,19 +19,19 @@ you would expect in an IDE plus a few more. @@ -19,19 +19,19 @@ you would expect in an IDE plus a few more.
How To Compile
SharpDevelop can be compiled using the supplied .bat files, or in SharpDevelop itself.
System Requirements (compile and run time)
- Windows XP SP2 or higher.
- .NET 3.5 SP1
System Requirements (running SharpDevelop)
- Windows XP SP2 or higher.
- .NET 4 prerequisites (might be already installed, e.g. by Windows Update):
- Windows Installer 3.1: http://www.microsoft.com/downloads/details.aspx?familyid=889482FC-5F56-4A38-B838-DE776FD4138C&displaylang=en
- Windows Imaging Component: http://www.microsoft.com/downloads/details.aspx?FamilyId=8E011506-6307-445B-B950-215DEF45DDD8&displaylang=en#filelist
- .NET 4.0 Full (Extended, the "Client" portion is not sufficient)
- Visual C++ 2008 SP1 Runtime (http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en)
Extended Requirements to compile
- Windows SDK 7.0
- Windows SDK 6.1 (optional; C++ compiler needed for profiler)
- Windows PowerShell
Extended Requirements (building SharpDevelop)
- .NET 3.5 SP1
- Windows SDK 7.1
- Windows SDK 7.0 (optional; C++ compiler needed for profiler)
- Windows PowerShell
Libraries and integrated tools:
AvalonDock: New BSD License (BSD) (thanks to Adolfo Marinucci)

17
SharpDevelop.Tests.sln

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.2.0.8590-beta
# SharpDevelop 4.2.0.8564-beta
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{256F5C28-532C-44C0-8AB8-D8EC5E492E01}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
@ -641,6 +641,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting.Tests", "src\Ad @@ -641,6 +641,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting.Tests", "src\Ad
{1152B71B-3C05-4598-B20D-823B5D40559E} = {1152B71B-3C05-4598-B20D-823B5D40559E}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeQuality", "src\AddIns\Analysis\CodeQuality\CodeQuality.csproj", "{3C532D80-32B4-40E5-B5FE-BC6BAE1A00E7}"
EndProject
Project("{00000000-0000-0000-0000-000000000000}") = "Tools", "src\Tools\Tools.build", "{3DF4060F-5EE0-41CF-8096-F27355FD5511}"
EndProject
Global
@ -1421,6 +1423,18 @@ Global @@ -1421,6 +1423,18 @@ Global
{66B1741A-CCCE-4692-81EA-1D5D58ECC5E5}.Release|Win32.ActiveCfg = Release|x86
{66B1741A-CCCE-4692-81EA-1D5D58ECC5E5}.Release|x86.Build.0 = Release|x86
{66B1741A-CCCE-4692-81EA-1D5D58ECC5E5}.Release|x86.ActiveCfg = Release|x86
{3C532D80-32B4-40E5-B5FE-BC6BAE1A00E7}.Debug|Any CPU.Build.0 = Debug|x86
{3C532D80-32B4-40E5-B5FE-BC6BAE1A00E7}.Debug|Any CPU.ActiveCfg = Debug|x86
{3C532D80-32B4-40E5-B5FE-BC6BAE1A00E7}.Debug|Win32.Build.0 = Debug|x86
{3C532D80-32B4-40E5-B5FE-BC6BAE1A00E7}.Debug|Win32.ActiveCfg = Debug|x86
{3C532D80-32B4-40E5-B5FE-BC6BAE1A00E7}.Debug|x86.Build.0 = Debug|x86
{3C532D80-32B4-40E5-B5FE-BC6BAE1A00E7}.Debug|x86.ActiveCfg = Debug|x86
{3C532D80-32B4-40E5-B5FE-BC6BAE1A00E7}.Release|Any CPU.Build.0 = Release|x86
{3C532D80-32B4-40E5-B5FE-BC6BAE1A00E7}.Release|Any CPU.ActiveCfg = Release|x86
{3C532D80-32B4-40E5-B5FE-BC6BAE1A00E7}.Release|Win32.Build.0 = Release|x86
{3C532D80-32B4-40E5-B5FE-BC6BAE1A00E7}.Release|Win32.ActiveCfg = Release|x86
{3C532D80-32B4-40E5-B5FE-BC6BAE1A00E7}.Release|x86.Build.0 = Release|x86
{3C532D80-32B4-40E5-B5FE-BC6BAE1A00E7}.Release|x86.ActiveCfg = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -1565,5 +1579,6 @@ Global @@ -1565,5 +1579,6 @@ Global
{08CE9972-283B-44F4-82FA-966F7DFA6B7A} = {F355E45F-F54F-4B42-8916-9A633A392789}
{CE498514-D12D-4B6E-AE0E-FEC29BD43748} = {F355E45F-F54F-4B42-8916-9A633A392789}
{44A8DE09-CAB9-49D8-9CFC-5EB0A552F181} = {F355E45F-F54F-4B42-8916-9A633A392789}
{3C532D80-32B4-40E5-B5FE-BC6BAE1A00E7} = {F355E45F-F54F-4B42-8916-9A633A392789}
EndGlobalSection
EndGlobal

2
SharpDevelop.sln

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.2.0.8590-beta
# SharpDevelop 4.2.0.8634-beta
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{256F5C28-532C-44C0-8AB8-D8EC5E492E01}"
ProjectSection(SolutionItems) = postProject
EndProjectSection

3
data/resources/StringResources.cz.resx

@ -1499,6 +1499,9 @@ Chcete přidat nový soubor do projektu ${CurrentProjectName}?</value> @@ -1499,6 +1499,9 @@ Chcete přidat nový soubor do projektu ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.ShowErrorListPadCheckBox" xml:space="preserve">
<value>Zobrazovat seznam chyb, pokud skončí sestavení chybou</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>Aktuální jazyk UI:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>Klepněte na ikonu pro výběr jazyka.</value>
</data>

155
data/resources/StringResources.de.resx

@ -629,6 +629,9 @@ Optional können Sie auch ein Arbeitsverzeichnis und Kommandozeilen-Argumente an @@ -629,6 +629,9 @@ Optional können Sie auch ein Arbeitsverzeichnis und Kommandozeilen-Argumente an
<data name="AddIns.SharpRefactoring.ResolveExtensionMethod" xml:space="preserve">
<value>Erweiterungsmethode {0} auflösen</value>
</data>
<data name="AddIns.SourceAnalysis.CheckProjectWithStyleCop" xml:space="preserve">
<value>Aktuelles Projekt mit StyleCop überprüfen</value>
</data>
<data name="AddIns.SourceAnalysis.CheckWithStyleCop" xml:space="preserve">
<value>Mit StyleCop überprüfen</value>
</data>
@ -1862,6 +1865,9 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value> @@ -1862,6 +1865,9 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping" xml:space="preserve">
<value>Einzelschrittausführung</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping.DecompileCodeWithoutSymbols" xml:space="preserve">
<value>Code ohne Symbole dekompilieren</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping.EnableJustMyCode" xml:space="preserve">
<value>"Nur eigenen Code"-Feature aktivieren</value>
</data>
@ -1982,6 +1988,9 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value> @@ -1982,6 +1988,9 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.WhenRunning.RegularBuild" xml:space="preserve">
<value>Erstelle alle Projekte</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>Aktuelle Oberflächensprache:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>Auf Icon klicken, um neue Sprache zu wählen.</value>
</data>
@ -2093,6 +2102,9 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value> @@ -2093,6 +2102,9 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value>
<data name="Dialog.Options.IDEOptions.TextEditor.General.AntialiasedFontCheckBox" xml:space="preserve">
<value>Schriften &amp;glätten</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.General.ChangeMarkerMarginCheckBox" xml:space="preserve">
<value>Änderungsmarkierungen anzeigen</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.General.CodeCompletionCheckBox" xml:space="preserve">
<value>&amp;Code Completion aktivieren</value>
</data>
@ -2174,6 +2186,9 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value> @@ -2174,6 +2186,9 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.PanelName" xml:space="preserve">
<value>Markierungen und Liniale</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.ShowHiddenDefinitionsCheckBox" xml:space="preserve">
<value>Verdeckte Definitionen anzeigen (nur geschweifte Klammern)</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.SpacesCheckBox" xml:space="preserve">
<value>&amp;Leerzeichen anzeigen</value>
</data>
@ -3036,6 +3051,9 @@ Bitte einen anderen Dateinamen wählen.</value> @@ -3036,6 +3051,9 @@ Bitte einen anderen Dateinamen wählen.</value>
<data name="ICSharpCode.CodeAnalysis" xml:space="preserve">
<value>Code-Analyse</value>
</data>
<data name="ICSharpCode.CodeAnalysis.CheckProjectWithFxCop" xml:space="preserve">
<value>Aktuelles Projekt mit FxCop prüfen</value>
</data>
<data name="ICSharpCode.CodeAnalysis.CheckWithFxCop" xml:space="preserve">
<value>Mit FxCop überprüfen</value>
</data>
@ -3302,6 +3320,9 @@ Bitte stellen Sie den Pfad zur NAnt-Anwendung in den SharpDevelop-Optionen ein.< @@ -3302,6 +3320,9 @@ Bitte stellen Sie den Pfad zur NAnt-Anwendung in den SharpDevelop-Optionen ein.<
<data name="ICSharpCode.NAntAddIn.StopNAntMenuLabel" xml:space="preserve">
<value>NAnt an&amp;halten</value>
</data>
<data name="ICSharpCode.NoStartupProject" xml:space="preserve">
<value>Es ist kein Startprojekt zum Debuggen vorhanden.</value>
</data>
<data name="ICSharpCode.NUnitPad.NUnitPadContent.PadName" xml:space="preserve">
<value>Unit-Tests</value>
</data>
@ -3365,6 +3386,9 @@ Bitte stellen Sie den Pfad zur NAnt-Anwendung in den SharpDevelop-Optionen ein.< @@ -3365,6 +3386,9 @@ Bitte stellen Sie den Pfad zur NAnt-Anwendung in den SharpDevelop-Optionen ein.<
<data name="ICSharpCode.Refactoring.NoClassOrOverridableSymbolUnderCursorError" xml:space="preserve">
<value>Das gewählte Element ist keine Klasse oder überschreibbares Mitglied, daher können keine Symbole angezeigt werden.</value>
</data>
<data name="ICSharpCode.Refactoring.NoClassUnderCursorError" xml:space="preserve">
<value>Konnte keine Typdefinition an der Einfügemarkenposition finden.</value>
</data>
<data name="ICSharpCode.RubyBinding.SendLineToRubyConsole" xml:space="preserve">
<value>Zeile an Ruby Konsole senden</value>
</data>
@ -3767,6 +3791,9 @@ wurde außerhalb der Applikation geändert. Wollen Sie die Datei neu laden?</val @@ -3767,6 +3791,9 @@ wurde außerhalb der Applikation geändert. Wollen Sie die Datei neu laden?</val
<data name="ICSharpCode.SharpDevelop.FormDesigner.LoadErrorCheckSourceCodeForErrors" xml:space="preserve">
<value>Konnte den Designer nicht laden. Prüfen Sie den Sourcecode auf Syntaxfehler und stellen Sie sicher, dass alle Referenzen verfügbar sind.</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.ReportFlushErrors" xml:space="preserve">
<value>Ein oder mehrere Fehler traten auf, beim Versuch den Designer-Inhalt zu erneuern. Ein Grund dafür könnte eine unbehandelte Ausnahme in Benutzer-/Dritthersteller-Komponenten, die auf dem Control/der Form verwendet werden, sein.</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.ToolboxProvider.CantLoadSidbarComponentLibraryWarning" xml:space="preserve">
<value>Konnte Sidebar Komponentenbibliothek nicht laden.
Keine Windows Forms Komponenten werden verfügbar sein, bitte konfigurieren Sie den Sidebar manuell.
@ -4051,6 +4078,9 @@ Grund: Der Wert zu dem zurückgesetzt werden soll ist ungültig weil sich eine a @@ -4051,6 +4078,9 @@ Grund: Der Wert zu dem zurückgesetzt werden soll ist ungültig weil sich eine a
<data name="ICSharpCode.SharpDevelop.LoadingFile" xml:space="preserve">
<value>Lade ${Filename}...</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.CloseSolution" xml:space="preserve">
<value>Projektmappe schließen</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.KeepOldSolution" xml:space="preserve">
<value>Alte Projektmappe offen halten</value>
</data>
@ -4084,6 +4114,14 @@ Grund: Der Wert zu dem zurückgesetzt werden soll ist ungültig weil sich eine a @@ -4084,6 +4114,14 @@ Grund: Der Wert zu dem zurückgesetzt werden soll ist ungültig weil sich eine a
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.Title" xml:space="preserve">
<value>Projekt-Update</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpdateOnLoadDueToMissingMSBuild" xml:space="preserve">
<value>Das Projekt '${ProjectName}' hat als Build-Ziel MSBuild ${OldToolsVersion}, aber diese Version ist nicht installiert.
Möchten Sie das Projekt auf MSBuild ${NewToolsVersion} upgraden?
Das Projekt kann nicht ohne Upgrade geöffnet werden.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpdateToMSBuildButton" xml:space="preserve">
<value>Auf MSBuild ${NewToolsVersion} upgraden</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpgradeFromPreviousVersionDescription" xml:space="preserve">
<value>Diese Projektmappe wurde mit einer vorherigen Version von SharpDevelop erstellt. Sie möchten sie vielleicht aktualisieren, um neue Sprach- und Framework-Features verwenden zu können.</value>
</data>
@ -4145,6 +4183,48 @@ In "Optionen-&gt;Visueller Stil" kann die Sprachumgebung neu eingestellt werden. @@ -4145,6 +4183,48 @@ In "Optionen-&gt;Visueller Stil" kann die Sprachumgebung neu eingestellt werden.
<data name="ICSharpCode.UnitTesting.TestRunnerNotFoundMessageFormat" xml:space="preserve">
<value>Die Unit Tests können nicht ausgeführt werden. Die Datei {0} kann nicht gefunden werden.</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel" xml:space="preserve">
<value>Web</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.ApplicationExists" xml:space="preserve">
<value>Applikation existiert bereits.</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.CreateVirtualDir" xml:space="preserve">
<value>Applikation/Virtuelles Verzeichnis erstellen</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.DisableWebServerButton" xml:space="preserve">
<value>Web-Server Optionen deaktivieren</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.IISNotFound" xml:space="preserve">
<value>Ein lokaler IIS oder IIS Express Server wurde nicht gefunden.</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.NoIISWP" xml:space="preserve">
<value>Der ASP.NET/IIS (Express) Worker-Prozess ({0}) wurde nicht gefunden.</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.NoProjectUrlOrProgramAction" xml:space="preserve">
<value>Es wurde kein extern Programm oder URL zum Start angegeben. Bitte prüfen Sie die Webserver-Einstellungen in den Projekteigenschaften auf der Registerkarte "Web".</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.Port" xml:space="preserve">
<value>Server-Port:</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.ProjectUrl" xml:space="preserve">
<value>Projekt URL:</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.Server" xml:space="preserve">
<value>Webserver</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.UnableToAttach" xml:space="preserve">
<value>Der Debugger konnte nicht an den Prozess angehängt werden.</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.UseIISExpress" xml:space="preserve">
<value>IIS Express Webserver verwenden</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.UseLocalIIS" xml:space="preserve">
<value>Lokalen IIS Webserver verwenden</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.VirtualDirCreated" xml:space="preserve">
<value>Applikation/Virtuelles Verzeichnis wurde angelegt.</value>
</data>
<data name="ICSharpCode.WixBinding.AddCompilerExtensionsDialog.Title" xml:space="preserve">
<value>Erweiterungen hinzufügen</value>
</data>
@ -4740,6 +4820,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4740,6 +4820,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.CallStack.CannotSwitchWithoutSymbols" xml:space="preserve">
<value>Es kann nicht zu einer Funktion ohne Debugsymbole gewechselt werden.</value>
</data>
<data name="MainWindow.Windows.Debug.CallStack.CannotSwitchWithoutSymbolsOrDecompiledCodeOptions" xml:space="preserve">
<value>Sie können nicht zu einer Funktion ohne Debug-Symbole wechseln. Entweder kompilieren Sie sie mit Debug-Symbolen erneut oder aktivieren "Code ohne Symbole dekompilieren" in den Optionen.</value>
</data>
<data name="MainWindow.Windows.Debug.CallStack.ExternalMethods" xml:space="preserve">
<value>[Externe Methoden]</value>
</data>
@ -4749,6 +4832,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4749,6 +4832,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.CallStack.Language" xml:space="preserve">
<value>Sprache</value>
</data>
<data name="MainWindow.Windows.Debug.CallStack.Module" xml:space="preserve">
<value>Modul</value>
</data>
<data name="MainWindow.Windows.Debug.CallStack.ShowArgumentNames" xml:space="preserve">
<value>Parameternamen anzeigen</value>
</data>
@ -4758,6 +4844,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4758,6 +4844,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.CallStack.ShowExternalMethods" xml:space="preserve">
<value>Externe Methoden anzeigen</value>
</data>
<data name="MainWindow.Windows.Debug.CallStack.ShowLineNumber" xml:space="preserve">
<value>Zeilennummern anzeigen</value>
</data>
<data name="MainWindow.Windows.Debug.CallStack.ShowModuleNames" xml:space="preserve">
<value>Modulnamen anzeigen</value>
</data>
<data name="MainWindow.Windows.Debug.Conditional.Breakpoints.Ask" xml:space="preserve">
<value>Nachfragen</value>
</data>
@ -4818,6 +4910,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4818,6 +4910,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.ExceptionForm.Error.CannotInterceptException" xml:space="preserve">
<value>Konnte Exception nicht abfangen. Das debuggte Programm kann nicht fortgesetzt werden.</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Error.CannotInterceptHandledException" xml:space="preserve">
<value>Die behandelte Ausnahme kann nicht abgefangen werden. Debug-Symbole sind möglicherweise nicht für den Ursprung der Ausnahme vorhanden.</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.HideExceptionDetails" xml:space="preserve">
<value>Verstecke Ausnahmen-Details</value>
</data>
@ -4905,18 +5000,57 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4905,18 +5000,57 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.LocalVariables.StaticMembers" xml:space="preserve">
<value>Statische Mitglieder</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad" xml:space="preserve">
<value>Speicher</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.AddressNotFound" xml:space="preserve">
<value>Speicheradresse {0} nicht gefunden!</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.ByteSize" xml:space="preserve">
<value>Byte-Größe der Ansicht:</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.JumpTo" xml:space="preserve">
<value>Zu Adresse springen:</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.NextAddress" xml:space="preserve">
<value>Nächste virtuelle Adressen</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.NoMappings" xml:space="preserve">
<value>Keine Zuordnungen von Speicheradressen vorhanden!</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.NotDebuggingOrProcessRunning" xml:space="preserve">
<value>Debugging nicht aktiv oder der Prozess ist nicht angehalten!</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.PreviousAddress" xml:space="preserve">
<value>Vorherige virtuelle Adressen</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.ReadingFromFormat" xml:space="preserve">
<value>Lese von {0} bis {1} - Größe {2}.</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.Refresh" xml:space="preserve">
<value>Adressen aktualisieren</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.UnableToReadFormat" xml:space="preserve">
<value>Konnte keinen Block der Größe {1} an Adresse {0} lesen.</value>
</data>
<data name="MainWindow.Windows.Debug.Modules" xml:space="preserve">
<value>Module</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.AddressColumn" xml:space="preserve">
<value>Adresse</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.DynamicModule" xml:space="preserve">
<value>(dynamisch)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.HasNoSymbols" xml:space="preserve">
<value>Keine Symbole geladen.</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.HasSymbols" xml:space="preserve">
<value>Symbole geladen.</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.InMemoryModule" xml:space="preserve">
<value>(im Speicher)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.OrderColumn" xml:space="preserve">
<value>Reihenfolge</value>
</data>
@ -4935,12 +5069,18 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4935,12 +5069,18 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.ObjectGraph" xml:space="preserve">
<value>Objektgraph</value>
</data>
<data name="MainWindow.Windows.Debug.ParallelStack" xml:space="preserve">
<value>Parallele Aufrufstacks</value>
</data>
<data name="MainWindow.Windows.Debug.RunToCursor" xml:space="preserve">
<value>Bis zum Cursor ausführen</value>
</data>
<data name="MainWindow.Windows.Debug.SetCurrentStatement" xml:space="preserve">
<value>Aktive Anweisung festlegen</value>
</data>
<data name="MainWindow.Windows.Debug.StopDebugging.Message" xml:space="preserve">
<value>Wollen Sie das Debuggen beenden?</value>
</data>
<data name="MainWindow.Windows.Debug.StopProcessDialog.Message" xml:space="preserve">
<value>Soll der Debugger vom Prozess getrennt werden oder der Prozess beendet werden?</value>
</data>
@ -4953,9 +5093,15 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4953,9 +5093,15 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.Threads.CannotStepNoActiveFunction" xml:space="preserve">
<value>Sie können keinen Einzelschritt ausführen, weil keine aktive Funktion ausgewählt ist.</value>
</data>
<data name="MainWindow.Windows.Debug.Threads.CannotSwitchOnNAFrame" xml:space="preserve">
<value>Sie können nicht zu einem Thread wechseln, für den kein Frame vorhanden ist.</value>
</data>
<data name="MainWindow.Windows.Debug.Threads.CannotSwitchWhileRunning" xml:space="preserve">
<value>Sie können nicht zwischen Threads umschalten, während der Debugger läuft.</value>
</data>
<data name="MainWindow.Windows.Debug.Threads.CannotSwitchWithoutDecompiledCodeOptions" xml:space="preserve">
<value>You cannot switch to a thread paused at a function without debug symbols. Either recompile it with symbols or enable "Decompile code without symbols" in the options.</value>
</data>
<data name="MainWindow.Windows.Debug.Threads.Freeze" xml:space="preserve">
<value>Einfrieren</value>
</data>
@ -4983,6 +5129,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4983,6 +5129,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.Threads.ThreadSwitch" xml:space="preserve">
<value>Thread-Wechsel</value>
</data>
<data name="MainWindow.Windows.Debug.ToggleMethodView" xml:space="preserve">
<value>Methodenansicht umschalten</value>
</data>
<data name="MainWindow.Windows.Debug.Watch" xml:space="preserve">
<value>Überwachen</value>
</data>
@ -6163,6 +6312,9 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht @@ -6163,6 +6312,9 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht
<data name="Templates.File.EmptyFile.Name" xml:space="preserve">
<value>Leere Datei</value>
</data>
<data name="Templates.File.Exception.Description" xml:space="preserve">
<value>Erstellt eine neue Exception-Klasse.</value>
</data>
<data name="Templates.File.Exception.Name" xml:space="preserve">
<value>Ausnahme</value>
</data>
@ -6328,6 +6480,9 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht @@ -6328,6 +6480,9 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht
<data name="Templates.File.WebForm.Name" xml:space="preserve">
<value>ASP.NET Web Form</value>
</data>
<data name="Templates.File.WebHandler.Description" xml:space="preserve">
<value>Erstellt einen ASP.NET WebHandler mit Code-Datei.</value>
</data>
<data name="Templates.File.WebHandler.Name" xml:space="preserve">
<value>ASP.NET Web Handler</value>
</data>

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

@ -229,6 +229,15 @@ Descargue un complemento de Internet, luego haga clic en "Instalar AddIn" y sele @@ -229,6 +229,15 @@ 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="AddIns.AvalonEdit.InconsistentNewlines.Description" xml:space="preserve">
<value>Este archivo contiene finales de línea inconsistentes.</value>
</data>
<data name="AddIns.AvalonEdit.InconsistentNewlines.Header" xml:space="preserve">
<value>Finales de Línea Inconsistentes</value>
</data>
<data name="AddIns.AvalonEdit.InconsistentNewlines.Normalize" xml:space="preserve">
<value>Normalizar</value>
</data>
<data name="AddIns.AvalonEdit.SearchPanel.ErrorText" xml:space="preserve">
<value>Error:</value>
</data>
@ -262,6 +271,9 @@ Descargue un complemento de Internet, luego haga clic en "Instalar AddIn" y sele @@ -262,6 +271,9 @@ Descargue un complemento de Internet, luego haga clic en "Instalar AddIn" y sele
<data name="AddIns.HelpViewer.HelpModeLabel" xml:space="preserve">
<value>Modo de Ayuda</value>
</data>
<data name="AddIns.HelpViewer.HLMNoActiveCatalogError" xml:space="preserve">
<value>No se pudo ejecutar el Manejador de Bibliotecas de Ayuda, debido a que no se hay instalado/seleccionado un catalogo. Por favor verifique las opciones de ayuda. (vea Herramientas &gt; Opciones &gt; Herramientas &gt; Microsoft Help View).</value>
</data>
<data name="AddIns.HelpViewer.HLMNotFound" xml:space="preserve">
<value>No se encontró Help Library Manager. Por favor verifique que halla sido instalado correctamente.</value>
</data>
@ -618,6 +630,9 @@ Opcionalmente puede especificar un directorio de trabajo y argumentos de línea @@ -618,6 +630,9 @@ Opcionalmente puede especificar un directorio de trabajo y argumentos de línea
<data name="AddIns.SharpRefactoring.ResolveExtensionMethod" xml:space="preserve">
<value>Resolver método de extensión {0}</value>
</data>
<data name="AddIns.SourceAnalysis.CheckProjectWithStyleCop" xml:space="preserve">
<value>Verificar el proyecto actual con StyleCop</value>
</data>
<data name="AddIns.SourceAnalysis.CheckWithStyleCop" xml:space="preserve">
<value>Verificar con StyleCop</value>
</data>
@ -1971,6 +1986,9 @@ Ejemplo: "120", "MainClass", "Main.cs, 120".</value> @@ -1971,6 +1986,9 @@ Ejemplo: "120", "MainClass", "Main.cs, 120".</value>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.WhenRunning.RegularBuild" xml:space="preserve">
<value>Generar todos los proyectos</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>Idioma Actual de la Interfaz:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>Haga clic en un icono para seleccionar el idioma.</value>
</data>
@ -2001,15 +2019,6 @@ Ejemplo: "120", "MainClass", "Main.cs, 120".</value> @@ -2001,15 +2019,6 @@ Ejemplo: "120", "MainClass", "Main.cs, 120".</value>
<data name="Dialog.Options.IDEOptions.SelectVisualStyle.PanelName" xml:space="preserve">
<value>Apariencia</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.ExpandReferences" xml:space="preserve">
<value>Expandir referencias de proyectos (reflect references)</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.GroupBoxHeader" xml:space="preserve">
<value>Opciones de Interfaz Gráfica de Sharp Develop</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.PanelName" xml:space="preserve">
<value>Opciones de Interfaz Gráfica de Sharp Develop</value>
</data>
<data name="Dialog.Options.IDEOptions.TaskListOptions.CommentTagsGroupBox" xml:space="preserve">
<value>Etiquetas de comentarios</value>
</data>
@ -3038,6 +3047,9 @@ También puede elegir guardar la opción en el archivo .user en lugar de en el a @@ -3038,6 +3047,9 @@ También puede elegir guardar la opción en el archivo .user en lugar de en el a
<data name="ICSharpCode.CodeAnalysis" xml:space="preserve">
<value>Análisis de Código</value>
</data>
<data name="ICSharpCode.CodeAnalysis.CheckProjectWithFxCop" xml:space="preserve">
<value>Verificar el proyecto actual con FxCop</value>
</data>
<data name="ICSharpCode.CodeAnalysis.CheckWithFxCop" xml:space="preserve">
<value>Verificar con FxCop</value>
</data>
@ -4661,6 +4673,18 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4661,6 +4673,18 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.DiscardChangesMessage" xml:space="preserve">
<value>¿Desea realmente descartar los cambios?</value>
</data>
<data name="MainWindow.Editor.Tooltip.LocalVar" xml:space="preserve">
<value>variable local</value>
</data>
<data name="MainWindow.Editor.Tooltip.Namespace" xml:space="preserve">
<value>espacio de nombres</value>
</data>
<data name="MainWindow.Editor.Tooltip.Parameter" xml:space="preserve">
<value>parámetro</value>
</data>
<data name="MainWindow.Editor.Tooltip.UnresolvedOverload" xml:space="preserve">
<value>overload de</value>
</data>
<data name="MainWindow.SaveChangesMessage" xml:space="preserve">
<value>¿Desea guardar los cambios hechos?</value>
</data>
@ -4853,6 +4877,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4853,6 +4877,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.ExceptionForm.Error.CannotInterceptException" xml:space="preserve">
<value>No se pudo interceptar la excepción. El programa depurado no puede continuar y sus propiedades no se pueden evaluar.</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Error.CannotInterceptHandledException" xml:space="preserve">
<value>No se pudo interceptar una excepción controlada. Los símbolos de depuración pueden no estar disponibles para la fuente de la excepción.</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.HideExceptionDetails" xml:space="preserve">
<value>Ocultar Detalles de la Excepción</value>
</data>
@ -4979,12 +5006,18 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4979,12 +5006,18 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.Modules.AddressColumn" xml:space="preserve">
<value>Dirección</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.DynamicModule" xml:space="preserve">
<value>(dinámico)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.HasNoSymbols" xml:space="preserve">
<value>No se cargaron símbolos.</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.HasSymbols" xml:space="preserve">
<value>Símbolos cargados.</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.InMemoryModule" xml:space="preserve">
<value>(en memoria)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.OrderColumn" xml:space="preserve">
<value>Ordenar</value>
</data>

12
data/resources/StringResources.es.resx

@ -1967,6 +1967,9 @@ Para crear/manipular un objeto ActiveX/COM, arrastre una clase de un Control/Bib @@ -1967,6 +1967,9 @@ Para crear/manipular un objeto ActiveX/COM, arrastre una clase de un Control/Bib
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.WhenRunning.RegularBuild" xml:space="preserve">
<value>Generar todos los proyectos</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>Idioma Actual de la Interfaz:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>Clic en un icono para seleccionar el lenguaje.</value>
</data>
@ -1997,15 +2000,6 @@ Para crear/manipular un objeto ActiveX/COM, arrastre una clase de un Control/Bib @@ -1997,15 +2000,6 @@ Para crear/manipular un objeto ActiveX/COM, arrastre una clase de un Control/Bib
<data name="Dialog.Options.IDEOptions.SelectVisualStyle.PanelName" xml:space="preserve">
<value>Apariencia</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.ExpandReferences" xml:space="preserve">
<value>Expandir referencias de proyectos (reflect references)</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.GroupBoxHeader" xml:space="preserve">
<value>Opciones de Interfaz Gráfica de Sharp Develop</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.PanelName" xml:space="preserve">
<value>Opciones de Interfaz Gráfica de Sharp Develop</value>
</data>
<data name="Dialog.Options.IDEOptions.TaskListOptions.CommentTagsGroupBox" xml:space="preserve">
<value>Etiquetas de Comentarios</value>
</data>

12
data/resources/StringResources.fr.resx

@ -1982,6 +1982,9 @@ Voulez-vous ajouter le nouveau fichier au projet ${CurrentProjectName}?</value> @@ -1982,6 +1982,9 @@ Voulez-vous ajouter le nouveau fichier au projet ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.WhenRunning.RegularBuild" xml:space="preserve">
<value>Construire tous les projets</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>Langue en cours:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>Cliquer sur une icône pour sélectionner la langue.</value>
</data>
@ -2012,15 +2015,6 @@ Voulez-vous ajouter le nouveau fichier au projet ${CurrentProjectName}?</value> @@ -2012,15 +2015,6 @@ Voulez-vous ajouter le nouveau fichier au projet ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.SelectVisualStyle.PanelName" xml:space="preserve">
<value>Style visuel</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.ExpandReferences" xml:space="preserve">
<value>Développer les références du projet</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.GroupBoxHeader" xml:space="preserve">
<value>Options de l'interface de SharpDevelop</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.PanelName" xml:space="preserve">
<value>Options de l'interface de SharpDevelop</value>
</data>
<data name="Dialog.Options.IDEOptions.TaskListOptions.CommentTagsGroupBox" xml:space="preserve">
<value>Balises de Commentaires</value>
</data>

3
data/resources/StringResources.hu.resx

@ -1082,6 +1082,9 @@ Hozzáadja az új fáljt a ${CurrentProjectName} projekthez?</value> @@ -1082,6 +1082,9 @@ Hozzáadja az új fáljt a ${CurrentProjectName} projekthez?</value>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.ShowErrorListPadCheckBox" xml:space="preserve">
<value>Mutassa a hibalistát ha a szerkesztés hibával ér véget</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>Pillanatnyi UI nyelv:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>A nyelv kiválasztásához kattintson egy ikonon.</value>
</data>

12
data/resources/StringResources.it.resx

@ -1980,6 +1980,9 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value> @@ -1980,6 +1980,9 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.WhenRunning.RegularBuild" xml:space="preserve">
<value>Compila tutti i progetti</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>Linguaggio IU corrente:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>Clicca su una icona per scegliere la llingua.
</value>
@ -2011,15 +2014,6 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value> @@ -2011,15 +2014,6 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.SelectVisualStyle.PanelName" xml:space="preserve">
<value>Aspetto</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.ExpandReferences" xml:space="preserve">
<value>Espandi riferimenti del progetto (rispecchia riferimenti)</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.GroupBoxHeader" xml:space="preserve">
<value>Opzioni interfaccia utente</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.PanelName" xml:space="preserve">
<value>Opzioni interfaccia utente</value>
</data>
<data name="Dialog.Options.IDEOptions.TaskListOptions.CommentTagsGroupBox" xml:space="preserve">
<value>Marcatori di Commento</value>
</data>

3
data/resources/StringResources.kr.resx

@ -1457,6 +1457,9 @@ ${CurrentProjectName} 프로젝트에 이 새 파일을 더하겠습니까?</val @@ -1457,6 +1457,9 @@ ${CurrentProjectName} 프로젝트에 이 새 파일을 더하겠습니까?</val
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.WhenRunning.RegularBuild" xml:space="preserve">
<value>모든 프로젝트를 빌드</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>현재 사용자 인터페이스 언어:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>언어를 선택하려면 아이콘을 클릭하십시오.</value>
</data>

48
data/resources/StringResources.nl.resx

@ -1868,6 +1868,9 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value> @@ -1868,6 +1868,9 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping" xml:space="preserve">
<value>Stapsgewijs</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping.DecompileCodeWithoutSymbols" xml:space="preserve">
<value>Code decompileren zonder symbolen</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping.EnableJustMyCode" xml:space="preserve">
<value>Stap naar 'Alleen mijn code' kenmerk</value>
</data>
@ -1988,6 +1991,9 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value> @@ -1988,6 +1991,9 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.WhenRunning.RegularBuild" xml:space="preserve">
<value>Bouw alle projecten.</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>Huidige UI taal:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>Selecteer een pictogram om een taal te selecteren.</value>
</data>
@ -2018,15 +2024,6 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value> @@ -2018,15 +2024,6 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.SelectVisualStyle.PanelName" xml:space="preserve">
<value>Vormgeving</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.ExpandReferences" xml:space="preserve">
<value>Project referenties uitbreiden (referenties weergeven)</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.GroupBoxHeader" xml:space="preserve">
<value>SharpDevelop UI opties</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.PanelName" xml:space="preserve">
<value>SharpDevelop UI opties</value>
</data>
<data name="Dialog.Options.IDEOptions.TaskListOptions.CommentTagsGroupBox" xml:space="preserve">
<value>Commentaar labels</value>
</data>
@ -3389,6 +3386,9 @@ Configureer a.u.b. in SharpDevelop opties de locatie van NAnt's uitvoerend besta @@ -3389,6 +3386,9 @@ Configureer a.u.b. in SharpDevelop opties de locatie van NAnt's uitvoerend besta
<data name="ICSharpCode.Refactoring.NoClassOrOverridableSymbolUnderCursorError" xml:space="preserve">
<value>Het geselecteerd element is geen klasse of overschrijfbaar lid, waardoor geen afgeleide symbolen kunnen worden weergegeven.</value>
</data>
<data name="ICSharpCode.Refactoring.NoClassUnderCursorError" xml:space="preserve">
<value>Kon de type definitie niet vinden op de cursorpositie.</value>
</data>
<data name="ICSharpCode.RubyBinding.SendLineToRubyConsole" xml:space="preserve">
<value>Stuur regel naar Ruby console</value>
</data>
@ -3784,6 +3784,9 @@ DIT HEEFT GEEN INVLOED OP DE BRON CODE.</value> @@ -3784,6 +3784,9 @@ DIT HEEFT GEEN INVLOED OP DE BRON CODE.</value>
<data name="ICSharpCode.SharpDevelop.FormDesigner.LoadErrorCheckSourceCodeForErrors" xml:space="preserve">
<value>Laden van ontwerpvlak is mislukt. Ga na of de broncode syntactische fouten bevat en alle referenties beschikbaar zijn.</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.ReportFlushErrors" xml:space="preserve">
<value>Een of meer fouten traden op bij het spoelen van de designer inhoud.Dit kan te wijten zijn aan een niet-afgehandelde uitzondering in een aangepaste/thitd party component op het formulier/besturingselement.</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.ToolboxProvider.CantLoadSidbarComponentLibraryWarning" xml:space="preserve">
<value>Kan de zijkolom Component bibliotheek niet laden. Er zijn geen Windows Forms componenten beschikbaar, stel aub zijkolom handmatig in. (Rechts klikken op een zijkolom categorie -&gt; Zijkolom instellen)</value>
</data>
@ -3996,6 +3999,12 @@ Alleen letters, getallen, spatie, '.' of '_' zijn toegestaan.</value> @@ -3996,6 +3999,12 @@ Alleen letters, getallen, spatie, '.' of '_' zijn toegestaan.</value>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.Culture.Description" xml:space="preserve">
<value>De door de referentie ondersteunde cultuur</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.EmbedInteropTypes" xml:space="preserve">
<value>Interop types inbedden</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.EmbedInteropTypes.Description" xml:space="preserve">
<value>Specificeert welke COM interop types gedefinieerd in de referentie assembly zijn ingebed in de doel assembly.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.LocalCopy" xml:space="preserve">
<value>Lokale kopie</value>
</data>
@ -4059,6 +4068,9 @@ Alleen letters, getallen, spatie, '.' of '_' zijn toegestaan.</value> @@ -4059,6 +4068,9 @@ Alleen letters, getallen, spatie, '.' of '_' zijn toegestaan.</value>
<data name="ICSharpCode.SharpDevelop.LoadingFile" xml:space="preserve">
<value>Laden van ${Filename}...</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.CloseSolution" xml:space="preserve">
<value>Oplossing sluiten</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.KeepOldSolution" xml:space="preserve">
<value>De oude oplossing open houden.</value>
</data>
@ -4092,6 +4104,14 @@ Alleen letters, getallen, spatie, '.' of '_' zijn toegestaan.</value> @@ -4092,6 +4104,14 @@ Alleen letters, getallen, spatie, '.' of '_' zijn toegestaan.</value>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.Title" xml:space="preserve">
<value>Project opwaarderen</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpdateOnLoadDueToMissingMSBuild" xml:space="preserve">
<value>Het project '${ProjectName}' heeft als doel MSBuild ${OldToolsVersion}, maar die versie is niet geïnstalleerd.
Wilt u het project opwaarderen naar MSBuild ${NewToolsVersion}?
Zonder opwaarderen kan het project niet geopend wordenh.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpdateToMSBuildButton" xml:space="preserve">
<value>Opwaarderen naar MSBuild ${NewToolsVersion}</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpgradeFromPreviousVersionDescription" xml:space="preserve">
<value>Deze oplossing werd met een vorige versie van SharpDevelop gemaakt. Door te upgraden kan gebruik gemaakt worden van nieuwe taal of framework mogelijkheden.</value>
</data>
@ -4172,7 +4192,7 @@ Ga naar 'Opties-&gt;Vormgeving' en wijzig de momentele taal ambience.</value> @@ -4172,7 +4192,7 @@ Ga naar 'Opties-&gt;Vormgeving' en wijzig de momentele taal ambience.</value>
<value>ASP.NET/IIS (Express) werker proces ({0}) werd niet gevonden.</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.NoProjectUrlOrProgramAction" xml:space="preserve">
<value>Er is geen project URL of extern programma gespecificeerd. Check de Web server bij Project eigenschappen -&gt; Foutzoeken tab.</value>
<value>Er is geen extern programma of URL gespecificeerd. Controleer de web server bij Project eigenschappen - Web tab.</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.Port" xml:space="preserve">
<value>Server poort:</value>
@ -4791,7 +4811,7 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -4791,7 +4811,7 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<value>Overschakelen naar een functie zonder symbolen is niet mogelijk.</value>
</data>
<data name="MainWindow.Windows.Debug.CallStack.CannotSwitchWithoutSymbolsOrDecompiledCodeOptions" xml:space="preserve">
<value>Wisselen naar een functie zonder symbolen zonder dat de gedecompileerde code opties zijn ingeschakeld.</value>
<value>Kan niet wisselen naar een functie zonder debug symbolen, tenzij hercompileren wordt uitgevoerd en de optie "Decompileer code zonder symbolen" is ingeschakeld.</value>
</data>
<data name="MainWindow.Windows.Debug.CallStack.ExternalMethods" xml:space="preserve">
<value>[Externe methodes]</value>
@ -5009,12 +5029,18 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5009,12 +5029,18 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="MainWindow.Windows.Debug.Modules.AddressColumn" xml:space="preserve">
<value>Adres</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.DynamicModule" xml:space="preserve">
<value>(dynamisch)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.HasNoSymbols" xml:space="preserve">
<value>Geen symbolen geladen.</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.HasSymbols" xml:space="preserve">
<value>Symbolen geladen.</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.InMemoryModule" xml:space="preserve">
<value>(in het geheugen)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.OrderColumn" xml:space="preserve">
<value>Volgorde</value>
</data>

3
data/resources/StringResources.no.resx

@ -1920,6 +1920,9 @@ Eksempler: "120", "MainClass", "Main.cs, 120".</value> @@ -1920,6 +1920,9 @@ Eksempler: "120", "MainClass", "Main.cs, 120".</value>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.WhenRunning.RegularBuild" xml:space="preserve">
<value>Bygg alle prosjekter</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>Nåværende UI-språk:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>Klikk på et ikon for å endre språk.</value>
</data>

3
data/resources/StringResources.pl.resx

@ -1344,6 +1344,9 @@ Czy chcesz dodać nowy plik do projektu ${CurrentProjectName}?</value> @@ -1344,6 +1344,9 @@ Czy chcesz dodać nowy plik do projektu ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.ShowErrorListPadCheckBox" xml:space="preserve">
<value>Pokaż zakładkę listy błędów jeśli budowanie zakończy się z błędami</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>Aktualny język interfejsu użytkownika:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>Kliknij na ikonę aby wybrać język.</value>
</data>

91
data/resources/StringResources.pt-br.resx

@ -228,6 +228,27 @@ @@ -228,6 +228,27 @@
<data name="AddInManager.UnknownFileFormat" xml:space="preserve">
<value>Formato de arquivo desconhecido.</value>
</data>
<data name="AddIns.AvalonEdit.InconsistentNewlines.Description" xml:space="preserve">
<value>Esse arquivo contem novas linhas inconsistentes.</value>
</data>
<data name="AddIns.AvalonEdit.InconsistentNewlines.Header" xml:space="preserve">
<value>Novas linhas inconsistente</value>
</data>
<data name="AddIns.AvalonEdit.InconsistentNewlines.Normalize" xml:space="preserve">
<value>Normalizar</value>
</data>
<data name="AddIns.AvalonEdit.SearchPanel.ErrorText" xml:space="preserve">
<value>Erro:</value>
</data>
<data name="AddIns.AvalonEdit.SearchPanel.FindNextText" xml:space="preserve">
<value>Achar proximo</value>
</data>
<data name="AddIns.AvalonEdit.SearchPanel.FindPreviousText" xml:space="preserve">
<value>Achar anterior</value>
</data>
<data name="AddIns.AvalonEdit.SearchPanel.UseRegexText" xml:space="preserve">
<value>Usar expressões regulares</value>
</data>
<data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve">
<value>Mostrar Diagrama de Classes</value>
</data>
@ -249,9 +270,18 @@ @@ -249,9 +270,18 @@
<data name="AddIns.HelpViewer.HelpModeLabel" xml:space="preserve">
<value>Modo Ajuda</value>
</data>
<data name="AddIns.HelpViewer.HLMNoActiveCatalogError" xml:space="preserve">
<value>Não pode lançar o Gerenciador de bibliotecas de Ajuda porque não há catalogo instalado/selecionado. Por favor, verifique sua configuração de ajuda( ver Ferramentas &gt; Opções &gt; Ferramentas &gt; Microsoft Visualizar Ajuda).</value>
</data>
<data name="AddIns.HelpViewer.HLMNotFound" xml:space="preserve">
<value>Não foi encontrado o Gerenciador de biblioteca de Ajuda. Por favor, verifique se foi instalado corretamente.</value>
</data>
<data name="AddIns.HelpViewer.InstalledHelpCatalogsLabel" xml:space="preserve">
<value>Catalogos de Ajuda instalados</value>
</data>
<data name="AddIns.HelpViewer.LaunchHelpLibraryManagerCommand" xml:space="preserve">
<value>Lançar o Gerenciador de bibliotecas de Ajuda</value>
</data>
<data name="AddIns.HelpViewer.MicrosoftHelpViewerTitle" xml:space="preserve">
<value>Visualizador de Ajuda da Microsoft</value>
</data>
@ -294,6 +324,15 @@ @@ -294,6 +324,15 @@
<data name="AddIns.HexEditor.NumeralSystem" xml:space="preserve">
<value>Sistema de numeração</value>
</data>
<data name="AddIns.HexEditor.NumeralSystem.Decimal" xml:space="preserve">
<value>Decimal</value>
</data>
<data name="AddIns.HexEditor.NumeralSystem.Hexadecimal" xml:space="preserve">
<value>Hexadecimal</value>
</data>
<data name="AddIns.HexEditor.NumeralSystem.Octal" xml:space="preserve">
<value>Octal</value>
</data>
<data name="AddIns.HexEditor.SizeToFit" xml:space="preserve">
<value>Redimensionar para ajustar a largura atual.</value>
</data>
@ -505,7 +544,16 @@ @@ -505,7 +544,16 @@
<value>Executar com perfil</value>
</data>
<data name="AddIns.SearchReplace.SearchProgressTitle" xml:space="preserve">
<value>Pesquisar...</value>
<value>Pesquisando...</value>
</data>
<data name="AddIns.SharpRefactoring.CreateProperties.AddSetterLabel" xml:space="preserve">
<value>Adicionar setter</value>
</data>
<data name="AddIns.SharpRefactoring.CreateProperties.Description" xml:space="preserve">
<value>Selecionar os campos para os quais voce deseja criar propriedades.</value>
</data>
<data name="AddIns.SharpRefactoring.CreateProperties.Title" xml:space="preserve">
<value>Criar propriedades</value>
</data>
<data name="AddIns.SharpRefactoring.ExtractMethod" xml:space="preserve">
<value>Extrair método.</value>
@ -576,6 +624,9 @@ @@ -576,6 +624,9 @@
<data name="AddIns.SharpRefactoring.ResolveExtensionMethod" xml:space="preserve">
<value>Resolver metodo extensão {0}</value>
</data>
<data name="AddIns.SourceAnalysis.CheckProjectWithStyleCop" xml:space="preserve">
<value>Verificar projeto corrente com StyleCop</value>
</data>
<data name="AddIns.SourceAnalysis.CheckWithStyleCop" xml:space="preserve">
<value>Verificar com StyleCop</value>
</data>
@ -1317,6 +1368,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ @@ -1317,6 +1368,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ
<data name="ComponentInspector.WaitingForAppDialog.Title" xml:space="preserve">
<value>Aguardando Aplicação para Iniciar</value>
</data>
<data name="CQA.MainWindow.FormTitle" xml:space="preserve">
<value>Analize da qualidade de codigo</value>
</data>
<data name="CSharpBinding.GenerateNewHandlerInstructions" xml:space="preserve">
<value>Inseria referência para deixar o método explícito; pressione Tab ou Enter novamente para inserir um novo método.</value>
</data>
@ -1788,6 +1842,12 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ @@ -1788,6 +1842,12 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ
<data name="Dialog.Options.IDEOptions.Debugging" xml:space="preserve">
<value>Depurando</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Exceptions" xml:space="preserve">
<value>Exceções</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.PauseOnHandledExceptions" xml:space="preserve">
<value>Pausar nas exceções gerenciadas.</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping" xml:space="preserve">
<value>Passo a Passo</value>
</data>
@ -1911,6 +1971,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ @@ -1911,6 +1971,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.WhenRunning.RegularBuild" xml:space="preserve">
<value>Compilar todos projetos</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>Idioma atual da interface:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>Clique em um ícone para escolher o idioma.</value>
</data>
@ -1971,6 +2034,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ @@ -1971,6 +2034,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ
<data name="Dialog.Options.IDEOptions.TextEditor.Behaviour.CutCopyWholeLine" xml:space="preserve">
<value>Cortar ou Copiar linha inteira quando nada está selecionado</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Behaviour.EnableVirtualSpace" xml:space="preserve">
<value>Habilitar o espaço virtual</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Behaviour.HideMouseCheckBox" xml:space="preserve">
<value>Esc&amp;onder cursor do mouse durante digitação</value>
</data>
@ -2019,6 +2085,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ @@ -2019,6 +2085,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ
<data name="Dialog.Options.IDEOptions.TextEditor.General.AntialiasedFontCheckBox" xml:space="preserve">
<value>Desenha&amp;r fontes suavizadas</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.General.ChangeMarkerMarginCheckBox" xml:space="preserve">
<value>Habilitar o marcador de alteração de margem</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.General.CodeCompletionCheckBox" xml:space="preserve">
<value>Habilitar &amp;Assistente de Código</value>
</data>
@ -2064,6 +2133,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ @@ -2064,6 +2133,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.CaretCheckBox" xml:space="preserve">
<value>Mostra linha do cursor</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.EnableAnimationsCheckBox" xml:space="preserve">
<value>Habilitar animações</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.EOLMarkersCheckBox" xml:space="preserve">
<value>Mostrar marcas de &amp;EOL</value>
</data>
@ -2097,6 +2169,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ @@ -2097,6 +2169,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.PanelName" xml:space="preserve">
<value>Marcadores e Réguas</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.ShowHiddenDefinitionsCheckBox" xml:space="preserve">
<value>Mostrar definições escondidas (apenas conchetes)</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.SpacesCheckBox" xml:space="preserve">
<value>Mostrar e&amp;spaços</value>
</data>
@ -2254,7 +2329,7 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ @@ -2254,7 +2329,7 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ
<value>Processador Intel Itanium 64-bit</value>
</data>
<data name="Dialog.ProjectOptions.Build.TargetCPU.x64" xml:space="preserve">
<value>Processador AMD 64 Bits</value>
<value>Processador x86-64 Bits</value>
</data>
<data name="Dialog.ProjectOptions.Build.TargetCPU.x86" xml:space="preserve">
<value>Compatível com processador Intel 32 bits</value>
@ -2955,6 +3030,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ @@ -2955,6 +3030,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ
<data name="ICSharpCode.CodeAnalysis" xml:space="preserve">
<value>Análise de Código</value>
</data>
<data name="ICSharpCode.CodeAnalysis.CheckProjectWithFxCop" xml:space="preserve">
<value>Verificar projeto atual com FxCop</value>
</data>
<data name="ICSharpCode.CodeAnalysis.CheckWithFxCop" xml:space="preserve">
<value>Verificar com FxCop</value>
</data>
@ -3048,6 +3126,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ @@ -3048,6 +3126,9 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ
<data name="ICSharpCode.CodeCoverage.ProjectOptionsPanel.ExcludeListLabel" xml:space="preserve">
<value>Excluir</value>
</data>
<data name="ICSharpCode.CodeCoverage.ProjectOptionsPanel.IncludeListLabel" xml:space="preserve">
<value>Incluir</value>
</data>
<data name="ICSharpCode.CodeCoverage.RunningCodeCoverage" xml:space="preserve">
<value>Rodando cobertura de código...</value>
</data>
@ -3075,6 +3156,12 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ @@ -3075,6 +3156,12 @@ Para criar/manipular um objeto ActiveX/COM, arraste uma classe contida em um Typ
<data name="ICSharpCode.Core.Services.ErrorDialogs.ShowExceptionButton" xml:space="preserve">
<value>Exibir Exceção</value>
</data>
<data name="ICSharpCode.CppBinding.ProjectOptions.AdditionalOptions" xml:space="preserve">
<value>Opções adicionais</value>
</data>
<data name="ICSharpCode.CppBinding.ProjectOptions.Linker" xml:space="preserve">
<value>Ligador</value>
</data>
<data name="ICSharpCode.FiletypeRegisterer.BinaryResourceFilesFileAssozisation" xml:space="preserve">
<value>.NET Arquivo de Recurso(binário)</value>
</data>

3
data/resources/StringResources.pt.resx

@ -1447,6 +1447,9 @@ Exemplos:"120", "MainClass", "Main.cs, 120".</value> @@ -1447,6 +1447,9 @@ Exemplos:"120", "MainClass", "Main.cs, 120".</value>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.ShowErrorListPadCheckBox" xml:space="preserve">
<value>Mostrar pad de lista de erros no caso da compilação terminar com erros</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>Língua da interface actual:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>Clique no ícone para escolher a língua</value>
</data>

53
data/resources/StringResources.resx

@ -1927,6 +1927,9 @@ Do you want to add the new file to the project ${CurrentProjectName}?</value> @@ -1927,6 +1927,9 @@ Do you want to add the new file to the project ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping" xml:space="preserve">
<value>Stepping</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping.DecompileCodeWithoutSymbols" xml:space="preserve">
<value>Decompile code without symbols</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping.EnableJustMyCode" xml:space="preserve">
<value>Use 'Just My Code' feature for stepping</value>
</data>
@ -2056,6 +2059,9 @@ system. I don't think that it needs translation.</comment> @@ -2056,6 +2059,9 @@ system. I don't think that it needs translation.</comment>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.WhenRunning.RegularBuild" xml:space="preserve">
<value>Build all projects</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>Current UI language:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>Click on an icon to choose language.</value>
</data>
@ -2086,15 +2092,6 @@ system. I don't think that it needs translation.</comment> @@ -2086,15 +2092,6 @@ system. I don't think that it needs translation.</comment>
<data name="Dialog.Options.IDEOptions.SelectVisualStyle.PanelName" xml:space="preserve">
<value>Appearance</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.ExpandReferences" xml:space="preserve">
<value>Expand project references (reflect references)</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.GroupBoxHeader" xml:space="preserve">
<value>Sharp Develop UI options</value>
</data>
<data name="Dialog.Options.IDEOptions.SharpDevelop.GeneralUI.PanelName" xml:space="preserve">
<value>Sharp Develop UI options</value>
</data>
<data name="Dialog.Options.IDEOptions.TaskListOptions.CommentTagsGroupBox" xml:space="preserve">
<value>Comment Tags</value>
</data>
@ -3963,6 +3960,10 @@ THIS DOES NOT AFFECT THE SOURCE CODE.</value> @@ -3963,6 +3960,10 @@ THIS DOES NOT AFFECT THE SOURCE CODE.</value>
<data name="ICSharpCode.SharpDevelop.FormDesigner.LoadErrorCheckSourceCodeForErrors" xml:space="preserve">
<value>Failed to load designer. Check the source code for syntax errors and check if all references are available.</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.ReportFlushErrors" xml:space="preserve">
<value>One or more errors occurred while trying to flush the designer content. This might be due to an unhandled exception in a custom/third-party component on the form/control.</value>
<comment>Message displayed when errors occur while flushing</comment>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.ToolboxProvider.CantLoadSidbarComponentLibraryWarning" xml:space="preserve">
<value>Can't load side bar component library.
No Windows Forms components will be avaiable, please configure the side bar manually.
@ -4235,6 +4236,16 @@ Only letters, digits, space, '.' or '_' are allowed.</value> @@ -4235,6 +4236,16 @@ Only letters, digits, space, '.' or '_' are allowed.</value>
<value>The public key token</value>
<comment>Assembly reference's public key token property description</comment>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.ReferenceOutputAssembly" xml:space="preserve">
<value>Reference assembly</value>
<comment>'Reference' is a verb in this case.
This string appears in the property pad when a project reference is selected in the projects pad.
It is a boolean option that defaults to true.
If set to false, this reference specifies only a build-order dependency and does not cause the assembly to be referenced.</comment>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.ReferenceOutputAssembly.Description" xml:space="preserve">
<value>If set to false, this reference specifies only a build-order dependency and does not cause the assembly to be referenced.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.SpecificVersion" xml:space="preserve">
<value>Specific Version</value>
<comment>Reference property name indicating if the reference is to a specific version</comment>
@ -4288,6 +4299,9 @@ Only letters, digits, space, '.' or '_' are allowed.</value> @@ -4288,6 +4299,9 @@ Only letters, digits, space, '.' or '_' are allowed.</value>
<data name="ICSharpCode.SharpDevelop.LoadingFile" xml:space="preserve">
<value>Loading ${Filename}...</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.CloseSolution" xml:space="preserve">
<value>Close solution</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.KeepOldSolution" xml:space="preserve">
<value>Keep old solution open</value>
<comment>Button text to keep old solution open</comment>
@ -4325,6 +4339,15 @@ Only letters, digits, space, '.' or '_' are allowed.</value> @@ -4325,6 +4339,15 @@ Only letters, digits, space, '.' or '_' are allowed.</value>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.Title" xml:space="preserve">
<value>Project Upgrade</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpdateOnLoadDueToMissingMSBuild" xml:space="preserve">
<value>The project '${ProjectName}' is targeting MSBuild ${OldToolsVersion}, but that version is not installed.
Do you want to upgrade the project to MSBuild ${NewToolsVersion}?
The project cannot be opened without upgrading.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpdateToMSBuildButton" xml:space="preserve">
<value>Upgrade to MSBuild ${NewToolsVersion}</value>
<comment>OK button for UpdateOnLoadDueToMissingMSBuild message box</comment>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpgradeFromPreviousVersionDescription" xml:space="preserve">
<value>This solution was created using a previous version of SharpDevelop.
You might want to upgrade it so that you can use new language or framework features.</value>
@ -4409,7 +4432,7 @@ Goto 'Options-&gt;Visual Style' and change the current language ambience.</value @@ -4409,7 +4432,7 @@ Goto 'Options-&gt;Visual Style' and change the current language ambience.</value
<value>ASP.NET/IIS (Express) worker process ({0}) was not found.</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.NoProjectUrlOrProgramAction" xml:space="preserve">
<value>There's no Project Url specified or external program. Check the web server at Project Properties - Debug tab.</value>
<value>There is no external program or URL specified. Check the web server at Project Properties - Web tab.</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.Port" xml:space="preserve">
<value>Server port:</value>
@ -5072,7 +5095,7 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs</comment> @@ -5072,7 +5095,7 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs</comment>
<value>You cannot switch to a function without symbols.</value>
</data>
<data name="MainWindow.Windows.Debug.CallStack.CannotSwitchWithoutSymbolsOrDecompiledCodeOptions" xml:space="preserve">
<value>You cannot switch to a function without symbols without enabling decompiled code options.</value>
<value>You cannot switch to a function without debug symbols. Either recompile it with symbols or enable "Decompile code without symbols" in the options.</value>
</data>
<data name="MainWindow.Windows.Debug.CallStack.ExternalMethods" xml:space="preserve">
<value>[External methods]</value>
@ -5313,12 +5336,18 @@ Shows the full callstack of the error.</comment> @@ -5313,12 +5336,18 @@ Shows the full callstack of the error.</comment>
<data name="MainWindow.Windows.Debug.Modules.AddressColumn" xml:space="preserve">
<value>Address</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.DynamicModule" xml:space="preserve">
<value>(dynamic)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.HasNoSymbols" xml:space="preserve">
<value>No symbols loaded.</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.HasSymbols" xml:space="preserve">
<value>Symbols loaded.</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.InMemoryModule" xml:space="preserve">
<value>(in memory)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.OrderColumn" xml:space="preserve">
<value>Order</value>
</data>
@ -6812,7 +6841,7 @@ The resources files have been renamed/moved accordingly.</value> @@ -6812,7 +6841,7 @@ The resources files have been renamed/moved accordingly.</value>
<value>ASP.NET Web Form</value>
</data>
<data name="Templates.File.WebHandler.Description" xml:space="preserve">
<value>Creates a ASP.NET WebHandler with code-behind.</value>
<value>Creates an ASP.NET WebHandler with code-behind.</value>
</data>
<data name="Templates.File.WebHandler.Name" xml:space="preserve">
<value>ASP.NET Web Handler</value>

3
data/resources/StringResources.ro.resx

@ -774,6 +774,9 @@ Doriţi adăugarea noului fişier la proiectul ${CurrentProjectName}?</value> @@ -774,6 +774,9 @@ Doriţi adăugarea noului fişier la proiectul ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.SettingsGroupBox" xml:space="preserve">
<value>Configurări</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>Limbajul UI curent:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>Selectaţi pictograma corespunzătoare limbajului.</value>
</data>

3
data/resources/StringResources.ru.resx

@ -1766,6 +1766,9 @@ @@ -1766,6 +1766,9 @@
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.WhenRunning.RegularBuild" xml:space="preserve">
<value>Построить все проекты</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.CurrentUILanguageLabel" xml:space="preserve">
<value>Текущий язык интерфейса:</value>
</data>
<data name="Dialog.Options.IDEOptions.SelectCulture.DescriptionText" xml:space="preserve">
<value>Щелкните по значку для выбора языка.</value>
</data>

275
data/resources/StringResources.se.resx

@ -277,6 +277,15 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg' @@ -277,6 +277,15 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg'
<data name="AddIns.HelpViewer.HLMNotFound" xml:space="preserve">
<value>Hanteraren för Hjälp biblioteket hittades inte. Vänligen kontrollera om den har installerats på rätt sätt.</value>
</data>
<data name="AddIns.HelpViewer.InstalledHelpCatalogsLabel" xml:space="preserve">
<value>Installerade hjälpkataloger</value>
</data>
<data name="AddIns.HelpViewer.LaunchHelpLibraryManagerCommand" xml:space="preserve">
<value>Starta hjälphanteraren</value>
</data>
<data name="AddIns.HelpViewer.MicrosoftHelpViewerTitle" xml:space="preserve">
<value>Microsoft Help Viewer</value>
</data>
<data name="AddIns.HelpViewer.SearchDoSearchButton" xml:space="preserve">
<value>Sök</value>
</data>
@ -289,12 +298,21 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg' @@ -289,12 +298,21 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg'
<data name="AddIns.HelpViewer.ShowErrorHelpTitle" xml:space="preserve">
<value>Visa hjälp</value>
</data>
<data name="AddIns.HelpViewer.UseExternalHelp" xml:space="preserve">
<value>Använd extern hjälp</value>
</data>
<data name="AddIns.HexEditor.DefaultBytesPerLine" xml:space="preserve">
<value>Antal bytes per rad</value>
</data>
<data name="AddIns.HexEditor.Display" xml:space="preserve">
<value>Display</value>
</data>
<data name="AddIns.HexEditor.Display.Elements.Data" xml:space="preserve">
<value>Data</value>
</data>
<data name="AddIns.HexEditor.NumeralSystem" xml:space="preserve">
<value>Numeriskt system</value>
</data>
<data name="AddIns.HexEditor.NumeralSystem.Decimal" xml:space="preserve">
<value>Decimal</value>
</data>
@ -340,12 +358,48 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg' @@ -340,12 +358,48 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg'
<data name="AddIns.Profiler.Commands.FindCallsOfSelected.TabTitle" xml:space="preserve">
<value>Resultat</value>
</data>
<data name="AddIns.Profiler.Commands.SetAsRoot.TabTitle" xml:space="preserve">
<value>Sammanslagna noder</value>
</data>
<data name="AddIns.Profiler.Commands.ShowFunctions.TabTitle" xml:space="preserve">
<value>Alla funktioner för {0}</value>
</data>
<data name="AddIns.Profiler.MessageViewCategory" xml:space="preserve">
<value>Profil</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.EnableDCAtStartup" xml:space="preserve">
<value>Börja insamling av data direkt efter att sessionen har startat.</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.Header" xml:space="preserve">
<value>Datasamling</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.SizeOfStorageDescription" xml:space="preserve">
<value>Storlek av temporär data fil.</value>
</data>
<data name="AddIns.Profiler.Options.Title" xml:space="preserve">
<value>Profilering</value>
</data>
<data name="AddIns.Profiler.ProfileExecutable.ErrorMessage" xml:space="preserve">
<value>Ogiltigt data, vänligen försök igen!</value>
</data>
<data name="AddIns.Profiler.ProfileExecutableForm.ExePathText" xml:space="preserve">
<value>Exekverbar sökväg:</value>
</data>
<data name="AddIns.Profiler.ProfileExecutableForm.StartText" xml:space="preserve">
<value>Starta profilering</value>
</data>
<data name="AddIns.Profiler.ProfilerControlWindow.CollectData" xml:space="preserve">
<value>Samla data</value>
</data>
<data name="AddIns.Profiler.ProfilerControlWindow.Shutdown" xml:space="preserve">
<value>Stäng ner</value>
</data>
<data name="AddIns.Profiler.ProfilingView.CallCountColumnText" xml:space="preserve">
<value>Antal anrop</value>
</data>
<data name="AddIns.Profiler.ProfilingView.CallsText" xml:space="preserve">
<value>Anrop:</value>
</data>
<data name="AddIns.Profiler.ProfilingView.ContextMenu.CopySelectedData" xml:space="preserve">
<value>Kopiera markerat</value>
</data>
@ -364,6 +418,9 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg' @@ -364,6 +418,9 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg'
<data name="AddIns.Profiler.ProfilingView.NameColumnText" xml:space="preserve">
<value>Namn</value>
</data>
<data name="AddIns.Profiler.ProfilingView.OverviewTabText" xml:space="preserve">
<value>Översikt</value>
</data>
<data name="AddIns.Profiler.ProfilingView.SearchLabelText" xml:space="preserve">
<value>Sök:</value>
</data>
@ -373,6 +430,12 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg' @@ -373,6 +430,12 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg'
<data name="AddIns.Profiler.ProfilingView.TimeSpentPerCallColumnText" xml:space="preserve">
<value>Nedlagd tid/anrop</value>
</data>
<data name="AddIns.Profiler.ProfilingView.TimeSpentSelfColumnText" xml:space="preserve">
<value>Nedlagd tid (egen)</value>
</data>
<data name="AddIns.Profiler.ProfilingView.TimeSpentSelfPerCallColumnText" xml:space="preserve">
<value>Nedlagd tid (egen)/anrop</value>
</data>
<data name="AddIns.Profiler.ProfilingView.TimeText" xml:space="preserve">
<value>Tid:</value>
</data>
@ -382,21 +445,57 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg' @@ -382,21 +445,57 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg'
<data name="AddIns.SearchReplace.SearchProgressTitle" xml:space="preserve">
<value>Söker...</value>
</data>
<data name="AddIns.SharpRefactoring.CreateProperties.Description" xml:space="preserve">
<value>Välj de fält som du vill skapa egenskaper för:</value>
</data>
<data name="AddIns.SharpRefactoring.ExtractMethod" xml:space="preserve">
<value>Extrahera funktion</value>
</data>
<data name="AddIns.SharpRefactoring.ExtractMethod.EnterName" xml:space="preserve">
<value>Ange ett namn för den nya metoden</value>
</data>
<data name="AddIns.SharpRefactoring.ExtractMethod.InvalidSelection" xml:space="preserve">
<value>Ogiltigt val! Vänligen välj ett giltigt intervall.</value>
</data>
<data name="AddIns.SharpRefactoring.InsertCtor" xml:space="preserve">
<value>Lägg till konstruktor</value>
</data>
<data name="AddIns.SharpRefactoring.InsertCtor.AddCheckForNullLabel" xml:space="preserve">
<value>Lägg till null-check</value>
</data>
<data name="AddIns.SharpRefactoring.InsertCtor.VariableLabel" xml:space="preserve">
<value>Variabel</value>
</data>
<data name="AddIns.SharpRefactoring.IntroduceMethod" xml:space="preserve">
<value>Introducera funktion {0} i {1}</value>
</data>
<data name="AddIns.SharpRefactoring.OverrideEqualsGetHashCodeMethods.AddInterface" xml:space="preserve">
<value>Lägg till interface {0}</value>
</data>
<data name="AddIns.SourceAnalysis.CheckProjectWithStyleCop" xml:space="preserve">
<value>Kontrollera nuvarande projekt med StyleCop</value>
</data>
<data name="AddIns.SourceAnalysis.CheckWithStyleCop" xml:space="preserve">
<value>Kontrollera med StyleCop</value>
</data>
<data name="AddIns.SourceAnalysis.Title" xml:space="preserve">
<value>Källanalys</value>
</data>
<data name="AddIns.Subversion.AddToIgnoreList" xml:space="preserve">
<value>Lägg till ignorera listan</value>
</data>
<data name="AddIns.Subversion.CannotCopyError" xml:space="preserve">
<value>Filen / katalogen kunde inte kopieras då den är i subversion status {0}'.</value>
</data>
<data name="AddIns.Subversion.CannotMoveError" xml:space="preserve">
<value>Filen/mappen kan inte flyttas då den har subversion status '{0}'.</value>
</data>
<data name="AddIns.Subversion.CannotRemoveError" xml:space="preserve">
<value>Filen/mappen kan inte flyttas då den har subversion status '{0}'.</value>
</data>
<data name="AddIns.Subversion.CheckForModifications" xml:space="preserve">
<value>Kontrollera modifikationer</value>
</data>
<data name="AddIns.Subversion.Checkout" xml:space="preserve">
<value>Checka ut</value>
</data>
@ -436,6 +535,9 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg' @@ -436,6 +535,9 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg'
<data name="AddIns.Subversion.Lock" xml:space="preserve">
<value>Erhåll lås</value>
</data>
<data name="AddIns.Subversion.MarkConflictsAsResolved" xml:space="preserve">
<value>Markera konflikter som lösta</value>
</data>
<data name="AddIns.Subversion.Merge" xml:space="preserve">
<value>Slå ihop</value>
</data>
@ -445,6 +547,9 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg' @@ -445,6 +547,9 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg'
<data name="AddIns.Subversion.Options.Title" xml:space="preserve">
<value>Subversion inställningar</value>
</data>
<data name="AddIns.Subversion.Options.UseHistoryDisplayBinding" xml:space="preserve">
<value>Visa &amp;historik tab för versionskontrollerade filer.</value>
</data>
<data name="AddIns.Subversion.RemoveFromIgnoreList" xml:space="preserve">
<value>Ta bort från ignorera listan</value>
</data>
@ -463,12 +568,36 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg' @@ -463,12 +568,36 @@ Ladda hem ett tillägg från Internet och klicka sedan på 'Installera Tillägg'
<data name="AddIns.Subversion.ShowLog" xml:space="preserve">
<value>Visa logg</value>
</data>
<data name="AddIns.Subversion.Switch" xml:space="preserve">
<value>Ändra</value>
</data>
<data name="AddIns.Subversion.TortoiseSVNRequired" xml:space="preserve">
<value>TortoiseSVN måste installeras för att utföra denna åtgärd.</value>
</data>
<data name="AddIns.Subversion.Update" xml:space="preserve">
<value>Uppdatera</value>
</data>
<data name="AddIns.Subversion.UpdateToRevision" xml:space="preserve">
<value>Uppdatera för revision</value>
</data>
<data name="AddIns.UsageDataCollector.AcceptConfirmation" xml:space="preserve">
<value>Tack för din medverkan! Du kan alltid gå ur genom att ändra inställningarna.i SharpDevelop.</value>
</data>
<data name="AddIns.UsageDataCollector.ShowCollectedData" xml:space="preserve">
<value>Visa insamlad data</value>
</data>
<data name="AddIns.XamlBinding.Options.EventColor" xml:space="preserve">
<value>Händelsefärg:</value>
</data>
<data name="AddIns.XamlBinding.Options.PropertyColor" xml:space="preserve">
<value>Egenskapsfärg:</value>
</data>
<data name="AddIns.XamlBinding.Options.Title" xml:space="preserve">
<value>XAML</value>
</data>
<data name="AddIns.XamlBinding.Options.UseHighlighting" xml:space="preserve">
<value>Använd avancerad textmarkering</value>
</data>
<data name="AvalonEdit.FileEncoding.EncodingCausesDataLoss.Continue" xml:space="preserve">
<value>Fortsätt</value>
</data>
@ -506,9 +635,15 @@ Du kan specificera ett startcommando i projektinställningarna.</value> @@ -506,9 +635,15 @@ Du kan specificera ett startcommando i projektinställningarna.</value>
<data name="ComponentInspector.ActionMenu.PasteObjectMenuItem" xml:space="preserve">
<value>K&amp;listra in Objekt</value>
</data>
<data name="ComponentInspector.ActionMenu.RegisterTypeLibMenuItem" xml:space="preserve">
<value>Registrera TypeLib</value>
</data>
<data name="ComponentInspector.ActionMenu.RemoveFromFavouritesMenuItem" xml:space="preserve">
<value>Ta bort från favoriter</value>
</data>
<data name="ComponentInspector.ActionMenu.UnregisterTypeLibMenuItem" xml:space="preserve">
<value>Avregistrera TypeLib</value>
</data>
<data name="ComponentInspector.AttachDialog.ProcessLabel" xml:space="preserve">
<value>Process</value>
</data>
@ -626,6 +761,9 @@ Du kan specificera ett startcommando i projektinställningarna.</value> @@ -626,6 +761,9 @@ Du kan specificera ett startcommando i projektinställningarna.</value>
<data name="ComponentInspector.FindDialog.Title" xml:space="preserve">
<value>Sök</value>
</data>
<data name="ComponentInspector.GacList.CultureColumn" xml:space="preserve">
<value>Kultur</value>
</data>
<data name="ComponentInspector.GacList.OpenMenuItem" xml:space="preserve">
<value>&amp;Öppna</value>
</data>
@ -2135,6 +2273,21 @@ Du kan även välja att lagra inställningen i .user-filen istället för projek @@ -2135,6 +2273,21 @@ Du kan även välja att lagra inställningen i .user-filen istället för projek
<data name="ICSharpCode.CodeAnalysis.CheckWithFxCop" xml:space="preserve">
<value>Kontrollera med FxCop</value>
</data>
<data name="ICSharpCode.CodeAnalysis.IdeOptions.DirectoryDoesNotContainFxCop" xml:space="preserve">
<value>Den valda mappen fullständig FXCop installation.</value>
</data>
<data name="ICSharpCode.CodeAnalysis.IdeOptions.FindFxCopPath" xml:space="preserve">
<value>Välj FxCop sökväg</value>
</data>
<data name="ICSharpCode.CodeAnalysis.IdeOptions.FxCopFoundInPath" xml:space="preserve">
<value>FxCop hittades i följande mapp:</value>
</data>
<data name="ICSharpCode.CodeAnalysis.IdeOptions.FxCopNotFound" xml:space="preserve">
<value>FxCop kunde inte hittas. Installera FxCop och klicka på 'Välj FxCop sökväg' för att tala om för SharpDevelop var FxCop är installerat.</value>
</data>
<data name="ICSharpCode.CodeAnalysis.IdeOptions.FxCopPath" xml:space="preserve">
<value>FxCop sökväg</value>
</data>
<data name="ICSharpCode.CodeAnalysis.ProjectOptions.CannotFindFxCop" xml:space="preserve">
<value>Kunde inte hitta FxCop - kontrollera att FxCop finns installerad.</value>
</data>
@ -2383,7 +2536,7 @@ Välj ett annat filnamn eller kontrollera att mappen finns och att du har de beh @@ -2383,7 +2536,7 @@ Välj ett annat filnamn eller kontrollera att mappen finns och att du har de beh
<value>Från C# till VB.NET</value>
</data>
<data name="ICSharpCode.SharpDevelop.Commands.ChooseLayoutCommand.DebugItem" xml:space="preserve">
<value>Debug</value>
<value>Debug layout</value>
</data>
<data name="ICSharpCode.SharpDevelop.Commands.ChooseLayoutCommand.DefaultItem" xml:space="preserve">
<value>Standard layout</value>
@ -2434,6 +2587,9 @@ Observera: Detta påverkar inte de anpassade layouterna.</value> @@ -2434,6 +2587,9 @@ Observera: Detta påverkar inte de anpassade layouterna.</value>
<data name="ICSharpCode.SharpDevelop.Commands.OpenCombine.InvalidProjectOrCombine" xml:space="preserve">
<value>Kan inte öppna filen '${FileName}'. Filen är inte en giltigt Samling eller Projektfil.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Commands.OpenCombine.SolutionDoesNotContainProject.AddProjectToSolution" xml:space="preserve">
<value>Lägg till '${ProjectName}' till '${SolutionName}'.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Commands.Print.CreatePrintDocumentError" xml:space="preserve">
<value>Kunde inte skapa PrintDocument</value>
</data>
@ -2446,6 +2602,12 @@ Observera: Detta påverkar inte de anpassade layouterna.</value> @@ -2446,6 +2602,12 @@ Observera: Detta påverkar inte de anpassade layouterna.</value>
<data name="ICSharpCode.SharpDevelop.Commands.ProjectBrowser.RefreshWebReference.ReadServiceDescriptionError" xml:space="preserve">
<value>Kunde inte läsa webbservice beskrivningen. Url='{0}'</value>
</data>
<data name="ICSharpCode.SharpDevelop.Commands.ProjectBrowser.SolutionItemsNodeText" xml:space="preserve">
<value>Samlingsenheter</value>
</data>
<data name="ICSharpCode.SharpDevelop.Commands.ProjectBrowser.SolutionNodeText" xml:space="preserve">
<value>Samling</value>
</data>
<data name="ICSharpCode.SharpDevelop.Commands.ReloadFile.FileDeletedMessage" xml:space="preserve">
<value>Filen kan inte längre hittas.</value>
</data>
@ -2498,6 +2660,9 @@ Alla ändringar kommer att förloras.</value> @@ -2498,6 +2660,9 @@ Alla ändringar kommer att förloras.</value>
<data name="ICSharpCode.SharpDevelop.ExceptionBox.ExitSharpDevelop" xml:space="preserve">
<value>Avsluta SharpDevelop</value>
</data>
<data name="ICSharpCode.SharpDevelop.ExceptionBox.HelpText1" xml:space="preserve">
<value>Ett oväntat undantag uppstod i SharpDevelop. För att förbättra SharpDevelop ber vi dig därför vänligen att rapportera detta felet till oss.</value>
</data>
<data name="ICSharpCode.SharpDevelop.ExceptionBox.QuitWarning" xml:space="preserve">
<value>Vill du verkligen avsluta SharpDevelop? Alla ändringar som inte sparats kommer att förloras!</value>
</data>
@ -2734,6 +2899,9 @@ Endast bokstäver, siffror, mellanslag, '.' eller '_' får användas.</value> @@ -2734,6 +2899,9 @@ Endast bokstäver, siffror, mellanslag, '.' eller '_' får användas.</value>
<data name="ICSharpCode.SharpDevelop.Gui.Dialogs.NewProjectDialog.ProjectNameMustNotEndWithDot" xml:space="preserve">
<value>Ogiltigt projektnamn: projektnamn kan inte avslutas med en '.'.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Gui.Dialogs.NewProjectDialog.ProjectNameMustStartWithLetter" xml:space="preserve">
<value>Ogiltigt projektnamn: Namnet måste börja med en bokstav,</value>
</data>
<data name="ICSharpCode.SharpDevelop.Gui.Dialogs.OptionPanels.RegisterFiletypesPanel.CaptionLabel" xml:space="preserve">
<value>&amp;Välj vilka filtyper som du vill ska associeras med SharpDevelop:</value>
</data>
@ -2895,7 +3063,7 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö @@ -2895,7 +3063,7 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö
<value>Markera alla som färdiga.</value>
</data>
<data name="ICSharpCode.TextEditor.Document.SearchReplaceManager.ReplaceAllDone" xml:space="preserve">
<value>Ta bort alla färdiga.</value>
<value>${Count} ersättningar utförda.</value>
</data>
<data name="ICSharpCode.UnitTesting.AllTestsTreeNode.Text" xml:space="preserve">
<value>Alla tester</value>
@ -3377,6 +3545,12 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö @@ -3377,6 +3545,12 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö
<data name="MainWindow.Windows.Debug.ExceptionForm.Title" xml:space="preserve">
<value>Undantag</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Title.Handled" xml:space="preserve">
<value>Hanterat undantag</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Title.Unhandled" xml:space="preserve">
<value>Ej hanterat undantag</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionHistory" xml:space="preserve">
<value>Undantagshistorik</value>
</data>
@ -3434,12 +3608,24 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö @@ -3434,12 +3608,24 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö
<data name="MainWindow.Windows.Debug.MemoryPad.JumpTo" xml:space="preserve">
<value>Hoppa till adress:</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.NextAddress" xml:space="preserve">
<value>Nästa virtuella adress</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.PreviousAddress" xml:space="preserve">
<value>Föregående virtuella adresser</value>
</data>
<data name="MainWindow.Windows.Debug.Modules" xml:space="preserve">
<value>Moduler</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.AddressColumn" xml:space="preserve">
<value>Adress</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.DynamicModule" xml:space="preserve">
<value>(dynamisk)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.InMemoryModule" xml:space="preserve">
<value>(i minnet)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.OrderColumn" xml:space="preserve">
<value>Ordning</value>
</data>
@ -3458,6 +3644,12 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö @@ -3458,6 +3644,12 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö
<data name="MainWindow.Windows.Debug.ObjectGraph" xml:space="preserve">
<value>Objektgraf</value>
</data>
<data name="MainWindow.Windows.Debug.ParallelStack" xml:space="preserve">
<value>Parallella stackar</value>
</data>
<data name="MainWindow.Windows.Debug.RunToCursor" xml:space="preserve">
<value>Kör till cursor</value>
</data>
<data name="MainWindow.Windows.Debug.SetCurrentStatement" xml:space="preserve">
<value>Ange nuvarande påstående</value>
</data>
@ -3527,6 +3719,9 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö @@ -3527,6 +3719,9 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö
<data name="MainWindow.Windows.FileScout.DriveType.Fixed" xml:space="preserve">
<value>Statisk</value>
</data>
<data name="MainWindow.Windows.FileScout.DriveType.Remote" xml:space="preserve">
<value>Fjärrdisk</value>
</data>
<data name="MainWindow.Windows.FileScout.DriveType.Removeable" xml:space="preserve">
<value>Borttagbar</value>
</data>
@ -3800,6 +3995,9 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö @@ -3800,6 +3995,9 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö
<data name="ProjectComponent.ContextMenu.Open" xml:space="preserve">
<value>&amp;Öppna</value>
</data>
<data name="ProjectComponent.ContextMenu.OpenProjectOutputFolder" xml:space="preserve">
<value>Öppna målmapp</value>
</data>
<data name="ProjectComponent.ContextMenu.Rebuild" xml:space="preserve">
<value>B&amp;ygg om</value>
</data>
@ -4049,6 +4247,9 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö @@ -4049,6 +4247,9 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö
<data name="SharpDevelop.Refactoring.DeclaringType" xml:space="preserve">
<value>Deklarera typ</value>
</data>
<data name="SharpDevelop.Refactoring.ExpandAutomaticProperty" xml:space="preserve">
<value>Expandera automatisk egenskap</value>
</data>
<data name="SharpDevelop.Refactoring.FindBaseClassesCommand" xml:space="preserve">
<value>Hitta basklasser</value>
</data>
@ -4133,6 +4334,9 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö @@ -4133,6 +4334,9 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö
<data name="SharpDevelop.SideBar.LicensesTags" xml:space="preserve">
<value>Licenser</value>
</data>
<data name="SharpDevelop.SideBar.NoToolsAvailableForCurrentDocument" xml:space="preserve">
<value>Det saknas verktyg för det aktuella dokumentet.</value>
</data>
<data name="SharpDevelop.SideBar.XSLTTags" xml:space="preserve">
<value>XSL-T</value>
</data>
@ -4142,6 +4346,12 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö @@ -4142,6 +4346,12 @@ Gå till 'Inställningar-&gt;Visuell stil' och ändra den nuvarande språkmiljö
<data name="SharpDevelop.Solution.CannotSave.IOException" xml:space="preserve">
<value>Kunde inte spara {0}:\n{1}</value>
</data>
<data name="SharpDevelop.Solution.CannotSave.ReadOnly" xml:space="preserve">
<value>Kan inte spara samlingsfilen {0}. Filen är markerad ej skrivbar.</value>
</data>
<data name="SharpDevelop.Solution.CannotSave.UnauthorizedAccessException" xml:space="preserve">
<value>Kunde inte spara {0}:\n{1}\n\n Kontrollera att filen är skrivbar.</value>
</data>
<data name="SharpDevelop.Solution.ImportResourceWarning" xml:space="preserve">
<value>Det finns resursfiler i projektet.
SharpDevelop 2 kompilerar resurser lite annorlunda: resursnamnet består inte enbart av filnamnet utan börjar med rot namespace följt av mappnamnet.
@ -4161,7 +4371,7 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value> @@ -4161,7 +4371,7 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value>
<value>Databas</value>
</data>
<data name="SharpReport.AddinName" xml:space="preserve">
<value>SharpReport</value>
<value>SharpDevelop Reports</value>
</data>
<data name="SharpReport.ContextMenu.Cut" xml:space="preserve">
<value>Klipp ut fält</value>
@ -4209,7 +4419,7 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value> @@ -4209,7 +4419,7 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value>
<value>Skicka rapport till skrivare</value>
</data>
<data name="Sharpreport.Error.NoPrinter" xml:space="preserve">
<value>För att kunna köra SharpReport måste det finnas minst en(1) skrivare installerad.</value>
<value>För att kunna köra SharpDevelop Reports måste det finnas minst en(1) skrivare installerad.</value>
</data>
<data name="SharpReport.Error.NoReport" xml:space="preserve">
<value>Detta är inte en giltig rapport skapad med 'SharpReport'.</value>
@ -4272,13 +4482,13 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value> @@ -4272,13 +4482,13 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value>
<value>Cirkel</value>
</data>
<data name="SharpReport.Toolbar.Controls" xml:space="preserve">
<value>SharpReport - Kontroller</value>
<value>Rapportering - Kontroller</value>
</data>
<data name="SharpReport.Toolbar.DataField" xml:space="preserve">
<value>Datafält</value>
</data>
<data name="SharpReport.Toolbar.Functions" xml:space="preserve">
<value>SharpReport - Funktioner</value>
<value>Rapportering - Funktioner</value>
</data>
<data name="SharpReport.Toolbar.Functions.PageNumber" xml:space="preserve">
<value>Sidnummer</value>
@ -4688,9 +4898,15 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value> @@ -4688,9 +4898,15 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value>
<data name="Templates.File.Wix.WixFile.Name" xml:space="preserve">
<value>Tomt installationsdokument</value>
</data>
<data name="Templates.File.Wix.WixProject.Description" xml:space="preserve">
<value>Skapar ett tomt installationsprojekt.</value>
</data>
<data name="Templates.File.Wix.WixProject.Name" xml:space="preserve">
<value>Tomt installationsprojekt</value>
</data>
<data name="Templates.File.Xml.AppConfig.Description" xml:space="preserve">
<value>Genererar en app.config-fil för din applikation. MSBuild kommer att döpa om denna till appname.exe.config om projektet är ett exekverbart program.</value>
</data>
<data name="Templates.File.Xml.AppConfig.Name" xml:space="preserve">
<value>App.Config fil</value>
</data>
@ -4700,9 +4916,15 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value> @@ -4700,9 +4916,15 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value>
<data name="Templates.File.Xml.EmptyXmlFile.Description" xml:space="preserve">
<value>Skapar en tom XML-fil.</value>
</data>
<data name="Templates.File.Xml.EmptyXmlForm.Description" xml:space="preserve">
<value>Skapar ett tomt XML formulär.</value>
</data>
<data name="Templates.File.Xml.EmptyXmlForm.Name" xml:space="preserve">
<value>XML formulär</value>
</data>
<data name="Templates.File.Xml.EmptyXmlUserControl.Description" xml:space="preserve">
<value>Skapar en tom XML användarkontroll.</value>
</data>
<data name="Templates.File.Xml.EmptyXmlUserControl.Name" xml:space="preserve">
<value>XML användarkontroll</value>
</data>
@ -4754,6 +4976,9 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value> @@ -4754,6 +4976,9 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value>
<data name="Templates.Project.SetupProject.Name" xml:space="preserve">
<value>Organisera projekt</value>
</data>
<data name="Templates.Project.SharedAddin.Description" xml:space="preserve">
<value>Skapar ett delat tillägg för COM applikationer.</value>
</data>
<data name="Templates.Project.SharedAddin.Name" xml:space="preserve">
<value>Delat tillägg</value>
</data>
@ -4769,12 +4994,30 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value> @@ -4769,12 +4994,30 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value>
<data name="Templates.Project.SharpDevelopMacro.Name" xml:space="preserve">
<value>Verktygsmenyval</value>
</data>
<data name="Templates.Project.SilverlightApplication.Description" xml:space="preserve">
<value>Ett projekt som skapar en Silverlight applikation.</value>
</data>
<data name="Templates.Project.SilverlightApplication.Name" xml:space="preserve">
<value>Silverlight applikation</value>
</data>
<data name="Templates.Project.SysTrayIcon.Name" xml:space="preserve">
<value>NotifyIcon applikation</value>
</data>
<data name="Templates.Project.UserControlLibrary.Description" xml:space="preserve">
<value>Ett projekt som skapar användarkontroller som används i Windows-applikationer.</value>
</data>
<data name="Templates.Project.UserControlLibrary.Name" xml:space="preserve">
<value>Windows bibliotek för användarkontroll</value>
</data>
<data name="Templates.Project.WebPage.Description" xml:space="preserve">
<value>ASP.net webbapplikation</value>
</data>
<data name="Templates.Project.WebPage.Name" xml:space="preserve">
<value>ASP.net webbprojekt</value>
</data>
<data name="Templates.Project.WebService.Description" xml:space="preserve">
<value>Ett projekt som skapar en ASP.NET webbservice</value>
</data>
<data name="Templates.Project.WebService.Name" xml:space="preserve">
<value>ASP.NET webbservice</value>
</data>
@ -4791,16 +5034,16 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value> @@ -4791,16 +5034,16 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value>
<value>Windows-service</value>
</data>
<data name="Templates.Project.WinFXApplication.Description" xml:space="preserve">
<value>Skapar en enkel WinFX applikation</value>
<value>Skapar en enkel WPF applikation.</value>
</data>
<data name="Templates.Project.WinFXApplication.Name" xml:space="preserve">
<value>WinFX applikation</value>
<value>WPF applikation</value>
</data>
<data name="Templates.Project.WinFXNavigationApplication.Description" xml:space="preserve">
<value>Skapar en enkel WinFX applikation med en navigeringssida.</value>
<value>Skapar en enkel WPF applikation med en navigeringssida.</value>
</data>
<data name="Templates.Project.WinFXNavigationApplication.Name" xml:space="preserve">
<value>WinFX navigeringsapplikation</value>
<value>WPF navigeringsapplikation</value>
</data>
<data name="Templates.SharpReport.NewReport" xml:space="preserve">
<value>Skapa en ny rapport med hjälp utav Rapportguiden</value>
@ -4814,6 +5057,9 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value> @@ -4814,6 +5057,9 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value>
<data name="XML.MainMenu.BuildMenu" xml:space="preserve">
<value>B&amp;ygg</value>
</data>
<data name="XML.MainMenu.BuildMenu.BreakKey" xml:space="preserve">
<value>Stoppa</value>
</data>
<data name="XML.MainMenu.BuildMenu.BuildProject" xml:space="preserve">
<value>B&amp;ygg ${CurrentProjectName}</value>
</data>
@ -4826,6 +5072,9 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value> @@ -4826,6 +5072,9 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value>
<data name="XML.MainMenu.BuildMenu.CleanSolution" xml:space="preserve">
<value>&amp;Rensa Samling</value>
</data>
<data name="XML.MainMenu.BuildMenu.EditConfigurationsPlatforms" xml:space="preserve">
<value>Ändra konfigurationer/plattformer</value>
</data>
<data name="XML.MainMenu.BuildMenu.PublishProject" xml:space="preserve">
<value>Publicera ${CurrentProjectName}</value>
</data>
@ -5090,6 +5339,9 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value> @@ -5090,6 +5339,9 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value>
<data name="XML.MainMenu.FileMenu.SaveAs" xml:space="preserve">
<value>Spara so&amp;m…</value>
</data>
<data name="XML.MainMenu.FileMenu.SaveWithEncoding" xml:space="preserve">
<value>Spara med &amp;encoding...</value>
</data>
<data name="XML.MainMenu.FormatMenu" xml:space="preserve">
<value>F&amp;ormat</value>
</data>
@ -5243,6 +5495,9 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value> @@ -5243,6 +5495,9 @@ Resursfilerna har därför bytt namn/flyttats enligt ovan.</value>
<data name="XML.MainMenu.RunMenu.BuildProject.Description" xml:space="preserve">
<value>Bygg det aktuellt projekt.</value>
</data>
<data name="XML.MainMenu.RunMenu.BuildSolution.Description" xml:space="preserve">
<value>Bygger alla projekt i samlingen.</value>
</data>
<data name="XML.MainMenu.RunMenu.Compile.Description" xml:space="preserve">
<value>Bygg aktivt projekt eller buffra (när inget projekt är öppet) (detta autosparar)</value>
</data>

225
data/resources/StringResources.zh.resx

@ -262,9 +262,15 @@ @@ -262,9 +262,15 @@
<data name="AddIns.HelpViewer.HelpModeLabel" xml:space="preserve">
<value>帮助模式</value>
</data>
<data name="AddIns.HelpViewer.HLMNotFound" xml:space="preserve">
<value>没有找到帮助文档库管理工具,请检查是否正确安装。</value>
</data>
<data name="AddIns.HelpViewer.InstalledHelpCatalogsLabel" xml:space="preserve">
<value>帮助所在目录</value>
</data>
<data name="AddIns.HelpViewer.LaunchHelpLibraryManagerCommand" xml:space="preserve">
<value>启动帮助文档管理工具</value>
</data>
<data name="AddIns.HelpViewer.MicrosoftHelpViewerTitle" xml:space="preserve">
<value>微软帮助查看器</value>
</data>
@ -531,6 +537,12 @@ @@ -531,6 +537,12 @@
<data name="AddIns.SearchReplace.SearchProgressTitle" xml:space="preserve">
<value>查找...</value>
</data>
<data name="AddIns.SharpRefactoring.CreateProperties.AddSetterLabel" xml:space="preserve">
<value>添加setter方法</value>
</data>
<data name="AddIns.SharpRefactoring.CreateProperties.Description" xml:space="preserve">
<value>选择想要创建属性的字段:</value>
</data>
<data name="AddIns.SharpRefactoring.CreateProperties.Title" xml:space="preserve">
<value>创建属性</value>
</data>
@ -601,6 +613,9 @@ @@ -601,6 +613,9 @@
<data name="AddIns.SharpRefactoring.ResolveAttribute" xml:space="preserve">
<value>处理属性: {0}</value>
</data>
<data name="AddIns.SharpRefactoring.ResolveExtensionMethod" xml:space="preserve">
<value>解析扩展方法{0}</value>
</data>
<data name="AddIns.SourceAnalysis.CheckWithStyleCop" xml:space="preserve">
<value>用FxCop检验</value>
</data>
@ -758,9 +773,15 @@ @@ -758,9 +773,15 @@
<data name="AddIns.UsageDataCollector.Title" xml:space="preserve">
<value>使用数据收集器</value>
</data>
<data name="AddIns.VBNetBinding.CodeCompletion.QuestionmarkEqualsItem.Description" xml:space="preserve">
<value>让SharpDevelop根据初始对象确定类型</value>
</data>
<data name="AddIns.XamlBinding.Menu.EditGridColumnsAndRows" xml:space="preserve">
<value>编辑网格的列和行</value>
</data>
<data name="AddIns.XamlBinding.Menu.ExtractPropertiesAsStyle" xml:space="preserve">
<value>将属性提取为类型</value>
</data>
<data name="AddIns.XamlBinding.Menu.ExtractPropertiesAsStyle.ErrorNoSelection" xml:space="preserve">
<value>没有选择有效元素!</value>
</data>
@ -864,6 +885,9 @@ @@ -864,6 +885,9 @@
<data name="ComponentInspector.ActionMenu.EventLoggingMenuItem" xml:space="preserve">
<value>事件记录(&amp;E)</value>
</data>
<data name="ComponentInspector.ActionMenu.OnDesignSurfaceMenuItem" xml:space="preserve">
<value>设计时接口</value>
</data>
<data name="ComponentInspector.ActionMenu.PasteObjectMenuItem" xml:space="preserve">
<value>粘贴对象(&amp;P)</value>
</data>
@ -879,6 +903,9 @@ @@ -879,6 +903,9 @@
<data name="ComponentInspector.ActionMenu.UnregisterTypeLibMenuItem" xml:space="preserve">
<value>取消注册TypeLib</value>
</data>
<data name="ComponentInspector.AssemblyTreeNode.Text" xml:space="preserve">
<value>已打开的程序集</value>
</data>
<data name="ComponentInspector.AttachDialog.AttachFailedMessage" xml:space="preserve">
<value>附加到进程{0}出错。</value>
</data>
@ -894,6 +921,18 @@ @@ -894,6 +921,18 @@
<data name="ComponentInspector.CastDialog.CannotFindTypeInAssembliesMessage" xml:space="preserve">
<value>在当前打开的程序集中找不到类型{0}</value>
</data>
<data name="ComponentInspector.CastDialog.CastToLabel" xml:space="preserve">
<value>转换为</value>
</data>
<data name="ComponentInspector.CastDialog.DetermineTypeOfCastFailedMessage" xml:space="preserve">
<value>确定类型转换时出现错误</value>
</data>
<data name="ComponentInspector.CastDialog.RememberCastCheckBox" xml:space="preserve">
<value>记住不同区域的强制转换?</value>
</data>
<data name="ComponentInspector.CastDialog.TypeIncompatibleMessage" xml:space="preserve">
<value>对象的类型进行转换时不兼容。</value>
</data>
<data name="ComponentInspector.ComCategoryRootTreeNode.Text" xml:space="preserve">
<value>组件类别</value>
</data>
@ -995,6 +1034,12 @@ @@ -995,6 +1034,12 @@
<data name="ComponentInspector.EventLogList.TimeColumnHeader" xml:space="preserve">
<value>时间</value>
</data>
<data name="ComponentInspector.FindDialog.AllLevelsLabel" xml:space="preserve">
<value>所有级别</value>
</data>
<data name="ComponentInspector.FindDialog.ContainsRadioButton" xml:space="preserve">
<value>包含</value>
</data>
<data name="ComponentInspector.FindDialog.FindButton" xml:space="preserve">
<value>查找</value>
</data>
@ -1010,6 +1055,9 @@ @@ -1010,6 +1055,9 @@
<data name="ComponentInspector.FindDialog.FullNameLabel" xml:space="preserve">
<value>全名</value>
</data>
<data name="ComponentInspector.FindDialog.LevelSelectOnlyDownLabel" xml:space="preserve">
<value>只向下</value>
</data>
<data name="ComponentInspector.FindDialog.LevelsLabel" xml:space="preserve">
<value>级别</value>
</data>
@ -1052,6 +1100,9 @@ @@ -1052,6 +1100,9 @@
<data name="ComponentInspector.FindDialog.StartingWithLabel" xml:space="preserve">
<value>以此打头:</value>
</data>
<data name="ComponentInspector.FindDialog.StartsWithRadioButton" xml:space="preserve">
<value>开始于</value>
</data>
<data name="ComponentInspector.FindDialog.Title" xml:space="preserve">
<value>查找</value>
</data>
@ -1286,6 +1337,9 @@ @@ -1286,6 +1337,9 @@
<data name="ComponentInspector.WaitingForAppDialog.Title" xml:space="preserve">
<value>程序正在启动请稍等</value>
</data>
<data name="CQA.MainWindow.FormTitle" xml:space="preserve">
<value>代码质量分析</value>
</data>
<data name="CSharpBinding.GenerateNewHandlerInstructions" xml:space="preserve">
<value>插入对特定方法的引用;可再按跳格键(Tab)或回车键(Enter)来添加新的方法.</value>
</data>
@ -1760,6 +1814,9 @@ @@ -1760,6 +1814,9 @@
<data name="Dialog.Options.IDEOptions.Debugging" xml:space="preserve">
<value>调试</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.PauseOnHandledExceptions" xml:space="preserve">
<value>遇到捕获的异常时暂停</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping" xml:space="preserve">
<value>调试</value>
</data>
@ -1853,6 +1910,9 @@ @@ -1853,6 +1910,9 @@
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.PanelName" xml:space="preserve">
<value>项目和解决方案</value>
</data>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.ParallelBuild" xml:space="preserve">
<value>并行编译的工程数量:</value>
</data>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.ProjectLocationLabel" xml:space="preserve">
<value>默认项目位置:</value>
</data>
@ -1940,6 +2000,9 @@ @@ -1940,6 +2000,9 @@
<data name="Dialog.Options.IDEOptions.TextEditor.Behaviour.CutCopyWholeLine" xml:space="preserve">
<value>当选择为空时剪切或复制整行</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Behaviour.EnableVirtualSpace" xml:space="preserve">
<value>启用虚拟空间</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Behaviour.HideMouseCheckBox" xml:space="preserve">
<value>文字输入时自动隐藏鼠标光标(&amp;H)</value>
</data>
@ -2030,6 +2093,12 @@ @@ -2030,6 +2093,12 @@
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.BracketMatchingStyle.BeforeCaret" xml:space="preserve">
<value>输入之前</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.CaretCheckBox" xml:space="preserve">
<value>显示光标所在行</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.EnableAnimationsCheckBox" xml:space="preserve">
<value>启用动画效果</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.EOLMarkersCheckBox" xml:space="preserve">
<value>显示行尾标记</value>
</data>
@ -2462,6 +2531,9 @@ @@ -2462,6 +2531,9 @@
<data name="Dialog.Refactoring.IntroduceMethod.CreateNew" xml:space="preserve">
<value>创建新类:</value>
</data>
<data name="Dialog.Refactoring.IntroduceMethod.Description" xml:space="preserve">
<value>无法直接创建此方法,因为没有此类的可用源代码。请选择用于创建此扩展方法的静态类。</value>
</data>
<data name="Dialog.Refactoring.IntroduceMethod.Title" xml:space="preserve">
<value>导入方法</value>
</data>
@ -3074,6 +3146,12 @@ @@ -3074,6 +3146,12 @@
<data name="ICSharpCode.CppBinding.ProjectOptions.Preprocessor.Includes" xml:space="preserve">
<value>头文件位置</value>
</data>
<data name="ICSharpCode.CppBinding.ProjectOptions.Preprocessor.UndefineAll" xml:space="preserve">
<value>取消所有已经定义的预处理符号的定义</value>
</data>
<data name="ICSharpCode.CppBinding.ProjectOptions.Preprocessor.Undefinitions" xml:space="preserve">
<value>取消以下预处理符号的定义</value>
</data>
<data name="ICSharpCode.CppBinding.ProjectOptions.SymbolLabel" xml:space="preserve">
<value>符号</value>
</data>
@ -3246,6 +3324,9 @@ @@ -3246,6 +3324,9 @@
<data name="ICSharpCode.Refactoring.NoClassOrOverridableSymbolUnderCursorError" xml:space="preserve">
<value>选中的对象不是类或者可重载的成员方法,因此无法显示派生属性。</value>
</data>
<data name="ICSharpCode.Refactoring.NoClassUnderCursorError" xml:space="preserve">
<value>无法找到光标所在位置的对象的类型定义。</value>
</data>
<data name="ICSharpCode.RubyBinding.SendLineToRubyConsole" xml:space="preserve">
<value>发送行到Ruby控制台</value>
</data>
@ -3602,6 +3683,12 @@ @@ -3602,6 +3683,12 @@
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.AssignmentRadioButton" xml:space="preserve">
<value>指派属性 (数量少时很快,但数量很大时可扩展性很差)</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.DefaultLocalizationModel" xml:space="preserve">
<value>默认的本地化模式</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.KeepModelCheckBox" xml:space="preserve">
<value>保持现有的本地化模式不变</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.PanelName" xml:space="preserve">
<value>Localization Model</value>
</data>
@ -3768,6 +3855,9 @@ THIS DOES NOT AFFECT THE SOURCE CODE. @@ -3768,6 +3855,9 @@ THIS DOES NOT AFFECT THE SOURCE CODE.
<data name="ICSharpCode.SharpDevelop.Gui.Dialogs.ToolNotFoundDialog.Title" xml:space="preserve">
<value>未找到工具</value>
</data>
<data name="ICSharpCode.SharpDevelop.Gui.Dialogs.UserCredentialsDialog.DialogTitle" xml:space="preserve">
<value>识别接口需要帐号和密码</value>
</data>
<data name="ICSharpCode.SharpDevelop.Gui.Dialogs.UserCredentialsDialog.DomainLabel" xml:space="preserve">
<value>域名(&amp;D):</value>
</data>
@ -3798,6 +3888,9 @@ THIS DOES NOT AFFECT THE SOURCE CODE. @@ -3798,6 +3888,9 @@ THIS DOES NOT AFFECT THE SOURCE CODE.
<data name="ICSharpCode.SharpDevelop.Gui.Pads.PropertyPad.ContextMenu.ShowDescription" xml:space="preserve">
<value>显示说明(&amp;S)</value>
</data>
<data name="ICSharpCode.SharpDevelop.Gui.Pads.PropertyPadResetCommand" xml:space="preserve">
<value>重置失败。原因:由于另一个属性发生变化导致重置的值可能失效。</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.ParserService.Parsing" xml:space="preserve">
<value>解析</value>
</data>
@ -3846,6 +3939,12 @@ THIS DOES NOT AFFECT THE SOURCE CODE. @@ -3846,6 +3939,12 @@ THIS DOES NOT AFFECT THE SOURCE CODE.
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.Culture.Description" xml:space="preserve">
<value>此引用支持的语言</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.EmbedInteropTypes" xml:space="preserve">
<value>嵌入互操作(interop)类型</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.EmbedInteropTypes.Description" xml:space="preserve">
<value>请指定是否将定义在引用的程序集中的COM交互类型嵌入到目标程序集中</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.LocalCopy" xml:space="preserve">
<value>本地复制</value>
</data>
@ -3942,6 +4041,11 @@ THIS DOES NOT AFFECT THE SOURCE CODE. @@ -3942,6 +4041,11 @@ THIS DOES NOT AFFECT THE SOURCE CODE.
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.Title" xml:space="preserve">
<value>项目升级</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpdateOnLoadDueToMissingMSBuild" xml:space="preserve">
<value>工程'${ProjectName}'要求采用MSBuild ${OldToolsVersion},但该版本并未安装。
请问是否将它升级到MSBuild ${NewToolsVersion}?
如果不升级那么此工程将无法打开。</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpgradeFromPreviousVersionDescription" xml:space="preserve">
<value>这个解决方案是用SharpDevelop的旧版本创建的。
您需要转换为新版本的解决方案,因为它支持新语言或框架的新特性。</value>
@ -4001,6 +4105,9 @@ THIS DOES NOT AFFECT THE SOURCE CODE. @@ -4001,6 +4105,9 @@ THIS DOES NOT AFFECT THE SOURCE CODE.
<data name="ICSharpCode.UnitTesting.TestRunnerNotFoundMessageFormat" xml:space="preserve">
<value>无法运行单元测试。找不到文件'{0}'。</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel" xml:space="preserve">
<value>网络</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.ApplicationExists" xml:space="preserve">
<value>应用程序已经存在。</value>
</data>
@ -4013,6 +4120,12 @@ THIS DOES NOT AFFECT THE SOURCE CODE. @@ -4013,6 +4120,12 @@ THIS DOES NOT AFFECT THE SOURCE CODE.
<data name="ICSharpCode.WebProjectOptionsPanel.IISNotFound" xml:space="preserve">
<value>本机没有找到IIS或IIS Express。</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.NoIISWP" xml:space="preserve">
<value>ASP.NET/IIS(Express)的工作进程({0})没有找到。</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.NoProjectUrlOrProgramAction" xml:space="preserve">
<value>未指定工程的URL地址或外部程序。请到工程属性的“调试”选项卡中检查WEB服务器的设置</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.Port" xml:space="preserve">
<value>服务器端口:</value>
</data>
@ -4025,6 +4138,12 @@ THIS DOES NOT AFFECT THE SOURCE CODE. @@ -4025,6 +4138,12 @@ THIS DOES NOT AFFECT THE SOURCE CODE.
<data name="ICSharpCode.WebProjectOptionsPanel.UnableToAttach" xml:space="preserve">
<value>调试器无法附加到进程。</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.UseLocalIIS" xml:space="preserve">
<value>使用本地IIS服务器</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.VirtualDirCreated" xml:space="preserve">
<value>应用程序/虚拟目录已经创建.</value>
</data>
<data name="ICSharpCode.WixBinding.AddCompilerExtensionsDialog.Title" xml:space="preserve">
<value>添加扩展</value>
</data>
@ -4043,6 +4162,12 @@ THIS DOES NOT AFFECT THE SOURCE CODE. @@ -4043,6 +4162,12 @@ THIS DOES NOT AFFECT THE SOURCE CODE.
<data name="ICSharpCode.WixBinding.CompilerParametersPanel.CompilerExtensionsGroupBox" xml:space="preserve">
<value>扩展</value>
</data>
<data name="ICSharpCode.WixBinding.CompilerParametersPanel.CulturesLabel" xml:space="preserve">
<value>文化(本地化类别):</value>
</data>
<data name="ICSharpCode.WixBinding.CompilerParametersPanel.SuppressIces" xml:space="preserve">
<value>禁用ICEs</value>
</data>
<data name="ICSharpCode.WixBinding.CompilerParametersPanel.TreatWarningsAsErrorsCheckBox" xml:space="preserve">
<value>将警告作为错误处理:</value>
</data>
@ -4091,6 +4216,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4091,6 +4216,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ICSharpCode.WixBinding.PackageFilesView.AllWixFilesContainErrorsMessage" xml:space="preserve">
<value>无法找到安装文件. WiX文件中包含错误.</value>
</data>
<data name="ICSharpCode.WixBinding.PackageFilesView.NoRootDirectoryFoundMessage" xml:space="preserve">
<value>无法找到TARGETDIR(目标)文件夹或DirectoryRef(文件夹引用)元素。可能是它们在WiX文档中不存在, 或者是WiX文档不是针对WiX 3.0的并且对应用的命名空间不是"http://schemas.microsoft.com/wix/2006/wi"。</value>
</data>
<data name="ICSharpCode.WixBinding.PackageFilesView.NoWixFileFoundInProjectMessage" xml:space="preserve">
<value>在'{0}'项目中没有找到WiX文件(.wxs)</value>
</data>
@ -4490,6 +4618,18 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4490,6 +4618,18 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.DiscardChangesMessage" xml:space="preserve">
<value>您真的想放弃您所作的更改吗?</value>
</data>
<data name="MainWindow.Editor.Tooltip.LocalVar" xml:space="preserve">
<value>局部变量</value>
</data>
<data name="MainWindow.Editor.Tooltip.Namespace" xml:space="preserve">
<value>命名空间</value>
</data>
<data name="MainWindow.Editor.Tooltip.Parameter" xml:space="preserve">
<value>参数</value>
</data>
<data name="MainWindow.Editor.Tooltip.UnresolvedOverload" xml:space="preserve">
<value>重载于</value>
</data>
<data name="MainWindow.SaveChangesMessage" xml:space="preserve">
<value>要保存改动吗?</value>
</data>
@ -4616,15 +4756,24 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4616,15 +4756,24 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.CallStack.ShowModuleNames" xml:space="preserve">
<value>显示模块的名称</value>
</data>
<data name="MainWindow.Windows.Debug.Conditional.Breakpoints.Ask" xml:space="preserve">
<value>请求</value>
</data>
<data name="MainWindow.Windows.Debug.Conditional.Breakpoints.Break" xml:space="preserve">
<value>中断</value>
</data>
<data name="MainWindow.Windows.Debug.Conditional.Breakpoints.Breakpoint" xml:space="preserve">
<value>断点</value>
</data>
<data name="MainWindow.Windows.Debug.Conditional.Breakpoints.BreakpointHit" xml:space="preserve">
<value>遇到断点!</value>
</data>
<data name="MainWindow.Windows.Debug.Conditional.Breakpoints.BreakpointHitAt" xml:space="preserve">
<value>在{1}中的第{0}行遇到断点。</value>
</data>
<data name="MainWindow.Windows.Debug.Conditional.Breakpoints.Condition" xml:space="preserve">
<value>条件</value>
</data>
<data name="MainWindow.Windows.Debug.Conditional.Breakpoints.ConditionalColumnHeader" xml:space="preserve">
<value>条件</value>
</data>
@ -4674,7 +4823,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4674,7 +4823,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>在{1}里的{0}: (第{2}行)</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Message" xml:space="preserve">
<value>调试器抛出异常{0}:</value>
<value>抛出了类型为{0}的异常:</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.ShowExceptionDetails" xml:space="preserve">
<value>显示异常详细信息</value>
@ -4748,12 +4897,33 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4748,12 +4897,33 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.LocalVariables.StaticMembers" xml:space="preserve">
<value>静态成员</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad" xml:space="preserve">
<value>内存</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.AddressNotFound" xml:space="preserve">
<value>没有找到地址{0} !</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.ByteSize" xml:space="preserve">
<value>显示字节大小:</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.JumpTo" xml:space="preserve">
<value>跳转到地址:</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.NextAddress" xml:space="preserve">
<value>下一个虚拟地址</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.NoMappings" xml:space="preserve">
<value>没有对内存地址的映射!</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.NotDebuggingOrProcessRunning" xml:space="preserve">
<value>未调试状态或进程已经在运行!</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.PreviousAddress" xml:space="preserve">
<value>前一个虚拟地址</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.ReadingFromFormat" xml:space="preserve">
<value>从{0}读取到[1}中, 大小:{2}.</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad.Refresh" xml:space="preserve">
<value>刷新当前地址</value>
</data>
@ -4763,12 +4933,18 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4763,12 +4933,18 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.Modules.AddressColumn" xml:space="preserve">
<value>地址</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.DynamicModule" xml:space="preserve">
<value>(动态)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.HasNoSymbols" xml:space="preserve">
<value>未加载任何符号。</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.HasSymbols" xml:space="preserve">
<value>已加载符号。</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.InMemoryModule" xml:space="preserve">
<value>(在内存中)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.OrderColumn" xml:space="preserve">
<value>排序</value>
</data>
@ -4808,6 +4984,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4808,6 +4984,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.Threads.CannotStepNoActiveFunction" xml:space="preserve">
<value>由于没有选择活动的方法, 无法进行单步调试.</value>
</data>
<data name="MainWindow.Windows.Debug.Threads.CannotSwitchOnNAFrame" xml:space="preserve">
<value>无法切换到没有对应的上下文的线程。</value>
</data>
<data name="MainWindow.Windows.Debug.Threads.CannotSwitchWhileRunning" xml:space="preserve">
<value>调试器在运行时您不能切换线程.</value>
</data>
@ -4838,6 +5017,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4838,6 +5017,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.Threads.ThreadSwitch" xml:space="preserve">
<value>线程切换</value>
</data>
<data name="MainWindow.Windows.Debug.ToggleMethodView" xml:space="preserve">
<value>切换方法视图</value>
</data>
<data name="MainWindow.Windows.Debug.Watch" xml:space="preserve">
<value>监视</value>
</data>
@ -5156,6 +5338,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5156,6 +5338,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ProjectComponent.ContextMenu.GenerateDocumentation" xml:space="preserve">
<value>从XML注释中生成文档</value>
</data>
<data name="ProjectComponent.ContextMenu.GenerateDocumentation.NeedToEditBuildOptions" xml:space="preserve">
<value>您必须修改项目的生成选项才能生成XML文档文件。</value>
</data>
<data name="ProjectComponent.ContextMenu.GenerateDocumentation.ProjectNeedsToBeCompiled2" xml:space="preserve">
<value>XML文件不存在,您需要编译该项目。</value>
</data>
@ -5722,6 +5907,9 @@ SharpDevelop 编译资源时发现不对应:资源名称不是文件名,而 @@ -5722,6 +5907,9 @@ SharpDevelop 编译资源时发现不对应:资源名称不是文件名,而
<data name="SharpReport.FieldsExplorer.ContextMenu.Columns.Remove" xml:space="preserve">
<value>移除节点</value>
</data>
<data name="SharpReport.FieldsExplorer.ContextMenu.Columns.ToggleSort" xml:space="preserve">
<value>切换排序顺序</value>
</data>
<data name="SharpReport.FieldsExplorer.ContextMenu.Section.Clear" xml:space="preserve">
<value>移除节点</value>
</data>
@ -5794,6 +5982,12 @@ SharpDevelop 编译资源时发现不对应:资源名称不是文件名,而 @@ -5794,6 +5982,12 @@ SharpDevelop 编译资源时发现不对应:资源名称不是文件名,而
<data name="SharpReport.Toolbar.Functions.TodaysDate" xml:space="preserve">
<value>今天</value>
</data>
<data name="SharpReport.Toolbar.GroupFooter" xml:space="preserve">
<value>分组页脚</value>
</data>
<data name="SharpReport.Toolbar.GroupHeader" xml:space="preserve">
<value>分组表头</value>
</data>
<data name="SharpReport.Toolbar.Image" xml:space="preserve">
<value>图像</value>
</data>
@ -5806,6 +6000,9 @@ SharpDevelop 编译资源时发现不对应:资源名称不是文件名,而 @@ -5806,6 +6000,9 @@ SharpDevelop 编译资源时发现不对应:资源名称不是文件名,而
<data name="SharpReport.Toolbar.Rectangle" xml:space="preserve">
<value>矩形</value>
</data>
<data name="SharpReport.Toolbar.Table" xml:space="preserve">
<value>表</value>
</data>
<data name="SharpReport.Toolbar.TextBox" xml:space="preserve">
<value>标签</value>
</data>
@ -5842,6 +6039,12 @@ SharpDevelop 编译资源时发现不对应:资源名称不是文件名,而 @@ -5842,6 +6039,12 @@ SharpDevelop 编译资源时发现不对应:资源名称不是文件名,而
<data name="SharpReport.Wizard.BaseSettings.ReportType" xml:space="preserve">
<value>报表类型</value>
</data>
<data name="SharpReport.Wizard.Layout.Column" xml:space="preserve">
<value>选择分组列</value>
</data>
<data name="SharpReport.Wizard.Layout.Grouping" xml:space="preserve">
<value>分组</value>
</data>
<data name="SharpReport.Wizard.Layout.ListLayout" xml:space="preserve">
<value>列表布局</value>
</data>
@ -5971,6 +6174,9 @@ SharpDevelop 编译资源时发现不对应:资源名称不是文件名,而 @@ -5971,6 +6174,9 @@ SharpDevelop 编译资源时发现不对应:资源名称不是文件名,而
<data name="Templates.File.ConfigurationElementCollection.Name" xml:space="preserve">
<value>配置元素集合</value>
</data>
<data name="Templates.File.ConfigurationSection.Description" xml:space="preserve">
<value>实现ConfigurationSection的类</value>
</data>
<data name="Templates.File.ConfigurationSection.Name" xml:space="preserve">
<value>配置部分(Configuration Section)</value>
</data>
@ -6076,6 +6282,21 @@ SharpDevelop 编译资源时发现不对应:资源名称不是文件名,而 @@ -6076,6 +6282,21 @@ SharpDevelop 编译资源时发现不对应:资源名称不是文件名,而
<data name="Templates.File.Resource.EmptyResourceFile.Name" xml:space="preserve">
<value>空资源文件</value>
</data>
<data name="Templates.File.SharpDevelop.AddInOptions.Description" xml:space="preserve">
<value>此类使得永久属性更易于访问.</value>
</data>
<data name="Templates.File.SharpDevelop.AddInOptions.Name" xml:space="preserve">
<value>插件选项</value>
</data>
<data name="Templates.File.SharpDevelop.MenuCommand.Name" xml:space="preserve">
<value>菜单命令</value>
</data>
<data name="Templates.File.SharpDevelop.OptionPanel.Description" xml:space="preserve">
<value>SharpDevelop选项面板</value>
</data>
<data name="Templates.File.SharpDevelop.View.Description" xml:space="preserve">
<value>SharpDevelop的视图内容(比如文本编辑顺或资源编辑器).</value>
</data>
<data name="Templates.File.SharpDevelop.View.Name" xml:space="preserve">
<value>空视图</value>
</data>
@ -7021,6 +7242,6 @@ SharpDevelop 编译资源时发现不对应:资源名称不是文件名,而 @@ -7021,6 +7242,6 @@ SharpDevelop 编译资源时发现不对应:资源名称不是文件名,而
<value>设为非注释区</value>
</data>
<data name="_Internal.Bogus.Translation.Test1" xml:space="preserve">
<value>该资源不被使用.它仅仅用来测试翻译数据库.</value>
<value>该资源不被使用.它仅仅用来测试翻译数据库.</value>
</data>
</root>

2
data/resources/languages/LanguageDefinition.xml

@ -28,7 +28,7 @@ @@ -28,7 +28,7 @@
<!--<Languages name="Slovenian" code="sl" icon="slovenia.png" />-->
<Languages name="Spanish" code="es" icon="spain.png" />
<Languages name="Spanish (Mexico)" code="es-mx" icon="mexico.png" />
<!--<Languages name="Swedish" code="se" icon="sweden.png" />-->
<Languages name="Swedish" code="se" icon="sweden.png" />
<Languages name="Turkish" code="tr" icon="turkey.png" />
</Languages>

2
src/AddIns/Analysis/CodeQuality/CodeQuality.addin

@ -6,11 +6,11 @@ @@ -6,11 +6,11 @@
<Manifest>
<Identity name = "ICSharpCode.CodeQuality"/>
<Dependency addin="ICSharpCode.Reports.Addin" requirePreload="true" />
</Manifest>
<Runtime>
<Import assembly = "ICSharpCode.CodeQuality.dll"/>
<Import assembly="ICSharpCode.Reports.Core.dll" />
</Runtime>
<Path name = "/SharpDevelop/Workbench/MainMenu/Analysis">

12
src/AddIns/Analysis/CodeQuality/CodeQuality.csproj

@ -104,12 +104,12 @@ @@ -104,12 +104,12 @@
<None Include="CodeQuality.addin">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Reporting\DependencyReport.srd">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Reporting\Overviewreport.srd">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<EmbeddedResource Include="Reporting\DependencyReport.srd">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="Reporting\Overviewreport.srd">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Libraries\Mono.Cecil\Mono.Cecil.csproj">

2
src/AddIns/Analysis/CodeQuality/Gui/MainView.xaml

@ -19,7 +19,7 @@ @@ -19,7 +19,7 @@
</Menu>
</ToolBar>
<TabControl>
<TabControl x:Name="mainTab">
<TabItem
Header="Dependency Matrix">
<Grid>

29
src/AddIns/Analysis/CodeQuality/Gui/MainView.xaml.cs

@ -75,30 +75,29 @@ namespace ICSharpCode.CodeQuality.Gui @@ -75,30 +75,29 @@ namespace ICSharpCode.CodeQuality.Gui
}
/*
*
* TreeTraversal.PreOrder(node, n => n.Children).OfType<MethodNode>().Count()
*
*
*/
void OverviewReport_Click(object sender, RoutedEventArgs e)
{
OverviewReport o = new OverviewReport(fileNames);
var reportCreator = o.Run(list);
var previewViewModel = new PreviewViewModel(o.ReportSettings,reportCreator.Pages);
var overviewReport = new OverviewReport(fileNames);
var reportCreator = overviewReport.Run(list);
var previewViewModel = new PreviewViewModel(overviewReport.ReportSettings,reportCreator.Pages);
viewer.SetBinding(previewViewModel);
reportTab.Visibility = Visibility.Visible;
ActivateReportTab();
}
void DependecyReport_Click(object sender, RoutedEventArgs e)
{
var dependency = new DependencyReport(fileNames);
var reportCreator = dependency.Run(list);
var previewViewModel = new PreviewViewModel(dependency.ReportSettings,reportCreator.Pages);
var dependencyReport = new DependencyReport(fileNames);
var reportCreator = dependencyReport.Run(list);
var previewViewModel = new PreviewViewModel(dependencyReport.ReportSettings,reportCreator.Pages);
viewer.SetBinding(previewViewModel);
ActivateReportTab();
}
void ActivateReportTab()
{
reportTab.Visibility = Visibility.Visible;
mainTab.SelectedItem = reportTab;
}
}
}

8
src/AddIns/Analysis/CodeQuality/Reporting/BaseReport.cs

@ -20,7 +20,6 @@ namespace ICSharpCode.CodeQuality.Reporting @@ -20,7 +20,6 @@ namespace ICSharpCode.CodeQuality.Reporting
/// </summary>
public class BaseReport
{
private const string reportDir = "Reporting";
public BaseReport(List <string> fileNames)
{
@ -32,13 +31,6 @@ namespace ICSharpCode.CodeQuality.Reporting @@ -32,13 +31,6 @@ namespace ICSharpCode.CodeQuality.Reporting
}
}
protected string MakeReportFileName (string reportName)
{
Uri uri = new Uri(Assembly.GetExecutingAssembly().GetName().CodeBase);
var fullname = uri.LocalPath;
return Path.GetDirectoryName(fullname) + Path.DirectorySeparatorChar + reportDir + Path.DirectorySeparatorChar + reportName;
}
protected List<string> FileNames {get;private set;}
public ReportSettings ReportSettings {get;set;}

8
src/AddIns/Analysis/CodeQuality/Reporting/DependencyReport.cs

@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Reflection;
using ICSharpCode.CodeQuality.Engine.Dom;
using ICSharpCode.Reports.Core;
@ -27,9 +28,10 @@ namespace ICSharpCode.CodeQuality.Reporting @@ -27,9 +28,10 @@ namespace ICSharpCode.CodeQuality.Reporting
}
public IReportCreator Run(ReadOnlyCollection<AssemblyNode> list)
{
var reportFileName = MakeReportFileName(overviewReport);
var model = ReportEngine.LoadReportModel(reportFileName);
{
System.Reflection.Assembly asm = Assembly.GetExecutingAssembly();
System.IO.Stream stream = asm.GetManifestResourceStream("ICSharpCode.CodeQuality.Reporting.DependencyReport.srd");
var model = ReportEngine.LoadReportModel(stream);
ReportSettings = model.ReportSettings;
var newList = MakeList (list);

11
src/AddIns/Analysis/CodeQuality/Reporting/OverviewReport.cs

@ -9,7 +9,9 @@ @@ -9,7 +9,9 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Reflection;
using ICSharpCode.CodeQuality.Engine.Dom;
using ICSharpCode.NRefactory.Utils;
@ -30,9 +32,9 @@ namespace ICSharpCode.CodeQuality.Reporting @@ -30,9 +32,9 @@ namespace ICSharpCode.CodeQuality.Reporting
public IReportCreator Run(ReadOnlyCollection<AssemblyNode> list)
{
var reportFileName = MakeReportFileName(overviewReport);
var model = ReportEngine.LoadReportModel(reportFileName);
System.Reflection.Assembly asm = Assembly.GetExecutingAssembly();
System.IO.Stream stream = asm.GetManifestResourceStream("ICSharpCode.CodeQuality.Reporting.Overviewreport.srd");
var model = ReportEngine.LoadReportModel(stream);
ReportSettings = model.ReportSettings;
var r = from c in list
@ -45,7 +47,8 @@ namespace ICSharpCode.CodeQuality.Reporting @@ -45,7 +47,8 @@ namespace ICSharpCode.CodeQuality.Reporting
IReportCreator creator = ReportEngine.CreatePageBuilder(model,r.ToList(),p);
creator.BuildExportList();
return creator;
}
}
}

7
src/AddIns/Analysis/UnitTesting/Src/NUnitConsoleCommandLine.cs

@ -240,10 +240,9 @@ namespace ICSharpCode.UnitTesting @@ -240,10 +240,9 @@ namespace ICSharpCode.UnitTesting
bool ProjectUsesDotnet20Runtime(IProject project)
{
MSBuildBasedProject msbuildProject = project as MSBuildBasedProject;
if (msbuildProject != null) {
string targetFrameworkVersion = msbuildProject.GetEvaluatedProperty("TargetFrameworkVersion");
return !String.Equals(targetFrameworkVersion, "v4.0", StringComparison.OrdinalIgnoreCase);
var p = project as ICSharpCode.SharpDevelop.Project.Converter.IUpgradableProject;
if (p != null && p.CurrentTargetFramework != null) {
return p.CurrentTargetFramework.SupportedRuntimeVersion == "v2.0.50727";
}
return false;
}

14
src/AddIns/Analysis/UnitTesting/Test/Frameworks/NUnitConsoleExeSelectedTestFixture.cs

@ -55,6 +55,20 @@ namespace UnitTesting.Tests.Frameworks @@ -55,6 +55,20 @@ namespace UnitTesting.Tests.Frameworks
Assert.AreEqual(@"D:\SharpDevelop\bin\Tools\NUnit\nunit-console-dotnet2.exe", app.FileName);
}
[Test]
public void TargetCpuAnyCPUDotnet45()
{
MockCSharpProject project = new MockCSharpProject();
project.ActiveConfiguration = "Debug";
project.ActivePlatform = "AnyCPU";
project.SetProperty("PlatformTarget", "AnyCPU");
project.SetProperty("TargetFrameworkVersion", "v4.5");
SelectedTests selectedTests = new SelectedTests(project);
NUnitConsoleApplication app = new NUnitConsoleApplication(selectedTests);
Assert.AreEqual(@"D:\SharpDevelop\bin\Tools\NUnit\nunit-console.exe", app.FileName);
}
[Test]
public void NUnitConsole32BitUsedWhenTargetCpuIs32BitDotnet2()
{

8
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooProject.cs

@ -131,13 +131,9 @@ namespace Grunwald.BooBinding @@ -131,13 +131,9 @@ namespace Grunwald.BooBinding
}
}
protected override ProjectBehavior GetOrCreateBehavior()
protected override ProjectBehavior CreateDefaultBehavior()
{
if (projectBehavior != null)
return projectBehavior;
BooProjectBehavior behavior = new BooProjectBehavior(this, new DotNetStartBehavior(this, new DefaultProjectBehavior(this)));
projectBehavior = ProjectBehaviorService.LoadBehaviorsForProject(this, behavior);
return projectBehavior;
return new BooProjectBehavior(this, base.CreateDefaultBehavior());
}
}

9
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/CSharpProject.cs

@ -92,6 +92,7 @@ namespace CSharpBinding @@ -92,6 +92,7 @@ namespace CSharpBinding
case Solution.SolutionVersionVS2008:
return msbuild35;
case Solution.SolutionVersionVS2010:
case Solution.SolutionVersionVS11:
return msbuild40;
default:
throw new NotSupportedException();
@ -148,13 +149,9 @@ namespace CSharpBinding @@ -148,13 +149,9 @@ namespace CSharpBinding
}
*/
protected override ProjectBehavior GetOrCreateBehavior()
protected override ProjectBehavior CreateDefaultBehavior()
{
if (projectBehavior != null)
return projectBehavior;
CSharpProjectBehavior behavior = new CSharpProjectBehavior(this, new DotNetStartBehavior(this, new DefaultProjectBehavior(this)));
projectBehavior = ProjectBehaviorService.LoadBehaviorsForProject(this, behavior);
return projectBehavior;
return new CSharpProjectBehavior(this, base.CreateDefaultBehavior());
}
}

13
src/AddIns/BackendBindings/CppBinding/CppBinding/Project/CppProject.cs

@ -67,11 +67,11 @@ namespace ICSharpCode.CppBinding.Project @@ -67,11 +67,11 @@ namespace ICSharpCode.CppBinding.Project
else
{
// this will be valid if there is an explicit OutDir property in vcxproj file.
if (GetUnevalatedProperty("OutDir").StartsWith("$(SolutionDir)"))
if ((GetUnevalatedProperty("OutDir") ?? "").StartsWith("$(SolutionDir)"))
{
// in #D every project is compiled by msbuild separately, this mean that SolutionDir will
// be equal to ProjectDir, so it has to be replaced with actual solution directory
string evaluatedSolutionDir = GetEvaluatedProperty("SolutionDir");
string evaluatedSolutionDir = GetEvaluatedProperty("SolutionDir") ?? "";
outputPath = Path.Combine(ParentSolution.Directory, outputPath.Substring(evaluatedSolutionDir.Length));
}
return FileUtility.NormalizePath(Path.Combine(outputPath, AssemblyName + GetExtension(OutputType)));
@ -181,13 +181,10 @@ namespace ICSharpCode.CppBinding.Project @@ -181,13 +181,10 @@ namespace ICSharpCode.CppBinding.Project
}
}
protected override ProjectBehavior GetOrCreateBehavior()
protected override ProjectBehavior CreateDefaultBehavior()
{
if (projectBehavior != null)
return projectBehavior;
CppProjectBehavior behavior = new CppProjectBehavior(this, new DotNetStartBehavior(this, new DefaultProjectBehavior(this)));
projectBehavior = ProjectBehaviorService.LoadBehaviorsForProject(this, behavior);
return projectBehavior; }
return new CppProjectBehavior(this, base.CreateDefaultBehavior());
}
}
public class CppProjectBehavior : ProjectBehavior

8
src/AddIns/BackendBindings/FSharpBinding/FSharpProject.cs

@ -44,13 +44,9 @@ namespace FSharpBinding @@ -44,13 +44,9 @@ namespace FSharpBinding
}
}
protected override ProjectBehavior GetOrCreateBehavior()
protected override ProjectBehavior CreateDefaultBehavior()
{
if (projectBehavior != null)
return projectBehavior;
FSharpProjectBehavior behavior = new FSharpProjectBehavior(this, new DotNetStartBehavior(this, new DefaultProjectBehavior(this)));
projectBehavior = ProjectBehaviorService.LoadBehaviorsForProject(this, behavior);
return projectBehavior;
return new FSharpProjectBehavior(this, base.CreateDefaultBehavior());
}
}

21
src/AddIns/BackendBindings/JavaScriptBinding/Project/Src/JavaScriptParser.cs

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
using System;
using System.IO;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
@ -48,14 +49,20 @@ namespace ICSharpCode.JavaScriptBinding @@ -48,14 +49,20 @@ namespace ICSharpCode.JavaScriptBinding
public ICompilationUnit Parse(IProjectContent projectContent, string fileName, ITextBuffer fileContent)
{
var astFactory = new JavaScriptAstFactory(fileContent);
JavaScriptAst ast = astFactory.Create();
var unit = new JavaScriptCompilationUnit(projectContent, fileName);
var walker = new JavaScriptAstWalker(unit, ast);
walker.Walk();
try {
var astFactory = new JavaScriptAstFactory(fileContent);
JavaScriptAst ast = astFactory.Create();
var unit = new JavaScriptCompilationUnit(projectContent, fileName);
var walker = new JavaScriptAstWalker(unit, ast);
walker.Walk();
return unit;
} catch (Exception ex) {
LoggingService.Debug(ex.ToString());
}
return unit;
return new DefaultCompilationUnit(projectContent) { FileName = fileName };
}
public IResolver CreateResolver()

8
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonProject.cs

@ -53,13 +53,9 @@ namespace ICSharpCode.PythonBinding @@ -53,13 +53,9 @@ namespace ICSharpCode.PythonBinding
get { return GetProperty(null, null, "MainFile") != null; }
}
protected override ProjectBehavior GetOrCreateBehavior()
protected override ProjectBehavior CreateDefaultBehavior()
{
if (projectBehavior != null)
return projectBehavior;
PythonProjectBehavior behavior = new PythonProjectBehavior(this, new DotNetStartBehavior(this, new DefaultProjectBehavior(this)));
projectBehavior = ProjectBehaviorService.LoadBehaviorsForProject(this, behavior);
return projectBehavior;
return new PythonProjectBehavior(this, base.CreateDefaultBehavior());
}
}

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.

73
src/AddIns/BackendBindings/Python/RequiredLibraries/IronPython.Modules.xml

@ -4,6 +4,79 @@ @@ -4,6 +4,79 @@
<name>IronPython.Modules</name>
</assembly>
<members>
<member name="F:IronPython.Runtime.ZipImportModule.zipimporter._search_order">
<summary>
zip_searchorder defines how we search for a module in the Zip
archive: we first search for a package __init__, then for
non-package .pyc, .pyo and .py entries. The .pyc and .pyo entries
are swapped by initzipimport() if we run in optimized mode. Also,
'/' is replaced by SEP there.
</summary>
</member>
<member name="M:IronPython.Runtime.ZipImportModule.zipimporter.GetData(System.String,IronPython.Runtime.PythonTuple)">
<summary>
Given a path to a Zip file and a toc_entry, return the (uncompressed)
data as a new reference.
</summary>
<param name="archive"></param>
<param name="toc_entry"></param>
<returns></returns>
</member>
<member name="M:IronPython.Runtime.ZipImportModule.zipimporter.GetCodeFromData(IronPython.Runtime.CodeContext,System.Boolean,System.Boolean,System.Int32,IronPython.Runtime.PythonTuple)">
<summary>
Return the code object for the module named by 'fullname' from the
Zip archive as a new reference.
</summary>
<param name="context"></param>
<param name="ispackage"></param>
<param name="isbytecode"></param>
<param name="mtime"></param>
<param name="toc_entry"></param>
<returns></returns>
</member>
<member name="M:IronPython.Runtime.ZipImportModule.zipimporter.ReadDirectory(System.String)">
<summary>
Given a path to a Zip archive, build a dict, mapping file names
(local to the archive, using SEP as a separator) to toc entries.
A toc_entry is a tuple:
(__file__, # value to use for __file__, available for all files
compress, # compression kind; 0 for uncompressed
data_size, # size of compressed data on disk
file_size, # size of decompressed data
file_offset, # offset of file header from start of archive
time, # mod time of file (in dos format)
date, # mod data of file (in dos format)
crc, # crc checksum of the data
)
Directories can be recognized by the trailing SEP in the name,
data_size and file_offset are 0.
</summary>
<param name="archive"></param>
<returns></returns>
</member>
<member name="M:IronPython.Runtime.ZipImportModule.zipimporter.MakeFilename(System.String,System.String)">
<summary>
Given a (sub)modulename, write the potential file path in the
archive (without extension) to the path buffer.
</summary>
<param name="prefix"></param>
<param name="name"></param>
<returns></returns>
</member>
<member name="M:IronPython.Runtime.ZipImportModule.zipimporter.GetModuleInfo(IronPython.Runtime.CodeContext,System.String)">
<summary>
Determines the type of module we have (package or module, or not found).
</summary>
<param name="context"></param>
<param name="fullname"></param>
<returns></returns>
</member>
<member name="T:IronPython.Runtime.ZipImportModule.SourceStringContentProvider">
<summary>
Provides a StreamContentProvider for a stream of content backed by a file on disk.
</summary>
</member>
<member name="T:ComponentAce.Compression.Libs.ZLib.Adler32">
<summary>
This class represents adler32 checksum algorithm

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

Binary file not shown.

71
src/AddIns/BackendBindings/Python/RequiredLibraries/IronPython.xml

@ -2277,6 +2277,34 @@ @@ -2277,6 +2277,34 @@
DLR hosting APIs.
</summary>
</member>
<member name="M:IronPython.Runtime.ClrModule.Use(IronPython.Runtime.CodeContext,System.String)">
<summary>
Use(name) -> module
Attempts to load the specified module searching all languages in the loaded ScriptRuntime.
</summary>
</member>
<member name="M:IronPython.Runtime.ClrModule.Use(IronPython.Runtime.CodeContext,System.String,System.String)">
<summary>
Use(path, language) -> module
Attempts to load the specified module belonging to a specific language loaded into the
current ScriptRuntime.
</summary>
</member>
<member name="M:IronPython.Runtime.ClrModule.SetCommandDispatcher(IronPython.Runtime.CodeContext,System.Action{System.Action})">
<summary>
SetCommandDispatcher(commandDispatcher)
Sets the current command dispatcher for the Python command line.
The command dispatcher will be called with a delegate to be executed. The command dispatcher
should invoke the target delegate in the desired context.
A common use for this is to enable running all REPL commands on the UI thread while the REPL
continues to run on a non-UI thread.
</summary>
</member>
<member name="M:IronPython.Runtime.ClrModule.LoadTypeLibrary(IronPython.Runtime.CodeContext,System.Object)">
<summary>
LoadTypeLibrary(rcw) -> type lib desc
@ -2311,34 +2339,6 @@ @@ -2311,34 +2339,6 @@
Makes the type lib desc available for importing. See also LoadTypeLibrary.
</summary>
</member>
<member name="M:IronPython.Runtime.ClrModule.Use(IronPython.Runtime.CodeContext,System.String)">
<summary>
Use(name) -> module
Attempts to load the specified module searching all languages in the loaded ScriptRuntime.
</summary>
</member>
<member name="M:IronPython.Runtime.ClrModule.Use(IronPython.Runtime.CodeContext,System.String,System.String)">
<summary>
Use(path, language) -> module
Attempts to load the specified module belonging to a specific language loaded into the
current ScriptRuntime.
</summary>
</member>
<member name="M:IronPython.Runtime.ClrModule.SetCommandDispatcher(IronPython.Runtime.CodeContext,System.Action{System.Action})">
<summary>
SetCommandDispatcher(commandDispatcher)
Sets the current command dispatcher for the Python command line.
The command dispatcher will be called with a delegate to be executed. The command dispatcher
should invoke the target delegate in the desired context.
A common use for this is to enable running all REPL commands on the UI thread while the REPL
continues to run on a non-UI thread.
</summary>
</member>
<member name="M:IronPython.Runtime.ClrModule.GetClrType(System.Type)">
<summary>
Gets the CLR Type object from a given Python type object.
@ -3862,6 +3862,14 @@ @@ -3862,6 +3862,14 @@
module does not exist an exception is raised.
</summary>
</member>
<member name="M:IronPython.Hosting.Python.ImportModule(Microsoft.Scripting.Hosting.ScriptScope,System.String)">
<summary>
Imports the Python module by the given name and inserts it into the ScriptScope as that name. If the
module does not exist an exception is raised.
</summary>
<param name="scope"></param>
<param name="moduleName"></param>
</member>
<member name="M:IronPython.Hosting.Python.SetHostVariables(Microsoft.Scripting.Hosting.ScriptRuntime,System.String,System.String,System.String)">
<summary>
Sets sys.exec_prefix, sys.executable and sys.version and adds the prefix to sys.path
@ -6098,6 +6106,13 @@ @@ -6098,6 +6106,13 @@
the exit code that the program reported via SystemExit or 0.
</summary>
</member>
<member name="M:IronPython.Runtime.Operations.PythonOps.InitializeModuleEx(System.Reflection.Assembly,System.String,System.String[],System.Boolean)">
<summary>
Provides the entry point for a compiled module. The stub exe calls into InitializeModule which
does the actual work of adding references and importing the main module. Upon completion it returns
the exit code that the program reported via SystemExit or 0.
</summary>
</member>
<member name="M:IronPython.Runtime.Operations.PythonOps.RemoveName(IronPython.Runtime.CodeContext,System.String)">
<summary>
Called from generated code, helper to remove a name

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.Silverlight.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.

12
src/AddIns/BackendBindings/Python/RequiredLibraries/ipy.exe.config

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- Enable mixed-mode CLRv2 assemblies. -->
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
</startup>
<runtime>
<!-- Enable loading assemblies from network shares or downloaded from the internet. -->
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>

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

Binary file not shown.

12
src/AddIns/BackendBindings/Python/RequiredLibraries/ipyw.exe.config

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- Enable mixed-mode CLRv2 assemblies. -->
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
</startup>
<runtime>
<!-- Enable loading assemblies from network shares or downloaded from the internet. -->
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>

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.

3
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/RubyBinding.csproj

@ -57,12 +57,15 @@ @@ -57,12 +57,15 @@
<Reference Include="Microsoft.Build.Engine" />
<Reference Include="Microsoft.Dynamic">
<HintPath>..\..\IronRuby\bin\Microsoft.Dynamic.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Scripting">
<HintPath>..\..\IronRuby\bin\Microsoft.Scripting.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Scripting.Metadata">
<HintPath>..\..\IronRuby\bin\Microsoft.Scripting.Metadata.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework>

8
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyProject.cs

@ -49,13 +49,9 @@ namespace ICSharpCode.RubyBinding @@ -49,13 +49,9 @@ namespace ICSharpCode.RubyBinding
get { return GetProperty(null, null, "MainFile") != null; }
}
protected override ProjectBehavior GetOrCreateBehavior()
protected override ProjectBehavior CreateDefaultBehavior()
{
if (projectBehavior != null)
return projectBehavior;
RubyProjectBehavior behavior = new RubyProjectBehavior(this, new DotNetStartBehavior(this, new DefaultProjectBehavior(this)));
projectBehavior = ProjectBehaviorService.LoadBehaviorsForProject(this, behavior);
return projectBehavior;
return new RubyProjectBehavior(this, base.CreateDefaultBehavior());
}
}

2
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/RubyBinding.Tests.csproj

@ -50,9 +50,11 @@ @@ -50,9 +50,11 @@
<Reference Include="Microsoft.Build.Engine" />
<Reference Include="Microsoft.Dynamic">
<HintPath>..\..\IronRuby\bin\Microsoft.Dynamic.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Scripting">
<HintPath>..\..\IronRuby\bin\Microsoft.Scripting.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="nunit.framework">
<HintPath>..\..\..\..\..\Tools\NUnit\nunit.framework.dll</HintPath>

12
src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingDesignerLoader.cs

@ -10,7 +10,9 @@ using System.ComponentModel.Design.Serialization; @@ -10,7 +10,9 @@ using System.ComponentModel.Design.Serialization;
using System.Globalization;
using System.Resources;
using System.Security.Permissions;
using System.Text;
using ICSharpCode.Core;
using ICSharpCode.FormsDesigner.Services;
namespace ICSharpCode.Scripting
@ -152,5 +154,15 @@ namespace ICSharpCode.Scripting @@ -152,5 +154,15 @@ namespace ICSharpCode.Scripting
{
return null;
}
protected override void ReportFlushErrors(ICollection errors)
{
StringBuilder sb = new StringBuilder(StringParser.Parse("${res:ICSharpCode.SharpDevelop.FormDesigner.ReportFlushErrors}") + Environment.NewLine + Environment.NewLine);
foreach (var error in errors) {
sb.AppendLine(error.ToString());
sb.AppendLine();
}
MessageService.ShowError(sb.ToString());
}
}
}

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

@ -185,13 +185,9 @@ namespace ICSharpCode.VBNetBinding @@ -185,13 +185,9 @@ namespace ICSharpCode.VBNetBinding
return "On".Equals(val, StringComparison.OrdinalIgnoreCase);
}
protected override ProjectBehavior GetOrCreateBehavior()
protected override ProjectBehavior CreateDefaultBehavior()
{
if (projectBehavior != null)
return projectBehavior;
VBProjectBehavior behavior = new VBProjectBehavior(this, new DotNetStartBehavior(this, new DefaultProjectBehavior(this)));
projectBehavior = ProjectBehaviorService.LoadBehaviorsForProject(this, behavior);
return projectBehavior;
return new VBProjectBehavior(this, base.CreateDefaultBehavior());
}
}

8
src/AddIns/BackendBindings/WixBinding/Project/Src/Project/WixProject.cs

@ -216,13 +216,9 @@ namespace ICSharpCode.WixBinding @@ -216,13 +216,9 @@ namespace ICSharpCode.WixBinding
return new ReadOnlyCollection<WixExtensionProjectItem>(items);
}
protected override ProjectBehavior GetOrCreateBehavior()
protected override ProjectBehavior CreateDefaultBehavior()
{
if (projectBehavior != null)
return projectBehavior;
WixStartBehavior behavior = new WixStartBehavior(this, new DotNetStartBehavior(this, new DefaultProjectBehavior(this)));
projectBehavior = ProjectBehaviorService.LoadBehaviorsForProject(this, behavior);
return projectBehavior;
return new WixStartBehavior(this, base.CreateDefaultBehavior());
}
}

17
src/AddIns/BackendBindings/XamlBinding/XamlBinding.Tests/ResolveContextTests.cs

@ -180,7 +180,7 @@ namespace ICSharpCode.XamlBinding.Tests @@ -180,7 +180,7 @@ namespace ICSharpCode.XamlBinding.Tests
}
[Test]
public void ContextInMarkupExtensionTest2()
public void ContextInAttributeValueTest()
{
string xaml = "<Test attr=\"Test\" />";
int offset = "<Test attr=\"Te".Length;
@ -191,7 +191,7 @@ namespace ICSharpCode.XamlBinding.Tests @@ -191,7 +191,7 @@ namespace ICSharpCode.XamlBinding.Tests
}
[Test]
public void ContextInMarkupExtensionTest3()
public void ContextInMarkupExtensionTest2()
{
string xaml = "<Test attr=\"{}{Test}\" />";
int offset = "<Test attr=\"{}{Te".Length;
@ -202,7 +202,7 @@ namespace ICSharpCode.XamlBinding.Tests @@ -202,7 +202,7 @@ namespace ICSharpCode.XamlBinding.Tests
}
[Test]
public void ContextInMarkupExtensionTest4()
public void ContextInAttributeValueTest2()
{
string xaml = "<Test attr=\"Test />";
int offset = "<Test attr=\"Te".Length;
@ -212,6 +212,17 @@ namespace ICSharpCode.XamlBinding.Tests @@ -212,6 +212,17 @@ namespace ICSharpCode.XamlBinding.Tests
Assert.AreEqual(XamlContextDescription.InAttributeValue, context.Description);
}
[Test]
public void ContextInAttributeValueTest3()
{
string xaml = "<Test attr=\"Test />";
int offset = "<Test attr=\"".Length;
XamlContext context = CompletionDataHelper.ResolveContext(xaml, "", offset);
Assert.AreEqual(XamlContextDescription.InAttributeValue, context.Description);
}
[Test]
public void ParentElementTestSimple1()
{

4
src/AddIns/BackendBindings/XamlBinding/XamlBinding.Tests/UtilsTests.cs

@ -73,7 +73,7 @@ inside SharpDevelop, there's more going on than a @@ -73,7 +73,7 @@ inside SharpDevelop, there's more going on than a
simple call to MSBuild.";
int expected = @"SharpDevelop uses the MSBuild
libraries".Length - 1;
libraries".Length;
int line = 2;
int col = 10;
@ -110,7 +110,7 @@ simple call to MSBuild."; @@ -110,7 +110,7 @@ simple call to MSBuild.";
int expected = @"SharpDevelop uses the MSBuild
libraries for compilation. But when you compile a project
inside SharpDevelop, there's more going on than a
simple".Length - 1;
simple".Length;
int line = 4;
int col = 7;

19
src/AddIns/BackendBindings/XamlBinding/XamlBinding/Utils.cs

@ -25,7 +25,8 @@ namespace ICSharpCode.XamlBinding @@ -25,7 +25,8 @@ namespace ICSharpCode.XamlBinding
return Math.Min(Math.Max(value, lower), upper);
}
static char[] whitespace = new char[] {' ', '\t', '\n', '\r'};
static readonly char[] whitespace = new[] {' ', '\t', '\n', '\r'};
static readonly char[] newline = new[] {'\n', '\r'};
public static string GetNamespacePrefix(string namespaceUri, XamlContext context)
{
@ -36,6 +37,13 @@ namespace ICSharpCode.XamlBinding @@ -36,6 +37,13 @@ namespace ICSharpCode.XamlBinding
return string.Empty;
}
/// <summary>
/// Returns the offset for a given line, column position in a file.
/// If the given position is not within the string it returns the first or the last offset respectively.
/// </summary>
/// <remarks>
/// <paramref name="line"/> and <paramref name="col"/> are 1-based!
/// </remarks>
public static int GetOffsetFromFilePos(string content, int line, int col)
{
if (line < 1)
@ -46,16 +54,19 @@ namespace ICSharpCode.XamlBinding @@ -46,16 +54,19 @@ namespace ICSharpCode.XamlBinding
int offset = -1;
while (line > 1) {
int tmp = content.IndexOf('\n', offset + 1);
int tmp = content.IndexOfAny(newline, offset + 1);
if (tmp > -1) {
offset = tmp;
if (content[tmp] == '\r' && content.Length > tmp + 1 && content[tmp + 1] == '\n')
offset = tmp + 1;
else
offset = tmp;
line--;
} else {
return content.Length;
}
}
return offset + col - 1;
return offset + col;
}
public static Location GetLocationInfoFromOffset(string text, int offset)

6
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlExpressionFinder.cs

@ -42,7 +42,11 @@ namespace ICSharpCode.XamlBinding @@ -42,7 +42,11 @@ namespace ICSharpCode.XamlBinding
while (offset < text.Length && IsValidChar(text[offset])) {
offset++;
}
return new ExpressionResult(text.Substring(start, offset - start), GetContext(text, offset));
var startLocation = Utils.GetLocationInfoFromOffset(text, start);
var endLocation = Utils.GetLocationInfoFromOffset(text, offset);
return new ExpressionResult(text.Substring(start, offset - start), GetContext(text, offset)) { Region = new DomRegion(startLocation.Line, startLocation.Column, endLocation.Line, endLocation.Column) };
}
public string RemoveLastPart(string expression)

13
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlResolver.cs

@ -218,14 +218,13 @@ namespace ICSharpCode.XamlBinding @@ -218,14 +218,13 @@ namespace ICSharpCode.XamlBinding
if (propertyOrEvent is IEvent && callingClass != null) {
return new MethodGroupResolveResult(callingClass, null, callingClass.DefaultReturnType, expression);
} else if (propertyOrEvent is IProperty && callingClass != null) {
return ResolveElementName(expression);
}
if (propertyOrEvent.Name == "Name" && callingClass != null) {
foreach (IField f in callingClass.Fields) {
if (f.Name == expression)
return new MemberResolveResult(callingClass, null, f);
if (propertyOrEvent.Name == "Name") {
foreach (IField f in callingClass.Fields) {
if (f.Name == expression)
return new MemberResolveResult(callingClass, null, f);
}
}
return ResolveElementName(expression);
}
IReturnType type = propertyOrEvent.ReturnType;

7
src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.csproj

@ -114,10 +114,6 @@ @@ -114,10 +114,6 @@
<DependentUpon>ConditionCell.xaml</DependentUpon>
</Compile>
<Compile Include="Pads\Controls\Converters.cs" />
<Compile Include="Pads\Controls\SimpleListViewControl.xaml.cs">
<DependentUpon>SimpleListViewControl.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Pads\Controls\WatchList.xaml.cs">
<DependentUpon>WatchList.xaml</DependentUpon>
</Compile>
@ -129,6 +125,7 @@ @@ -129,6 +125,7 @@
<DependentUpon>DrawSurface.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Pads\ParallelPad\ParallelStackFrameModel.cs" />
<Compile Include="Pads\ParallelPad\ParallelStackPad.cs" />
<Compile Include="Pads\ParallelPad\ParallelStacksGraph.cs" />
<Compile Include="Pads\ParallelPad\SelectedFrameBookmark.cs" />
@ -327,7 +324,6 @@ @@ -327,7 +324,6 @@
</Compile>
<Compile Include="Visualizers\PresentationBindings\DisplayAttribute.cs" />
<Compile Include="Visualizers\PresentationBindings\EnumViewModel.cs" />
<Compile Include="Visualizers\PresentationBindings\ViewModelBase.cs" />
<None Include="COPYING" />
</ItemGroup>
<ItemGroup>
@ -385,7 +381,6 @@ @@ -385,7 +381,6 @@
<Page Include="Options\DebuggingOptionsPanel.xaml" />
<Page Include="Pads\CallStackPad.xaml" />
<Page Include="Pads\Controls\ConditionCell.xaml" />
<Page Include="Pads\Controls\SimpleListViewControl.xaml" />
<Page Include="Pads\Controls\WatchList.xaml" />
<Page Include="Pads\Controls\WatchListAutoCompleteCell.xaml" />
<Page Include="Pads\ParallelPad\DrawSurface.xaml" />

65
src/AddIns/Debugger/Debugger.AddIn/Options/DebuggingOptionsPanel.xaml

@ -1,42 +1,37 @@ @@ -1,42 +1,37 @@
<gui:OptionPanel x:Class="Debugger.AddIn.Options.DebuggingOptionsPanel"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:sd="http://icsharpcode.net/sharpdevelop/core"
xmlns:gui="clr-namespace:ICSharpCode.SharpDevelop.Gui;assembly=ICSharpCode.SharpDevelop"
xmlns:debugger="clr-namespace:ICSharpCode.SharpDevelop.Services;assembly=Debugger.AddIn"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets">
<StackPanel>
<GroupBox Margin="5" Header="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping}">
<widgets:StackPanelWithSpacing SpaceBetweenItems="5">
<CheckBox x:Name="chbEnableJustMyCode"
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.EnableJustMyCode}"
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.EnableJustMyCode}" />
<CheckBox x:Name="chbStepOverNoSymbols"
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverNoSymbols}"
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverNoSymbols}" />
<CheckBox x:Name="chbStepOverDebuggerAttributes"
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverDebuggerAttributes}"
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverDebuggerAttributes}" />
<CheckBox x:Name="chbStepOverAllProperties"
Checked="ChbStepOverAllProperties_CheckedChanged"
Unchecked="ChbStepOverAllProperties_CheckedChanged"
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverAllProperties}"
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverAllProperties}" />
<CheckBox x:Name="chbStepOverSingleLineProperties"
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverSingleLineProperties}"
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverSingleLineProperties}" />
<CheckBox x:Name="chbStepOverFieldAccessProperties"
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverFieldAccessProperties}"
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverFieldAccessProperties}" />
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:sd="http://icsharpcode.net/sharpdevelop/core"
xmlns:gui="clr-namespace:ICSharpCode.SharpDevelop.Gui;assembly=ICSharpCode.SharpDevelop"
xmlns:debugger="clr-namespace:ICSharpCode.SharpDevelop.Services;assembly=Debugger.AddIn"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets">
<StackPanel>
<GroupBox Margin="5" Header="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping}">
<widgets:StackPanelWithSpacing SpaceBetweenItems="5">
<CheckBox Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.DecompileCodeWithoutSymbols}"
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.DecompileCodeWithoutSymbols}" />
<CheckBox x:Name="chbStepOverDebuggerAttributes"
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverDebuggerAttributes}"
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverDebuggerAttributes}" />
<CheckBox x:Name="chbStepOverAllProperties"
Checked="ChbStepOverAllProperties_CheckedChanged"
Unchecked="ChbStepOverAllProperties_CheckedChanged"
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverAllProperties}"
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverAllProperties}" />
<CheckBox x:Name="chbStepOverSingleLineProperties"
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverSingleLineProperties}"
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverSingleLineProperties}" />
<CheckBox x:Name="chbStepOverFieldAccessProperties"
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverFieldAccessProperties}"
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverFieldAccessProperties}" />
</widgets:StackPanelWithSpacing>
</GroupBox>
</GroupBox>
<GroupBox Margin="5" Header="{sd:Localize Dialog.Options.IDEOptions.Debugging.Exceptions}">
<widgets:StackPanelWithSpacing SpaceBetweenItems="5">
<CheckBox x:Name="chbPauseOnHandledExceptions"
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.PauseOnHandledExceptions}"
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.PauseOnHandledExceptions}" />
<CheckBox x:Name="chbPauseOnHandledExceptions"
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.PauseOnHandledExceptions}"
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.PauseOnHandledExceptions}" />
</widgets:StackPanelWithSpacing>
</GroupBox>
</StackPanel>
</StackPanel>
</gui:OptionPanel>

131
src/AddIns/Debugger/Debugger.AddIn/Pads/CallStackPad.xaml.cs

@ -3,12 +3,12 @@ @@ -3,12 +3,12 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using Debugger;
using Debugger.AddIn.TreeModel;
using ICSharpCode.Core;
@ -40,7 +40,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -40,7 +40,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
extMethodsItem.IsChecked = DebuggingOptions.Instance.ShowExternalMethods;
extMethodsItem.Click += delegate {
extMethodsItem.IsChecked = DebuggingOptions.Instance.ShowExternalMethods = !DebuggingOptions.Instance.ShowExternalMethods;
RefreshPad();
CallStackPad.InvalidateCallstackPad();
};
MenuItem moduleItem = new MenuItem();
@ -49,7 +49,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -49,7 +49,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
moduleItem.Click += delegate {
moduleItem.IsChecked = DebuggingOptions.Instance.ShowModuleNames = !DebuggingOptions.Instance.ShowModuleNames;
((GridView)view.View).Columns[0].Width = DebuggingOptions.Instance.ShowModuleNames ? 100d : 0d;
RefreshPad();
CallStackPad.InvalidateCallstackPad();
};
MenuItem argNamesItem = new MenuItem();
@ -57,7 +57,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -57,7 +57,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
argNamesItem.IsChecked = DebuggingOptions.Instance.ShowArgumentNames;
argNamesItem.Click += delegate {
argNamesItem.IsChecked = DebuggingOptions.Instance.ShowArgumentNames = !DebuggingOptions.Instance.ShowArgumentNames;
RefreshPad();
CallStackPad.InvalidateCallstackPad();
};
MenuItem argValuesItem = new MenuItem();
@ -65,7 +65,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -65,7 +65,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
argValuesItem.IsChecked = DebuggingOptions.Instance.ShowArgumentValues;
argValuesItem.Click += delegate {
argValuesItem.IsChecked = DebuggingOptions.Instance.ShowArgumentValues = !DebuggingOptions.Instance.ShowArgumentValues;
RefreshPad();
CallStackPad.InvalidateCallstackPad();
};
MenuItem lineItem = new MenuItem();
@ -74,7 +74,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -74,7 +74,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
lineItem.Click += delegate {
lineItem.IsChecked = DebuggingOptions.Instance.ShowLineNumbers = !DebuggingOptions.Instance.ShowLineNumbers;
((GridView)view.View).Columns[2].Width = DebuggingOptions.Instance.ShowLineNumbers ? 50d : 0d;
RefreshPad();
CallStackPad.InvalidateCallstackPad();
};
return new ContextMenu() {
@ -98,12 +98,12 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -98,12 +98,12 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
if (debuggedProcess != null) {
debuggedProcess.Paused += debuggedProcess_Paused;
}
RefreshPad();
CallStackPad.InvalidateCallstackPad();
}
void debuggedProcess_Paused(object sender, ProcessEventArgs e)
{
RefreshPad();
CallStackPad.InvalidateCallstackPad();
}
void View_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
@ -118,7 +118,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -118,7 +118,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
if (item.Frame != null && debuggedProcess.SelectedThread != null) {
// check for options - if these options are enabled, selecting the frame should not continue
if (!item.Frame.HasSymbols && (debuggedProcess.Options.EnableJustMyCode || debuggedProcess.Options.StepOverNoSymbols)) {
if (!item.Frame.HasSymbols && !debuggedProcess.Options.DecompileCodeWithoutSymbols) {
MessageService.ShowMessage("${res:MainWindow.Windows.Debug.CallStack.CannotSwitchWithoutSymbolsOrDecompiledCodeOptions}",
"${res:MainWindow.Windows.Debug.CallStack.FunctionSwitch}");
return;
@ -140,73 +140,63 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -140,73 +140,63 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
}
}
public void RefreshPad()
internal void RefreshPad()
{
if (debuggedProcess == null || debuggedProcess.IsRunning || debuggedProcess.SelectedThread == null) {
view.ItemsSource = null;
return;
}
List<CallStackItem> items = null;
var items = new ObservableCollection<CallStackItem>();
using(new PrintTimes("Callstack refresh")) {
try {
Utils.DoEvents(debuggedProcess);
items = CreateItems().ToList();
} catch(AbortedBecauseDebuggeeResumedException) {
} catch(System.Exception) {
if (debuggedProcess == null || debuggedProcess.HasExited) {
// Process unexpectedly exited
} else {
throw;
}
}
bool showExternalMethods = DebuggingOptions.Instance.ShowExternalMethods;
bool previousItemIsExternalMethod = false;
debuggedProcess.EnqueueForEach(
Dispatcher,
debuggedProcess.SelectedThread.GetCallstack(100),
f => items.AddIfNotNull(CreateItem(f, showExternalMethods, ref previousItemIsExternalMethod))
);
}
view.ItemsSource = items;
}
IEnumerable<CallStackItem> CreateItems()
CallStackItem CreateItem(StackFrame frame, bool showExternalMethods, ref bool previousItemIsExternalMethod)
{
bool showExternalMethods = DebuggingOptions.Instance.ShowExternalMethods;
bool lastItemIsExternalMethod = false;
CallStackItem item;
foreach (StackFrame frame in debuggedProcess.SelectedThread.GetCallstack(100)) {
CallStackItem item;
// line number
string lineNumber = string.Empty;
if (DebuggingOptions.Instance.ShowLineNumbers) {
if (frame.NextStatement != null)
lineNumber = frame.NextStatement.StartLine.ToString();
}
// show modules names
string moduleName = string.Empty;
if (DebuggingOptions.Instance.ShowModuleNames) {
moduleName = frame.MethodInfo.DebugModule.ToString();
}
if (frame.HasSymbols || showExternalMethods) {
// Show the method in the list
item = new CallStackItem() {
Name = GetFullName(frame), Language = "", Line = lineNumber, ModuleName = moduleName
};
lastItemIsExternalMethod = false;
item.Frame = frame;
} else {
// Show [External methods] in the list
if (lastItemIsExternalMethod) continue;
item = new CallStackItem() {
Name = ResourceService.GetString("MainWindow.Windows.Debug.CallStack.ExternalMethods"),
Language = ""
};
lastItemIsExternalMethod = true;
}
yield return item;
// line number
string lineNumber = string.Empty;
if (DebuggingOptions.Instance.ShowLineNumbers) {
if (frame.NextStatement != null)
lineNumber = frame.NextStatement.StartLine.ToString();
}
// show modules names
string moduleName = string.Empty;
if (DebuggingOptions.Instance.ShowModuleNames) {
moduleName = frame.MethodInfo.DebugModule.ToString();
}
if (frame.HasSymbols || showExternalMethods) {
// Show the method in the list
Utils.DoEvents(debuggedProcess);
item = new CallStackItem() {
Name = GetFullName(frame), Language = "", Line = lineNumber, ModuleName = moduleName
};
previousItemIsExternalMethod = false;
item.Frame = frame;
} else {
// Show [External methods] in the list
if (previousItemIsExternalMethod) return null;
item = new CallStackItem() {
Name = ResourceService.GetString("MainWindow.Windows.Debug.CallStack.ExternalMethods"),
Language = ""
};
previousItemIsExternalMethod = true;
}
return item;
}
internal static string GetFullName(StackFrame frame)
@ -278,6 +268,17 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -278,6 +268,17 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
{
CallStackPadContent callStackList;
static CallStackPad instance;
public static CallStackPad Instance {
get { return instance; }
}
public CallStackPad()
{
instance = this;
}
public override object Control {
get {
return callStackList;
@ -294,9 +295,15 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -294,9 +295,15 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
callStackList.SelectProcess(process);
}
public override void RefreshPad()
protected override void RefreshPad()
{
callStackList.RefreshPad();
}
public static void InvalidateCallstackPad()
{
if (instance != null)
instance.InvalidatePad();
}
}
}

6
src/AddIns/Debugger/Debugger.AddIn/Pads/Commands/WatchPadCommands.cs

@ -49,7 +49,7 @@ namespace Debugger.AddIn @@ -49,7 +49,7 @@ namespace Debugger.AddIn
list.WatchItems.Add(text);
}
pad.RefreshPad();
pad.InvalidatePad();
}
}
}
@ -67,7 +67,7 @@ namespace Debugger.AddIn @@ -67,7 +67,7 @@ namespace Debugger.AddIn
return;
list.WatchItems.Remove(node);
((WatchPad)this.Owner).RefreshPad();
((WatchPad)this.Owner).InvalidatePad();
}
}
}
@ -77,7 +77,7 @@ namespace Debugger.AddIn @@ -77,7 +77,7 @@ namespace Debugger.AddIn
public override void Run()
{
if (this.Owner is WatchPad) {
((WatchPad)this.Owner).RefreshPad();
((WatchPad)this.Owner).InvalidatePad();
}
}
}

16
src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/SimpleListViewControl.xaml

@ -1,16 +0,0 @@ @@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<UserControl
x:Class="Debugger.AddIn.Pads.Controls.SimpleListViewControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:core="http://icsharpcode.net/sharpdevelop/core"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
<ListView
ItemsSource="{Binding ItemCollection}"
x:Name="ItemsListView">
<ListView.View>
<GridView>
<GridView.Columns>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</UserControl>

62
src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/SimpleListViewControl.xaml.cs

@ -1,62 +0,0 @@ @@ -1,62 +0,0 @@
// 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.Collections.ObjectModel;
using System.Dynamic;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Input;
namespace Debugger.AddIn.Pads.Controls
{
public partial class SimpleListViewControl : UserControl
{
public event EventHandler ItemActivated;
private ObservableCollection<ExpandoObject> itemCollection = new ObservableCollection<ExpandoObject>();
public SimpleListViewControl()
{
InitializeComponent();
ItemsListView.MouseDoubleClick += new MouseButtonEventHandler(ItemsListView_MouseDoubleClick);
}
public ObservableCollection<ExpandoObject> ItemCollection {
get { return itemCollection; }
}
public IList<ExpandoObject> SelectedItems {
get {
var result = new List<ExpandoObject>();
foreach (var item in ItemsListView.SelectedItems)
result.Add((ExpandoObject)item);
return result;
}
}
public void ClearColumns()
{
((GridView)this.ItemsListView.View).Columns.Clear();
}
public void AddColumn(string header, Binding binding, double width)
{
GridViewColumn column = new GridViewColumn();
column.Width = width;
column.DisplayMemberBinding = binding;
column.Header = header;
((GridView)this.ItemsListView.View).Columns.Add(column);
}
void ItemsListView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
var handler = ItemActivated;
if (handler != null)
handler(this, EventArgs.Empty);
}
}
}

9
src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/TreeNodeWrapper.cs

@ -4,11 +4,13 @@ @@ -4,11 +4,13 @@
using System;
using System.Linq;
using System.Windows;
using System.Windows.Threading;
using Debugger.AddIn.TreeModel;
using ICSharpCode.NRefactory;
using ICSharpCode.SharpDevelop.Debugging;
using ICSharpCode.SharpDevelop.Gui.Pads;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Services;
using ICSharpCode.TreeView;
namespace Debugger.AddIn.Pads.Controls
@ -40,7 +42,8 @@ namespace Debugger.AddIn.Pads.Controls @@ -40,7 +42,8 @@ namespace Debugger.AddIn.Pads.Controls
protected override void LoadChildren()
{
if (Node.HasChildNodes) {
this.Children.AddRange(Node.ChildNodes.Select(node => node.ToSharpTreeNode()));
((WindowsDebugger)DebuggerService.CurrentDebugger).DebuggedProcess
.EnqueueWork(Dispatcher.CurrentDispatcher, () => Children.AddRange(Node.ChildNodes.Select(node => node.ToSharpTreeNode())));
}
}
}
@ -74,7 +77,7 @@ namespace Debugger.AddIn.Pads.Controls @@ -74,7 +77,7 @@ namespace Debugger.AddIn.Pads.Controls
if (!WatchPad.Instance.WatchList.WatchItems.Any(n => text.FullName == ((TreeNodeWrapper)n).Node.FullName))
WatchPad.Instance.WatchList.WatchItems.Add(node);
WatchPad.Instance.RefreshPad();
WatchPad.Instance.InvalidatePad();
}
}
}

10
src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/WatchList.xaml.cs

@ -60,8 +60,10 @@ namespace Debugger.AddIn.Pads.Controls @@ -60,8 +60,10 @@ namespace Debugger.AddIn.Pads.Controls
}
if (e.Key == Key.Enter || e.Key == Key.Escape) {
myList.UnselectAll();
LocalVarPad.Instance.RefreshPad();
WatchPad.Instance.RefreshPad();
if (LocalVarPad.Instance != null)
LocalVarPad.Instance.InvalidatePad();
if (WatchPad.Instance != null)
WatchPad.Instance.InvalidatePad();
}
}
@ -74,8 +76,8 @@ namespace Debugger.AddIn.Pads.Controls @@ -74,8 +76,8 @@ namespace Debugger.AddIn.Pads.Controls
SelectedNode.Node.Name = cell.CommandText;
myList.UnselectAll();
if (WatchType == WatchListType.Watch) {
WatchPad.Instance.RefreshPad();
if (WatchType == WatchListType.Watch && WatchPad.Instance != null) {
WatchPad.Instance.InvalidatePad();
}
SelectedNode.IsEditing = false;
}

23
src/AddIns/Debugger/Debugger.AddIn/Pads/DebuggerPad.cs

@ -28,7 +28,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -28,7 +28,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
if (this.toolbar != null) {
this.toolbar.SetValue(DockPanel.DockProperty, Dock.Top);
this.panel.Children.Add(toolbar);
}
@ -53,8 +53,27 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -53,8 +53,27 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
}
public virtual void RefreshPad()
/// <summary>
/// Never call this directly. Always use InvalidatePad()
/// </summary>
protected virtual void RefreshPad()
{
}
bool invalidatePadEnqueued;
public void InvalidatePad()
{
WorkbenchSingleton.AssertMainThread();
if (invalidatePadEnqueued || WorkbenchSingleton.Workbench == null)
return;
invalidatePadEnqueued = true;
WorkbenchSingleton.SafeThreadAsyncCall(
delegate {
invalidatePadEnqueued = false;
RefreshPad();
});
}

64
src/AddIns/Debugger/Debugger.AddIn/Pads/LoadedModulesPad.cs

@ -2,24 +2,30 @@ @@ -2,24 +2,30 @@
// This code is distributed under the BSD license (for details please see \src\AddIns\Debugger\Debugger.AddIn\license.txt)
using System;
using System.Collections.ObjectModel;
using System.Dynamic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using Debugger;
using Debugger.AddIn.Pads.Controls;
using Debugger.AddIn.Pads.ParallelPad;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.Gui.Pads
{
public class LoadedModulesPad : DebuggerPad
{
SimpleListViewControl loadedModulesList;
ListView loadedModulesList;
Process debuggedProcess;
ObservableCollection<ModuleModel> loadedModules;
protected override void InitializeComponents()
{
loadedModulesList = new SimpleListViewControl();
loadedModulesList = new ListView();
loadedModules = new ObservableCollection<ModuleModel>();
loadedModulesList.ItemsSource = loadedModules;
loadedModulesList.View = new GridView();
panel.Children.Add(loadedModulesList);
RedrawContent();
ResourceService.LanguageChanged += delegate { RedrawContent(); };
@ -51,7 +57,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -51,7 +57,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
debuggedProcess.Modules.Added += debuggedProcess_ModuleLoaded;
debuggedProcess.Modules.Removed += debuggedProcess_ModuleUnloaded;
}
RefreshPad();
InvalidatePad();
}
void debuggedProcess_ModuleLoaded(object sender, CollectionItemEventArgs<Module> e)
@ -64,9 +70,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -64,9 +70,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
RemoveModule(e.Item);
}
public override void RefreshPad()
protected override void RefreshPad()
{
loadedModulesList.ItemCollection.Clear();
loadedModules.Clear();
if (debuggedProcess != null) {
foreach(Module module in debuggedProcess.Modules) {
AddModule(module);
@ -76,31 +82,35 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -76,31 +82,35 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
void AddModule(Module module)
{
dynamic obj = new ExpandoObject();
obj.Tag = module;
RefreshItem(obj);
module.SymbolsUpdated += delegate { RefreshItem(obj); };
loadedModulesList.ItemCollection.Add(obj);
}
void RefreshItem(ExpandoObject obj)
{
dynamic item = obj;
Module module = (Module)item.Tag;
item.Name = module.Name;
item.Address = String.Format("{0:X8}", module.BaseAdress);
item.Path = module.IsDynamic ? "(dynamic)" : module.IsInMemory ? "(in memory)" : module.FullPath;
item.Order = module.OrderOfLoading.ToString();
item.Symbols = StringParser.Parse(module.HasSymbols ? "${res:MainWindow.Windows.Debug.Modules.HasSymbols}" : "${res:MainWindow.Windows.Debug.Modules.HasNoSymbols}");
loadedModules.Add(new ModuleModel(module));
}
void RemoveModule(Module module)
{
foreach (dynamic item in loadedModulesList.ItemCollection) {
if (item.Tag == module) {
loadedModulesList.ItemCollection.Remove(item);
break;
}
loadedModules.RemoveWhere(model => model.Module == module);
}
}
static class ListViewExtensions
{
public static void ClearColumns(this ListView view)
{
if (view == null)
throw new ArgumentNullException("view");
if (view.View is GridView)
((GridView)view.View).Columns.Clear();
}
public static void AddColumn(this ListView view, string header, Binding binding, double width)
{
if (view == null)
throw new ArgumentNullException("view");
if (view.View is GridView) {
GridViewColumn column = new GridViewColumn {
Width = width,
DisplayMemberBinding = binding,
Header = header };
((GridView)view.View).Columns.Add(column);
}
}
}

42
src/AddIns/Debugger/Debugger.AddIn/Pads/LocalVarPad.cs

@ -2,6 +2,8 @@ @@ -2,6 +2,8 @@
// This code is distributed under the BSD license (for details please see \src\AddIns\Debugger\Debugger.AddIn\license.txt)
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows.Threading;
using Debugger;
using Debugger.AddIn.Pads.Controls;
using Debugger.AddIn.TreeModel;
@ -46,39 +48,37 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -46,39 +48,37 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
if (debuggedProcess != null) {
debuggedProcess.Paused += debuggedProcess_Paused;
}
RefreshPad();
InvalidatePad();
}
void debuggedProcess_Paused(object sender, ProcessEventArgs e)
{
RefreshPad();
InvalidatePad();
}
public override void RefreshPad()
protected override void RefreshPad()
{
if (debuggedProcess == null || debuggedProcess.IsRunning) {
localVarList.WatchItems.Clear();
return;
}
using(new PrintTimes("Local Variables refresh")) {
try {
Utils.DoEvents(debuggedProcess);
StackFrame frame = debuggedProcess.GetCurrentExecutingFrame();
if (frame == null) return;
localVarList.WatchItems.Clear();
foreach (var item in new StackFrameNode(frame).ChildNodes) {
localVarList.WatchItems.Add(item.ToSharpTreeNode());
}
}
catch(AbortedBecauseDebuggeeResumedException) { }
catch(Exception ex) {
if (debuggedProcess == null || debuggedProcess.HasExited) {
// Process unexpectedly exited
} else {
MessageService.ShowException(ex);
}
LoggingService.Info("Local Variables refresh");
try {
StackFrame frame = debuggedProcess.GetCurrentExecutingFrame();
localVarList.WatchItems.Clear();
if (frame == null) return;
debuggedProcess.EnqueueForEach(
Dispatcher.CurrentDispatcher,
new StackFrameNode(frame).ChildNodes.ToList(),
n => localVarList.WatchItems.Add(n.ToSharpTreeNode())
);
} catch (Exception ex) {
if (debuggedProcess == null || debuggedProcess.HasExited) {
// Process unexpectedly exited
} else {
MessageService.ShowException(ex);
}
}
}

2
src/AddIns/Debugger/Debugger.AddIn/Pads/MemoryPad.cs

@ -64,7 +64,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -64,7 +64,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
this.console = new ConsoleControl();
this.panel.Children.Add(console);
this.console.Encoding = Encoding.Default;
RefreshPad();
RefreshPad(); // exception
this.console.SetReadonly();
DebuggerService.DebugStopped += DebuggerService_DebugStopped;

8
src/AddIns/Debugger/Debugger.AddIn/Pads/ObjectGraphPad.cs

@ -37,7 +37,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -37,7 +37,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
}
public override void RefreshPad()
protected override void RefreshPad()
{
// BUG: if pad window is undocked and floats standalone, IsVisible == false (so pad won't refresh)
// REQUEST: need to refresh when pad becomes visible -> VisibleChanged event?
@ -49,7 +49,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -49,7 +49,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
this.objectGraphControl.Clear();
return;
}
this.objectGraphControl.Refresh();
this.objectGraphControl.RefreshView();
}
protected override void SelectProcess(Process process)
@ -61,12 +61,12 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -61,12 +61,12 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
if (debuggedProcess != null) {
debuggedProcess.Paused += debuggedProcess_Paused;
}
RefreshPad();
InvalidatePad();
}
void debuggedProcess_Paused(object sender, ProcessEventArgs e)
{
RefreshPad();
InvalidatePad();
}
}
}

180
src/AddIns/Debugger/Debugger.AddIn/Pads/ParallelPad/ParallelStackFrameModel.cs

@ -0,0 +1,180 @@ @@ -0,0 +1,180 @@
// 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.Reflection;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Widgets;
namespace Debugger.AddIn.Pads.ParallelPad
{
public class ParallelStackFrameModel : ViewModelBase
{
FontWeight fontWeight;
public FontWeight FontWeight {
get { return fontWeight; }
set {
fontWeight = value;
RaisePropertyChanged(() => FontWeight);
}
}
Brush foreground;
public Brush Foreground {
get { return foreground; }
set {
foreground = value;
RaisePropertyChanged(() => Foreground);
}
}
ImageSource image;
public ImageSource Image {
get { return image; }
set {
image = value;
RaisePropertyChanged(() => Image);
}
}
string methodName;
public string MethodName {
get { return methodName; }
set {
methodName = value;
RaisePropertyChanged(() => MethodName);
}
}
bool isRunningStackFrame;
public bool IsRunningStackFrame {
get { return isRunningStackFrame; }
set {
isRunningStackFrame = value;
RaisePropertyChanged(() => IsRunningStackFrame);
}
}
}
public class ThreadModel : ViewModelBase
{
Thread thread;
public ThreadModel(Thread thread)
{
if (thread == null)
throw new ArgumentNullException("thread");
this.thread = thread;
thread.NameChanged += delegate { RaisePropertyChanged(() => Name); };
}
public Thread Thread {
get { return thread; }
}
public uint ID {
get { return thread.ID; }
}
public string Name {
get { return thread.Name; }
}
public string Priority {
get {
switch (thread.Priority) {
case System.Threading.ThreadPriority.Highest:
return ResourceService.GetString("MainWindow.Windows.Debug.Threads.Priority.Highest");
case System.Threading.ThreadPriority.AboveNormal:
return ResourceService.GetString("MainWindow.Windows.Debug.Threads.Priority.AboveNormal");
case System.Threading.ThreadPriority.Normal:
return ResourceService.GetString("MainWindow.Windows.Debug.Threads.Priority.Normal");
case System.Threading.ThreadPriority.BelowNormal:
return ResourceService.GetString("MainWindow.Windows.Debug.Threads.Priority.BelowNormal");
case System.Threading.ThreadPriority.Lowest:
return ResourceService.GetString("MainWindow.Windows.Debug.Threads.Priority.Lowest");
default:
return thread.Priority.ToString();
}
}
}
public string Location {
get {
if (thread.Process.IsPaused && thread.MostRecentStackFrame != null)
return thread.MostRecentStackFrame.MethodInfo.Name;
return ResourceService.GetString("Global.NA");
}
}
public string Frozen {
get {
return ResourceService.GetString(thread.Suspended ? "Global.Yes" : "Global.No");
}
}
}
public class ModuleModel : ViewModelBase
{
Module module;
public ModuleModel(Module module)
{
if (module == null)
throw new ArgumentNullException("module");
this.module = module;
this.module.SymbolsUpdated += delegate {
RaisePropertyChanged(() => Name);
RaisePropertyChanged(() => Address);
RaisePropertyChanged(() => Path);
RaisePropertyChanged(() => Order);
RaisePropertyChanged(() => Symbols);
};
}
public Module Module {
get { return module; }
}
public string Name {
get { return module.Name; }
}
public string Address {
get { return string.Format("{0:X8}", module.BaseAdress); }
}
public string Path {
get {
if (module.IsDynamic)
return StringParser.Parse("${res:MainWindow.Windows.Debug.Modules.DynamicModule}");
if (module.IsInMemory)
return StringParser.Parse("${res:MainWindow.Windows.Debug.Modules.InMemoryModule}");
return module.FullPath;
}
}
public string Order {
get {
return module.OrderOfLoading.ToString();
}
}
public string Symbols {
get {
if (module.HasSymbols)
return StringParser.Parse("${res:MainWindow.Windows.Debug.Modules.HasSymbols}");
return StringParser.Parse("${res:MainWindow.Windows.Debug.Modules.HasNoSymbols}");
}
}
}
}

116
src/AddIns/Debugger/Debugger.AddIn/Pads/ParallelPad/ParallelStackPad.cs

@ -4,12 +4,11 @@ @@ -4,12 +4,11 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Dynamic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Threading;
using Debugger;
using Debugger.AddIn.Pads.ParallelPad;
using Debugger.AddIn.TreeModel;
@ -32,13 +31,13 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -32,13 +31,13 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
public class ParallelStackPad : DebuggerPad
{
private DrawSurface surface;
private Process debuggedProcess;
private ParallelStacksGraph graph;
private List<ThreadStack> currentThreadStacks = new List<ThreadStack>();
private ParallelStacksView parallelStacksView;
private StackFrame selectedFrame;
private bool isMethodView;
DrawSurface surface;
Process debuggedProcess;
ParallelStacksGraph graph;
List<ThreadStack> currentThreadStacks = new List<ThreadStack>();
ParallelStacksView parallelStacksView;
StackFrame selectedFrame;
bool isMethodView;
#region Overrides
@ -62,10 +61,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -62,10 +61,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
DebuggerService.DebugStarted += OnReset;
DebuggerService.DebugStopped += OnReset;
RefreshPad();
InvalidatePad();
}
public override void RefreshPad()
protected override void RefreshPad()
{
if (debuggedProcess == null || debuggedProcess.IsRunning) {
return;
@ -79,10 +78,8 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -79,10 +78,8 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
try {
// create all simple ThreadStacks
foreach (Thread thread in debuggedProcess.Threads) {
if (debuggedProcess.IsPaused) {
Utils.DoEvents(debuggedProcess);
}
CreateThreadStack(thread);
var t = thread;
debuggedProcess.EnqueueWork(Dispatcher.CurrentDispatcher, () => CreateThreadStack(t));
}
}
catch(AbortedBecauseDebuggeeResumedException) { }
@ -136,7 +133,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -136,7 +133,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
get { return parallelStacksView; }
set {
parallelStacksView = value;
RefreshPad();
InvalidatePad();
}
}
@ -144,7 +141,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -144,7 +141,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
get { return isMethodView; }
set {
isMethodView = value;
RefreshPad();
InvalidatePad();
}
}
@ -157,7 +154,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -157,7 +154,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
#region Private Methods
private void OnReset(object sender, EventArgs e)
void OnReset(object sender, EventArgs e)
{
currentThreadStacks.Clear();
selectedFrame = null;
@ -166,12 +163,12 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -166,12 +163,12 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
BookmarkManager.RemoveAll(b => b is SelectedFrameBookmark);
}
private void OnProcessPaused(object sender, ProcessEventArgs e)
void OnProcessPaused(object sender, ProcessEventArgs e)
{
RefreshPad();
InvalidatePad();
}
private void AddChildren(ThreadStack parent)
void AddChildren(ThreadStack parent)
{
if(parent.ThreadStackChildren == null || parent.ThreadStackChildren.Count == 0)
return;
@ -190,7 +187,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -190,7 +187,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
}
}
private void CreateCommonStacks()
void CreateCommonStacks()
{
// stack.ItemCollection order
// 0 -> top of stack = S.C
@ -214,7 +211,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -214,7 +211,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
//get all thread stacks with common start frame
foreach (var stack in currentThreadStacks) {
int count = stack.ItemCollection.Count;
dynamic frame = stack.ItemCollection[count - 1];
ParallelStackFrameModel frame = stack.ItemCollection[count - 1];
string fullname = frame.MethodName + stack.Level.ToString();
if (!commonFrameThreads.ContainsKey(fullname))
@ -249,7 +246,8 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -249,7 +246,8 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
canContinue = false;
break;
}
dynamic item = stack.ItemCollection[stack.ItemCollection.Count - frameIndex - 1];
ParallelStackFrameModel item = stack.ItemCollection[stack.ItemCollection.Count - frameIndex - 1];
string currentName = item.MethodName;
@ -271,7 +269,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -271,7 +269,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
// remove last [frameIndex] and create a new ThreadStack as the parent of what remained in the children
var threadIds = new List<uint>();
var parentItems = new Stack<ExpandoObject>();
var parentItems = new Stack<ParallelStackFrameModel>();
while (frameIndex > 0) {
for (int i = 0 ; i < listOfCurrentStacks.Count; ++i) {
@ -279,7 +277,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -279,7 +277,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
int indexToRemove = stack.ItemCollection.Count - 1;
#if DEBUG
dynamic d_item = stack.ItemCollection[indexToRemove];
ParallelStackFrameModel d_item = stack.ItemCollection[indexToRemove];
string name = d_item.MethodName;
#endif
if (i == 0)
@ -321,7 +319,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -321,7 +319,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
currentThreadStacks.Remove(stack);
continue;
}
dynamic item = stack.ItemCollection[stack.ItemCollection.Count - 1];
ParallelStackFrameModel item = stack.ItemCollection[stack.ItemCollection.Count - 1];
// add the parent to the parent
if (stack.ThreadStackParents != null) {
// remove stack from it's parent because it will have the commonParent as parent
@ -371,10 +369,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -371,10 +369,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
}
}
private void CreateMethodViewStacks()
void CreateMethodViewStacks()
{
var list =
new List<Tuple<ObservableCollection<ExpandoObject>, ObservableCollection<ExpandoObject>, List<uint>>>();
var list = new List<Tuple<ObservableCollection<ParallelStackFrameModel>, ObservableCollection<ParallelStackFrameModel>, List<uint>>>();
// find all threadstacks that contains the selected frame
for (int i = currentThreadStacks.Count - 1; i >= 0; --i) {
@ -387,9 +384,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -387,9 +384,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
// common
ThreadStack common = new ThreadStack();
var observ = new ObservableCollection<ExpandoObject>();
var observ = new ObservableCollection<ParallelStackFrameModel>();
bool dummy = false;
dynamic obj = CreateItemForFrame(selectedFrame, ref dummy);
ParallelStackFrameModel obj = CreateItemForFrame(selectedFrame, ref dummy);
obj.Image = PresentationResourceService.GetImage("Icons.48x48.CurrentFrame").Source;
observ.Add(obj);
common.ItemCollection = observ;
@ -440,7 +437,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -440,7 +437,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
common.IsSelected = true;
}
private void CreateThreadStack(Thread thread)
void CreateThreadStack(Thread thread)
{
var items = CreateItems(thread);
if (items == null || items.Count == 0)
@ -462,16 +459,16 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -462,16 +459,16 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
currentThreadStacks.Add(threadStack);
}
private ObservableCollection<ExpandoObject> CreateItems(Thread thread)
ObservableCollection<ParallelStackFrameModel> CreateItems(Thread thread)
{
bool lastItemIsExternalMethod = false;
int noTasks = 0;
var result = new ObservableCollection<ExpandoObject>();
var result = new ObservableCollection<ParallelStackFrameModel>();
var callstack = thread.GetCallstack(100);
if (parallelStacksView == ParallelStacksView.Threads) {
foreach (StackFrame frame in callstack) {
dynamic obj = CreateItemForFrame(frame, ref lastItemIsExternalMethod);
ParallelStackFrameModel obj = CreateItemForFrame(frame, ref lastItemIsExternalMethod);
if (obj != null)
result.Add(obj);
@ -479,7 +476,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -479,7 +476,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
} else {
for (int i = 0 ; i < callstack.Length; ++i) {
StackFrame frame = callstack[i];
dynamic obj = CreateItemForFrame(frame, ref lastItemIsExternalMethod);
ParallelStackFrameModel obj = CreateItemForFrame(frame, ref lastItemIsExternalMethod);
if (frame.MethodInfo.FullName.IndexOf("System.Threading.Tasks.Task.ExecuteEntry") != -1) {
noTasks++;
@ -512,31 +509,29 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -512,31 +509,29 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
result.Add(obj);
}
Utils.DoEvents(debuggedProcess);
// return null if we are dealing with a simple thread
return noTasks == 0 ? null : result;
}
Utils.DoEvents(debuggedProcess);
return result;
}
private ExpandoObject CreateItemForFrame(StackFrame frame, ref bool lastItemIsExternalMethod)
ParallelStackFrameModel CreateItemForFrame(StackFrame frame, ref bool lastItemIsExternalMethod)
{
dynamic obj = new ExpandoObject();
ParallelStackFrameModel model = new ParallelStackFrameModel();
string fullName;
if (frame.HasSymbols) {
// Show the method in the list
fullName = frame.GetMethodName();
lastItemIsExternalMethod = false;
obj.FontWeight = FontWeights.Normal;
obj.Foreground = Brushes.Black;
model.FontWeight = FontWeights.Normal;
model.Foreground = Brushes.Black;
} else {
// Show [External methods] in the list
if (lastItemIsExternalMethod) return null;
fullName = ResourceService.GetString("MainWindow.Windows.Debug.CallStack.ExternalMethods").Trim();
obj.FontWeight = FontWeights.Normal;
obj.Foreground = Brushes.Gray;
model.FontWeight = FontWeights.Normal;
model.Foreground = Brushes.Gray;
lastItemIsExternalMethod = true;
}
@ -544,23 +539,23 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -544,23 +539,23 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
frame.Thread.ID == debuggedProcess.SelectedThread.ID &&
frame.Thread.SelectedStackFrame.IP == frame.IP &&
frame.Thread.SelectedStackFrame.GetMethodName() == frame.GetMethodName()) {
obj.Image = PresentationResourceService.GetImage("Bookmarks.CurrentLine").Source;
obj.IsRunningStackFrame = true;
model.Image = PresentationResourceService.GetImage("Bookmarks.CurrentLine").Source;
model.IsRunningStackFrame = true;
} else {
if (selectedFrame != null && frame.Thread.ID == selectedFrame.Thread.ID &&
frame.GetMethodName() == selectedFrame.GetMethodName())
obj.Image = PresentationResourceService.GetImage("Icons.48x48.CurrentFrame").Source;
model.Image = PresentationResourceService.GetImage("Icons.48x48.CurrentFrame").Source;
else
obj.Image = null;
obj.IsRunningStackFrame = false;
model.Image = null;
model.IsRunningStackFrame = false;
}
obj.MethodName = fullName;
model.MethodName = fullName;
return obj;
return model;
}
private void ToggleSelectedFrameBookmark(Location location)
void ToggleSelectedFrameBookmark(Location location)
{
// remove all
BookmarkManager.RemoveAll(b => b is SelectedFrameBookmark);
@ -572,7 +567,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -572,7 +567,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
}
}
private void OnThreadStackSelected(object sender, EventArgs e)
void OnThreadStackSelected(object sender, EventArgs e)
{
foreach (var ts in this.currentThreadStacks) {
if (ts.IsSelected)
@ -581,20 +576,20 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -581,20 +576,20 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
}
}
private void OnFrameSelected(object sender, FrameSelectedEventArgs e)
void OnFrameSelected(object sender, FrameSelectedEventArgs e)
{
selectedFrame = e.Item;
ToggleSelectedFrameBookmark(e.Location);
if (isMethodView)
RefreshPad();
InvalidatePad();
}
#endregion
}
internal static class StackFrameExtensions
static class StackFrameExtensions
{
internal static string GetMethodName(this StackFrame frame)
{
@ -610,7 +605,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -610,7 +605,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
}
}
internal static class ParallelStackExtensions
static class ParallelStackExtensions
{
internal static List<T> Clone<T>(this List<T> listToClone)
{
@ -656,8 +651,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -656,8 +651,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
int found = 0;
foreach (dynamic item in source)
{
foreach (dynamic item in source) {
if (item.MethodName == frame.GetMethodName())
found = 1;

45
src/AddIns/Debugger/Debugger.AddIn/Pads/ParallelPad/ThreadStack.xaml.cs

@ -48,10 +48,10 @@ namespace Debugger.AddIn.Pads.ParallelPad @@ -48,10 +48,10 @@ namespace Debugger.AddIn.Pads.ParallelPad
public event EventHandler<FrameSelectedEventArgs> FrameSelected;
private ObservableCollection<ExpandoObject> itemCollection = new ObservableCollection<ExpandoObject>();
ObservableCollection<ParallelStackFrameModel> itemCollection = new ObservableCollection<ParallelStackFrameModel>();
private ToolTip toolTip = new ToolTip();
private List<uint> threadIds = new List<uint>();
ToolTip toolTip = new ToolTip();
List<uint> threadIds = new List<uint>();
public ThreadStack()
{
@ -91,16 +91,11 @@ namespace Debugger.AddIn.Pads.ParallelPad @@ -91,16 +91,11 @@ namespace Debugger.AddIn.Pads.ParallelPad
public List<ThreadStack> ThreadStackChildren { get; set; }
public List<uint> ThreadIds {
get {
return threadIds;
}
get { return threadIds; }
}
public ObservableCollection<ExpandoObject> ItemCollection {
get {
return itemCollection;
}
public ObservableCollection<ParallelStackFrameModel> ItemCollection {
get { return itemCollection; }
set {
itemCollection = value;
this.datagrid.ItemsSource = itemCollection;
@ -132,7 +127,7 @@ namespace Debugger.AddIn.Pads.ParallelPad @@ -132,7 +127,7 @@ namespace Debugger.AddIn.Pads.ParallelPad
public void ClearImages()
{
foreach(dynamic item in itemCollection) {
foreach (ParallelStackFrameModel item in itemCollection) {
if (!item.IsRunningStackFrame)
item.Image = null;
}
@ -170,7 +165,7 @@ namespace Debugger.AddIn.Pads.ParallelPad @@ -170,7 +165,7 @@ namespace Debugger.AddIn.Pads.ParallelPad
{
if (Process.IsRunning) return;
dynamic selectedItem = datagrid.SelectedItem;
ParallelStackFrameModel selectedItem = datagrid.SelectedItem as ParallelStackFrameModel;
if (selectedItem != null) {
if (ThreadIds.Count > 1) {
datagrid.ContextMenu = CreateContextMenu(selectedItem);
@ -183,7 +178,7 @@ namespace Debugger.AddIn.Pads.ParallelPad @@ -183,7 +178,7 @@ namespace Debugger.AddIn.Pads.ParallelPad
}
}
private void SelectFrame(uint threadId, ExpandoObject selectedItem)
private void SelectFrame(uint threadId, ParallelStackFrameModel selectedItem)
{
if (selectedItem == null)
return;
@ -197,14 +192,12 @@ namespace Debugger.AddIn.Pads.ParallelPad @@ -197,14 +192,12 @@ namespace Debugger.AddIn.Pads.ParallelPad
this.IsSelected = true;
dynamic obj = selectedItem;
foreach(var frame in thread.Callstack)
{
if (frame.GetMethodName() == obj.MethodName)
if (frame.GetMethodName() == selectedItem.MethodName)
{
if (!obj.IsRunningStackFrame)
obj.Image = PresentationResourceService.GetImage("Icons.48x48.CurrentFrame").Source;
if (!selectedItem.IsRunningStackFrame)
selectedItem.Image = PresentationResourceService.GetImage("Icons.48x48.CurrentFrame").Source;
SourcecodeSegment nextStatement = frame.NextStatement;
if (nextStatement != null) {
@ -225,7 +218,7 @@ namespace Debugger.AddIn.Pads.ParallelPad @@ -225,7 +218,7 @@ namespace Debugger.AddIn.Pads.ParallelPad
{
if (Process.IsRunning) return;
dynamic selectedItem = datagrid.SelectedItem;
ParallelStackFrameModel selectedItem = datagrid.SelectedItem as ParallelStackFrameModel;
if (selectedItem == null)
return;
@ -233,13 +226,11 @@ namespace Debugger.AddIn.Pads.ParallelPad @@ -233,13 +226,11 @@ namespace Debugger.AddIn.Pads.ParallelPad
datagrid.ContextMenu.IsOpen = true;
}
private ContextMenu CreateContextMenu(ExpandoObject item)
ContextMenu CreateContextMenu(ParallelStackFrameModel item)
{
dynamic obj = item;
var menu = new ContextMenu();
foreach (var id in ThreadIds)
{
foreach (var id in ThreadIds) {
MenuItem m = new MenuItem();
m.IsCheckable = true;
m.IsChecked = id == Process.SelectedThread.ID;
@ -248,7 +239,7 @@ namespace Debugger.AddIn.Pads.ParallelPad @@ -248,7 +239,7 @@ namespace Debugger.AddIn.Pads.ParallelPad
SelectFrame((uint)menuItem.Tag, item);
};
m.Tag = id;
m.Header = id.ToString() + ":" + obj.MethodName;
m.Header = id.ToString() + ":" + item.MethodName;
menu.Items.Add(m);
}
@ -263,7 +254,7 @@ namespace Debugger.AddIn.Pads.ParallelPad @@ -263,7 +254,7 @@ namespace Debugger.AddIn.Pads.ParallelPad
StackPanel panel = new StackPanel();
dynamic selectedItem = datagrid.SelectedItem;
ParallelStackFrameModel selectedItem = datagrid.SelectedItem as ParallelStackFrameModel;
if (selectedItem == null) {
panel.Children.Add(new TextBlock { Text = "No item selected" });
this.toolTip.Content = panel;

17
src/AddIns/Debugger/Debugger.AddIn/Pads/RunningThreadsPad.Menu.cs

@ -3,10 +3,11 @@ @@ -3,10 +3,11 @@
using System.Collections;
using System.Dynamic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using Debugger;
using Debugger.AddIn.Pads.ParallelPad;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.Gui.Pads
@ -28,7 +29,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -28,7 +29,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
return;
}
dynamic item = items[0];
ThreadModel item = items[0] as ThreadModel;
if (item == null)
return;
ContextMenu menu = sender as ContextMenu;
menu.Items.Clear();
@ -36,24 +39,24 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -36,24 +39,24 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
MenuItem freezeItem;
freezeItem = new MenuItem();
freezeItem.Header = ResourceService.GetString("MainWindow.Windows.Debug.Threads.Freeze");
freezeItem.IsChecked = (item.Tag as Thread).Suspended;
freezeItem.IsChecked = item.Thread.Suspended;
freezeItem.Click +=
delegate {
if (items == null || items.Count == 0) {
e.Handled = true;
return;
}
bool suspended = (item.Tag as Thread).Suspended;
bool suspended = item.Thread.Suspended;
if (!debuggedProcess.IsPaused) {
MessageService.ShowMessage("${res:MainWindow.Windows.Debug.Threads.CannotFreezeWhileRunning}", "${res:MainWindow.Windows.Debug.Threads.Freeze}");
return;
}
foreach(dynamic current in items) {
(current.Tag as Thread).Suspended = !suspended;
foreach(ThreadModel current in items.OfType<ThreadModel>()) {
current.Thread.Suspended = !suspended;
}
RefreshPad();
InvalidatePad();
};
menu.Items.Add(freezeItem);

127
src/AddIns/Debugger/Debugger.AddIn/Pads/RunningThreadsPad.cs

@ -2,12 +2,15 @@ @@ -2,12 +2,15 @@
// This code is distributed under the BSD license (for details please see \src\AddIns\Debugger\Debugger.AddIn\license.txt)
using System;
using System.Dynamic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Threading;
using Debugger;
using Debugger.AddIn.Pads.Controls;
using Debugger.AddIn.Pads.ParallelPad;
using Debugger.AddIn.TreeModel;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Debugging;
@ -19,14 +22,18 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -19,14 +22,18 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
{
public partial class RunningThreadsPad : DebuggerPad
{
SimpleListViewControl runningThreadsList;
ListView runningThreadsList;
ObservableCollection<ThreadModel> runningThreads;
Process debuggedProcess;
protected override void InitializeComponents()
{
runningThreadsList = new SimpleListViewControl();
runningThreads = new ObservableCollection<ThreadModel>();
runningThreadsList = new ListView();
runningThreadsList.ContextMenu = CreateContextMenuStrip();
runningThreadsList.ItemActivated += RunningThreadsListItemActivate;
runningThreadsList.MouseDoubleClick += RunningThreadsListItemActivate;
runningThreadsList.ItemsSource = runningThreads;
runningThreadsList.View = new GridView();
panel.Children.Add(runningThreadsList);
RedrawContent();
@ -64,13 +71,13 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -64,13 +71,13 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
debuggedProcess.Paused += debuggedProcess_Paused;
debuggedProcess.Threads.Added += debuggedProcess_ThreadStarted;
}
runningThreadsList.ItemCollection.Clear();
RefreshPad();
runningThreads.Clear();
InvalidatePad();
}
void debuggedProcess_Paused(object sender, ProcessEventArgs e)
{
RefreshPad();
InvalidatePad();
}
void debuggedProcess_ThreadStarted(object sender, CollectionItemEventArgs<Thread> e)
@ -78,42 +85,32 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -78,42 +85,32 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
AddThread(e.Item);
}
public override void RefreshPad()
protected override void RefreshPad()
{
if (debuggedProcess == null || debuggedProcess.IsRunning) {
runningThreadsList.ItemCollection.Clear();
runningThreads.Clear();
return;
}
using(new PrintTimes("Threads refresh")) {
try {
foreach (Thread t in debuggedProcess.Threads) {
if (debuggedProcess.IsPaused) {
Utils.DoEvents(debuggedProcess);
}
AddThread(t);
}
} catch(AbortedBecauseDebuggeeResumedException) {
} catch(Exception) {
if (debuggedProcess == null || debuggedProcess.HasExited) {
// Process unexpectedly exited
} else {
throw;
}
}
}
LoggingService.Info("Threads refresh");
debuggedProcess.EnqueueForEach(
Dispatcher.CurrentDispatcher,
debuggedProcess.Threads.ToList(),
t => AddThread(t)
);
}
void RunningThreadsListItemActivate(object sender, EventArgs e)
{
if (debuggedProcess.IsPaused) {
if (debuggedProcess != null) {
dynamic obj = runningThreadsList.SelectedItems[0];
Thread thread = (Thread)(obj.Tag);
if (debuggedProcess != null) {
if (debuggedProcess.IsPaused) {
ThreadModel obj = runningThreadsList.SelectedItems[0] as ThreadModel;
Thread thread = obj.Thread;
// check for options - if these options are enabled, selecting the frame should not continue
if ((thread.MostRecentStackFrame == null || !thread.MostRecentStackFrame.HasSymbols) &&
(debuggedProcess.Options.EnableJustMyCode || debuggedProcess.Options.StepOverNoSymbols)) {
!DebuggingOptions.Instance.DecompileCodeWithoutSymbols) {
MessageService.ShowMessage("${res:MainWindow.Windows.Debug.Threads.CannotSwitchWithoutDecompiledCodeOptions}",
"${res:MainWindow.Windows.Debug.Threads.ThreadSwitch}");
return;
@ -127,9 +124,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -127,9 +124,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
} else {
MessageService.ShowMessage("${res:MainWindow.Windows.Debug.Threads.CannotSwitchOnNAFrame}", "${res:MainWindow.Windows.Debug.Threads.ThreadSwitch}");
}
} else {
MessageService.ShowMessage("${res:MainWindow.Windows.Debug.Threads.CannotSwitchWhileRunning}", "${res:MainWindow.Windows.Debug.Threads.ThreadSwitch}");
}
} else {
MessageService.ShowMessage("${res:MainWindow.Windows.Debug.Threads.CannotSwitchWhileRunning}", "${res:MainWindow.Windows.Debug.Threads.ThreadSwitch}");
}
}
@ -140,59 +137,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -140,59 +137,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
// remove the object if exists
RemoveThread(thread);
dynamic obj = new ExpandoObject();
obj.Tag = thread;
RefreshItem(obj);
runningThreadsList.ItemCollection.Add(obj);
thread.NameChanged += delegate {
RefreshItem(obj);
};
thread.Exited += (s, e) => RemoveThread(e.Thread);
}
void RefreshItem(ExpandoObject obj)
{
dynamic item = obj;
ThreadModel obj = new ThreadModel(thread);
if (item == null) return;
var thread = item.Tag as Thread;
if (thread == null)
return;
item.ID = thread.ID;
item.Tag = thread;
StackFrame location = null;
if (thread.Process.IsPaused) {
location = thread.MostRecentStackFrame;
}
if (location != null) {
item.Location = location.MethodInfo.Name;
} else {
item.Location = ResourceService.GetString("Global.NA");
}
switch (thread.Priority) {
case System.Threading.ThreadPriority.Highest:
item.Priority = ResourceService.GetString("MainWindow.Windows.Debug.Threads.Priority.Highest");
break;
case System.Threading.ThreadPriority.AboveNormal:
item.Priority = ResourceService.GetString("MainWindow.Windows.Debug.Threads.Priority.AboveNormal");
break;
case System.Threading.ThreadPriority.Normal:
item.Priority = ResourceService.GetString("MainWindow.Windows.Debug.Threads.Priority.Normal");
break;
case System.Threading.ThreadPriority.BelowNormal:
item.Priority = ResourceService.GetString("MainWindow.Windows.Debug.Threads.Priority.BelowNormal");
break;
case System.Threading.ThreadPriority.Lowest:
item.Priority = ResourceService.GetString("MainWindow.Windows.Debug.Threads.Priority.Lowest");
break;
default:
item.Priority = thread.Priority.ToString();
break;
}
item.Frozen = ResourceService.GetString(thread.Suspended ? "Global.Yes" : "Global.No");
runningThreads.Add(obj);
thread.Exited += (s, e) => RemoveThread(e.Thread);
}
void RemoveThread(Thread thread)
@ -200,12 +148,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -200,12 +148,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
if (thread == null)
return;
foreach (dynamic item in runningThreadsList.ItemCollection) {
if (thread.ID == item.ID) {
runningThreadsList.ItemCollection.Remove(item);
break;
}
}
runningThreads.RemoveWhere(model => model.Thread == thread);
}
}
}

7
src/AddIns/Debugger/Debugger.AddIn/Pads/WatchInputBox.xaml.cs

@ -52,12 +52,7 @@ namespace Debugger.AddIn.Pads @@ -52,12 +52,7 @@ namespace Debugger.AddIn.Pads
}
// get process
WindowsDebugger debugger = (WindowsDebugger)DebuggerService.CurrentDebugger;
debugger.ProcessSelected += delegate(object sender, ProcessEventArgs e) {
this.Process = e.Process;
};
this.Process = debugger.DebuggedProcess;
this.Process = ((WindowsDebugger)DebuggerService.CurrentDebugger).DebuggedProcess;
}
private Process Process { get; set; }

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

@ -8,6 +8,7 @@ using System.Linq; @@ -8,6 +8,7 @@ using System.Linq;
using System.Windows;
using System.Windows.Data;
using System.Windows.Input;
using System.Windows.Threading;
using System.Xml.Serialization;
using Debugger;
using Debugger.AddIn;
@ -181,52 +182,43 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -181,52 +182,43 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
debuggedProcess.Paused += debuggedProcess_Paused;
debuggedProcess.Exited += ResetPad;
}
RefreshPad();
InvalidatePad();
}
void debuggedProcess_Paused(object sender, ProcessEventArgs e)
{
RefreshPad();
InvalidatePad();
}
public override void RefreshPad()
TreeNodeWrapper UpdateNode(TreeNodeWrapper node)
{
try {
LoggingService.Info("Evaluating: " + (string.IsNullOrEmpty(node.Node.Name) ? "is null or empty!" : node.Node.Name));
var nodExpression = debugger.GetExpression(node.Node.Name);
//Value val = ExpressionEvaluator.Evaluate(nod.Name, nod.Language, debuggedProcess.SelectedStackFrame);
ExpressionNode valNode = new ExpressionNode(null, null, node.Node.Name, nodExpression);
return valNode.ToSharpTreeNode();
} catch (GetValueException) {
string error = String.Format(StringParser.Parse("${res:MainWindow.Windows.Debug.Watch.InvalidExpression}"), node.Node.Name);
ErrorInfoNode infoNode = new ErrorInfoNode(node.Node.Name, error);
return infoNode.ToSharpTreeNode();
}
}
protected override void RefreshPad()
{
if (debuggedProcess == null || debuggedProcess.IsRunning)
return;
using(new PrintTimes("Watch Pad refresh")) {
try {
Utils.DoEvents(debuggedProcess);
List<TreeNodeWrapper> nodes = new List<TreeNodeWrapper>();
foreach (var node in watchList.WatchItems.OfType<TreeNodeWrapper>()) {
try {
LoggingService.Info("Evaluating: " + (string.IsNullOrEmpty(node.Node.Name) ? "is null or empty!" : node.Node.Name));
var nodExpression = debugger.GetExpression(node.Node.Name);
//Value val = ExpressionEvaluator.Evaluate(nod.Name, nod.Language, debuggedProcess.SelectedStackFrame);
ExpressionNode valNode = new ExpressionNode(null, null, node.Node.Name, nodExpression);
nodes.Add(valNode.ToSharpTreeNode());
}
catch (GetValueException) {
string error = String.Format(StringParser.Parse("${res:MainWindow.Windows.Debug.Watch.InvalidExpression}"), node.Node.Name);
ErrorInfoNode infoNode = new ErrorInfoNode(node.Node.Name, error);
nodes.Add(infoNode.ToSharpTreeNode());
}
}
// rebuild list
watchList.WatchItems.Clear();
foreach (var node in nodes)
watchList.WatchItems.Add(node);
}
catch(AbortedBecauseDebuggeeResumedException) { }
catch(Exception ex) {
if (debuggedProcess == null || debuggedProcess.HasExited) {
// Process unexpectedly exited
} else {
MessageService.ShowException(ex);
}
}
var nodes = watchList.WatchItems.OfType<TreeNodeWrapper>().ToArray();
watchList.WatchItems.Clear();
debuggedProcess.EnqueueForEach(
Dispatcher.CurrentDispatcher,
nodes,
n => watchList.WatchItems.Add(UpdateNode(n))
);
}
}
}

6
src/AddIns/Debugger/Debugger.AddIn/Service/DebuggeeExceptionForm.cs

@ -16,6 +16,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -16,6 +16,7 @@ namespace ICSharpCode.SharpDevelop.Services
{
Process process;
bool isUnhandled;
public Debugger.Exception Exception { get; private set; }
DebuggeeExceptionForm(Process process)
{
@ -57,7 +58,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -57,7 +58,7 @@ namespace ICSharpCode.SharpDevelop.Services
this.process.Resumed -= ProcessHandler;
}
public static void Show(Process process, string title, string message, string stacktrace, Bitmap icon, bool isUnhandled)
public static void Show(Process process, string title, string message, string stacktrace, Bitmap icon, bool isUnhandled, Debugger.Exception exception)
{
DebuggeeExceptionForm form = new DebuggeeExceptionForm(process);
form.Text = title;
@ -66,6 +67,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -66,6 +67,7 @@ namespace ICSharpCode.SharpDevelop.Services
form.exceptionView.Text = stacktrace;
form.isUnhandled = isUnhandled;
form.btnContinue.Enabled = !isUnhandled;
form.Exception = exception;
form.Show(WorkbenchSingleton.MainWin32Window);
}
@ -104,7 +106,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -104,7 +106,7 @@ namespace ICSharpCode.SharpDevelop.Services
{
if (this.process.SelectedThread.CurrentExceptionIsUnhandled)
Close();
else if (((WindowsDebugger)DebuggerService.CurrentDebugger).BreakAndInterceptHandledException())
else if (((WindowsDebugger)DebuggerService.CurrentDebugger).BreakAndInterceptHandledException(Exception))
Close();
}

31
src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs

@ -427,15 +427,13 @@ namespace ICSharpCode.SharpDevelop.Services @@ -427,15 +427,13 @@ namespace ICSharpCode.SharpDevelop.Services
}
var frame = debuggedProcess.GetCurrentExecutingFrame();
try {
object data = debuggerDecompilerService.GetLocalVariableIndex(frame.MethodInfo.DeclaringType.MetadataToken,
frame.MethodInfo.MetadataToken,
variableName);
// evaluate expression
return ExpressionEvaluator.Evaluate(variableName, SupportedLanguage.CSharp, frame, data);
} catch {
throw;
}
if (frame == null)
return null;
object data = debuggerDecompilerService.GetLocalVariableIndex(frame.MethodInfo.DeclaringType.MetadataToken,
frame.MethodInfo.MetadataToken,
variableName);
// evaluate expression
return ExpressionEvaluator.Evaluate(variableName, SupportedLanguage.CSharp, frame, data);
}
/// <summary>
@ -859,7 +857,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -859,7 +857,7 @@ namespace ICSharpCode.SharpDevelop.Services
if (e.IsUnhandled) {
// Need to intercept now so that we can evaluate properties
if (e.Process.SelectedThread.InterceptCurrentException()) {
if (e.Process.SelectedThread.InterceptException(e.Exception)) {
stacktraceBuilder.AppendLine(e.Exception.ToString());
string stackTrace;
try {
@ -883,12 +881,12 @@ namespace ICSharpCode.SharpDevelop.Services @@ -883,12 +881,12 @@ namespace ICSharpCode.SharpDevelop.Services
string message = string.Format(StringParser.Parse("${res:MainWindow.Windows.Debug.ExceptionForm.Message}"), e.Exception.Type);
Bitmap icon = WinFormsResourceService.GetBitmap(e.IsUnhandled ? "Icons.32x32.Error" : "Icons.32x32.Warning");
DebuggeeExceptionForm.Show(debuggedProcess, title, message, stacktraceBuilder.ToString(), icon, e.IsUnhandled);
DebuggeeExceptionForm.Show(debuggedProcess, title, message, stacktraceBuilder.ToString(), icon, e.IsUnhandled, e.Exception);
}
public bool BreakAndInterceptHandledException()
public bool BreakAndInterceptHandledException(Debugger.Exception exception)
{
if (!debuggedProcess.SelectedThread.InterceptCurrentException()) {
if (!debuggedProcess.SelectedThread.InterceptException(exception)) {
MessageService.ShowError("${res:MainWindow.Windows.Debug.ExceptionForm.Error.CannotInterceptHandledException}");
return false;
}
@ -946,7 +944,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -946,7 +944,7 @@ namespace ICSharpCode.SharpDevelop.Services
}
// check for options - if these options are enabled, debugging decompiled code should not continue
if (debuggedProcess.Options.EnableJustMyCode || debuggedProcess.Options.StepOverNoSymbols) {
if (!debuggedProcess.Options.DecompileCodeWithoutSymbols) {
LoggingService.Info("Decompiled code debugging is disabled!");
return;
}
@ -965,13 +963,14 @@ namespace ICSharpCode.SharpDevelop.Services @@ -965,13 +963,14 @@ namespace ICSharpCode.SharpDevelop.Services
// update marker & navigate to line
NavigationService.NavigateTo(debugType.DebugModule.FullPath,
debugType.FullNameWithoutGenericArguments,
string.Empty,
IDStringProvider.GetIDString(frame.MethodInfo),
line);
} else {
// no line => do decompilation
NavigationService.NavigateTo(debugType.DebugModule.FullPath,
debugType.FullNameWithoutGenericArguments,
string.Empty);
IDStringProvider.GetIDString(frame.MethodInfo));
}
}

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

@ -2,39 +2,88 @@ @@ -2,39 +2,88 @@
// This code is distributed under the BSD license (for details please see \src\AddIns\Debugger\Debugger.AddIn\license.txt)
using System;
using System.Collections;
using System.Diagnostics;
using System.Collections.Generic;
using System.Reflection;
using System.Windows.Forms;
using System.Windows.Threading;
using Debugger.AddIn.Pads.Controls;
using ICSharpCode.Core;
using ICSharpCode.NRefactory.Ast;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Services;
namespace Debugger.AddIn.TreeModel
{
public static partial class Utils
{
/// <param name="process">Process on which to track debuggee state</param>
public static void DoEvents(Process process)
public static void EnqueueWork(this Process process, Dispatcher dispatcher, Action work)
{
if (process == null) return;
DebuggeeState oldState = process.DebuggeeState;
WpfDoEvents();
DebuggeeState newState = process.DebuggeeState;
if (oldState != newState) {
LoggingService.Info("Aborted because debuggee resumed");
throw new AbortedBecauseDebuggeeResumedException();
}
var debuggeeStateWhenEnqueued = process.DebuggeeState;
// Always ask the scheduler to do only one piece of work at a time
// - this might actually be completely ok as we are not waiting anywhere between thread
dispatcher.BeginInvoke(
DispatcherPriority.Background,
(Action)delegate {
// Check that the user has not stepped in the meantime - if he has, do not do anything at all
if (process.IsPaused && debuggeeStateWhenEnqueued == process.DebuggeeState) {
try {
// Do the work, this may recursively enqueue more work
work();
} catch(System.Exception ex) {
if (process == null || process.HasExited) {
// Process unexpectedly exited - silently ignore
} else {
MessageService.ShowException(ex);
}
}
}
}
);
}
public static void EnqueueForEach<T>(this Process process, Dispatcher dispatcher, IList<T> items, Action<T> work)
{
DebuggeeState debuggeeStateWhenEnqueued = process.DebuggeeState;
dispatcher.BeginInvoke(
DispatcherPriority.Normal,
(Action)delegate { ProcessItems(process, dispatcher, 0, items, work, debuggeeStateWhenEnqueued); }
);
}
public static void WpfDoEvents()
static void ProcessItems<T>(Process process, Dispatcher dispatcher, int startIndex, IList<T> items, Action<T> work, DebuggeeState debuggeeStateWhenEnqueued)
{
DispatcherFrame frame = new DispatcherFrame();
Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => frame.Continue = false));
Dispatcher.PushFrame(frame);
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 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;
}
}
}
}
public class AbortedBecauseDebuggeeResumedException: System.Exception
@ -56,7 +105,7 @@ namespace Debugger.AddIn.TreeModel @@ -56,7 +105,7 @@ namespace Debugger.AddIn.TreeModel
public class PrintTime: IDisposable
{
string text;
Stopwatch stopwatch = new Stopwatch();
System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
public PrintTime(string text)
{

21
src/AddIns/Debugger/Debugger.AddIn/Visualizers/Graph/ObjectGraphControl.xaml.cs

@ -60,16 +60,13 @@ namespace Debugger.AddIn.Visualizers.Graph @@ -60,16 +60,13 @@ namespace Debugger.AddIn.Visualizers.Graph
txtExpression.Text = string.Empty;
}
public void Refresh()
public void RefreshView()
{
debuggerService.DebuggedProcess.EnqueueWork(Dispatcher, () => Refresh());
}
void Refresh()
{
try {
Debugger.AddIn.TreeModel.Utils.DoEvents(debuggerService.DebuggedProcess);
} catch(AbortedBecauseDebuggeeResumedException) {
Log.Warn("Object graph - debuggee resumed, cancelling refresh.");
this.graphDrawer.ClearCanvas();
return;
}
ClearErrorMessage();
if (string.IsNullOrEmpty(txtExpression.Text)) {
this.graphDrawer.ClearCanvas();
@ -107,19 +104,19 @@ namespace Debugger.AddIn.Visualizers.Graph @@ -107,19 +104,19 @@ namespace Debugger.AddIn.Visualizers.Graph
if (value == null) {
shownExpression = null;
txtExpression.Text = null;
Refresh();
RefreshView();
return;
}
if (shownExpression == null || value.PrettyPrint() != shownExpression.PrettyPrint()) {
txtExpression.Text = value.PrettyPrint();
Refresh();
RefreshView();
}
}
}
private void Inspect_Button_Click(object sender, RoutedEventArgs e)
{
this.Refresh();
RefreshView();
}
ObjectGraph RebuildGraph(string expression)

2
src/AddIns/Debugger/Debugger.AddIn/Visualizers/Graph/ObjectGraphWindow.xaml.cs

@ -89,7 +89,7 @@ namespace Debugger.AddIn.Visualizers.Graph @@ -89,7 +89,7 @@ namespace Debugger.AddIn.Visualizers.Graph
{
// on step or breakpoint hit
if (!debuggerService.IsProcessRunning) {
this.objectGraphControl.Refresh();
this.objectGraphControl.RefreshView();
}
}

8
src/AddIns/Debugger/Debugger.AddIn/Visualizers/PresentationBindings/EnumViewModel.cs

@ -3,11 +3,13 @@ @@ -3,11 +3,13 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Text;
using System.ComponentModel;
using System.Windows.Data;
using System.Reflection;
using ICSharpCode.SharpDevelop.Widgets;
namespace Debugger.AddIn.Visualizers
{
@ -65,7 +67,7 @@ namespace Debugger.AddIn.Visualizers @@ -65,7 +67,7 @@ namespace Debugger.AddIn.Visualizers
{
if (_enumValue.Equals(value)) return;
_enumValue = value;
OnPropertyChanged("SelectedEnumValue");
RaisePropertyChanged(() => SelectedEnumValue);
}
}
}

6
src/AddIns/Debugger/Debugger.AddIn/Visualizers/PresentationBindings/GridViewColumnHider.cs

@ -1,12 +1,14 @@ @@ -1,12 +1,14 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the BSD license (for details please see \src\AddIns\Debugger\Debugger.AddIn\license.txt)
using Debugger.AddIn.Visualizers.PresentationBindings;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Controls;
using Debugger.AddIn.Visualizers.PresentationBindings;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Widgets;
namespace Debugger.AddIn.Visualizers
{
@ -26,7 +28,7 @@ namespace Debugger.AddIn.Visualizers @@ -26,7 +28,7 @@ namespace Debugger.AddIn.Visualizers
set {
if (isVisible != value) {
isVisible = value;
OnPropertyChanged("IsVisible");
RaisePropertyChanged(() => IsVisible);
ExtensionMethods.RaiseEvent(IsVisibleChanged, this, EventArgs.Empty);
}
}

23
src/AddIns/Debugger/Debugger.AddIn/Visualizers/PresentationBindings/ViewModelBase.cs

@ -1,23 +0,0 @@ @@ -1,23 +0,0 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// 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.Text;
using System.ComponentModel;
using ICSharpCode.SharpDevelop;
namespace Debugger.AddIn.Visualizers
{
public class ViewModelBase : INotifyPropertyChanged
{
protected void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
public event PropertyChangedEventHandler PropertyChanged;
}
}

1
src/AddIns/Debugger/Debugger.Core/Debugger.Core.csproj

@ -56,6 +56,7 @@ @@ -56,6 +56,7 @@
<Reference Include="System.Windows.Forms" />
</ItemGroup>
<ItemGroup>
<Compile Include="IDStringProvider.cs" />
<Compile Include="Interop\MTA2STA.cs" />
<Compile Include="ManagedCallback.cs" />
<Compile Include="ManagedCallbackProxy.cs" />

154
src/AddIns/Debugger/Debugger.Core/IDStringProvider.cs

@ -0,0 +1,154 @@ @@ -0,0 +1,154 @@
// 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.Reflection;
using System.Text;
namespace Debugger
{
/// <summary>
/// Description of IDStringProvider.
/// </summary>
public static class IDStringProvider
{
/// <summary>
/// Gets the ID string (C# 4.0 spec, §A.3.1) for the specified entity.
/// </summary>
public static string GetIDString(MemberInfo member)
{
StringBuilder b = new StringBuilder();
if (member is Type) {
b.Append("T:");
AppendTypeName(b, (Type)member);
} else {
if (member is FieldInfo)
b.Append("F:");
else if (member is PropertyInfo)
b.Append("P:");
else if (member is EventInfo)
b.Append("E:");
else if (member is MethodBase)
b.Append("M:");
AppendTypeName(b, member.DeclaringType);
b.Append('.');
b.Append(member.Name.Replace('.', '#'));
IList<ParameterInfo> parameters;
Type explicitReturnType = null;
if (member is PropertyInfo) {
parameters = ((PropertyInfo)member).GetIndexParameters();
} else if (member is MethodInfo) {
MethodInfo mr = (MethodInfo)member;
if (mr.IsGenericMethod) {
b.Append("``");
b.Append(mr.GetGenericArguments().Length);
}
parameters = mr.GetParameters();
if (mr.Name == "op_Implicit" || mr.Name == "op_Explicit") {
explicitReturnType = mr.ReturnType;
}
} else {
parameters = null;
}
if (parameters != null && parameters.Count > 0) {
b.Append('(');
for (int i = 0; i < parameters.Count; i++) {
if (i > 0) b.Append(',');
AppendTypeName(b, parameters[i].ParameterType);
}
b.Append(')');
}
if (explicitReturnType != null) {
b.Append('~');
AppendTypeName(b, explicitReturnType);
}
}
return b.ToString();
}
static void AppendTypeName(StringBuilder b, Type type)
{
if (type == null) {
return;
}
if (type.IsGenericType) {
AppendTypeNameWithArguments(b, type.GetElementType(), type.GetGenericArguments());
} else if (type.HasElementType) {
AppendTypeName(b, type.GetElementType());
if (type.IsArray) {
b.Append('[');
if (type.GetArrayRank() > 1) {
for (int i = 0; i < type.GetArrayRank(); i++) {
if (i > 0)
b.Append(',');
b.Append("0:");
}
}
b.Append(']');
}
if (type.IsByRef) {
b.Append('@');
}
if (type.IsPointer) {
b.Append('*');
}
} else {
if (type.IsGenericParameter) {
b.Append('`');
if (type.DeclaringMethod != null) {
b.Append('`');
}
b.Append(type.GenericParameterPosition);
} else if (type.DeclaringType != null) {
AppendTypeName(b, type.DeclaringType);
b.Append('.');
b.Append(type.Name);
} else {
b.Append(type.FullName);
}
}
}
static int AppendTypeNameWithArguments(StringBuilder b, Type type, IList<Type> genericArguments)
{
int outerTypeParameterCount = 0;
if (type.DeclaringType != null) {
Type declType = type.DeclaringType;
outerTypeParameterCount = AppendTypeNameWithArguments(b, declType, genericArguments);
b.Append('.');
} else if (!string.IsNullOrEmpty(type.Namespace)) {
b.Append(type.Namespace);
b.Append('.');
}
int localTypeParameterCount = 0;
b.Append(SplitTypeParameterCountFromReflectionName(type.Name, out localTypeParameterCount));
if (localTypeParameterCount > 0) {
int totalTypeParameterCount = outerTypeParameterCount + localTypeParameterCount;
b.Append('{');
for (int i = outerTypeParameterCount; i < totalTypeParameterCount && i < genericArguments.Count; i++) {
if (i > outerTypeParameterCount) b.Append(',');
AppendTypeName(b, genericArguments[i]);
}
b.Append('}');
}
return outerTypeParameterCount + localTypeParameterCount;
}
static string SplitTypeParameterCountFromReflectionName(string reflectionName, out int typeParameterCount)
{
int pos = reflectionName.LastIndexOf('`');
if (pos < 0) {
typeParameterCount = 0;
return reflectionName;
} else {
string typeCount = reflectionName.Substring(pos + 1);
if (int.TryParse(typeCount, out typeParameterCount))
return reflectionName.Substring(0, pos);
else
return reflectionName;
}
}
}
}

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

Loading…
Cancel
Save