Browse Source

Merge origin/master to local master.

Conflicts:
	src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj (2 files were added, didn't merge the project file automatically)
pull/15/head
mkonicek 15 years ago
parent
commit
0eebf076af
  1. 9
      data/resources/StringResources.cz.resx
  2. 24
      data/resources/StringResources.de.resx
  3. 7
      data/resources/StringResources.es-mx.resx
  4. 7
      data/resources/StringResources.es.resx
  5. 12
      data/resources/StringResources.fr.resx
  6. 39
      data/resources/StringResources.nl.resx
  7. 154
      data/resources/StringResources.pt-br.resx
  8. 39
      data/resources/StringResources.pt.resx
  9. 36
      data/resources/StringResources.resx
  10. 52
      data/resources/StringResources.ru.resx
  11. 147
      data/resources/StringResources.tr.resx
  12. 523
      data/schemas/AddIn.xsd
  13. 39
      doc/technotes/ConditionList.html
  14. 290
      doc/technotes/DoozerList.html
  15. 31
      samples/EmbeddedImageAddIn/Configuration/AssemblyInfo.cs
  16. 20
      samples/EmbeddedImageAddIn/EmbeddedImageAddIn.addin
  17. 80
      samples/EmbeddedImageAddIn/EmbeddedImageAddIn.csproj
  18. 18
      samples/EmbeddedImageAddIn/EmbeddedImageAddIn.sln
  19. 38
      samples/EmbeddedImageAddIn/EmbeddedImageLanguageBinding.cs
  20. 58
      samples/EmbeddedImageAddIn/ImageCache.cs
  21. 101
      samples/EmbeddedImageAddIn/ImageElement.cs
  22. 62
      samples/EmbeddedImageAddIn/ImageElementGenerator.cs
  23. 39
      samples/EmbeddedImageAddIn/InsertImageCommand.cs
  24. 12
      samples/SharpDevelopReports/src/ReportSamples.sln
  25. 12
      samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs
  26. 10
      samples/SharpDevelopReports/src/SharpReportSamples/SharpReportSamples.csproj
  27. 20
      src/AddIns/Analysis/Profiler/Controller/ProfilerOptions.cs
  28. 2
      src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/GoToDefinition.cs
  29. 2
      src/AddIns/Analysis/UnitTesting/Src/EmptyUnitTestsPad.cs
  30. 3
      src/AddIns/Analysis/UnitTesting/Src/IUnitTestsPad.cs
  31. 17
      src/AddIns/Analysis/UnitTesting/Src/UnitTestCommands.cs
  32. 11
      src/AddIns/Analysis/UnitTesting/Src/UnitTestsPad.cs
  33. 2
      src/AddIns/Analysis/UnitTesting/Test/Utils/MockUnitTestsPad.cs
  34. 101
      src/AddIns/Analysis/UnitTesting/UnitTesting.addin
  35. 8
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonMemberResolver.cs
  36. 2
      src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj
  37. 40
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Resolver/ResolveMemberWhenFieldHasNoReturnTypeTests.cs
  38. 38
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Resolver/ResolveRandomRandintTests.cs
  39. 6
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCodeCompletionBinding.cs
  40. 25
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlParser.cs
  41. 2
      src/AddIns/Debugger/Debugger.AddIn/Pads/BreakPointsPad.cs
  42. 2
      src/AddIns/Debugger/Debugger.AddIn/Pads/CallStackPad.xaml.cs
  43. 2
      src/AddIns/Debugger/Debugger.AddIn/Pads/ConsolePad.cs
  44. 2
      src/AddIns/Debugger/Debugger.AddIn/Pads/ParallelPad/ParallelStackPad.cs
  45. 13
      src/AddIns/Debugger/Debugger.AddIn/Service/AttachToProcessForm.cs
  46. 2
      src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs
  47. 2
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/ExpressionNode.cs
  48. 4
      src/AddIns/Debugger/Debugger.AddIn/Visualizers/Utils/DebuggerHelpers.cs
  49. 4
      src/AddIns/Debugger/Debugger.Core/Exception.cs
  50. 2
      src/AddIns/Debugger/Debugger.Core/Thread.cs
  51. 43
      src/AddIns/Debugger/Debugger.Core/Value.cs
  52. 2
      src/AddIns/Debugger/Debugger.Tests/Tests/AppDomain_Tests.cs
  53. 4
      src/AddIns/Debugger/Debugger.Tests/Tests/ExpressionEvaluator_Tests.cs
  54. 20
      src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_VariablesLifetime.cs
  55. 4
      src/AddIns/Debugger/Debugger.Tests/Tests/Value_Tests.cs
  56. 1
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj
  57. 32
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/BracketHighlightRenderer.cs
  58. 45
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CaretHighlightAdorner.cs
  59. 20
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CaretReferencesRenderer.cs
  60. 8
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
  61. 40
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs
  62. 48
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActionsRenderer.cs
  63. 27
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CustomizableHighlightingColorizer.cs
  64. 13
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/CodeEditorOptions.cs
  65. 64
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/HighlightingOptions.xaml.cs
  66. 3
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/TextViewOptions.xaml
  67. 9
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs
  68. 30
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/MyTypeFinder.cs
  69. 39
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/GridAdorner.cs
  70. 10
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/SolidBrushEditor.xaml
  71. 18
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Services/CreateComponentTool.cs
  72. 9
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj
  73. 27
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/Designer/EditOperationTests.cs
  74. 31
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlDocument.cs
  75. 16
      src/AddIns/Misc/HelpViewer/Source/Controls/TocEntry.cs
  76. 37
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs
  77. 71
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
  78. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs
  79. 28
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanelControl.Designer.cs
  80. 11
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanelControl.cs
  81. 22
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs
  82. 43
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs
  83. 6
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportViewerSecondaryView.cs
  84. 29
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Toolbox/ToolboxProvider.cs
  85. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
  86. 12
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs
  87. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Collections/Collections.cs
  88. 45
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataManager.cs
  89. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs
  90. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/SqlDataAccess.cs
  91. 11
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
  92. 47
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
  93. 30
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs
  94. 43
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs
  95. 11
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs
  96. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/BaseExportRenderer.cs
  97. 19
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/PreviewRenderer.cs
  98. 26
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/PrintRenderer.cs
  99. 7
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/FormPageBuilder.cs
  100. 30
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IHierarchyInterfaces.cs
  101. Some files were not shown because too many files have changed in this diff Show More

9
data/resources/StringResources.cz.resx

@ -231,6 +231,9 @@ @@ -231,6 +231,9 @@
<data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve">
<value>Ukázat diagram třídy</value>
</data>
<data name="AddIns.Git.TortoiseGitRequired" xml:space="preserve">
<value>Pro spuštění tohoto příkazu musí být nainstalován TortoiseGit.</value>
</data>
<data name="AddIns.HtmlHelp2.AddToFavorites" xml:space="preserve">
<value>Přidat nápovědu k Oblíbeným.</value>
</data>
@ -1505,6 +1508,9 @@ Chcete přidat nový soubor do projektu ${CurrentProjectName}?</value> @@ -1505,6 +1508,9 @@ Chcete přidat nový soubor do projektu ${CurrentProjectName}?</value>
<data name="Dialog.NewFile.FillOutFirstMessage" xml:space="preserve">
<value>K vytvoření tohoto souboru je nutné vyplnit některé dodatečné vlastnosti.</value>
</data>
<data name="Dialog.NewFile.ReadOnlyProjectWarning" xml:space="preserve">
<value>Označený soubor {0} má nastaveny atributy pouze ke čtení. Soubor nebude do projektu vložen.</value>
</data>
<data name="Dialog.NewFile.TemplateText" xml:space="preserve">
<value>Š&amp;ablony:</value>
</data>
@ -6855,7 +6861,6 @@ Došlo k chybě při spuštění:</value> @@ -6855,7 +6861,6 @@ Došlo k chybě při spuštění:</value>
<value>Odkomentovat oblast</value>
</data>
<data name="_Internal.Bogus.Translation.Test1" xml:space="preserve">
<value>Tento resource není používán. Jeho účelem je testování kvality překladu a obsahuje
zlom řádku</value>
<value>Tento zdroj není používán. Jeho účelem je testování kvality překladu a konce řádku</value>
</data>
</root>

24
data/resources/StringResources.de.resx

@ -6774,6 +6774,12 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht @@ -6774,6 +6774,12 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht
<data name="SharpReport.Toolbar.Functions.TodaysDate" xml:space="preserve">
<value>Tagesdatum</value>
</data>
<data name="SharpReport.Toolbar.GroupFooter" xml:space="preserve">
<value>Gruppenfuß</value>
</data>
<data name="SharpReport.Toolbar.GroupHeader" xml:space="preserve">
<value>Gruppenkopf</value>
</data>
<data name="SharpReport.Toolbar.Image" xml:space="preserve">
<value>Bild</value>
</data>
@ -6786,6 +6792,9 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht @@ -6786,6 +6792,9 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht
<data name="SharpReport.Toolbar.Rectangle" xml:space="preserve">
<value>Rechteck</value>
</data>
<data name="SharpReport.Toolbar.Table" xml:space="preserve">
<value>Tabelle</value>
</data>
<data name="SharpReport.Toolbar.TextBox" xml:space="preserve">
<value>Beschriftung</value>
</data>
@ -6822,6 +6831,21 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht @@ -6822,6 +6831,21 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht
<data name="SharpReport.Wizard.BaseSettings.ReportType" xml:space="preserve">
<value>Reporttyp</value>
</data>
<data name="SharpReport.Wizard.Layout.Column" xml:space="preserve">
<value>Gruppierung auswählen</value>
</data>
<data name="SharpReport.Wizard.Layout.Grouping" xml:space="preserve">
<value>Gruppierung</value>
</data>
<data name="SharpReport.Wizard.Layout.ListLayout" xml:space="preserve">
<value>Listenansicht</value>
</data>
<data name="SharpReport.Wizard.Layout.ReportLayout" xml:space="preserve">
<value>Reportansicht</value>
</data>
<data name="SharpReport.Wizard.Layout.TableLayout" xml:space="preserve">
<value>Tabellenansicht</value>
</data>
<data name="SharpReport.Wizard.PullModel" xml:space="preserve">
<value>Pull Datenmodell</value>
</data>

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

@ -6505,6 +6505,10 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -6505,6 +6505,10 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="SharpDevelop.Solution.AllKnownProjectFormats" xml:space="preserve">
<value>Todos los formatos de proyecto conocidos</value>
</data>
<data name="SharpDevelop.Solution.CannotLoadOldSolution" xml:space="preserve">
<value>Esta versión de SharpDevelop no puede cargar proyectos creados usando Visual Studio .NET 2003 (o anterior).
Intente usar SharpDevelop 3.2 para la converisón; o cree un nuevo proyecto y agregue los archivos fuente existentes.</value>
</data>
<data name="SharpDevelop.Solution.CannotSave.IOException" xml:space="preserve">
<value>No se pudo guardar {0}:\n{1}</value>
</data>
@ -7609,6 +7613,9 @@ Los archivos de recursos han sido renombrados/movidos convenientemente.</value> @@ -7609,6 +7613,9 @@ Los archivos de recursos han sido renombrados/movidos convenientemente.</value>
<data name="XML.MainMenu.FileMenu.New.File.Description" xml:space="preserve">
<value>Abrir nuevo búfer</value>
</data>
<data name="XML.MainMenu.FileMenu.New.Project" xml:space="preserve">
<value>&amp;Proyecto...</value>
</data>
<data name="XML.MainMenu.FileMenu.New.Solution" xml:space="preserve">
<value>&amp;Solución...</value>
</data>

7
data/resources/StringResources.es.resx

@ -6509,6 +6509,10 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -6509,6 +6509,10 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="SharpDevelop.Solution.AllKnownProjectFormats" xml:space="preserve">
<value>Todos los formatos conocidos</value>
</data>
<data name="SharpDevelop.Solution.CannotLoadOldSolution" xml:space="preserve">
<value>Esta versión de SharpDevelop no puede cargar proyectos creados usando Visual Studio .NET 2003 (o anterior).
Intente usar SharpDevelop 3.2 para la converisón; o cree un nuevo proyecto y agregue los archivos fuente existentes.</value>
</data>
<data name="SharpDevelop.Solution.CannotSave.IOException" xml:space="preserve">
<value>No se pudo salvar {0}:\n{1}</value>
</data>
@ -7614,6 +7618,9 @@ Los archivos de recursos han sido renombrados o cambiados de ubicación de acuer @@ -7614,6 +7618,9 @@ Los archivos de recursos han sido renombrados o cambiados de ubicación de acuer
<data name="XML.MainMenu.FileMenu.New.File.Description" xml:space="preserve">
<value>Abrir búfer nuevo</value>
</data>
<data name="XML.MainMenu.FileMenu.New.Project" xml:space="preserve">
<value>&amp;Proyecto...</value>
</data>
<data name="XML.MainMenu.FileMenu.New.Solution" xml:space="preserve">
<value>&amp;Solución...</value>
</data>

12
data/resources/StringResources.fr.resx

@ -5556,6 +5556,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5556,6 +5556,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="MainWindow.Windows.Debug.ExceptionHistory.Time" xml:space="preserve">
<value>Heure</value>
</data>
<data name="MainWindow.Windows.Debug.HideZoomControl" xml:space="preserve">
<value>Afficher/Cacher le zoom</value>
</data>
<data name="MainWindow.Windows.Debug.Local" xml:space="preserve">
<value>Local</value>
</data>
@ -5631,6 +5634,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5631,6 +5634,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="MainWindow.Windows.Debug.ObjectGraph" xml:space="preserve">
<value>Graphe d'objet</value>
</data>
<data name="MainWindow.Windows.Debug.ParallelStack" xml:space="preserve">
<value>Visualiser les processus</value>
</data>
<data name="MainWindow.Windows.Debug.RunToCursor" xml:space="preserve">
<value>Exécuter jusqu'au curseur</value>
</data>
@ -5679,6 +5685,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5679,6 +5685,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="MainWindow.Windows.Debug.Threads.ThreadSwitch" xml:space="preserve">
<value>Changement de thread</value>
</data>
<data name="MainWindow.Windows.Debug.ToggleMethodView" xml:space="preserve">
<value>Basculer vers la vue "par méthodes"</value>
</data>
<data name="MainWindow.Windows.Debug.Watch" xml:space="preserve">
<value>Espions</value>
</data>
@ -5925,6 +5934,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5925,6 +5934,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="OpenFileTabEventHandler.FileContainingFolderInExplorer" xml:space="preserve">
<value>Ouvrir le répertoire dans l'explorateur</value>
</data>
<data name="ProjectBrowser.Toolbar.CollapseAll" xml:space="preserve">
<value>Réduire tous les noeuds</value>
</data>
<data name="ProjectComponent.ContextMenu.AddExistingFiles" xml:space="preserve">
<value>Ajouter fichiers existants</value>
</data>

39
data/resources/StringResources.nl.resx

@ -2740,6 +2740,9 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value> @@ -2740,6 +2740,9 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.CaretCheckBox" xml:space="preserve">
<value>Toon cursor regel</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.EnableAnimationsCheckBox" xml:space="preserve">
<value>Animatie mogelijk maken</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.EOLMarkersCheckBox" xml:space="preserve">
<value>&amp;EOL markeringen weergeven</value>
</data>
@ -5556,6 +5559,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5556,6 +5559,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="MainWindow.Windows.Debug.ExceptionHistory.Time" xml:space="preserve">
<value>Tijd</value>
</data>
<data name="MainWindow.Windows.Debug.HideZoomControl" xml:space="preserve">
<value>Toon/verberg zoom control</value>
</data>
<data name="MainWindow.Windows.Debug.Local" xml:space="preserve">
<value>Locaal</value>
</data>
@ -5631,6 +5637,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5631,6 +5637,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="MainWindow.Windows.Debug.ObjectGraph" xml:space="preserve">
<value>Object Graph</value>
</data>
<data name="MainWindow.Windows.Debug.ParallelStack" xml:space="preserve">
<value>Parallelle stapels</value>
</data>
<data name="MainWindow.Windows.Debug.RunToCursor" xml:space="preserve">
<value>Uitvoeren tot de cursor</value>
</data>
@ -5679,6 +5688,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5679,6 +5688,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="MainWindow.Windows.Debug.Threads.ThreadSwitch" xml:space="preserve">
<value>Thread wissel</value>
</data>
<data name="MainWindow.Windows.Debug.ToggleMethodView" xml:space="preserve">
<value>Wissel methode weergave</value>
</data>
<data name="MainWindow.Windows.Debug.Watch" xml:space="preserve">
<value>Observeren</value>
</data>
@ -5925,6 +5937,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5925,6 +5937,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="OpenFileTabEventHandler.FileContainingFolderInExplorer" xml:space="preserve">
<value>Open de map met document in de Explorer</value>
</data>
<data name="ProjectBrowser.Toolbar.CollapseAll" xml:space="preserve">
<value>Alle knooppunten invouwen</value>
</data>
<data name="ProjectComponent.ContextMenu.AddExistingFiles" xml:space="preserve">
<value>Toevoegen bestaande bestanden</value>
</data>
@ -6760,6 +6775,12 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value> @@ -6760,6 +6775,12 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value>
<data name="SharpReport.Toolbar.Functions.TodaysDate" xml:space="preserve">
<value>Vandaag</value>
</data>
<data name="SharpReport.Toolbar.GroupFooter" xml:space="preserve">
<value>Groep voettekst</value>
</data>
<data name="SharpReport.Toolbar.GroupHeader" xml:space="preserve">
<value>Groep koptekst</value>
</data>
<data name="SharpReport.Toolbar.Image" xml:space="preserve">
<value>Afbeelding</value>
</data>
@ -6772,6 +6793,9 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value> @@ -6772,6 +6793,9 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value>
<data name="SharpReport.Toolbar.Rectangle" xml:space="preserve">
<value>Rechthoek</value>
</data>
<data name="SharpReport.Toolbar.Table" xml:space="preserve">
<value>Tabel</value>
</data>
<data name="SharpReport.Toolbar.TextBox" xml:space="preserve">
<value>Label</value>
</data>
@ -6808,6 +6832,21 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value> @@ -6808,6 +6832,21 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value>
<data name="SharpReport.Wizard.BaseSettings.ReportType" xml:space="preserve">
<value>Rapport type</value>
</data>
<data name="SharpReport.Wizard.Layout.Column" xml:space="preserve">
<value>Selecteer de groepkolom</value>
</data>
<data name="SharpReport.Wizard.Layout.Grouping" xml:space="preserve">
<value>Groeperen</value>
</data>
<data name="SharpReport.Wizard.Layout.ListLayout" xml:space="preserve">
<value>Lijst indeling</value>
</data>
<data name="SharpReport.Wizard.Layout.ReportLayout" xml:space="preserve">
<value>Rapport indeling</value>
</data>
<data name="SharpReport.Wizard.Layout.TableLayout" xml:space="preserve">
<value>Tabel indeling</value>
</data>
<data name="SharpReport.Wizard.PullModel" xml:space="preserve">
<value>Pull Data model</value>
</data>

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

@ -231,6 +231,9 @@ @@ -231,6 +231,9 @@
<data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve">
<value>Mostrar Diagrama de Classes</value>
</data>
<data name="AddIns.Git.TortoiseGitRequired" xml:space="preserve">
<value>TortoiseGit precisa ser instalado para executar essa ação.</value>
</data>
<data name="AddIns.HelpViewer.ContentsPadTitle" xml:space="preserve">
<value>Conteudo</value>
</data>
@ -715,6 +718,9 @@ Voce precisa instalar o .Net Framework SDK para acessar o sistema de ajuda.</val @@ -715,6 +718,9 @@ Voce precisa instalar o .Net Framework SDK para acessar o sistema de ajuda.</val
<data name="AddIns.SourceAnalysis.CheckWithStyleCop" xml:space="preserve">
<value>Verificar com StyleCop</value>
</data>
<data name="AddIns.SourceAnalysis.Title" xml:space="preserve">
<value>Analise do Fonte</value>
</data>
<data name="AddIns.Subversion.AddToIgnoreList" xml:space="preserve">
<value>Adicionar a lista ignore.</value>
</data>
@ -940,6 +946,9 @@ Voce precisa instalar o .Net Framework SDK para acessar o sistema de ajuda.</val @@ -940,6 +946,9 @@ Voce precisa instalar o .Net Framework SDK para acessar o sistema de ajuda.</val
<data name="AddIns.XamlBinding.Options.UseExtensionCompletion" xml:space="preserve">
<value>Usar a extensão de conclusão de marcação</value>
</data>
<data name="AddIns.XamlBinding.Options.UseHighlighting" xml:space="preserve">
<value>Usar destaques avançados</value>
</data>
<data name="AvalonEdit.FileEncoding.EncodingCausesDataLoss" xml:space="preserve">
<value>O arquivo não pode ser salvo com a codificação corrente ${encoding} sem perder dados</value>
</data>
@ -2471,7 +2480,7 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -2471,7 +2480,7 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<value>&amp;Atualizar mudanças quando salvo</value>
</data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.CreateBackupCopyCheckBox" xml:space="preserve">
<value>Sempre cri&amp;ar cópia de segurança</value>
<value>Usar arquivo &amp;temporario para salvar.</value>
</data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.DefaultFileEncoding" xml:space="preserve">
<value>Codificação padrão de arquivo:</value>
@ -2489,7 +2498,7 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -2489,7 +2498,7 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<value>&amp;Abrir configurações específicas de usuário com o documento</value>
</data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.MacintoshRadioButton" xml:space="preserve">
<value>Macintosh</value>
<value>Macintosh (CR)</value>
</data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.PanelName" xml:space="preserve">
<value>Abrir/Salvar</value>
@ -2498,13 +2507,13 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -2498,13 +2507,13 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<value>Salvar</value>
</data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.UnixRadioButton" xml:space="preserve">
<value>Unix</value>
<value>Unix (LF)</value>
</data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.UseRecycleBin" xml:space="preserve">
<value>Usar &amp;Lixeira quando deletar arquivos</value>
</data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.WindowsRadioButton" xml:space="preserve">
<value>Windows</value>
<value>Windows (CRLF)</value>
</data>
<data name="Dialog.Options.IDEOptions.OutputPanel.Format" xml:space="preserve">
<value>Formato</value>
@ -2515,6 +2524,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -2515,6 +2524,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Dialog.Options.IDEOptions.OutputPanel.WordWrap" xml:space="preserve">
<value>Rolagem de palavra</value>
</data>
<data name="Dialog.Options.IDEOptions.Profiling" xml:space="preserve">
<value>Perfil</value>
</data>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.BuildAndRunGroupBox" xml:space="preserve">
<value>Opções de Compilação e Execução</value>
</data>
@ -2713,9 +2725,15 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -2713,9 +2725,15 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.BracketMatchingStyle.BeforeCaret" xml:space="preserve">
<value>Antes do Circunflexo</value>
</data>
<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.EOLMarkersCheckBox" xml:space="preserve">
<value>Mostrar marcas de &amp;EOL</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.HighlightSymbolCheckBox" xml:space="preserve">
<value>Simbolos em destaque</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.HiglightBracketCheckBox" xml:space="preserve">
<value>Destacar &amp;chave correspondente</value>
</data>
@ -2845,6 +2863,18 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -2845,6 +2863,18 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Dialog.ProjectOptions.ApplicationSettings.LocalizedStringFileLabel" xml:space="preserve">
<value>String do arquivo localizado:</value>
</data>
<data name="Dialog.ProjectOptions.ApplicationSettings.Manifest" xml:space="preserve">
<value>&amp;Manifest da aplicação</value>
</data>
<data name="Dialog.ProjectOptions.ApplicationSettings.Manifest.DoNotEmbedManifest" xml:space="preserve">
<value>Não embutir o manifest</value>
</data>
<data name="Dialog.ProjectOptions.ApplicationSettings.Manifest.EmbedDefault" xml:space="preserve">
<value>Embutir o manifest padrão</value>
</data>
<data name="Dialog.ProjectOptions.ApplicationSettings.Manifest.ManifestFiles" xml:space="preserve">
<value>Arquivos manifest</value>
</data>
<data name="Dialog.ProjectOptions.ApplicationSettings.OutputName" xml:space="preserve">
<value>Nome de Saída:</value>
</data>
@ -3145,6 +3175,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3145,6 +3175,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Dialog.Refactoring.ExtractInterface.AddInterfaceToClass" xml:space="preserve">
<value>Adicionar interface para a classe</value>
</data>
<data name="Dialog.Refactoring.ExtractInterface.GeneratedName" xml:space="preserve">
<value>Nome gerado</value>
</data>
<data name="Dialog.Refactoring.ExtractInterface.IncludeComments" xml:space="preserve">
<value>Incluir Comentarios</value>
</data>
@ -3157,6 +3190,18 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3157,6 +3190,18 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Dialog.Refactoring.ExtractInterface.SelectPublicMembers" xml:space="preserve">
<value>Selecionar membros públicos</value>
</data>
<data name="Dialog.Refactoring.IntroduceMethod.CreateNew" xml:space="preserve">
<value>Criar nova classe:</value>
</data>
<data name="Dialog.Refactoring.IntroduceMethod.Description" xml:space="preserve">
<value>O metodo não pode ser criado diretamente porque não há codigo fonte disponivel na classe. Favor selecionar a classe estatica onde o metodo será criado como uma extensão.</value>
</data>
<data name="Dialog.Refactoring.IntroduceMethod.Title" xml:space="preserve">
<value>Introduzir metodo</value>
</data>
<data name="Dialog.Refactoring.IntroduceMethod.UseExisting" xml:space="preserve">
<value>Usar classe existente:</value>
</data>
<data name="Dialog.SelectReferenceDialog.BrowserTabPage" xml:space="preserve">
<value>Navegador de Assembly .NET</value>
</data>
@ -3250,6 +3295,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3250,6 +3295,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="FileUtilityService.ErrorWhileSaving" xml:space="preserve">
<value>Erro durante gravação</value>
</data>
<data name="FileUtilityService.FileSizeTooBig" xml:space="preserve">
<value>O arquivo é muito grande para ser aberto.</value>
</data>
<data name="FormsDesigner.DesignErrorPanel.ErrorText" xml:space="preserve">
<value>Por favor corrija todos os erros do código fonte antes de modelar o formulário</value>
</data>
@ -3319,6 +3367,18 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3319,6 +3367,18 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Global.Folder" xml:space="preserve">
<value>Pasta</value>
</data>
<data name="Global.FontStyle" xml:space="preserve">
<value>Estilo do fonte</value>
</data>
<data name="Global.FontStyle.CustomColor" xml:space="preserve">
<value>Personalizar</value>
</data>
<data name="Global.FontStyle.SelectFont" xml:space="preserve">
<value>Selecionar fonte</value>
</data>
<data name="Global.FontStyle.Underline" xml:space="preserve">
<value>Traço baixo</value>
</data>
<data name="Global.HelpButtonText" xml:space="preserve">
<value>&amp;Ajuda</value>
</data>
@ -3376,6 +3436,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3376,6 +3436,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Global.PleaseWait" xml:space="preserve">
<value>Por favor, aguarde...</value>
</data>
<data name="Global.Preview" xml:space="preserve">
<value>Prever</value>
</data>
<data name="Global.QuestionText" xml:space="preserve">
<value>Questão</value>
</data>
@ -3395,7 +3458,7 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3395,7 +3458,7 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<value>Tentar de novo</value>
</data>
<data name="Global.SelectAllButtonText" xml:space="preserve">
<value>Selecionar todos</value>
<value>Selecion&amp;ar todos</value>
</data>
<data name="Global.SmallIconToolTip" xml:space="preserve">
<value>Ícones Pequenos</value>
@ -3424,6 +3487,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3424,6 +3487,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Gui.ProjectBrowser.Open" xml:space="preserve">
<value>Abrir</value>
</data>
<data name="Gui.ProjectBrowser.OpenFolderInExplorer" xml:space="preserve">
<value>Abrir diretorio no Explorer</value>
</data>
<data name="Gui.ProjectBrowser.OpenWith" xml:space="preserve">
<value>Abrir Com...</value>
</data>
@ -3448,6 +3514,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3448,6 +3514,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Gui.ProjectBrowser.OpenWith.Bindings.TextEditor" xml:space="preserve">
<value>Editor de texto</value>
</data>
<data name="Gui.ProjectBrowser.OpenWith.Bindings.TextEditorWithEncoding" xml:space="preserve">
<value>Editor de texto (escolher codificação)</value>
</data>
<data name="Gui.ProjectBrowser.OpenWith.Bindings.WebBrowser" xml:space="preserve">
<value>Navegador Web embutido</value>
</data>
@ -3490,6 +3559,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3490,6 +3559,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Hornung.ResourceToolkit.EditStringResourceDialog.KeyIsEmpty" xml:space="preserve">
<value>Chave de recurso não pode ser vazia!</value>
</data>
<data name="Hornung.ResourceToolkit.ErrorProcessingResourceFile" xml:space="preserve">
<value>Ocorreu um erro ao processar o arquivo de recursos na linha '{0}'.</value>
</data>
<data name="Hornung.ResourceToolkit.FindMissingResourceKeys" xml:space="preserve">
<value>Achar chaves de recursos perdidos</value>
</data>
@ -3508,21 +3580,60 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3508,21 +3580,60 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Hornung.ResourceToolkit.ReferencesToMissingKeys" xml:space="preserve">
<value>Referências para chaves de recursos perdidas</value>
</data>
<data name="Hornung.ResourceToolkit.ReferencesToResource" xml:space="preserve">
<value>Referencias para ${ResourceKey} (em ${ResourceFileName})</value>
</data>
<data name="Hornung.ResourceToolkit.RenameKeyDefinitionNotFoundWarning" xml:space="preserve">
<value>Não foi possivel encontrar e renomear a definição dessa chave de recurso.</value>
</data>
<data name="Hornung.ResourceToolkit.RenameResourceText" xml:space="preserve">
<value>Digite novo nome da chave de recurso</value>
</data>
<data name="Hornung.ResourceToolkit.ResourceTypeNotSupported" xml:space="preserve">
<value>O recurso selecionado não é do tipo 'string' e não pode ser editado.</value>
</data>
<data name="Hornung.ResourceToolkit.TextEditorContextMenu.AddResource" xml:space="preserve">
<value>Adicionar este recurso</value>
</data>
<data name="Hornung.ResourceToolkit.TextEditorContextMenu.EditResource" xml:space="preserve">
<value>Editar recurso</value>
</data>
<data name="Hornung.ResourceToolkit.ToolsMenuLabel" xml:space="preserve">
<value>Ferramentas de Recurso</value>
</data>
<data name="Hornung.ResourceToolkit.ToolTips.KeyNotFound" xml:space="preserve">
<value>&lt;CHAVE NÃO ENCONTRADA&gt;</value>
</data>
<data name="Hornung.ResourceToolkit.ToolTips.PlaceMessage" xml:space="preserve">
<value>Recurso em {0}:</value>
</data>
<data name="Hornung.ResourceToolkit.ToolTips.TypeMessage" xml:space="preserve">
<value>Objeto do tipo {0}:</value>
</data>
<data name="Hornung.ResourceToolkit.ToolTips.UnknownKey" xml:space="preserve">
<value>&lt;Desconhecido&gt;</value>
</data>
<data name="Hornung.ResourceToolkit.UnusedResourceKeys.HideICSharpCodeCoreHostResourcesTitle" xml:space="preserve">
<value>Esconde os recursos de ICSharpCode.Core</value>
</data>
<data name="Hornung.ResourceToolkit.UnusedResourceKeys.HideICSharpCodeCoreHostResourcesTooltip" xml:space="preserve">
<value>Quando selecionadas, as teclas dos recursos que estão contidas no arquivo de recurso do aplicativo ICSharpCode.Core, não estão listadas.</value>
</data>
<data name="Hornung.ResourceToolkit.UnusedResourceKeys.NotFound" xml:space="preserve">
<value>Não foi encontrada na solução nenhuma tecla de recurso não utilizado.</value>
</data>
<data name="Hornung.ResourceToolkit.UnusedResourceKeys.Title" xml:space="preserve">
<value>Teclas de recursos não utilizados</value>
</data>
<data name="Hornung.ResourceToolkit.Value" xml:space="preserve">
<value>Valor</value>
</data>
<data name="Hornung.ResourceToolkit.ValueLabel" xml:space="preserve">
<value>Valor do recurso:</value>
</data>
<data name="ICSharpCode.AvalonEdit.AddIn.SharpDevelopCompletionWindow.EmptyText" xml:space="preserve">
<value>Pressione Ctrl+Espaço para mostrar os itens de todos os namespaces</value>
</data>
<data name="ICSharpCode.BooInterpreter" xml:space="preserve">
<value>Tradutor Boo</value>
</data>
@ -3541,15 +3652,42 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3541,15 +3652,42 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="ICSharpCode.BooInterpreter.Debuggee.ToolTip" xml:space="preserve">
<value>Executa comandos no programa depurado</value>
</data>
<data name="ICSharpCode.Build.CannotFindFxCop" xml:space="preserve">
<value>O SharpDevelop não achou FxCop. Favor selecionar o diretório de instalação do FxCop nas opções do SharpDevelop.</value>
</data>
<data name="ICSharpCode.Build.CannotReadFxCopLogFile" xml:space="preserve">
<value>Não pode ler o arquivo de log do FxCop:</value>
</data>
<data name="ICSharpCode.Build.MonoIsNotInstalled" xml:space="preserve">
<value>Mono não está instalado.</value>
</data>
<data name="ICSharpCode.Build.RunningCodeAnalysis" xml:space="preserve">
<value>Executando analise de codigo...</value>
</data>
<data name="ICSharpCode.Build.UnknownTargetMonoFrameworkVersion" xml:space="preserve">
<value>Desconhecida a versão do Mono Framework:</value>
</data>
<data name="ICSharpCode.CodeAnalysis" xml:space="preserve">
<value>Análise de Código</value>
</data>
<data name="ICSharpCode.CodeAnalysis.CheckWithFxCop" xml:space="preserve">
<value>Verificar com FxCop</value>
</data>
<data name="ICSharpCode.CodeAnalysis.IdeOptions.DirectoryDoesNotContainFxCop" xml:space="preserve">
<value>O diretorio selecionado não contem a instalação completa do FxCop.</value>
</data>
<data name="ICSharpCode.CodeAnalysis.IdeOptions.FindFxCopPath" xml:space="preserve">
<value>Selecione o caminho para o FxCop</value>
</data>
<data name="ICSharpCode.CodeAnalysis.IdeOptions.FxCopFoundInPath" xml:space="preserve">
<value>O FxCop foi encontrado no seguinte diretorio:</value>
</data>
<data name="ICSharpCode.CodeAnalysis.IdeOptions.FxCopNotFound" xml:space="preserve">
<value>O FxCop não foi encontrado. Para mostrar o SharpDevelop onde o FxCop está instalado, instale o FxCop e clique em 'Selecionar Caminho para FxCop'.</value>
</data>
<data name="ICSharpCode.CodeAnalysis.IdeOptions.FxCopPath" xml:space="preserve">
<value>Caminho para FxCop</value>
</data>
<data name="ICSharpCode.CodeAnalysis.ProjectOptions.AddRemoveRuleAssembly" xml:space="preserve">
<value>Adicionar/Remover regras de assembler.</value>
</data>
@ -3583,6 +3721,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3583,6 +3721,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="ICSharpCode.CodeAnalysis.RunningFxCopOn" xml:space="preserve">
<value>Executando com FxCop</value>
</data>
<data name="ICSharpCode.CodeAnalysis.SuppressMessage" xml:space="preserve">
<value>Suprimir mensagem</value>
</data>
<data name="ICSharpCode.CodeCoverage.CodeCovered" xml:space="preserve">
<value>Código Coberto</value>
</data>
@ -3637,6 +3778,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3637,6 +3778,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="ICSharpCode.CodeCoverage.ProjectOptionsPanel.ExcludeAttributes" xml:space="preserve">
<value>Atributos excluidos</value>
</data>
<data name="ICSharpCode.CodeCoverage.ProjectOptionsPanel.ExcludeListLabel" xml:space="preserve">
<value>Excluir</value>
</data>
<data name="ICSharpCode.CodeCoverage.RunningCodeCoverage" xml:space="preserve">
<value>Rodando cobertura de código...</value>
</data>

39
data/resources/StringResources.pt.resx

@ -289,6 +289,18 @@ Faça o download de um AddIn através da Internet, depois pressione 'Instalar Ad @@ -289,6 +289,18 @@ Faça o download de um AddIn através da Internet, depois pressione 'Instalar Ad
<data name="AddIns.HexEditor.Display.Elements" xml:space="preserve">
<value>Elementos</value>
</data>
<data name="AddIns.HexEditor.Display.Elements.Data" xml:space="preserve">
<value>Dados</value>
</data>
<data name="AddIns.HexEditor.Display.Elements.Offset" xml:space="preserve">
<value>Deslocamento</value>
</data>
<data name="AddIns.HexEditor.NumeralSystem" xml:space="preserve">
<value>Sistema numérico</value>
</data>
<data name="AddIns.HexEditor.SizeToFit" xml:space="preserve">
<value>Escalar para caber na largura actual</value>
</data>
<data name="AddIns.HtmlHelp2.AddToFavorites" xml:space="preserve">
<value>Adicionar para favoritos de Ajuda</value>
</data>
@ -455,6 +467,33 @@ Precisa de instalar o .NET Framework SDK para utilizar o sistema de ajuda.</valu @@ -455,6 +467,33 @@ Precisa de instalar o .NET Framework SDK para utilizar o sistema de ajuda.</valu
<data name="AddIns.HtmlHelp2.UseCurrentProjectLanguageForSearch" xml:space="preserve">
<value>Utilizar a linguagem de projecto actual</value>
</data>
<data name="AddIns.Profiler.Commands.FindCallsOfSelected.TabTitle" xml:space="preserve">
<value>Resultado</value>
</data>
<data name="AddIns.Profiler.Commands.SetAsRoot.TabTitle" xml:space="preserve">
<value>Nós Juntos</value>
</data>
<data name="AddIns.Profiler.Commands.ShowFunctions.TabTitle" xml:space="preserve">
<value>Todas as funções para {0}</value>
</data>
<data name="AddIns.Profiler.DatabaseTooNewError" xml:space="preserve">
<value>O perfil de sessão SharpDevelop seleccionado foi criado por uma versão mais recente de SharpDevelop e assim não pode ser aberto.</value>
</data>
<data name="AddIns.Profiler.Messages.FileNotFound" xml:space="preserve">
<value>Este projecto não pode ser iniciado porque o ficheiro executável não foi encontrado, assegure-se, por favor,de que o projecto e todas as suas dependências são construídas correctamente!</value>
</data>
<data name="AddIns.Profiler.Messages.NoStartableProjectFound" xml:space="preserve">
<value>Nenhum projecto iniciável foi encontrado. Abortar...</value>
</data>
<data name="AddIns.Profiler.ProfilingView.CpuCyclesText" xml:space="preserve">
<value>Ciclos CPU:</value>
</data>
<data name="AddIns.Profiler.ProfilingView.ExecuteQueryText" xml:space="preserve">
<value>Executar inquérito</value>
</data>
<data name="AddIns.Profiler.ProfilingView.NameColumnText" xml:space="preserve">
<value>Nome</value>
</data>
<data name="AddIns.SharpRefactoring.ExtractMethod" xml:space="preserve">
<value>Extrair method</value>
</data>

36
data/resources/StringResources.resx

@ -2817,6 +2817,9 @@ system. I don't think that it needs translation.</comment> @@ -2817,6 +2817,9 @@ system. I don't think that it needs translation.</comment>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.CaretCheckBox" xml:space="preserve">
<value>Show caret line</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.EnableAnimationsCheckBox" xml:space="preserve">
<value>Enable animations</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.EOLMarkersCheckBox" xml:space="preserve">
<value>Show &amp;end-of-line markers</value>
</data>
@ -5864,6 +5867,9 @@ Stop/terminate the debuggee.</comment> @@ -5864,6 +5867,9 @@ Stop/terminate the debuggee.</comment>
<data name="MainWindow.Windows.Debug.ExceptionHistory.Time" xml:space="preserve">
<value>Time</value>
</data>
<data name="MainWindow.Windows.Debug.HideZoomControl" xml:space="preserve">
<value>Show/Hide Zoom Control</value>
</data>
<data name="MainWindow.Windows.Debug.Local" xml:space="preserve">
<value>Local</value>
</data>
@ -6006,6 +6012,9 @@ Shows the full callstack of the error.</comment> @@ -6006,6 +6012,9 @@ Shows the full callstack of the error.</comment>
<data name="MainWindow.Windows.Debug.Threads.ThreadSwitch" xml:space="preserve">
<value>Thread switch</value>
</data>
<data name="MainWindow.Windows.Debug.ToggleMethodView" xml:space="preserve">
<value>Toggle Method View</value>
</data>
<data name="MainWindow.Windows.Debug.Watch" xml:space="preserve">
<value>Watch</value>
</data>
@ -6266,6 +6275,9 @@ Removed the end part of the original message ", reason '${Message}'" since this @@ -6266,6 +6275,9 @@ Removed the end part of the original message ", reason '${Message}'" since this
<value>Open Containing Folder In Explorer</value>
<comment>String for the editor tab context menu that will open the directory in which a documents file is contained in Windows Explorer.</comment>
</data>
<data name="ProjectBrowser.Toolbar.CollapseAll" xml:space="preserve">
<value>Collapse all nodes</value>
</data>
<data name="ProjectComponent.ContextMenu.AddExistingFiles" xml:space="preserve">
<value>Add existing files</value>
</data>
@ -7167,6 +7179,12 @@ The resources files have been renamed/moved accordingly.</value> @@ -7167,6 +7179,12 @@ The resources files have been renamed/moved accordingly.</value>
<data name="SharpReport.Toolbar.Functions.TodaysDate" xml:space="preserve">
<value>Today</value>
</data>
<data name="SharpReport.Toolbar.GroupFooter" xml:space="preserve">
<value>GroupFooter</value>
</data>
<data name="SharpReport.Toolbar.GroupHeader" xml:space="preserve">
<value>GroupHeader</value>
</data>
<data name="SharpReport.Toolbar.Image" xml:space="preserve">
<value>Image</value>
</data>
@ -7179,6 +7197,9 @@ The resources files have been renamed/moved accordingly.</value> @@ -7179,6 +7197,9 @@ The resources files have been renamed/moved accordingly.</value>
<data name="SharpReport.Toolbar.Rectangle" xml:space="preserve">
<value>Rectangle</value>
</data>
<data name="SharpReport.Toolbar.Table" xml:space="preserve">
<value>Table</value>
</data>
<data name="SharpReport.Toolbar.TextBox" xml:space="preserve">
<value>Label</value>
</data>
@ -7215,6 +7236,21 @@ The resources files have been renamed/moved accordingly.</value> @@ -7215,6 +7236,21 @@ The resources files have been renamed/moved accordingly.</value>
<data name="SharpReport.Wizard.BaseSettings.ReportType" xml:space="preserve">
<value>Report Type</value>
</data>
<data name="SharpReport.Wizard.Layout.Column" xml:space="preserve">
<value>Select the GroupColumn</value>
</data>
<data name="SharpReport.Wizard.Layout.Grouping" xml:space="preserve">
<value>Grouping</value>
</data>
<data name="SharpReport.Wizard.Layout.ListLayout" xml:space="preserve">
<value>List Layout</value>
</data>
<data name="SharpReport.Wizard.Layout.ReportLayout" xml:space="preserve">
<value>Report layout</value>
</data>
<data name="SharpReport.Wizard.Layout.TableLayout" xml:space="preserve">
<value>Table Layout</value>
</data>
<data name="SharpReport.Wizard.PullModel" xml:space="preserve">
<value>Pull Data Model</value>
</data>

52
data/resources/StringResources.ru.resx

@ -118,7 +118,7 @@ @@ -118,7 +118,7 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="AddInManager.About" xml:space="preserve">
<value>О Менеджере Надстроек</value>
<value>О Менеджере Плагинов</value>
</data>
<data name="AddInManager.ActionCancelDeinstallation" xml:space="preserve">
<value>Отменить удаление</value>
@ -145,68 +145,68 @@ @@ -145,68 +145,68 @@
<value>Обновить</value>
</data>
<data name="AddInManager.AddInDependencyFailed" xml:space="preserve">
<value>Для работы этого AddInа требуется другой AddIn. Установите его чтобы включить этот.</value>
<value>Для работы этого плагина нужен другой плагин. Установите его, чтобы включить этот.</value>
</data>
<data name="AddInManager.AddInDisabled" xml:space="preserve">
<value>Отключен</value>
</data>
<data name="AddInManager.AddInEnabled" xml:space="preserve">
<value>Надстройка будет включена после перезапуска SharpDevelop</value>
<value>Плагин станет доступным после перезапуска SharpDevelop</value>
</data>
<data name="AddInManager.AddInInstalled" xml:space="preserve">
<value>Надстройка будет установлена после перезапуска SharpDevelop</value>
<value>Плагин будет установлен после перезапуска SharpDevelop</value>
</data>
<data name="AddInManager.AddInInstalledTwice" xml:space="preserve">
<value>Надстройка установлена дважды. Пожалуйста, удалите одну копию.</value>
<value>Установлены две копии плагина. Пожалуйста, удалите одну из копий.</value>
</data>
<data name="AddInManager.AddInMustHaveIdentity" xml:space="preserve">
<value>Эта Надстройка должна иметь &lt;Identity&gt; для использовании в Менеджере Надстроек</value>
<value>У этого плагина должен быть &lt;Identity&gt; для использовании в Менеджере Плагинов</value>
</data>
<data name="AddInManager.AddInRemoved" xml:space="preserve">
<value>Надстройка будет удалена после перезапуска SharpDevelop</value>
<value>Плагин будет удален после перезапуска SharpDevelop</value>
</data>
<data name="AddInManager.AddInUpdated" xml:space="preserve">
<value>Надстройка будет обновлена после перезапуска SharpDevelop</value>
<value>Плагин будет обновлен после перезапуска SharpDevelop</value>
</data>
<data name="AddInManager.AddInWillBeDisabled" xml:space="preserve">
<value>Надстройка будет отключена после перезапуска SharpDevelop</value>
<value>Плагин станет недоступным после перезапуска SharpDevelop</value>
</data>
<data name="AddInManager.CannotDisableAddInManager" xml:space="preserve">
<value>Вы не можете отключить Менеджер Надстроек. Он необходим для переподключения Надстроек!</value>
<value>Вы не можете отключить Менеджер Плагинов. Он необходим для переподключения Плагинов!</value>
</data>
<data name="AddInManager.CannotInstallIntoApplicationDirectory" xml:space="preserve">
<value>Надстройки внутри папки ${ProductName} не нужно устанавливать, они предустанавливаются автоматически.</value>
<value>Нельзя устанавливать плагины внутри папки ${ProductName}, так как они будут считаться предустановленными.</value>
</data>
<data name="AddInManager.DescriptionCancelDeinstallation" xml:space="preserve">
<value>Отменяет удаление выделеных Надстроек.</value>
<value>Отменяет удаление выделеных плагинов.</value>
</data>
<data name="AddInManager.DescriptionCancelInstall" xml:space="preserve">
<value>Отменяет установку выделенных Надстроек.</value>
<value>Отменяет установку выделенных плагинов.</value>
</data>
<data name="AddInManager.DescriptionCancelUpdate" xml:space="preserve">
<value>Отменяет обновление выделенных Надстроек.</value>
<value>Отменяет обновление выделенных плагинов.</value>
</data>
<data name="AddInManager.DescriptionDisable" xml:space="preserve">
<value>Выключает выбранные Надстройки</value>
<value>Отключает выбранные плагины.</value>
</data>
<data name="AddInManager.DescriptionEnable" xml:space="preserve">
<value>Включает выбранные Надстройки</value>
<value>Включает выбранные плагины.</value>
</data>
<data name="AddInManager.DescriptionInconsistentSelection" xml:space="preserve">
<value>Неправильное выделение, пожалуйста выделите Надстройки с одинаковым статусом.</value>
<value>Неправильное выделение, пожалуйста, выделите плагины с одинаковым статусом.</value>
</data>
<data name="AddInManager.FileAssociation" xml:space="preserve">
<value>Пакет установки Надстройки</value>
<value>Установочный пакет плагина</value>
</data>
<data name="AddInManager.FileFilter" xml:space="preserve">
<value>Надстройки SharpDevelop|*.addin;*.sdaddin|Все файлы|*.*</value>
<value>Плагины SharpDevelop|*.addin;*.sdaddin|Все файлы|*.*</value>
</data>
<data name="AddInManager.InstallButton" xml:space="preserve">
<value>Установить Надстройку</value>
<value>Установить плагин</value>
</data>
<data name="AddInManager.NoAddInsInstalled" xml:space="preserve">
<value>У вас нет установленных Надстроек.
Вы можете скачать их из Интернета, потом нажать 'Установить Надстройку' и выбрать скачаный файл, чтобы установить его.</value>
<value>У Вас не установлено ни одного плагина.
Скачайте их из Интернета, нажмите 'Установить плагин' и выберите скачаный файл, чтобы установить его.</value>
</data>
<data name="AddInManager.OpenWebsite" xml:space="preserve">
<value>Открыть Web-сайт</value>
@ -215,16 +215,16 @@ @@ -215,16 +215,16 @@
<value>Опции</value>
</data>
<data name="AddInManager.RequiredBy" xml:space="preserve">
<value>Надстройки необходимы для:</value>
<value>Плагины необходимы для работы:</value>
</data>
<data name="AddInManager.RequiredDependencies" xml:space="preserve">
<value>Необходимые зависимости:</value>
<value>Требуемые для работы плагины:</value>
</data>
<data name="AddInManager.ShowPreinstalledAddIns" xml:space="preserve">
<value>Показать предустановленные Надстройки</value>
<value>Показать предустановленные плагины</value>
</data>
<data name="AddInManager.Title" xml:space="preserve">
<value>Менеджер Надстроек</value>
<value>Менеджер Плагинов</value>
</data>
<data name="AddInManager.UnknownFileFormat" xml:space="preserve">
<value>Неизвестный формат файла:</value>

147
data/resources/StringResources.tr.resx

@ -232,12 +232,69 @@ @@ -232,12 +232,69 @@
<data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve">
<value>Sınıf Şemasını Göster</value>
</data>
<data name="AddIns.Git.TortoiseGitRequired" xml:space="preserve">
<value>Bu işlemi gerçekleştirebilmek için TortoiseGit yüklü olmalıdır.</value>
</data>
<data name="AddIns.HelpViewer.ContentsPadTitle" xml:space="preserve">
<value>İçerikler</value>
</data>
<data name="AddIns.HelpViewer.DisplayContentsCommand" xml:space="preserve">
<value>İçeriği Göster</value>
</data>
<data name="AddIns.HelpViewer.DisplaySearchCommand" xml:space="preserve">
<value>Arama</value>
</data>
<data name="AddIns.HelpViewer.HelpLibraryRootTitle" xml:space="preserve">
<value>Yardım Kütüphanesi</value>
</data>
<data name="AddIns.HelpViewer.HelpModeLabel" xml:space="preserve">
<value>Yardım Modu</value>
</data>
<data name="AddIns.HelpViewer.InstalledHelpCatalogsLabel" xml:space="preserve">
<value>Yüklü Yardım Katalogları</value>
</data>
<data name="AddIns.HelpViewer.MicrosoftHelpViewerTitle" xml:space="preserve">
<value>Microsoft Yardım Görüntüleyici</value>
</data>
<data name="AddIns.HelpViewer.OfflineFeatureRequestMsg" xml:space="preserve">
<value>Çevrimiçi yardım modunda çevrimdışı bir özellik kullanmaya çalıştın. Bu özelliği kullanabilmek için yardım modunu değiştirmelisin.</value>
</data>
<data name="AddIns.HelpViewer.SearchDoSearchButton" xml:space="preserve">
<value>Ara</value>
</data>
<data name="AddIns.HelpViewer.SearchLookForLabel" xml:space="preserve">
<value>Ne için:</value>
</data>
<data name="AddIns.HelpViewer.SearchPadTitle" xml:space="preserve">
<value>Arama</value>
</data>
<data name="AddIns.HelpViewer.ShowErrorHelpTitle" xml:space="preserve">
<value>Yardımı Göster</value>
</data>
<data name="AddIns.HelpViewer.UseExternalHelp" xml:space="preserve">
<value>Harici yardımı kullan</value>
</data>
<data name="AddIns.HelpViewer.UseOfflineHelpLabel" xml:space="preserve">
<value>Yerel yardımı kullanmak istiyorum</value>
</data>
<data name="AddIns.HelpViewer.UseOnlineHelpLabel" xml:space="preserve">
<value>Çevrimiçi yardımı kullanmak istiyorum</value>
</data>
<data name="AddIns.HexEditor.DefaultBytesPerLine" xml:space="preserve">
<value>Tek satırdaki bayt</value>
</data>
<data name="AddIns.HexEditor.Display" xml:space="preserve">
<value>Gösterim</value>
</data>
<data name="AddIns.HexEditor.Display.Elements" xml:space="preserve">
<value>Nesneler</value>
</data>
<data name="AddIns.HexEditor.Display.Elements.Data" xml:space="preserve">
<value>Veri</value>
</data>
<data name="AddIns.HexEditor.Display.Elements.Offset" xml:space="preserve">
<value>Ofset</value>
</data>
<data name="AddIns.HexEditor.NumeralSystem" xml:space="preserve">
<value>Sayısal sistem</value>
</data>
@ -410,6 +467,87 @@ Yardım sistemini elde edebilmek için .NET Framework SDK 'yı yüklemelisiniz.< @@ -410,6 +467,87 @@ Yardım sistemini elde edebilmek için .NET Framework SDK 'yı yüklemelisiniz.<
<data name="AddIns.HtmlHelp2.UseCurrentProjectLanguageForSearch" xml:space="preserve">
<value>Şu anki proje dilini kullan</value>
</data>
<data name="AddIns.Profiler.Commands.FindCallsOfSelected.TabTitle" xml:space="preserve">
<value>Sonuçlar</value>
</data>
<data name="AddIns.Profiler.Commands.SetAsRoot.TabTitle" xml:space="preserve">
<value>Birleşik Parçalar</value>
</data>
<data name="AddIns.Profiler.Commands.ShowFunctions.TabTitle" xml:space="preserve">
<value>{0} için olan tüm fonksiyonlar</value>
</data>
<data name="AddIns.Profiler.DatabaseTooNewError" xml:space="preserve">
<value>Seçili SharpDevelop profil oturumu yeni bir SharpDevelop sürümü ile oluşturulmuş ve açılamıyor.</value>
</data>
<data name="AddIns.Profiler.FileExtensionDescription" xml:space="preserve">
<value>SharpDevelop Profil Oturumu</value>
</data>
<data name="AddIns.Profiler.Messages.FileNotFound" xml:space="preserve">
<value>Çalıştırılabilir dosya bulunamadığı için proje başlatılamadı, lütfen projenin kendisinin ve tüm bağlantılarının doğruluğundan emin olunuz.</value>
</data>
<data name="AddIns.Profiler.Messages.NoStartableProjectFound" xml:space="preserve">
<value>Açılabilir bir proje bulunamadı. İptal ediliyor...</value>
</data>
<data name="AddIns.Profiler.Messages.PreparingForAnalysis" xml:space="preserve">
<value>Analiz için hazırlanıyor...</value>
</data>
<data name="AddIns.Profiler.Messages.RegisterFailed" xml:space="preserve">
<value>COM kayıt istemcisine profil kaydı girilemedi. Profilleme başlatılamıyor.</value>
</data>
<data name="AddIns.Profiler.Messages.UnregisterFailed" xml:space="preserve">
<value>COM kayıt istemcisinden profil kaydı silinemedi!</value>
</data>
<data name="AddIns.Profiler.MessageViewCategory" xml:space="preserve">
<value>Profil</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.CombineRecursiveCalls" xml:space="preserve">
<value>Yinelenen çağrıları birleştir.</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.DoNotProfileNetInternals" xml:space="preserve">
<value>İç .NET çağrılarını profilleme.</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.EnableDC" xml:space="preserve">
<value>Verileri sadece bu oturumun sonunda derle.</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.EnableDCAtStartup" xml:space="preserve">
<value>Verilerin derlenmesini hemen oturum açılınca başlat.</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.Header" xml:space="preserve">
<value>Veri Koleksiyonu</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.SizeOfStorageDescription" xml:space="preserve">
<value>Geçici depolama dosyasının boyutu:</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.TrackEvents" xml:space="preserve">
<value>Olayları takip et</value>
</data>
<data name="AddIns.Profiler.Options.General.Title" xml:space="preserve">
<value>Genel</value>
</data>
<data name="AddIns.Profiler.Options.Title" xml:space="preserve">
<value>Profilleme</value>
</data>
<data name="AddIns.Profiler.ProfileExecutable.ErrorMessage" xml:space="preserve">
<value>Veri geçersiz, lütfen tekrar deneyin.</value>
</data>
<data name="AddIns.Profiler.ProfilerControlWindow.CollectData" xml:space="preserve">
<value>Veri topla</value>
</data>
<data name="AddIns.Profiler.ProfilerControlWindow.Shutdown" xml:space="preserve">
<value>Kapat</value>
</data>
<data name="AddIns.Profiler.ProfilingView.NameColumnText" xml:space="preserve">
<value>Ad</value>
</data>
<data name="AddIns.Profiler.ProfilingView.SearchLabelText" xml:space="preserve">
<value>Ara:</value>
</data>
<data name="AddIns.Profiler.ProfilingView.TimeSpentColumnText" xml:space="preserve">
<value>Geçen süre</value>
</data>
<data name="AddIns.Profiler.ProfilingView.TimeText" xml:space="preserve">
<value>Süre:</value>
</data>
<data name="AddIns.SharpRefactoring.ExtractMethod" xml:space="preserve">
<value>Çıkartma yöntemi</value>
</data>
@ -425,6 +563,12 @@ Yardım sistemini elde edebilmek için .NET Framework SDK 'yı yüklemelisiniz.< @@ -425,6 +563,12 @@ Yardım sistemini elde edebilmek için .NET Framework SDK 'yı yüklemelisiniz.<
<data name="AddIns.SharpRefactoring.ExtractMethodNotSupported" xml:space="preserve">
<value>{0} içinden çıkarım yöntemi desteklenmemektedir!</value>
</data>
<data name="AddIns.SharpRefactoring.InsertCtor.VariableLabel" xml:space="preserve">
<value>Değişken</value>
</data>
<data name="AddIns.SharpRefactoring.OverrideEqualsGetHashCodeMethods.AddInterface" xml:space="preserve">
<value>Arayüz ekle {0}</value>
</data>
<data name="AddIns.SourceAnalysis.CheckWithStyleCop" xml:space="preserve">
<value>StyleCop ile Kontrol Et</value>
</data>
@ -530,6 +674,9 @@ Yardım sistemini elde edebilmek için .NET Framework SDK 'yı yüklemelisiniz.< @@ -530,6 +674,9 @@ Yardım sistemini elde edebilmek için .NET Framework SDK 'yı yüklemelisiniz.<
<data name="AddIns.Subversion.UpdateToRevision" xml:space="preserve">
<value>Kontrolü yenile</value>
</data>
<data name="AddIns.UsageDataCollector.AcceptConfirmation" xml:space="preserve">
<value>Katılımınız için teşekkürler. İstediğiniz zaman SharpDevelop seçeneklerini kullanarak çıkabilirsiniz.</value>
</data>
<data name="AddIns.UsageDataCollector.AcceptRadioButton" xml:space="preserve">
<value>Katılmak istiyorum. Kullanım bilgilerini topla ve gönder</value>
</data>

523
data/schemas/AddIn.xsd

@ -117,23 +117,22 @@ @@ -117,23 +117,22 @@
<xs:element ref="CustomProperty" />
<xs:element ref="CustomTool" />
<xs:element ref="Debugger" />
<xs:element ref="DialogPanel" />
<xs:element ref="Directory" />
<xs:element ref="DisplayBinding" />
<xs:element ref="EditAction" />
<xs:element ref="FileFilter" />
<xs:element ref="Icon" />
<xs:element ref="Include" />
<xs:element ref="ProjectBinding" />
<xs:element ref="LanguageBinding" />
<xs:element ref="MenuItem" />
<xs:element ref="OptionPanel" />
<xs:element ref="Pad" />
<xs:element ref="Parser" />
<xs:element ref="ProjectBinding" />
<xs:element ref="ProjectContentRegistry" />
<xs:element ref="SchemeExtension" />
<xs:element ref="String" />
<xs:element ref="SyntaxMode" />
<xs:element ref="TaskBoundAdditionalLogger" />
<xs:element ref="TaskBoundLoggerFilter" />
<xs:element ref="ToolbarItem" />
</xs:choice>
<xs:attribute name="name" type="xs:string" use="required" />
@ -188,23 +187,22 @@ @@ -188,23 +187,22 @@
<xs:element ref="CustomProperty" />
<xs:element ref="CustomTool" />
<xs:element ref="Debugger" />
<xs:element ref="DialogPanel" />
<xs:element ref="Directory" />
<xs:element ref="DisplayBinding" />
<xs:element ref="EditAction" />
<xs:element ref="FileFilter" />
<xs:element ref="Icon" />
<xs:element ref="Include" />
<xs:element ref="ProjectBinding" />
<xs:element ref="LanguageBinding" />
<xs:element ref="MenuItem" />
<xs:element ref="OptionPanel" />
<xs:element ref="Pad" />
<xs:element ref="Parser" />
<xs:element ref="ProjectBinding" />
<xs:element ref="ProjectContentRegistry" />
<xs:element ref="SchemeExtension" />
<xs:element ref="String" />
<xs:element ref="SyntaxMode" />
<xs:element ref="TaskBoundAdditionalLogger" />
<xs:element ref="TaskBoundLoggerFilter" />
<xs:element ref="ToolbarItem" />
</xs:choice>
<xs:attribute name="action" use="optional">
@ -266,8 +264,8 @@ @@ -266,8 +264,8 @@
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
The fully qualified type name of the class to create an instace of.
</xs:documentation>
The fully qualified type name of the class to create an instace of.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -287,16 +285,16 @@ @@ -287,16 +285,16 @@
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the ICodeCompletionBinding class (normally deriving from DefaultCodeCompletionBinding).
</xs:documentation>
Name of the ICodeCompletionBinding class (normally deriving from DefaultCodeCompletionBinding).
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="extensions" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
List of semicolon-separated entries of the file extensions handled by the binding.
If no extensions attribute is specified, the binding is activated in all files.
</xs:documentation>
List of semicolon-separated entries of the file extensions handled by the binding.
If no extensions attribute is specified, the binding is activated in all files.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -315,30 +313,30 @@ @@ -315,30 +313,30 @@
<xs:attribute name="name" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the MSBuild meta data.
</xs:documentation>
The name of the MSBuild meta data.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="displayName" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
The display name of the property.
</xs:documentation>
The display name of the property.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="description" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
The description text for the property.
</xs:documentation>
The description text for the property.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="runCustomTool" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Boolean property specifying whether the custom tool should be run when the property value is changed
by the user. Default: false.
</xs:documentation>
Boolean property specifying whether the custom tool should be run when the property value is changed
by the user. Default: false.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -357,23 +355,23 @@ @@ -357,23 +355,23 @@
<xs:attribute name="id" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
ID used to identify the custom tool.
</xs:documentation>
ID used to identify the custom tool.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the ICustomTool class.
</xs:documentation>
Name of the ICustomTool class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="fileNamePattern" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Regular expression that specifies the file names for which the custom tool
can be used. Example: "\.res(x|ources)$"
</xs:documentation>
Regular expression that specifies the file names for which the custom tool
can be used. Example: "\.res(x|ources)$"
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -392,43 +390,43 @@ @@ -392,43 +390,43 @@
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IDebugger class.
</xs:documentation>
Name of the IDebugger class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportsStart" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies if the debugger supports the 'Start' command. Default: true
</xs:documentation>
Specifies if the debugger supports the 'Start' command. Default: true
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportsStartWithoutDebugger" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies if the debugger supports the 'StartWithoutDebugger' command. Default: true
</xs:documentation>
Specifies if the debugger supports the 'StartWithoutDebugger' command. Default: true
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportsStop" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies if the debugger supports the 'Stop' (kill running process) command. Default: true
</xs:documentation>
Specifies if the debugger supports the 'Stop' (kill running process) command. Default: true
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportsStepping" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies if the debugger supports stepping. Default: false
</xs:documentation>
Specifies if the debugger supports stepping. Default: false
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportsExecutionControl" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies if the debugger supports execution control (break, resume). Default: false
</xs:documentation>
Specifies if the debugger supports execution control (break, resume). Default: false
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -441,47 +439,14 @@ @@ -441,47 +439,14 @@
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="DialogPanel">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ComplexCondition" />
<xs:element ref="Condition" />
<xs:element ref="DialogPanel" />
<xs:element ref="Include" />
</xs:choice>
<xs:attribute name="class" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IDialogPanel class. Optional if the page has subpages.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="label" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Caption of the dialog panel.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="DialogPanel" type="DialogPanel">
<xs:annotation>
<xs:documentation>
Creates DefaultDialogPanelDescriptor objects that are used in option dialogs.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="Directory">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="path" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Path relative to the directory which contains the .addin file defining the codon.
</xs:documentation>
Path relative to the directory which contains the .addin file defining the codon.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -500,22 +465,22 @@ @@ -500,22 +465,22 @@
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IDisplayBinding or ISecondaryDisplayBinding class.
</xs:documentation>
Name of the IDisplayBinding or ISecondaryDisplayBinding class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="title" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Title of the display binding to use in the "Open With" dialog.
</xs:documentation>
Title of the display binding to use in the "Open With" dialog.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" use="optional">
<xs:annotation>
<xs:documentation>
Type of the display binding (either "Primary" or "Secondary"). Default: "Primary".
</xs:documentation>
Type of the display binding (either "Primary" or "Secondary"). Default: "Primary".
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
@ -527,9 +492,9 @@ @@ -527,9 +492,9 @@
<xs:attribute name="fileNamePattern" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Regular expression that specifies the file names for which the display binding
will be used. Example: "\.res(x|ources)$"
</xs:documentation>
Regular expression that specifies the file names for which the display binding
will be used. Example: "\.res(x|ources)$"
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -545,49 +510,21 @@ @@ -545,49 +510,21 @@
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="EditAction">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="keys" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Comma-separated list of keyboard shortcuts that activate the edit action.
E.g. "Control|C,Control|Insert"
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IEditAction class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="EditAction" type="EditAction">
<xs:annotation>
<xs:documentation>
Creates IEditAction objects for the text editor.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="FileFilter">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="name" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the file filter entry.
</xs:documentation>
The name of the file filter entry.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="extensions" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
The extensions associated with this file filter entry.
</xs:documentation>
The extensions associated with this file filter entry.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -606,24 +543,24 @@ @@ -606,24 +543,24 @@
<xs:attribute name="resource" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of a bitmap resource in the resource service.
</xs:documentation>
The name of a bitmap resource in the resource service.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="language" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute is specified when a project icon association should be created.
It specifies the language of the project types that use the icon.
</xs:documentation>
This attribute is specified when a project icon association should be created.
It specifies the language of the project types that use the icon.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="extensions" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute is specified when a file icon association should be created.
It specifies the semicolon-separated list of file types that use the icon.
</xs:documentation>
This attribute is specified when a file icon association should be created.
It specifies the semicolon-separated list of file types that use the icon.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -643,18 +580,18 @@ @@ -643,18 +580,18 @@
<xs:attribute name="item" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
When this attribute is used, the include doozer builds the item that is at the
addin tree location specified by this attribute.
</xs:documentation>
When this attribute is used, the include doozer builds the item that is at the
addin tree location specified by this attribute.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="path" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
When this attribute is used, the include doozer builds all items inside the
path addin tree location specified by this attribute and returns an
IBuildItemsModifier which includes all items in the output list.
</xs:documentation>
When this attribute is used, the include doozer builds all items inside the
path addin tree location specified by this attribute and returns an
IBuildItemsModifier which includes all items in the output list.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -669,62 +606,21 @@ @@ -669,62 +606,21 @@
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="ProjectBinding">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="guid" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Project type GUID of the project used by MsBuild.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportedextensions" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Semicolon-separated list of file extensions that are compilable files in the project. (e.g. ".boo")
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="projectfileextension" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
File extension of project files. (e.g. ".booproj")
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IProjectBinding class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="ProjectBinding" type="ProjectBinding">
<xs:annotation>
<xs:documentation>
Creates ProjectBindingDescriptor objects for the project service.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="LanguageBinding">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="extensions" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Semicolon-separated list of file extensions that are handled by the language binding (e.g. .xaml)
</xs:documentation>
Semicolon-separated list of file extensions that are handled by the language binding (e.g. .xaml)
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the ILanguageBinding class.
</xs:documentation>
Name of the ILanguageBinding class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -733,7 +629,7 @@ @@ -733,7 +629,7 @@
<xs:element name="LanguageBinding" type="LanguageBinding">
<xs:annotation>
<xs:documentation>
Creates LanguageBindingDescriptor objects for the language service.
Creates LanguageBindingDescriptor objects for the language binding service.
</xs:documentation>
</xs:annotation>
</xs:element>
@ -749,18 +645,18 @@ @@ -749,18 +645,18 @@
<xs:attribute name="label" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Label of the menu item.
</xs:documentation>
Label of the menu item.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" use="optional">
<xs:annotation>
<xs:documentation>
This attribute must be one of these values:
Separator, CheckBox, Item=Command, Menu (=with subitems),
Builder (=class implementing ISubmenuBuilder).
Default: Command.
</xs:documentation>
This attribute must be one of these values:
Separator, CheckBox, Item=Command, Menu (=with subitems),
Builder (=class implementing ISubmenuBuilder).
Default: Command.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
@ -776,39 +672,48 @@ @@ -776,39 +672,48 @@
<xs:attribute name="loadclasslazy" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Only for the type "Item"/"Command".
When set to false, the command class is loaded
immediately instead of the usual lazy-loading.
</xs:documentation>
Only for the type "Item"/"Command".
When set to false, the command class is loaded
immediately instead of the usual lazy-loading.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="icon" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Icon of the menu item.
</xs:documentation>
Icon of the menu item.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Command class that is run when item is clicked.
</xs:documentation>
Command class that is run when item is clicked.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="command" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
A WPF routed command that is executed when item is clicked.
Currently, this property is supported only for WPF Menus.
Only one of the "class" and "command" attributes can be used on a menu entry.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="link" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Only for the type "Item"/"Command". Opens a webpage instead of running a command when
clicking the item.
</xs:documentation>
Only for the type "Item"/"Command". Opens a webpage instead of running a command when
clicking the item.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="shortcut" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Shortcut that activates the command (e.g. "Control|S").
</xs:documentation>
Shortcut that activates the command (e.g. "Control|S").
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -821,49 +726,89 @@ @@ -821,49 +726,89 @@
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="OptionPanel">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ComplexCondition" />
<xs:element ref="Condition" />
<xs:element ref="IOptionPanel" />
<xs:element ref="Include" />
</xs:choice>
<xs:attribute name="class" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IOptionPanel class. Optional if the page has subpages.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="label" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Caption of the dialog panel.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="OptionPanel" type="OptionPanel">
<xs:annotation>
<xs:documentation>
Creates DefaultOptionPanelDescriptor objects that are used in option dialogs.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="Pad">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
IPadContent class that is loaded when the pad content is shown for the first time.
</xs:documentation>
IPadContent class that is loaded when the pad content is shown for the first time.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="title" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Title of the pad that is shown in the user interface.
Should be a resource string, e.g. "${res:AddIns.HtmlHelp2.Contents}"
</xs:documentation>
Title of the pad that is shown in the user interface.
Should be a resource string, e.g. "${res:AddIns.HtmlHelp2.Contents}"
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="icon" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies the name of the icon resource used for the pad.
Pad icon resources must be registered with the ResourceService before the
workbench is loaded!
</xs:documentation>
Specifies the name of the icon resource used for the pad.
Pad icon resources must be registered with the ResourceService before the
workbench is loaded!
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="category" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Category of the pad. It is possible to create menu items that automatically
contain show commands for all pads in a certain category.
Pads in the category "Main" will show up in the "View" menu, the category
"Tools" in the "View -&gt; Tools" menu, the category "Debugger" in the
"View -&gt; Debugger" menu.
</xs:documentation>
Category of the pad. It is possible to create menu items that automatically
contain show commands for all pads in a certain category.
Pads in the category "Main" will show up in the "View" menu, the category
"Tools" in the "View -&gt; Tools" menu, the category "Debugger" in the
"View -&gt; Debugger" menu.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="shortcut" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Shortcut that activates the 'Show pad' command (e.g. "Control|Alt|T").
</xs:documentation>
Shortcut that activates the 'Show pad' command (e.g. "Control|Alt|T").
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="defaultPosition" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Default position of the pad, as a ICSharpCode.SharpDevelop.DefaultPadPositions enum value (e.g. "Bottom, Hidden").
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -882,31 +827,65 @@ @@ -882,31 +827,65 @@
<xs:attribute name="supportedextensions" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Semicolon-separated list of file extensions for which the parser is used. (e.g. ".boo")
</xs:documentation>
Semicolon-separated list of file extensions for which the parser is used. (e.g. ".boo")
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="projectfileextension" use="optional" type="xs:string">
<xs:attribute name="class" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
File extension of project files. (e.g. ".booproj")
</xs:documentation>
Name of the IParser class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="optional" type="xs:string">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Parser" type="Parser">
<xs:annotation>
<xs:documentation>
Creates ParserDescriptor objects for the parsing service.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="ProjectBinding">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="guid" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IParser class.
</xs:documentation>
Project type GUID of the project used by MSBuild.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportedextensions" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Semicolon-separated list of file extensions that are compilable files in the project. (e.g. ".boo")
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="projectfileextension" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
File extension of project files. (e.g. ".booproj")
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IProjectBinding class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Parser" type="Parser">
<xs:element name="ProjectBinding" type="ProjectBinding">
<xs:annotation>
<xs:documentation>
Creates ParserDescriptor objects for the parsing service.
Creates ProjectBindingDescriptor objects for the project service.
</xs:documentation>
</xs:annotation>
</xs:element>
@ -916,8 +895,8 @@ @@ -916,8 +895,8 @@
<xs:attribute name="class" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the ProjectContentRegistry class.
</xs:documentation>
Name of the ProjectContentRegistry class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -936,15 +915,15 @@ @@ -936,15 +915,15 @@
<xs:attribute name="scheme" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies the name of the protocol the extension handles. (e.g. 'ms-help' or 'startpage')
</xs:documentation>
Specifies the name of the protocol the extension handles. (e.g. 'ms-help' or 'startpage')
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the ISchemeExtension class (normally deriving from DefaultSchemeExtension).
</xs:documentation>
Name of the ISchemeExtension class (normally deriving from DefaultSchemeExtension).
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -963,8 +942,8 @@ @@ -963,8 +942,8 @@
<xs:attribute name="text" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
The string to return.
</xs:documentation>
The string to return.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -977,66 +956,60 @@ @@ -977,66 +956,60 @@
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="SyntaxMode">
<xs:complexType name="TaskBoundAdditionalLogger">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="name" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the language for which the syntax mode is used.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="extensions" use="required" type="xs:string">
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Semicolon-separated list of file extensions for which the syntax mode is used.
</xs:documentation>
Name of the IMSBuildAdditionalLogger class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="resource" use="required" type="xs:string">
<xs:attribute name="taskname" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Fully qualified name of the resource file.
</xs:documentation>
Specifies the name of the MSBuild task that must be running for
this logger to be active.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="SyntaxMode" type="SyntaxMode">
<xs:element name="TaskBoundAdditionalLogger" type="TaskBoundAdditionalLogger">
<xs:annotation>
<xs:documentation>
Creates AddInTreeSyntaxMode objects that wrap a .xshd syntax mode stored as resource in the
addin assembly.
Creates IMSBuildAdditionalLogger objects that are only
activated when a specific MSBuild task is running.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="TaskBoundAdditionalLogger">
<xs:complexType name="TaskBoundLoggerFilter">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IMSBuildAdditionalLogger class.
</xs:documentation>
Name of the IMSBuildLoggerFilter class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="taskname" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies the name of the MSBuild task that must be running for
this logger to be active.
</xs:documentation>
Specifies the name of the MSBuild task that must be running for
this logger to be active.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="TaskBoundAdditionalLogger" type="TaskBoundAdditionalLogger">
<xs:element name="TaskBoundLoggerFilter" type="TaskBoundLoggerFilter">
<xs:annotation>
<xs:documentation>
Creates IMSBuildAdditionalLogger objects that are only
Creates IMSBuildLoggerFilter objects that are only
activated when a specific MSBuild task is running.
</xs:documentation>
</xs:annotation>
@ -1053,23 +1026,23 @@ @@ -1053,23 +1026,23 @@
<xs:attribute name="label" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Label of the tool bar item.
</xs:documentation>
Label of the tool bar item.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="icon" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Icon of the tool bar item.
</xs:documentation>
Icon of the tool bar item.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" use="optional">
<xs:annotation>
<xs:documentation>
This attribute must be one of these values:
Separator, CheckBox, Item, ComboBox, DropDownButton
</xs:documentation>
This attribute must be one of these values:
Separator, CheckBox, Item, ComboBox, DropDownButton
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
@ -1084,24 +1057,24 @@ @@ -1084,24 +1057,24 @@
<xs:attribute name="loadclasslazy" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Only for the type "Item". When set to false, the command class is loaded
immediately instead of the usual lazy-loading.
</xs:documentation>
Only for the type "Item". When set to false, the command class is loaded
immediately instead of the usual lazy-loading.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="tooltip" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Tooltip of the tool bar item.
</xs:documentation>
Tooltip of the tool bar item.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Command class that is run when item is clicked; or class that manages
the ComboBox/DropDownButton. Required for everything except "Separator".
</xs:documentation>
Command class that is run when item is clicked; or class that manages
the ComboBox/DropDownButton. Required for everything except "Separator".
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>

39
doc/technotes/ConditionList.html

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
</head><body>
<h1>Condition List</h1>
<p class="notice">This file was generated by the tool 'BuildAddinDocumentation'.
It is based on SharpDevelop 3.0.0.3062.</p>
It is based on SharpDevelop 4.0.0.7014.</p>
<ul>
<li><a href="#ActiveContentExtension">ActiveContentExtension</a>
<li><a href="#ActiveViewContentUntitled">ActiveViewContentUntitled</a>
@ -26,6 +26,8 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -26,6 +26,8 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<li><a href="#TextContent">TextContent</a>
<li><a href="#WindowActive">WindowActive</a>
<li><a href="#WindowOpen">WindowOpen</a>
<li><a href="#WriteableProject">WriteableProject</a>
<li><a href="#WriteableSolution">WriteableSolution</a>
</ul>
<div>
<h2><a name="ActiveContentExtension">ActiveContentExtension</a></h2>
@ -176,7 +178,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -176,7 +178,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<th colspan=2>comparisonType:</td>
<td>
The mode of the comparison: a field of the System.StringComparison enumeration. The default is
'InvariantCultureIgnoreCase'.
'OrdinalIgnoreCase'.
</td>
</tr>
</table>
@ -213,7 +215,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -213,7 +215,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<th colspan=2>comparisonType:</td>
<td>
The mode of the comparison: a field of the System.StringComparison enumeration. The default is
'InvariantCultureIgnoreCase'.
'OrdinalIgnoreCase'.
</td>
</tr>
</table>
@ -423,7 +425,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -423,7 +425,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<table>
<tr>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.SharpDevelop.DefaultEditor.Conditions.TextContentConditionEvaluator</td>
<td>ICSharpCode.SharpDevelop.Editor.AvalonEdit.TextContentConditionEvaluator</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
@ -459,7 +461,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -459,7 +461,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</table>
<p><span class="exampleTitle">Example: Test if the current window is a text editor</span>
<br><pre>
&lt;Condition name="WindowActive" activewindow="ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.ITextEditorControlProvider"&gt;</pre></p>
&lt;Condition name="WindowActive" activewindow="ICSharpCode.SharpDevelop.Editor.ITextEditorProvider"&gt;</pre></p>
<p><span class="exampleTitle">Example: Test if any window is active</span>
<br><pre>
&lt;Condition name="WindowActive" activewindow="*"&gt;</pre></p>
@ -487,9 +489,34 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -487,9 +489,34 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</table>
<p><span class="exampleTitle">Example: Test if a text editor is opened</span>
<br><pre>
&lt;Condition name="WindowOpen" openwindow="ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.ITextEditorControlProvider"&gt;</pre></p>
&lt;Condition name="WindowOpen" openwindow="ICSharpCode.SharpDevelop.Editor.ITextEditorProvider"&gt;</pre></p>
<p><span class="exampleTitle">Example: Test if any window is open</span>
<br><pre>
&lt;Condition name="WindowOpen" openwindow="*"&gt;</pre></p>
</div>
<div>
<h2><a name="WriteableProject">WriteableProject</a></h2>
<p>
Tests if the caller project is writable. If caller is not an IProject it tests
Project.CurrentProject.
</p>
<table>
<tr>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.SharpDevelop.WriteableProjectConditionEvaluator</td>
</tr>
</table>
</div>
<div>
<h2><a name="WriteableSolution">WriteableSolution</a></h2>
<p>
Description of WriteableSolutionEvaluator.
</p>
<table>
<tr>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.SharpDevelop.WriteableSolutionConditionEvaluator</td>
</tr>
</table>
</div>
</body></html>

290
doc/technotes/DoozerList.html

@ -5,29 +5,29 @@ @@ -5,29 +5,29 @@
</head><body>
<h1>Doozer List</h1>
<p class="notice">This file was generated by the tool 'BuildAddinDocumentation'.
It is based on SharpDevelop 3.0.0.3062.</p>
It is based on SharpDevelop 4.0.0.7014.</p>
<ul>
<li><a href="#Class">Class</a>
<li><a href="#CodeCompletionBinding">CodeCompletionBinding</a>
<li><a href="#CustomProperty">CustomProperty</a>
<li><a href="#CustomTool">CustomTool</a>
<li><a href="#Debugger">Debugger</a>
<li><a href="#DialogPanel">DialogPanel</a>
<li><a href="#Directory">Directory</a>
<li><a href="#DisplayBinding">DisplayBinding</a>
<li><a href="#EditAction">EditAction</a>
<li><a href="#FileFilter">FileFilter</a>
<li><a href="#Icon">Icon</a>
<li><a href="#Include">Include</a>
<li><a href="#LanguageBinding">LanguageBinding</a>
<li><a href="#MenuItem">MenuItem</a>
<li><a href="#OptionPanel">OptionPanel</a>
<li><a href="#Pad">Pad</a>
<li><a href="#Parser">Parser</a>
<li><a href="#ProjectBinding">ProjectBinding</a>
<li><a href="#ProjectContentRegistry">ProjectContentRegistry</a>
<li><a href="#SchemeExtension">SchemeExtension</a>
<li><a href="#String">String</a>
<li><a href="#SyntaxMode">SyntaxMode</a>
<li><a href="#TaskBoundAdditionalLogger">TaskBoundAdditionalLogger</a>
<li><a href="#TaskBoundLoggerFilter">TaskBoundLoggerFilter</a>
<li><a href="#ToolbarItem">ToolbarItem</a>
</ul>
<div>
@ -70,7 +70,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -70,7 +70,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<table>
<tr>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.CodeCompletionBindingDoozer</td>
<td>ICSharpCode.SharpDevelop.Editor.CodeCompletion.CodeCompletionBindingDoozer</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
@ -275,50 +275,6 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -275,50 +275,6 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</tr>
</table>
</div>
<div>
<h2><a name="DialogPanel">DialogPanel</a></h2>
<p>
Creates DefaultDialogPanelDescriptor objects that are used in option dialogs.
</p>
<table>
<tr>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.DialogPanelDoozer</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th colspan=2>class:</td>
<td>
Name of the IDialogPanel class. Optional if the page has subpages.
</td>
</tr>
<tr>
<th>label:</td>
<td class="userequired">required</td>
<td>
Caption of the dialog panel.
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Children:</td>
<td>
In the SharpDevelop options, option pages can have subpages by specifying them
as children in the AddInTree.
</td>
</tr>
<tr>
<th colspan=2>Usage:</td>
<td>In /SharpDevelop/BackendBindings/ProjectOptions/ and /SharpDevelop/Dialogs/OptionsDialog</td>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
A DefaultDialogPanelDescriptor object.
</td>
</tr>
</table>
</div>
<div>
<h2><a name="Directory">Directory</a></h2>
<p>
@ -426,45 +382,6 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -426,45 +382,6 @@ It is based on SharpDevelop 3.0.0.3062.</p>
fileNamePattern = "\.(cs|vb)$" /&gt;
&lt;/Path&gt;</pre></p>
</div>
<div>
<h2><a name="EditAction">EditAction</a></h2>
<p>
Creates IEditAction objects for the text editor.
</p>
<table>
<tr>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.DefaultEditor.Codons.EditActionDoozer</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>keys:</td>
<td class="userequired">required</td>
<td>
Comma-separated list of keyboard shortcuts that activate the edit action.
E.g. "Control|C,Control|Insert"
</td>
</tr>
<tr>
<th>class:</td>
<td class="userequired">required</td>
<td>
Name of the IEditAction class.
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Usage:</td>
<td>Only in /AddIns/DefaultTextEditor/EditActions</td>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
An IEditAction object.
</td>
</tr>
</table>
</div>
<div>
<h2><a name="FileFilter">FileFilter</a></h2>
<p>
@ -497,8 +414,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -497,8 +414,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
String in the format "name|extensions".
<td>FileFilterDescriptor in the format "name|extensions".
</td>
</tr>
</table>
@ -593,7 +509,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -593,7 +509,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<div>
<h2><a name="LanguageBinding">LanguageBinding</a></h2>
<p>
Creates LanguageBindingDescriptor objects for the project service.
Creates LanguageBindingDescriptor objects for the language binding service.
</p>
<table>
<tr>
@ -602,24 +518,10 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -602,24 +518,10 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>guid:</td>
<td class="userequired">required</td>
<td>
Project type GUID of the project used by MsBuild.
</td>
</tr>
<tr>
<th>supportedextensions:</td>
<td class="userequired">required</td>
<td>
Semicolon-separated list of file extensions that are compilable files in the project. (e.g. ".boo")
</td>
</tr>
<tr>
<th>projectfileextension:</td>
<th>extensions:</td>
<td class="userequired">required</td>
<td>
File extension of project files. (e.g. ".booproj")
Semicolon-separated list of file extensions that are handled by the language binding (e.g. .xaml)
</td>
</tr>
<tr>
@ -637,7 +539,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -637,7 +539,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<tr>
<th colspan=2>Returns:</td>
<td>
An LanguageBindingDescriptor object that wraps the ILanguageBinding object.
The ILanguageBinding object.
</td>
</tr>
</table>
@ -693,6 +595,15 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -693,6 +595,15 @@ It is based on SharpDevelop 3.0.0.3062.</p>
Command class that is run when item is clicked.
</td>
</tr>
<tr>
<th>command:</td>
<td class="userequired">optional</td>
<td>
A WPF routed command that is executed when item is clicked.
Currently, this property is supported only for WPF Menus.
Only one of the "class" and "command" attributes can be used on a menu entry.
</td>
</tr>
<tr>
<th>link:</td>
<td class="userequired">optional</td>
@ -722,7 +633,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -722,7 +633,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<tr>
<th colspan=2>Returns:</td>
<td>
Any ToolStrip* object, depending on the type attribute.
A MenuItemDescriptor object.
</td>
</tr>
<tr>
@ -731,6 +642,50 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -731,6 +642,50 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</tr>
</table>
</div>
<div>
<h2><a name="OptionPanel">OptionPanel</a></h2>
<p>
Creates DefaultOptionPanelDescriptor objects that are used in option dialogs.
</p>
<table>
<tr>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.OptionPanelDoozer</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th colspan=2>class:</td>
<td>
Name of the IOptionPanel class. Optional if the page has subpages.
</td>
</tr>
<tr>
<th>label:</td>
<td class="userequired">required</td>
<td>
Caption of the dialog panel.
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Children:</td>
<td>
In the SharpDevelop options, option pages can have subpages by specifying them
as children in the AddInTree.
</td>
</tr>
<tr>
<th colspan=2>Usage:</td>
<td>In /SharpDevelop/BackendBindings/ProjectOptions/ and /SharpDevelop/Dialogs/OptionsDialog</td>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
A DefaultOptionPanelDescriptor object.
</td>
</tr>
</table>
</div>
<div>
<h2><a name="Pad">Pad</a></h2>
<p>
@ -784,6 +739,13 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -784,6 +739,13 @@ It is based on SharpDevelop 3.0.0.3062.</p>
Shortcut that activates the 'Show pad' command (e.g. "Control|Alt|T").
</td>
</tr>
<tr>
<th>defaultPosition:</td>
<td class="userequired">optional</td>
<td>
Default position of the pad, as a ICSharpCode.SharpDevelop.DefaultPadPositions enum value (e.g. "Bottom, Hidden").
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Usage:</td>
@ -815,26 +777,72 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -815,26 +777,72 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</td>
</tr>
<tr>
<th colspan=2>projectfileextension:</td>
<th colspan=2>class:</td>
<td>
Name of the IParser class.
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Usage:</td>
<td>Only in /Workspace/Parser</td>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
An ParserDescriptor object that wraps the IParser object.
</td>
</tr>
</table>
</div>
<div>
<h2><a name="ProjectBinding">ProjectBinding</a></h2>
<p>
Creates ProjectBindingDescriptor objects for the project service.
</p>
<table>
<tr>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.ProjectBindingDoozer</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>guid:</td>
<td class="userequired">required</td>
<td>
Project type GUID of the project used by MSBuild.
</td>
</tr>
<tr>
<th>supportedextensions:</td>
<td class="userequired">required</td>
<td>
Semicolon-separated list of file extensions that are compilable files in the project. (e.g. ".boo")
</td>
</tr>
<tr>
<th>projectfileextension:</td>
<td class="userequired">required</td>
<td>
File extension of project files. (e.g. ".booproj")
</td>
</tr>
<tr>
<th colspan=2>class:</td>
<th>class:</td>
<td class="userequired">required</td>
<td>
Name of the IParser class.
Name of the IProjectBinding class.
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Usage:</td>
<td>Only in /Workspace/Parser</td>
<td>Only in /SharpDevelop/Workbench/ProjectBinding</td>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
An ParserDescriptor object that wraps the IParser object.
A ProjectBindingDescriptor object that wraps the IProjectBinding object.
</td>
</tr>
</table>
@ -943,69 +951,69 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -943,69 +951,69 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</table>
</div>
<div>
<h2><a name="SyntaxMode">SyntaxMode</a></h2>
<h2><a name="TaskBoundAdditionalLogger">TaskBoundAdditionalLogger</a></h2>
<p>
Creates AddInTreeSyntaxMode objects that wrap a .xshd syntax mode stored as resource in the
addin assembly.
Creates IMSBuildAdditionalLogger objects that are only
activated when a specific MSBuild task is running.
</p>
<table>
<tr>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.DefaultEditor.Codons.SyntaxModeDoozer</td>
<td>ICSharpCode.SharpDevelop.Project.TaskBoundAdditionalLoggerDoozer</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>name:</td>
<td class="userequired">required</td>
<td>
Name of the language for which the syntax mode is used.
</td>
</tr>
<tr>
<th>extensions:</td>
<th>class:</td>
<td class="userequired">required</td>
<td>
Semicolon-separated list of file extensions for which the syntax mode is used.
Name of the IMSBuildAdditionalLogger class.
</td>
</tr>
<tr>
<th>resource:</td>
<th>taskname:</td>
<td class="userequired">required</td>
<td>
Fully qualified name of the resource file.
Specifies the name of the MSBuild task that must be running for
this logger to be active.
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Usage:</td>
<td>Only in /SharpDevelop/ViewContent/DefaultTextEditor/SyntaxModes</td>
<td>Only in /SharpDevelop/MSBuildEngine/AdditionalLoggers</td>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
An AddInTreeSyntaxMode object that loads the resource from the addin assembly when
its CreateTextReader method is called.
A IMSBuildAdditionalLogger object that lazy-loads the specified
IMSBuildAdditionalLogger when the specified task is running.
</td>
</tr>
</table>
<p><span class="exampleTitle">Example: </span>
<br><pre>
&lt;TaskBoundAdditionalLogger
id = "FxCopLogger"
taskname = "FxCop"
class = "ICSharpCode.CodeAnalysis.FxCopLogger"/&gt;</pre></p>
</div>
<div>
<h2><a name="TaskBoundAdditionalLogger">TaskBoundAdditionalLogger</a></h2>
<h2><a name="TaskBoundLoggerFilter">TaskBoundLoggerFilter</a></h2>
<p>
Creates IMSBuildAdditionalLogger objects that are only
Creates IMSBuildLoggerFilter objects that are only
activated when a specific MSBuild task is running.
</p>
<table>
<tr>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.Project.TaskBoundAdditionalLoggerDoozer</td>
<td>ICSharpCode.SharpDevelop.Project.TaskBoundLoggerFilterDoozer</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>class:</td>
<td class="userequired">required</td>
<td>
Name of the IMSBuildAdditionalLogger class.
Name of the IMSBuildLoggerFilter class.
</td>
</tr>
<tr>
@ -1019,22 +1027,22 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -1019,22 +1027,22 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Usage:</td>
<td>Only in /SharpDevelop/MSBuildEngine/AdditionalLoggers</td>
<td>Only in /SharpDevelop/MSBuildEngine/LoggerFilters</td>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
A IMSBuildAdditionalLogger object that lazy-loads the specified
IMSBuildAdditionalLogger when the specified task is running.
A IMSBuildLoggerFilter object that lazy-loads the specified
IMSBuildLoggerFilter when the specified task is running.
</td>
</tr>
</table>
<p><span class="exampleTitle">Example: </span>
<br><pre>
&lt;TaskBoundAdditionalLogger
&lt;TaskBoundLoggerFilter
id = "FxCopLogger"
taskname = "FxCop"
class = "ICSharpCode.CodeAnalysis.FxCopLogger"/&gt;</pre></p>
class = "ICSharpCode.CodeAnalysis.FxCopLoggerFilter"/&gt;</pre></p>
</div>
<div>
<h2><a name="ToolbarItem">ToolbarItem</a></h2>

31
samples/EmbeddedImageAddIn/Configuration/AssemblyInfo.cs

@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
#region Using directives
using System;
using System.Reflection;
using System.Runtime.InteropServices;
#endregion
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("EmbeddedImageAddIn")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EmbeddedImageAddIn")]
[assembly: AssemblyCopyright("Copyright 2010")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// This sets the default COM visibility of types in the assembly to invisible.
// If you need to expose a type to COM, use [ComVisible(true)] on that type.
[assembly: ComVisible(false)]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.*")]

20
samples/EmbeddedImageAddIn/EmbeddedImageAddIn.addin

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
<AddIn name = "EmbeddedImageAddIn"
author = "Daniel Grunwald"
description = "Allows embedding images in source code comments">
<Manifest>
<Identity name = "SharpDevelop.Samples.EmbeddedImageAddIn"/>
</Manifest>
<Runtime>
<Import assembly = "EmbeddedImageAddIn.dll"/>
</Runtime>
<Path name="/SharpDevelop/Workbench/LanguageBindings">
<Class id="EmbeddedImage" class="EmbeddedImageAddIn.EmbeddedImageLanguageBinding"/>
</Path>
<Path name="/SharpDevelop/Workbench/MainMenu/Edit/Insert">
<MenuItem id="EmbeddedImage" class="EmbeddedImageAddIn.InsertImageCommand" label="Insert Image..."/>
</Path>
</AddIn>

80
samples/EmbeddedImageAddIn/EmbeddedImageAddIn.csproj

@ -0,0 +1,80 @@ @@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<PropertyGroup>
<ProjectGuid>{1F60F9B0-E2FE-462F-9758-2E834D845438}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<OutputType>Library</OutputType>
<RootNamespace>EmbeddedImageAddIn</RootNamespace>
<AssemblyName>EmbeddedImageAddIn</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<OutputPath>..\..\AddIns\Samples\EmbeddedImage\</OutputPath>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'x86' ">
<PlatformTarget>x86</PlatformTarget>
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
<BaseAddress>4194304</BaseAddress>
<FileAlignment>4096</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DebugSymbols>False</DebugSymbols>
<DebugType>None</DebugType>
<Optimize>True</Optimize>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Reference Include="ICSharpCode.AvalonEdit">
<HintPath>..\..\bin\ICSharpCode.AvalonEdit.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ICSharpCode.Core">
<HintPath>..\..\bin\ICSharpCode.Core.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ICSharpCode.SharpDevelop">
<HintPath>..\..\bin\ICSharpCode.SharpDevelop.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xaml" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<None Include="EmbeddedImageAddIn.addin">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<Compile Include="Configuration\AssemblyInfo.cs" />
<Compile Include="EmbeddedImageLanguageBinding.cs" />
<Compile Include="ImageCache.cs" />
<Compile Include="ImageElement.cs" />
<Compile Include="ImageElementGenerator.cs" />
<Compile Include="InsertImageCommand.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>

18
samples/EmbeddedImageAddIn/EmbeddedImageAddIn.sln

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.0.0.7002
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EmbeddedImageAddIn", "EmbeddedImageAddIn.csproj", "{1F60F9B0-E2FE-462F-9758-2E834D845438}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1F60F9B0-E2FE-462F-9758-2E834D845438}.Debug|x86.Build.0 = Debug|x86
{1F60F9B0-E2FE-462F-9758-2E834D845438}.Debug|x86.ActiveCfg = Debug|x86
{1F60F9B0-E2FE-462F-9758-2E834D845438}.Release|x86.Build.0 = Release|x86
{1F60F9B0-E2FE-462F-9758-2E834D845438}.Release|x86.ActiveCfg = Release|x86
EndGlobalSection
EndGlobal

38
samples/EmbeddedImageAddIn/EmbeddedImageLanguageBinding.cs

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
using System.IO;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor;
namespace EmbeddedImageAddIn
{
// SharpDevelop creates one instance of EmbeddedImageLanguageBinding for each text editor.
public class EmbeddedImageLanguageBinding : DefaultLanguageBinding
{
TextView textView;
ImageElementGenerator g;
public override void Attach(ITextEditor editor)
{
base.Attach(editor);
// ITextEditor is SharpDevelop's abstraction of the text editor.
// We use GetService() to get the underlying AvalonEdit instance.
textView = editor.GetService(typeof(TextView)) as TextView;
if (textView != null) {
g = new ImageElementGenerator(Path.GetDirectoryName(editor.FileName));
textView.ElementGenerators.Add(g);
}
}
public override void Detach()
{
if (textView != null) {
textView.ElementGenerators.Remove(g);
}
base.Detach();
}
}
}

58
samples/EmbeddedImageAddIn/ImageCache.cs

@ -0,0 +1,58 @@ @@ -0,0 +1,58 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using ICSharpCode.Core;
namespace EmbeddedImageAddIn
{
public static class ImageCache
{
static readonly Dictionary<FileName, WeakReference> imageCache = new Dictionary<FileName, WeakReference>();
public static ImageSource GetImage(FileName fileName)
{
lock (imageCache) {
WeakReference wr;
ImageSource image;
// retrieve image from cache, if possible
if (imageCache.TryGetValue(fileName, out wr)) {
image = (ImageSource)wr.Target;
if (image != null)
return image;
}
// load image:
image = LoadBitmap(fileName);
if (image != null)
imageCache[fileName] = new WeakReference(image);
// clean up cache:
List<FileName> entriesToRemove = (from p in imageCache where !p.Value.IsAlive select p.Key).ToList();
foreach (var entry in entriesToRemove)
imageCache.Remove(entry);
return image;
}
}
static BitmapImage LoadBitmap(string fileName)
{
try {
if (File.Exists(fileName)) {
BitmapImage bitmap = new BitmapImage(new Uri(fileName));
bitmap.Freeze();
return bitmap;
}
} catch (ArgumentException) {
// invalid filename syntax
} catch (IOException) {
// other IO error
}
return null;
}
}
}

101
samples/EmbeddedImageAddIn/ImageElement.cs

@ -0,0 +1,101 @@ @@ -0,0 +1,101 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.TextFormatting;
using ICSharpCode.AvalonEdit.Rendering;
namespace EmbeddedImageAddIn
{
/// <summary>
/// VisualLineElement implementation for embedded images.
/// </summary>
public class ImageElement : VisualLineElement
{
readonly string imageFileName;
readonly ImageSource image;
public ImageElement(string imageFileName, ImageSource image, int documentLength) : base(1, documentLength)
{
if (imageFileName == null)
throw new ArgumentNullException("imageFileName");
if (image == null)
throw new ArgumentNullException("image");
this.imageFileName = imageFileName;
this.image = image;
}
public override TextRun CreateTextRun(int startVisualColumn, ITextRunConstructionContext context)
{
return new ImageTextRun(image, this.TextRunProperties);
}
protected override void OnMouseDown(MouseButtonEventArgs e)
{
base.OnMouseDown(e);
if (!e.Handled && e.ClickCount == 2) {
// double click on image: open the image in editor
try {
Process.Start(imageFileName);
} catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
}
sealed class ImageTextRun : TextEmbeddedObject
{
readonly ImageSource image;
readonly TextRunProperties properties;
public ImageTextRun(ImageSource image, TextRunProperties properties)
{
this.image = image;
this.properties = properties;
}
public override LineBreakCondition BreakBefore {
get { return LineBreakCondition.BreakPossible; }
}
public override LineBreakCondition BreakAfter {
get { return LineBreakCondition.BreakPossible; }
}
public override bool HasFixedSize {
get { return true; }
}
public override CharacterBufferReference CharacterBufferReference {
get { return new CharacterBufferReference(); }
}
public override int Length {
get { return 1; }
}
public override TextRunProperties Properties {
get { return properties; }
}
public override TextEmbeddedObjectMetrics Format(double remainingParagraphWidth)
{
return new TextEmbeddedObjectMetrics(image.Width, image.Height, image.Height);
}
public override Rect ComputeBoundingBox(bool rightToLeft, bool sideways)
{
return new Rect(0, 0, image.Width, image.Height);
}
public override void Draw(DrawingContext drawingContext, Point origin, bool rightToLeft, bool sideways)
{
drawingContext.DrawImage(image, new Rect(origin.X, origin.Y - image.Height, image.Width, image.Height));
}
}
}
}

62
samples/EmbeddedImageAddIn/ImageElementGenerator.cs

@ -0,0 +1,62 @@ @@ -0,0 +1,62 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Media;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.Core;
namespace EmbeddedImageAddIn
{
/// <summary>
/// Implementation of AvalonEdit element generator.
/// This class looks for image tags and produces ImageElements to visually represent those images.
/// </summary>
public class ImageElementGenerator : VisualLineElementGenerator
{
readonly static Regex imageRegex = new Regex(@"<<IMAGE:([\w\d\\./,\- :]+)>>");
readonly string baseDirectory;
public ImageElementGenerator(string baseDirectory)
{
this.baseDirectory = baseDirectory;
}
Match GetMatch(int startOffset)
{
DocumentLine endLine = CurrentContext.VisualLine.LastDocumentLine;
string relevantText = CurrentContext.Document.GetText(startOffset, endLine.EndOffset - startOffset);
return imageRegex.Match(relevantText);
}
/// Gets the first offset >= startOffset where the generator wants to construct
/// an element.
/// Return -1 to signal no interest.
public override int GetFirstInterestedOffset(int startOffset)
{
Match m = GetMatch(startOffset);
return m.Success ? startOffset + m.Index : -1;
}
/// Constructs an element at the specified offset.
/// May return null if no element should be constructed.
public override VisualLineElement ConstructElement(int offset)
{
Match m = GetMatch(offset);
// check whether there's a match exactly at offset
if (m.Success && m.Index == 0) {
string fileName = Path.Combine(baseDirectory, m.Groups[1].Value);
ImageSource image = ImageCache.GetImage(FileName.Create(fileName));
if (image != null) {
// Pass the length of the match to the 'documentLength' parameter of ImageElement.
return new ImageElement(fileName, image, m.Length);
}
}
return null;
}
}
}

39
samples/EmbeddedImageAddIn/InsertImageCommand.cs

@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
using System.IO;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Gui;
using Microsoft.Win32;
namespace EmbeddedImageAddIn
{
/// <summary>
/// "Edit > Insert > Image" menu command.
/// </summary>
public class InsertImageCommand : AbstractMenuCommand
{
public override void Run()
{
if (WorkbenchSingleton.Workbench.ActiveViewContent == null)
return;
ITextEditorProvider provider = WorkbenchSingleton.Workbench.ActiveViewContent.GetService(typeof(ITextEditorProvider)) as ITextEditorProvider;
if (provider == null)
return;
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "Image files|*.png;*.jpg;*.gif;*.bmp;*.jpeg|All files|*.*";
dlg.CheckFileExists = true;
dlg.DereferenceLinks = true;
string baseDirectory = Path.GetDirectoryName(provider.TextEditor.FileName);
dlg.InitialDirectory = baseDirectory;
if (dlg.ShowDialog() == true) {
string relativePath = FileUtility.GetRelativePath(baseDirectory, dlg.FileName);
if (!Path.IsPathRooted(relativePath))
relativePath = relativePath.Replace('\\', '/');
provider.TextEditor.Document.Insert(provider.TextEditor.Caret.Offset, "<<IMAGE:" + relativePath + ">>");
}
}
}
}

12
samples/SharpDevelopReports/src/ReportSamples.sln

@ -1,9 +1,11 @@ @@ -1,9 +1,11 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.0.0.5930
# SharpDevelop 4.1.0.7014
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpReportSamples", "SharpReportSamples\SharpReportSamples.csproj", "{BB5D34DA-3561-48B1-894A-46765C2A18C1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Core", "..\..\..\src\AddIns\Misc\Reports\ICSharpCode.Reports.Core\ICSharpCode.Reports.Core.csproj", "{4B2239FF-8FD6-431D-9D22-1B8049BA6917}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -20,6 +22,14 @@ Global @@ -20,6 +22,14 @@ Global
{BB5D34DA-3561-48B1-894A-46765C2A18C1}.Debug|x86.ActiveCfg = Debug|x86
{BB5D34DA-3561-48B1-894A-46765C2A18C1}.Release|x86.Build.0 = Release|x86
{BB5D34DA-3561-48B1-894A-46765C2A18C1}.Release|x86.ActiveCfg = Release|x86
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|x86.Build.0 = Debug|Any CPU
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|x86.ActiveCfg = Debug|Any CPU
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|Any CPU.Build.0 = Release|Any CPU
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|x86.Build.0 = Release|Any CPU
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

12
samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs

@ -98,9 +98,7 @@ namespace SharpReportSamples @@ -98,9 +98,7 @@ namespace SharpReportSamples
this.RunContributors(reportName);
}
else if (s == "ContributorsListWithParameters"){
//this.V1_RunContributorsWithParameters(reportName);
// this.V2_RunContributorsWithParameters(string fileName)
this.V3_RunContributorsWithParameters(reportName);
this.RunContributorsWithParameters(reportName);
}
else if (s == "NoConnectionReport") {
@ -221,7 +219,7 @@ namespace SharpReportSamples @@ -221,7 +219,7 @@ namespace SharpReportSamples
}
private void V3_RunContributorsWithParameters(string fileName)
private void RunContributorsWithParameters(string fileName)
{
var model = ReportEngine.LoadReportModel(fileName);
ReportParameters parameters = ReportEngine.LoadParameters(fileName);
@ -231,10 +229,6 @@ namespace SharpReportSamples @@ -231,10 +229,6 @@ namespace SharpReportSamples
List<Contributor> list = ContributorsReportData.CreateContributorsList();
// IDataManager dataManager = DataManager.CreateInstance(list,model.ReportSettings);
//IReportCreator creator = ReportEngine.CreatePageBuilder(model,eventLogger.EventLog,null);
IReportCreator creator = ReportEngine.CreatePageBuilder(model,list,parameters);
@ -291,7 +285,7 @@ namespace SharpReportSamples @@ -291,7 +285,7 @@ namespace SharpReportSamples
ReportModel model = ReportEngine.LoadReportModel(fileName);
IDataManager dataManager = DataManager.CreateInstance(eLog.EventLog,model.ReportSettings);
this.previewControl1.SectionRendering += PushPrinting;
// this.previewControl1.SectionRendering += PushPrinting;
this.previewControl1.PreviewLayoutChanged += delegate (object sender, EventArgs e)

10
samples/SharpDevelopReports/src/SharpReportSamples/SharpReportSamples.csproj

@ -32,8 +32,8 @@ @@ -32,8 +32,8 @@
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
<ItemGroup>
<Reference Include="ICSharpCode.Reports.Core">
<HintPath>..\..\..\..\AddIns\AddIns\Misc\SharpDevelopReports\ICSharpCode.Reports.Core.dll</HintPath>
<Reference Include="Irony">
<HintPath>..\..\..\..\src\AddIns\Misc\Reports\Irony\obj\Debug\Irony.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
@ -71,4 +71,10 @@ @@ -71,4 +71,10 @@
<ItemGroup>
<Folder Include="Resources" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\src\AddIns\Misc\Reports\ICSharpCode.Reports.Core\ICSharpCode.Reports.Core.csproj">
<Project>{4B2239FF-8FD6-431D-9D22-1B8049BA6917}</Project>
<Name>ICSharpCode.Reports.Core</Name>
</ProjectReference>
</ItemGroup>
</Project>

20
src/AddIns/Analysis/Profiler/Controller/ProfilerOptions.cs

@ -89,9 +89,13 @@ namespace ICSharpCode.Profiler.Controller @@ -89,9 +89,13 @@ namespace ICSharpCode.Profiler.Controller
/// <summary>
/// Creates new ProfilerOptions using the selected settings.
/// </summary>
public ProfilerOptions(bool enableDC, int sharedMemorySize, bool profileDotNetInternals,
bool combineRecursiveFunction, bool enableDCAtStart, bool trackEvents,
IEnumerable<PerformanceCounterDescriptor> counters)
public ProfilerOptions(bool enableDC = true,
int sharedMemorySize = DefaultSharedMemorySize,
bool profileDotNetInternals = false,
bool combineRecursiveFunction = false,
bool enableDCAtStart = true,
bool trackEvents = false,
IEnumerable<PerformanceCounterDescriptor> counters = null)
{
this.enableDC = enableDC;
this.sharedMemorySize = sharedMemorySize;
@ -99,15 +103,7 @@ namespace ICSharpCode.Profiler.Controller @@ -99,15 +103,7 @@ namespace ICSharpCode.Profiler.Controller
this.combineRecursiveFunction = combineRecursiveFunction;
this.enableDCAtStart = enableDCAtStart;
this.trackEvents = trackEvents;
this.counters = counters.ToArray();
}
/// <summary>
/// Creates default ProfilerOptions.
/// </summary>
public ProfilerOptions()
: this(true, DefaultSharedMemorySize, false, false, true, false, DefaultCounters)
{
this.counters = (counters ?? DefaultCounters).ToArray();
}
}
}

2
src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/GoToDefinition.cs

@ -26,7 +26,7 @@ namespace ICSharpCode.Profiler.AddIn.Commands @@ -26,7 +26,7 @@ namespace ICSharpCode.Profiler.AddIn.Commands
IEntity member = GetMemberFromName(c, selectedItem.MethodName, selectedItem.Parameters);
FilePosition position = c.ProjectContent.GetPosition(member ?? c);
if (!position.IsEmpty && !string.IsNullOrEmpty(position.FileName)) {
FileService.JumpToFilePosition(position.FileName, position.Line - 1, position.Column - 1);
FileService.JumpToFilePosition(position.FileName, position.Line, position.Column);
}
}
}

2
src/AddIns/Analysis/UnitTesting/Src/EmptyUnitTestsPad.cs

@ -29,5 +29,7 @@ namespace ICSharpCode.UnitTesting @@ -29,5 +29,7 @@ namespace ICSharpCode.UnitTesting
{
return null;
}
public void CollapseAll() { }
}
}

3
src/AddIns/Analysis/UnitTesting/Src/IUnitTestsPad.cs

@ -12,6 +12,7 @@ namespace ICSharpCode.UnitTesting @@ -12,6 +12,7 @@ namespace ICSharpCode.UnitTesting
void BringToFront();
void ResetTestResults();
IProject[] GetProjects();
TestProject GetTestProject(IProject project);
TestProject GetTestProject(IProject project);
void CollapseAll();
}
}

17
src/AddIns/Analysis/UnitTesting/Src/UnitTestCommands.cs

@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
@ -99,4 +100,20 @@ namespace ICSharpCode.UnitTesting @@ -99,4 +100,20 @@ namespace ICSharpCode.UnitTesting
}
}
}
public class CollapseAllTestsCommand : AbstractMenuCommand
{
public override void Run()
{
if (!(this.Owner is TreeView))
return;
var treeView = (TreeView)this.Owner;
treeView.CollapseAll();
if (treeView.Nodes.Count > 0) {
treeView.Nodes[0].Expand();
}
}
}
}

11
src/AddIns/Analysis/UnitTesting/Src/UnitTestsPad.cs

@ -120,6 +120,17 @@ namespace ICSharpCode.UnitTesting @@ -120,6 +120,17 @@ namespace ICSharpCode.UnitTesting
ToolbarService.UpdateToolbar(toolStrip);
}
/// <summary>
/// Collapses all nodes.
/// </summary>
public void CollapseAll()
{
if (treeView == null || treeView.Nodes == null || treeView.Nodes.Count == 0)
return;
treeView.CollapseAll();
}
/// <summary>
/// Called when a solution has been loaded.
/// </summary>

2
src/AddIns/Analysis/UnitTesting/Test/Utils/MockUnitTestsPad.cs

@ -68,5 +68,7 @@ namespace UnitTesting.Tests.Utils @@ -68,5 +68,7 @@ namespace UnitTesting.Tests.Utils
{
testProjects.Add(testProject);
}
public void CollapseAll() { }
}
}

101
src/AddIns/Analysis/UnitTesting/UnitTesting.addin

@ -19,17 +19,17 @@ @@ -19,17 +19,17 @@
<Path name="/SharpDevelop/UnitTesting/TestFrameworks">
<TestFramework id="nunit"
class="ICSharpCode.UnitTesting.NUnitTestFramework"
supportedProjects=".csproj;.vbproj;.booproj" />
class="ICSharpCode.UnitTesting.NUnitTestFramework"
supportedProjects=".csproj;.vbproj;.booproj" />
</Path>
<Path name="/SharpDevelop/Workbench/Pads">
<Pad id="UnitTestingPad"
category="Tools"
title="${res:ICSharpCode.NUnitPad.NUnitPadContent.PadName}"
icon="PadIcons.NUnitTest"
class="ICSharpCode.UnitTesting.UnitTestsPad"
defaultPosition="Right, Hidden" />
category="Tools"
title="${res:ICSharpCode.NUnitPad.NUnitPadContent.PadName}"
icon="PadIcons.NUnitTest"
class="ICSharpCode.UnitTesting.UnitTestsPad"
defaultPosition="Right, Hidden" />
</Path>
<Path name="/SharpDevelop/ViewContent/DefaultTextEditor/ClassMemberContextMenu">
@ -51,9 +51,9 @@ @@ -51,9 +51,9 @@
</Not>
</And>
<MenuItem id="RunInPad"
label="${res:ICSharpCode.UnitTesting.RunInTestPad}"
icon="PadIcons.NUnitTest"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
label="${res:ICSharpCode.UnitTesting.RunInTestPad}"
icon="PadIcons.NUnitTest"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
</ComplexCondition>
<Include id="CommonTestCommands" path="/SharpDevelop/Pads/UnitTestsPad/CommonTestCommands"/>
</MenuItem>
@ -71,9 +71,9 @@ @@ -71,9 +71,9 @@
</Not>
</And>
<MenuItem id="RunInPad"
label="${res:ICSharpCode.UnitTesting.RunInTestPad}"
icon="PadIcons.NUnitTest"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
label="${res:ICSharpCode.UnitTesting.RunInTestPad}"
icon="PadIcons.NUnitTest"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
</ComplexCondition>
<Include id="CommonTestCommands" path="/SharpDevelop/Pads/UnitTestsPad/CommonTestCommands"/>
</MenuItem>
@ -89,9 +89,9 @@ @@ -89,9 +89,9 @@
</Not>
</And>
<MenuItem id="RunWithDebugger"
label="${res:ICSharpCode.UnitTesting.RunWithDebugger}"
icon="Icons.16x16.RunProgramIcon"
class="ICSharpCode.UnitTesting.RunTestWithDebuggerCommand"/>
label="${res:ICSharpCode.UnitTesting.RunWithDebugger}"
icon="Icons.16x16.RunProgramIcon"
class="ICSharpCode.UnitTesting.RunTestWithDebuggerCommand"/>
</ComplexCondition>
</Path>
@ -104,14 +104,14 @@ @@ -104,14 +104,14 @@
</Not>
</And>
<ToolbarItem id="RunAll"
icon="Icons.16x16.RunAllIcon"
tooltip="${res:NUnitPad.NUnitPadContent.RunAllTests}"
class="ICSharpCode.UnitTesting.RunAllTestsInPadCommand"/>
icon="Icons.16x16.RunAllIcon"
tooltip="${res:NUnitPad.NUnitPadContent.RunAllTests}"
class="ICSharpCode.UnitTesting.RunAllTestsInPadCommand"/>
<ToolbarItem id="Run"
insertafter="RunAll"
icon="Icons.16x16.RunProgramIcon"
tooltip="${res:NUnitPad.NUnitPadContent.RunItem}"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
insertafter="RunAll"
icon="Icons.16x16.RunProgramIcon"
tooltip="${res:NUnitPad.NUnitPadContent.RunItem}"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
</ComplexCondition>
<ComplexCondition action="Disable">
<And>
@ -119,16 +119,21 @@ @@ -119,16 +119,21 @@
<Condition name="RunningTests"/>
</And>
<ToolbarItem id="Stop"
icon="Icons.16x16.Debug.StopProcess"
tooltip="${res:NUnitPad.NUnitPadContent.StopTests}"
class="ICSharpCode.UnitTesting.StopTestsCommand"/>
icon="Icons.16x16.Debug.StopProcess"
tooltip="${res:NUnitPad.NUnitPadContent.StopTests}"
class="ICSharpCode.UnitTesting.StopTestsCommand"/>
</ComplexCondition>
<Condition name = "SolutionOpen" action="Disable">
<ToolbarItem id="Separator2" type="Separator"/>
<ToolbarItem id="AddNUnitReference"
icon="Icons.16x16.Reference"
tooltip="${res:NUnitPad.NUnitPadContent.ReferenceItem}"
class="ICSharpCode.UnitTesting.AddNUnitReferenceCommand"/>
icon="Icons.16x16.Reference"
tooltip="${res:NUnitPad.NUnitPadContent.ReferenceItem}"
class="ICSharpCode.UnitTesting.AddNUnitReferenceCommand"/>
<ToolbarItem id = "CollapseSeparator" type = "Separator"/>
<ToolbarItem id = "Collapse"
icon = "Icons.16x16.Assembly"
tooltip = "${res:MainWindow.Windows.SearchResultPanel.CollapseAll.ToolTip}"
class = "ICSharpCode.UnitTesting.CollapseAllTestsCommand"/>
</Condition>
</Path>
@ -141,9 +146,9 @@ @@ -141,9 +146,9 @@
</Not>
</And>
<MenuItem id="Run"
icon="Icons.16x16.RunProgramIcon"
label="${res:NUnitPad.NUnitPadContent.RunTestsContextMenuLabel}"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
icon="Icons.16x16.RunProgramIcon"
label="${res:NUnitPad.NUnitPadContent.RunTestsContextMenuLabel}"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
</ComplexCondition>
<Include id="CommonTestCommands" path="/SharpDevelop/Pads/UnitTestsPad/CommonTestCommands"/>
<ComplexCondition action="Disable">
@ -152,14 +157,14 @@ @@ -152,14 +157,14 @@
<Condition name="RunningTests"/>
</And>
<MenuItem id="Stop"
icon="Icons.16x16.Debug.StopProcess"
label="${res:NUnitPad.NUnitPadContent.StopTests}"
class="ICSharpCode.UnitTesting.StopTestsCommand"/>
icon="Icons.16x16.Debug.StopProcess"
label="${res:NUnitPad.NUnitPadContent.StopTests}"
class="ICSharpCode.UnitTesting.StopTestsCommand"/>
</ComplexCondition>
<Condition name="Ownerstate" ownerstate="SourceCodeItemSelected" action="Disable">
<MenuItem id="GotoDefinition"
label="${res:NUnitPad.NUnitPadContent.GotoDefinitionContextMenuLabel}"
class="ICSharpCode.UnitTesting.GotoDefinitionCommand"/>
label="${res:NUnitPad.NUnitPadContent.GotoDefinitionContextMenuLabel}"
class="ICSharpCode.UnitTesting.GotoDefinitionCommand"/>
</Condition>
</Path>
@ -173,9 +178,9 @@ @@ -173,9 +178,9 @@
</Not>
</And>
<MenuItem id="RunAll"
icon="Icons.16x16.RunAllIcon"
label="${res:NUnitPad.NUnitPadContent.RunAllTests}"
class="ICSharpCode.UnitTesting.RunAllTestsInPadCommand"/>
icon="Icons.16x16.RunAllIcon"
label="${res:NUnitPad.NUnitPadContent.RunAllTests}"
class="ICSharpCode.UnitTesting.RunAllTestsInPadCommand"/>
</ComplexCondition>
<ComplexCondition action="Disable">
<And>
@ -186,9 +191,9 @@ @@ -186,9 +191,9 @@
</Not>
</And>
<MenuItem id="RunProjectTests"
icon="Icons.16x16.RunProgramIcon"
label="${res:ICSharpCode.UnitTesting.RunProjectTests}"
class="ICSharpCode.UnitTesting.RunProjectTestsInPadCommand"/>
icon="Icons.16x16.RunProgramIcon"
label="${res:ICSharpCode.UnitTesting.RunProjectTests}"
class="ICSharpCode.UnitTesting.RunProjectTestsInPadCommand"/>
</ComplexCondition>
<ComplexCondition action="Disable">
<And>
@ -196,16 +201,16 @@ @@ -196,16 +201,16 @@
<Condition name="RunningTests"/>
</And>
<MenuItem id="Stop"
icon="Icons.16x16.Debug.StopProcess"
label="${res:NUnitPad.NUnitPadContent.StopTests}"
class="ICSharpCode.UnitTesting.StopTestsCommand"/>
icon="Icons.16x16.Debug.StopProcess"
label="${res:NUnitPad.NUnitPadContent.StopTests}"
class="ICSharpCode.UnitTesting.StopTestsCommand"/>
</ComplexCondition>
</MenuItem>
</Path>
<Path name="/SharpDevelop/Dialogs/OptionsDialog/ToolsOptions">
<OptionPanel id="UnitTestingOptionsPanel"
label="${res:ICSharpCode.NUnitPad.NUnitPadContent.PadName}"
class="ICSharpCode.UnitTesting.UnitTestingOptionsPanel"/>
label="${res:ICSharpCode.NUnitPad.NUnitPadContent.PadName}"
class="ICSharpCode.UnitTesting.UnitTestingOptionsPanel"/>
</Path>
</AddIn>

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

@ -119,8 +119,12 @@ namespace ICSharpCode.PythonBinding @@ -119,8 +119,12 @@ namespace ICSharpCode.PythonBinding
IMember FindMemberInParent(IMember parentMember, string memberName)
{
IClass parentMemberClass = parentMember.ReturnType.GetUnderlyingClass();
return FindMemberInClass(parentMemberClass, memberName);
IReturnType returnType = parentMember.ReturnType;
if (returnType != null) {
IClass parentMemberClass = returnType.GetUnderlyingClass();
return FindMemberInClass(parentMemberClass, memberName);
}
return null;
}
}
}

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

@ -369,11 +369,13 @@ @@ -369,11 +369,13 @@
<Compile Include="Resolver\ResolveImportsTestFixture.cs" />
<Compile Include="Resolver\ResolveLocalClassInstanceTests.cs" />
<Compile Include="Resolver\ResolveLocalVariableMethodTests.cs" />
<Compile Include="Resolver\ResolveMemberWhenFieldHasNoReturnTypeTests.cs" />
<Compile Include="Resolver\ResolveMethodFromUnknownImportAllTests.cs" />
<Compile Include="Resolver\ResolveMethodReturnValueTests.cs" />
<Compile Include="Resolver\ResolveMethodWhenFromImportIsUnknownTests.cs" />
<Compile Include="Resolver\ResolveMethodWhenImportIsUnknownTests.cs" />
<Compile Include="Resolver\ResolveNullCtrlSpaceParseInfoTestFixture.cs" />
<Compile Include="Resolver\ResolveRandomRandintTests.cs" />
<Compile Include="Resolver\ResolverContextDottedImportedNameMatchTests.cs" />
<Compile Include="Resolver\ResolverContextGetModulesThatImportEverythingTests.cs" />
<Compile Include="Resolver\ResolverContextGetModuleForNameImportedAsDifferentNameTestFixture.cs" />

40
src/AddIns/BackendBindings/Python/PythonBinding/Test/Resolver/ResolveMemberWhenFieldHasNoReturnTypeTests.cs

@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
// 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;
using System.Collections.Generic;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting.Tests.Utils;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Dom.CSharp;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
using UnitTestingUtils = UnitTesting.Tests.Utils;
namespace PythonBinding.Tests.Resolver
{
[TestFixture]
public class ResolveMemberWhenFieldHasNoReturnTypeTests
{
[Test]
public void Resolve_FieldHasNoReturnType_DoesNotThrowNullReferenceException()
{
MockProjectContent projectContent = new MockProjectContent();
UnitTestingUtils.MockClass c = new UnitTestingUtils.MockClass(projectContent, "Test");
projectContent.SetClassToReturnFromGetClass("self", c);
DefaultField field = c.AddField("randomNumber");
field.ReturnType = null;
ParseInformation parseInfo = new ParseInformation(c.CompilationUnit);
ExpressionResult expression = new ExpressionResult("self.randomNumber.randint", ExpressionContext.Default);
PythonClassResolver classResolver = new PythonClassResolver();
PythonLocalVariableResolver localVariableResolver = new PythonLocalVariableResolver(classResolver);
PythonMemberResolver resolver = new PythonMemberResolver(classResolver, localVariableResolver);
PythonResolverContext context = new PythonResolverContext(parseInfo, expression, "class Test:\r\npass");
Assert.DoesNotThrow(delegate { resolver.Resolve(context); });
}
}
}

38
src/AddIns/BackendBindings/Python/PythonBinding/Test/Resolver/ResolveRandomRandintTests.cs

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
// 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 ICSharpCode.PythonBinding;
using ICSharpCode.SharpDevelop.Dom;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
namespace PythonBinding.Tests.Resolver
{
[TestFixture]
public class ResolveRandomRandintTests : ResolveTestsBase
{
protected override ExpressionResult GetExpressionResult()
{
return new ExpressionResult("self.randomNumber.randint", ExpressionContext.Default);
}
protected override string GetPythonScript()
{
return
"import random\r\n" +
"\r\n" +
"class Test:\r\n" +
" def __init__(self):\r\n" +
" self.randomNumber = random.random()\r\n" +
" self.randomNumber.randint\r\n" +
"\r\n";
}
[Test]
public void Resolve_RandomModuleCannotBeFound_NoNullRefererenceExceptionThrown()
{
Assert.IsNotNull(resolveResult as PythonMethodGroupResolveResult);
}
}
}

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

@ -220,9 +220,9 @@ namespace ICSharpCode.XamlBinding @@ -220,9 +220,9 @@ namespace ICSharpCode.XamlBinding
start = "";
completionList.PreselectionLength = start.Length;
} else if (mrr.ResolvedType.FullyQualifiedName == "System.Windows.Media.FontFamily") {
string text = context.ValueStartOffset > -1 ? context.RawAttributeValue.Substring(0, Math.Min(context.ValueStartOffset + 1, context.RawAttributeValue.Length)) : "";
string text = context.ValueStartOffset > -1 ? context.RawAttributeValue.Substring(0, Math.Min(context.ValueStartOffset, context.RawAttributeValue.Length)) : "";
int lastComma = text.LastIndexOf(',');
completionList.PreselectionLength = lastComma == -1 ? context.ValueStartOffset + 1 : context.ValueStartOffset - lastComma;
completionList.PreselectionLength = lastComma == -1 ? context.ValueStartOffset : context.ValueStartOffset - lastComma - 1;
}
}
}
@ -387,9 +387,9 @@ namespace ICSharpCode.XamlBinding @@ -387,9 +387,9 @@ namespace ICSharpCode.XamlBinding
string word = context.Editor.GetWordBeforeCaretExtended();
if (context.PressedKey != '.' && context.PressedKey != '=' && !word.EndsWith(".") && completionList.PreselectionLength == 0)
completionList.PreselectionLength = word.Length;
context.Editor.ShowCompletionWindow(completionList);
var insightList = CompletionDataHelper.CreateMarkupExtensionInsight(context);
context.Editor.ShowInsightWindow(insightList);
context.Editor.ShowCompletionWindow(completionList);
return completionList.Items.Any() || insightList.Any();
}

25
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlParser.cs

@ -91,8 +91,8 @@ namespace ICSharpCode.XamlBinding @@ -91,8 +91,8 @@ namespace ICSharpCode.XamlBinding
public ICompilationUnit Parse(IProjectContent projectContent, string fileName, ITextBuffer fileContent)
{
//using (new DebugTimerObject("background parser")) {
// Core.LoggingService.Info("file: " + fileName);
ICompilationUnit compilationUnit;
using (ParseAndLock(fileContent)) {
var document = parser.LastDocument;
@ -101,9 +101,26 @@ namespace ICSharpCode.XamlBinding @@ -101,9 +101,26 @@ namespace ICSharpCode.XamlBinding
document.AcceptVisitor(visitor);
return visitor.CompilationUnit;
compilationUnit = visitor.CompilationUnit;
}
//}
// During project load all XAML files are parsed
// most of them are not opened, thus fileContent.Version is null.
// We can clear the parser data, because the file will be reparsed
// as soon as it is opened by the user.
// This will save us some memory, because we only use the
// compilation unit created by the visitor above for code completion.
if (fileContent.Version == null) {
parser.Lock.EnterWriteLock();
// double-checked locking (other threads might parse the document in the meantime)
if (lastParsedVersion == null) {
parser.Clear();
}
parser.Lock.ExitWriteLock();
}
return compilationUnit;
}
/// <summary>

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

@ -47,7 +47,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -47,7 +47,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
protected override ToolBar CreateToolBar()
{
ToolBar toolbar = ToolBarService.CreateToolBar(this, "/SharpDevelop/Pads/BreakpointPad/Toolbar");
ToolBar toolbar = ToolBarService.CreateToolBar(myPanel, this, "/SharpDevelop/Pads/BreakpointPad/Toolbar");
toolbar.SetValue(Grid.RowProperty, 0);
return toolbar;
}

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

@ -232,7 +232,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -232,7 +232,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
}
if (showArgumentValues) {
try {
argValue = frame.GetArgumentValue(i).AsString;
argValue = frame.GetArgumentValue(i).AsString(100);
} catch { }
}
if (parameterName != null && argValue != null) {

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

@ -141,7 +141,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -141,7 +141,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
protected override ToolBar BuildToolBar()
{
return ToolBarService.CreateToolBar(this, debuggerConsoleToolBarTreePath);
return ToolBarService.CreateToolBar(console, this, debuggerConsoleToolBarTreePath);
}
}
}

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

@ -124,7 +124,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -124,7 +124,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
protected override ToolBar BuildToolBar()
{
return ToolBarService.CreateToolBar(this, "/SharpDevelop/Pads/ParallelStacksPad/ToolBar");
return ToolBarService.CreateToolBar(panel, this, "/SharpDevelop/Pads/ParallelStacksPad/ToolBar");
}
#endregion

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

@ -5,7 +5,9 @@ using System; @@ -5,7 +5,9 @@ using System;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Debugging;
using ICSharpCode.SharpDevelop.Gui;
@ -23,7 +25,10 @@ namespace ICSharpCode.SharpDevelop.Services @@ -23,7 +25,10 @@ namespace ICSharpCode.SharpDevelop.Services
{
this.process = process;
try {
managed = debugger.IsManaged(process.Id);
var modules = process.Modules.Cast<ProcessModule>().Where(
m => m.ModuleName.StartsWith("mscor", StringComparison.InvariantCultureIgnoreCase));
managed = modules.Count() > 0;
} catch { }
string fileName = Path.GetFileName(process.MainModule.FileName);
@ -54,7 +59,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -54,7 +59,7 @@ namespace ICSharpCode.SharpDevelop.Services
{
listView.Items.Clear();
WindowsDebugger debugger = (WindowsDebugger)DebuggerService.CurrentDebugger;
Process currentProcess = Process.GetCurrentProcess();
Process currentProcess = Process.GetCurrentProcess();
foreach (Process process in Process.GetProcesses()) {
try {
if (process.HasExited) continue;
@ -69,8 +74,8 @@ namespace ICSharpCode.SharpDevelop.Services @@ -69,8 +74,8 @@ namespace ICSharpCode.SharpDevelop.Services
} catch (Win32Exception) {
// Do nothing.
}
}
}
listView.Sort();
}
}
}
}

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

@ -382,7 +382,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -382,7 +382,7 @@ namespace ICSharpCode.SharpDevelop.Services
try {
Value val = GetValueFromName(variableName);
if (val == null) return null;
return val.AsString;
return val.AsString();
} catch (GetValueException) {
return null;
}

2
src/AddIns/Debugger/Debugger.AddIn/TreeModel/ExpressionNode.cs

@ -215,7 +215,7 @@ namespace Debugger.AddIn.TreeModel @@ -215,7 +215,7 @@ namespace Debugger.AddIn.TreeModel
return;
}
} else {
fullText = val.AsString;
fullText = val.AsString();
}
this.Text = (fullText.Length > 256) ? fullText.Substring(0, 256) + "..." : fullText;

4
src/AddIns/Debugger/Debugger.AddIn/Visualizers/Utils/DebuggerHelpers.cs

@ -88,11 +88,11 @@ namespace Debugger.AddIn.Visualizers.Utils @@ -88,11 +88,11 @@ namespace Debugger.AddIn.Visualizers.Utils
// value.InvokeMethod is nice for instance methods.
// what about MethodInfo.Invoke() ?
// also, there could be an overload that takes 1 parameter instead of array
string defaultHashCode = Eval.InvokeMethod(DebuggerHelpers.hashCodeMethod, null, new Value[]{value}).AsString;
Value defaultHashCode = Eval.InvokeMethod(DebuggerHelpers.hashCodeMethod, null, new Value[]{value});
//MethodInfo method = value.Type.GetMember("GetHashCode", BindingFlags.Method | BindingFlags.IncludeSuperType) as MethodInfo;
//string hashCode = value.InvokeMethod(method, null).AsString;
return int.Parse(defaultHashCode);
return (int)defaultHashCode.PrimitiveValue;
}
public static Value EvalPermanentReference(this Expression expr)

4
src/AddIns/Debugger/Debugger.Core/Exception.cs

@ -33,7 +33,7 @@ namespace Debugger @@ -33,7 +33,7 @@ namespace Debugger
public string Message {
get {
Value message = exception.GetMemberValue("_message");
return message.IsNull ? string.Empty : message.AsString;
return message.IsNull ? string.Empty : message.AsString();
}
}
@ -86,7 +86,7 @@ namespace Debugger @@ -86,7 +86,7 @@ namespace Debugger
// Note that evaluation is not possible after a stackoverflow exception
Value stackTrace = exception.GetMemberValue("StackTrace");
if (!stackTrace.IsNull) {
sb.Append(stackTrace.AsString);
sb.Append(stackTrace.AsString());
sb.AppendLine();
}
return sb.ToString();

2
src/AddIns/Debugger/Debugger.Core/Thread.cs

@ -156,7 +156,7 @@ namespace Debugger @@ -156,7 +156,7 @@ namespace Debugger
if (runtimeValue.IsNull) return string.Empty;
Value runtimeName = runtimeValue.GetMemberValue("m_Name");
if (runtimeName.IsNull) return string.Empty;
return runtimeName.AsString.ToString();
return runtimeName.AsString(100);
}
}

43
src/AddIns/Debugger/Debugger.Core/Value.cs

@ -114,7 +114,7 @@ namespace Debugger @@ -114,7 +114,7 @@ namespace Debugger
public bool IsInvalid {
get {
return corValue_pauseSession != this.Process.PauseSession &&
!(corValue is ICorDebugHandleValue);
!(corValue is ICorDebugHandleValue);
}
}
@ -149,12 +149,23 @@ namespace Debugger @@ -149,12 +149,23 @@ namespace Debugger
}
/// <summary> Gets a string representation of the value </summary>
public string AsString {
get {
if (this.IsNull) return "null";
if (this.Type.IsPrimitive) return PrimitiveValue.ToString();
if (this.Type.FullName == typeof(string).FullName) return PrimitiveValue.ToString();
return "{" + this.Type.FullName + "}";
/// <param name="maxLength">
/// The maximum length of the result string.
/// </param>
public string AsString(int maxLength = int.MaxValue)
{
if (this.IsNull) return "null";
if (this.Type.IsPrimitive || this.Type.FullName == typeof(string).FullName) {
string text = PrimitiveValue.ToString();
if (text != null && text.Length > maxLength)
text = text.Substring(0, Math.Max(0, maxLength - 3)) + "...";
return text;
} else {
string name = this.Type.FullName;
if (name != null && name.Length > maxLength)
return "{" + name.Substring(0, Math.Max(0, maxLength - 5)) + "...}";
else
return "{" + name + "}";
}
}
@ -251,7 +262,7 @@ namespace Debugger @@ -251,7 +262,7 @@ namespace Debugger
///
/// If setting of a value fails, NotSupportedException is thrown.
/// </summary>
public object PrimitiveValue {
public object PrimitiveValue {
get {
if (this.Type.FullName == typeof(string).FullName) {
if (this.IsNull) return null;
@ -302,7 +313,7 @@ namespace Debugger @@ -302,7 +313,7 @@ namespace Debugger
/// eg new object[4,5] returns 2
/// </summary>
/// <returns> 0 for non-arrays </returns>
public int ArrayRank {
public int ArrayRank {
get {
if (!this.Type.IsArray) return 0;
return (int)CorArrayValue.GetRank();
@ -476,7 +487,7 @@ namespace Debugger @@ -476,7 +487,7 @@ namespace Debugger
ICorDebugFrame curFrame = null;
if (process.IsPaused &&
process.SelectedThread != null &&
process.SelectedThread.MostRecentStackFrame != null &&
process.SelectedThread.MostRecentStackFrame != null &&
process.SelectedThread.MostRecentStackFrame.CorILFrame != null)
{
curFrame = process.SelectedThread.MostRecentStackFrame.CorILFrame;
@ -600,14 +611,14 @@ namespace Debugger @@ -600,14 +611,14 @@ namespace Debugger
}
/// <summary> Invoke the ToString() method </summary>
public string InvokeToString()
public string InvokeToString(int maxLength = int.MaxValue)
{
if (this.Type.IsPrimitive) return AsString;
if (this.Type.FullName == typeof(string).FullName) return AsString;
if (this.Type.IsPrimitive) return AsString(maxLength);
if (this.Type.FullName == typeof(string).FullName) return AsString(maxLength);
if (this.Type.IsPointer) return "0x" + this.PointerAddress.ToString("X");
// if (!IsObject) // Can invoke on primitives
DebugMethodInfo methodInfo = (DebugMethodInfo)this.AppDomain.ObjectType.GetMethod("ToString", new DebugType[] {});
return Eval.InvokeMethod(methodInfo, this, new Value[] {}).AsString;
return Eval.InvokeMethod(methodInfo, this, new Value[] {}).AsString(maxLength);
}
#region Convenience overload methods
@ -636,9 +647,7 @@ namespace Debugger @@ -636,9 +647,7 @@ namespace Debugger
public override string ToString()
{
return this.AsString;
return this.AsString();
}
}
}

2
src/AddIns/Debugger/Debugger.Tests/Tests/AppDomain_Tests.cs

@ -43,7 +43,7 @@ namespace Debugger.Tests { @@ -43,7 +43,7 @@ namespace Debugger.Tests {
DebugType type1b = process.SelectedStackFrame.GetLocalVariableValue("one").Type;
ObjectDump("SameDomainEqual", type1 == type1b);
process.Continue();
ObjectDump("AppDomainName", process.SelectedStackFrame.GetLocalVariableValue("appDomainName").AsString);
ObjectDump("AppDomainName", process.SelectedStackFrame.GetLocalVariableValue("appDomainName").AsString());
DebugType type2 = process.SelectedStackFrame.GetLocalVariableValue("two").Type;
ObjectDump("OtherDomainEqual", type1 == type2);
ObjectDump("AppDomainsEqual", type1.AppDomain == type2.AppDomain);

4
src/AddIns/Debugger/Debugger.Tests/Tests/ExpressionEvaluator_Tests.cs

@ -264,9 +264,9 @@ namespace Debugger.Tests { @@ -264,9 +264,9 @@ namespace Debugger.Tests {
ObjectDump("TypesIdentitcal", object.ReferenceEquals(locType, valType));
ObjectDump("TypesEqual", locType == valType);
ObjectDump("WorkerThreadMoved", process.SelectedStackFrame.GetThisValue().GetMemberValue("WorkerThreadMoved").AsString);
ObjectDump("WorkerThreadMoved", process.SelectedStackFrame.GetThisValue().GetMemberValue("WorkerThreadMoved").AsString());
process.Continue();
ObjectDump("WorkerThreadMoved", process.SelectedStackFrame.GetThisValue().GetMemberValue("WorkerThreadMoved").AsString);
ObjectDump("WorkerThreadMoved", process.SelectedStackFrame.GetThisValue().GetMemberValue("WorkerThreadMoved").AsString());
EndTest();
}

20
src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_VariablesLifetime.cs

@ -97,26 +97,22 @@ namespace Debugger.Tests { @@ -97,26 +97,22 @@ namespace Debugger.Tests {
<DebuggingPaused>Break StackFrame_VariablesLifetime.cs:21,4-21,40</DebuggingPaused>
<argument>
<Value
AsString="1"
PrimitiveValue="1"
Type="System.Int32" />
</argument>
<local>
<Value
AsString="2"
PrimitiveValue="2"
Type="System.Int32" />
</local>
<_x0040_class>
<Value
AsString="3"
PrimitiveValue="3"
Type="System.Int32" />
</_x0040_class>
<DebuggingPaused>Break StackFrame_VariablesLifetime.cs:30,4-30,40</DebuggingPaused>
<argument>
<Value
AsString="{Exception: Value is no longer valid}"
IsInvalid="True"
IsReference="{Exception: Value is no longer valid}"
PrimitiveValue="{Exception: Value is no longer valid}"
@ -124,7 +120,6 @@ namespace Debugger.Tests { @@ -124,7 +120,6 @@ namespace Debugger.Tests {
</argument>
<local>
<Value
AsString="{Exception: Value is no longer valid}"
IsInvalid="True"
IsReference="{Exception: Value is no longer valid}"
PrimitiveValue="{Exception: Value is no longer valid}"
@ -132,7 +127,6 @@ namespace Debugger.Tests { @@ -132,7 +127,6 @@ namespace Debugger.Tests {
</local>
<_x0040_class>
<Value
AsString="{Exception: Value is no longer valid}"
IsInvalid="True"
IsReference="{Exception: Value is no longer valid}"
PrimitiveValue="{Exception: Value is no longer valid}"
@ -140,14 +134,12 @@ namespace Debugger.Tests { @@ -140,14 +134,12 @@ namespace Debugger.Tests {
</_x0040_class>
<localInSubFunction>
<Value
AsString="4"
PrimitiveValue="4"
Type="System.Int32" />
</localInSubFunction>
<DebuggingPaused>Break StackFrame_VariablesLifetime.cs:23,4-23,40</DebuggingPaused>
<argument>
<Value
AsString="{Exception: Value is no longer valid}"
IsInvalid="True"
IsReference="{Exception: Value is no longer valid}"
PrimitiveValue="{Exception: Value is no longer valid}"
@ -155,7 +147,6 @@ namespace Debugger.Tests { @@ -155,7 +147,6 @@ namespace Debugger.Tests {
</argument>
<local>
<Value
AsString="{Exception: Value is no longer valid}"
IsInvalid="True"
IsReference="{Exception: Value is no longer valid}"
PrimitiveValue="{Exception: Value is no longer valid}"
@ -163,7 +154,6 @@ namespace Debugger.Tests { @@ -163,7 +154,6 @@ namespace Debugger.Tests {
</local>
<_x0040_class>
<Value
AsString="{Exception: Value is no longer valid}"
IsInvalid="True"
IsReference="{Exception: Value is no longer valid}"
PrimitiveValue="{Exception: Value is no longer valid}"
@ -171,7 +161,6 @@ namespace Debugger.Tests { @@ -171,7 +161,6 @@ namespace Debugger.Tests {
</_x0040_class>
<localInSubFunction>
<Value
AsString="{Exception: Value is no longer valid}"
IsInvalid="True"
IsReference="{Exception: Value is no longer valid}"
PrimitiveValue="{Exception: Value is no longer valid}"
@ -180,7 +169,6 @@ namespace Debugger.Tests { @@ -180,7 +169,6 @@ namespace Debugger.Tests {
<DebuggingPaused>Break StackFrame_VariablesLifetime.cs:30,4-30,40</DebuggingPaused>
<argument>
<Value
AsString="{Exception: Value is no longer valid}"
IsInvalid="True"
IsReference="{Exception: Value is no longer valid}"
PrimitiveValue="{Exception: Value is no longer valid}"
@ -188,7 +176,6 @@ namespace Debugger.Tests { @@ -188,7 +176,6 @@ namespace Debugger.Tests {
</argument>
<local>
<Value
AsString="{Exception: Value is no longer valid}"
IsInvalid="True"
IsReference="{Exception: Value is no longer valid}"
PrimitiveValue="{Exception: Value is no longer valid}"
@ -196,7 +183,6 @@ namespace Debugger.Tests { @@ -196,7 +183,6 @@ namespace Debugger.Tests {
</local>
<_x0040_class>
<Value
AsString="{Exception: Value is no longer valid}"
IsInvalid="True"
IsReference="{Exception: Value is no longer valid}"
PrimitiveValue="{Exception: Value is no longer valid}"
@ -204,7 +190,6 @@ namespace Debugger.Tests { @@ -204,7 +190,6 @@ namespace Debugger.Tests {
</_x0040_class>
<localInSubFunction>
<Value
AsString="{Exception: Value is no longer valid}"
IsInvalid="True"
IsReference="{Exception: Value is no longer valid}"
PrimitiveValue="{Exception: Value is no longer valid}"
@ -212,14 +197,12 @@ namespace Debugger.Tests { @@ -212,14 +197,12 @@ namespace Debugger.Tests {
</localInSubFunction>
<localInSubFunction_x0028_new_x0029_>
<Value
AsString="4"
PrimitiveValue="4"
Type="System.Int32" />
</localInSubFunction_x0028_new_x0029_>
<DebuggingPaused>Break StackFrame_VariablesLifetime.cs:15,4-15,40</DebuggingPaused>
<argument>
<Value
AsString="{Exception: Value is no longer valid}"
IsInvalid="True"
IsReference="{Exception: Value is no longer valid}"
PrimitiveValue="{Exception: Value is no longer valid}"
@ -227,7 +210,6 @@ namespace Debugger.Tests { @@ -227,7 +210,6 @@ namespace Debugger.Tests {
</argument>
<local>
<Value
AsString="{Exception: Value is no longer valid}"
IsInvalid="True"
IsReference="{Exception: Value is no longer valid}"
PrimitiveValue="{Exception: Value is no longer valid}"
@ -235,7 +217,6 @@ namespace Debugger.Tests { @@ -235,7 +217,6 @@ namespace Debugger.Tests {
</local>
<_x0040_class>
<Value
AsString="{Exception: Value is no longer valid}"
IsInvalid="True"
IsReference="{Exception: Value is no longer valid}"
PrimitiveValue="{Exception: Value is no longer valid}"
@ -243,7 +224,6 @@ namespace Debugger.Tests { @@ -243,7 +224,6 @@ namespace Debugger.Tests {
</_x0040_class>
<localInSubFunction>
<Value
AsString="{Exception: Value is no longer valid}"
IsInvalid="True"
IsReference="{Exception: Value is no longer valid}"
PrimitiveValue="{Exception: Value is no longer valid}"

4
src/AddIns/Debugger/Debugger.Tests/Tests/Value_Tests.cs

@ -103,7 +103,6 @@ namespace Debugger.Tests { @@ -103,7 +103,6 @@ namespace Debugger.Tests {
</LocalVariables>
<array.Length>
<Value
AsString="4"
PrimitiveValue="4"
Type="System.Int32" />
</array.Length>
@ -112,7 +111,6 @@ namespace Debugger.Tests { @@ -112,7 +111,6 @@ namespace Debugger.Tests {
ArrayDimensions="{2, 2}"
ArrayLength="4"
ArrayRank="2"
AsString="{System.Int32[,]}"
GetArrayElements="{0, 1, 2, 3}"
IsReference="True"
PrimitiveValue="{Exception: Value is not a primitive type}"
@ -123,7 +121,6 @@ namespace Debugger.Tests { @@ -123,7 +121,6 @@ namespace Debugger.Tests {
ArrayDimensions="{10..11, 20..21}"
ArrayLength="4"
ArrayRank="2"
AsString="{System.Char[,]}"
GetArrayElements="{a, b, c, d}"
IsReference="True"
PrimitiveValue="{Exception: Value is not a primitive type}"
@ -131,7 +128,6 @@ namespace Debugger.Tests { @@ -131,7 +128,6 @@ namespace Debugger.Tests {
</lbArray>
<lbArray-10-20>
<Value
AsString="a"
PrimitiveValue="a"
Type="System.Char" />
</lbArray-10-20>

1
src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj

@ -95,6 +95,7 @@ @@ -95,6 +95,7 @@
<Compile Include="Src\ContextActionsRenderer.cs" />
<Compile Include="Src\ExpressionHighlightRenderer.cs" />
<Compile Include="Src\CodeManipulation.cs" />
<Compile Include="Src\CaretHighlightAdorner.cs" />
<Compile Include="Src\NewLineConsistencyCheck.cs" />
<Compile Include="Src\SharpDevelopTextEditor.cs" />
<Compile Include="Src\Commands\FoldingCommands.cs" />

32
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/BracketHighlightRenderer.cs

@ -2,8 +2,10 @@ @@ -2,8 +2,10 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows.Media;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.SharpDevelop.Editor;
@ -17,6 +19,11 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -17,6 +19,11 @@ namespace ICSharpCode.AvalonEdit.AddIn
Brush backgroundBrush;
TextView textView;
public static readonly Color DefaultBackground = Color.FromArgb(22, 0, 0, 255);
public static readonly Color DefaultBorder = Color.FromArgb(52, 0, 0, 255);
public const string BracketHighlight = "Bracket highlight";
public void SetHighlight(BracketSearchResult result)
{
if (this.result != result) {
@ -30,16 +37,19 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -30,16 +37,19 @@ namespace ICSharpCode.AvalonEdit.AddIn
if (textView == null)
throw new ArgumentNullException("textView");
this.borderPen = new Pen(new SolidColorBrush(Color.FromArgb(52, 0, 0, 255)), 1);
this.borderPen.Freeze();
this.backgroundBrush = new SolidColorBrush(Color.FromArgb(22, 0, 0, 255));
this.backgroundBrush.Freeze();
this.textView = textView;
this.textView.BackgroundRenderers.Add(this);
}
void UpdateColors(Color background, Color foreground)
{
this.borderPen = new Pen(new SolidColorBrush(foreground), 1);
this.borderPen.Freeze();
this.backgroundBrush = new SolidColorBrush(background);
this.backgroundBrush.Freeze();
}
public KnownLayer Layer {
get {
@ -66,5 +76,15 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -66,5 +76,15 @@ namespace ICSharpCode.AvalonEdit.AddIn
drawingContext.DrawGeometry(backgroundBrush, borderPen, geometry);
}
}
public static void ApplyCustomizationsToRendering(BracketHighlightRenderer renderer, IEnumerable<CustomizedHighlightingColor> customizations)
{
renderer.UpdateColors(DefaultBackground, DefaultBorder);
foreach (CustomizedHighlightingColor color in customizations) {
if (color.Name == BracketHighlight) {
renderer.UpdateColors(color.Background ?? Colors.Blue, color.Foreground ?? Colors.Blue);
}
}
}
}
}

45
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CaretHighlightAdorner.cs

@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
// 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.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Media;
using System.Windows.Media.Animation;
using ICSharpCode.AvalonEdit.Editing;
namespace ICSharpCode.AvalonEdit.AddIn
{
/// <summary>
/// Animated rectangle around the caret.
/// </summary>
sealed class CaretHighlightAdorner : Adorner
{
Pen pen;
RectangleGeometry geometry;
public CaretHighlightAdorner(TextArea textArea)
: base(textArea.TextView)
{
Rect min = textArea.Caret.CalculateCaretRectangle();
min.Offset(-textArea.TextView.ScrollOffset);
Rect max = min;
double size = Math.Max(min.Width, min.Height) * 0.25;
max.Inflate(size, size);
pen = new Pen(TextBlock.GetForeground(textArea.TextView).Clone(), 1);
geometry = new RectangleGeometry(min, 2, 2);
geometry.BeginAnimation(RectangleGeometry.RectProperty, new RectAnimation(min, max, new Duration(TimeSpan.FromMilliseconds(300))) { AutoReverse = true });
pen.Brush.BeginAnimation(Brush.OpacityProperty, new DoubleAnimation(1, 0, new Duration(TimeSpan.FromMilliseconds(200))) { BeginTime = TimeSpan.FromMilliseconds(450) });
}
protected override void OnRender(DrawingContext drawingContext)
{
drawingContext.DrawGeometry(null, pen, geometry);
}
}
}

20
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CaretReferencesRenderer.cs

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
using System.Threading;
using System.Windows.Threading;
using ICSharpCode.AvalonEdit.AddIn.Options;
@ -10,6 +11,7 @@ using ICSharpCode.Core; @@ -10,6 +11,7 @@ using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Refactoring;
namespace ICSharpCode.AvalonEdit.AddIn
@ -127,10 +129,20 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -127,10 +129,20 @@ namespace ICSharpCode.AvalonEdit.AddIn
/// </summary>
List<Reference> GetReferencesInCurrentFile(ResolveResult resolveResult)
{
var references = RefactoringService.FindReferencesLocal(resolveResult, Editor.FileName, null);
if (references == null || references.Count == 0)
return null;
return references;
var cancellationTokenSource = new CancellationTokenSource();
using (new Timer(
delegate {
LoggingService.Debug("Aborting GetReferencesInCurrentFile due to timeout");
cancellationTokenSource.Cancel();
}, null, 200, Timeout.Infinite))
{
var progressMonitor = new DummyProgressMonitor();
progressMonitor.CancellationToken = cancellationTokenSource.Token;
var references = RefactoringService.FindReferencesLocal(resolveResult, Editor.FileName, progressMonitor);
if (references == null || references.Count == 0)
return null;
return references;
}
}
/// <summary>

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

@ -217,10 +217,11 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -217,10 +217,11 @@ namespace ICSharpCode.AvalonEdit.AddIn
TextCopied(this, e);
}
protected virtual void DisposeTextEditor(TextEditor textEditor)
protected virtual void DisposeTextEditor(CodeEditorView textEditor)
{
// detach IconBarMargin from IconBarManager
textEditor.TextArea.LeftMargins.OfType<IconBarMargin>().Single().TextView = null;
textEditor.Dispose();
}
void textEditor_GotFocus(object sender, RoutedEventArgs e)
@ -332,9 +333,9 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -332,9 +333,9 @@ namespace ICSharpCode.AvalonEdit.AddIn
// remove secondary editor
this.Children.Remove(secondaryTextEditor);
this.Children.Remove(gridSplitter);
secondaryTextEditorAdapter.Language.Detach();
DisposeTextEditor(secondaryTextEditor);
secondaryTextEditor = null;
secondaryTextEditorAdapter.Language.Detach();
secondaryTextEditorAdapter = null;
gridSplitter = null;
this.RowDefinitions.RemoveAt(this.RowDefinitions.Count - 1);
@ -574,6 +575,9 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -574,6 +575,9 @@ namespace ICSharpCode.AvalonEdit.AddIn
if (errorPainter != null)
errorPainter.Dispose();
this.Document = null;
DisposeTextEditor(primaryTextEditor);
if (secondaryTextEditor != null)
DisposeTextEditor(secondaryTextEditor);
}
}
}

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

@ -13,7 +13,7 @@ using System.Windows.Controls; @@ -13,7 +13,7 @@ using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Threading;
using ICSharpCode.AvalonEdit.AddIn.Options;
using ICSharpCode.AvalonEdit.AddIn.Snippets;
@ -26,6 +26,7 @@ using ICSharpCode.SharpDevelop.Dom; @@ -26,6 +26,7 @@ using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.AvalonEdit;
using ICSharpCode.SharpDevelop.Editor.Commands;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Refactoring;
using Ast = ICSharpCode.NRefactory.Ast;
@ -36,7 +37,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -36,7 +37,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
/// There can be two CodeEditorView instances in a single CodeEditor if split-view
/// is enabled.
/// </summary>
public class CodeEditorView : SharpDevelopTextEditor
public class CodeEditorView : SharpDevelopTextEditor, IDisposable
{
public ITextEditor Adapter { get; set; }
@ -48,20 +49,33 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -48,20 +49,33 @@ namespace ICSharpCode.AvalonEdit.AddIn
{
this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Help, OnHelpExecuted));
UpdateCustomizedHighlighting();
this.bracketRenderer = new BracketHighlightRenderer(this.TextArea.TextView);
this.caretReferencesRenderer = new CaretReferencesRenderer(this);
this.contextActionsRenderer = new ContextActionsRenderer(this);
UpdateCustomizedHighlighting();
this.MouseHover += TextEditorMouseHover;
this.MouseHoverStopped += TextEditorMouseHoverStopped;
this.MouseLeave += TextEditorMouseLeave;
this.TextArea.TextView.MouseDown += TextViewMouseDown;
this.TextArea.Caret.PositionChanged += HighlightBrackets;
this.TextArea.TextView.VisualLinesChanged += CodeEditorView_VisualLinesChanged;
SetupTabSnippetHandler();
}
void CodeEditorView_VisualLinesChanged(object sender, EventArgs e)
{
// hide tooltip
if (this.toolTip != null)
this.toolTip.IsOpen = false;
}
public virtual void Dispose()
{
contextActionsRenderer.Dispose();
}
protected override string FileName {
get { return this.Adapter.FileName; }
@ -414,6 +428,23 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -414,6 +428,23 @@ namespace ICSharpCode.AvalonEdit.AddIn
// the adapter sets the caret position and takes care of scrolling
this.Adapter.JumpTo(line, column);
this.Focus();
if (CodeEditorOptions.Instance.EnableAnimations)
Dispatcher.Invoke(DispatcherPriority.Background, (Action)DisplayCaretHighlightAnimation);
}
void DisplayCaretHighlightAnimation()
{
TextArea textArea = Adapter.GetService(typeof(TextArea)) as TextArea;
if (textArea == null)
return;
AdornerLayer layer = AdornerLayer.GetAdornerLayer(textArea.TextView);
CaretHighlightAdorner adorner = new CaretHighlightAdorner(textArea);
layer.Add(adorner);
WorkbenchSingleton.CallLater(TimeSpan.FromSeconds(1), (Action)(() => layer.Remove(adorner)));
}
#region UpdateParseInformation - Folding
@ -469,6 +500,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -469,6 +500,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
{
string language = this.SyntaxHighlighting != null ? this.SyntaxHighlighting.Name : null;
CustomizableHighlightingColorizer.ApplyCustomizationsToDefaultElements(this, FetchCustomizations(language));
BracketHighlightRenderer.ApplyCustomizationsToRendering(this.bracketRenderer, FetchCustomizations(language));
this.TextArea.TextView.Redraw(); // manually redraw if default elements didn't change but customized highlightings did
}

48
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActionsRenderer.cs

@ -18,7 +18,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -18,7 +18,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
/// <summary>
/// Renders Popup with context actions on the left side of the current line in the editor.
/// </summary>
public class ContextActionsRenderer
public sealed class ContextActionsRenderer : IDisposable
{
readonly CodeEditorView editorView;
ITextEditor Editor { get { return this.editorView.Adapter; } }
@ -31,17 +31,16 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -31,17 +31,16 @@ namespace ICSharpCode.AvalonEdit.AddIn
/// Delays the available actions resolution so that it does not get called too often when user holds an arrow.
/// </summary>
DispatcherTimer delayMoveTimer;
const int delayMoveMilliseconds = 100;
const int delayMoveMilliseconds = 500;
public bool IsEnabled
{
get {
try {
string fileName = this.Editor.FileName;
return fileName.EndsWith(".cs") || fileName.EndsWith(".vb");
} catch {
string fileName = this.Editor.FileName;
if (String.IsNullOrEmpty(fileName))
return false;
}
return fileName.EndsWith(".cs", StringComparison.OrdinalIgnoreCase)
|| fileName.EndsWith(".vb", StringComparison.OrdinalIgnoreCase);
}
}
@ -59,10 +58,16 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -59,10 +58,16 @@ namespace ICSharpCode.AvalonEdit.AddIn
this.delayMoveTimer = new DispatcherTimer() { Interval = TimeSpan.FromMilliseconds(delayMoveMilliseconds) };
this.delayMoveTimer.Stop();
this.delayMoveTimer.Tick += TimerMoveTick;
WorkbenchSingleton.Workbench.ViewClosed += WorkbenchSingleton_Workbench_ViewClosed;
WorkbenchSingleton.Workbench.ActiveViewContentChanged += WorkbenchSingleton_Workbench_ActiveViewContentChanged;
}
public void Dispose()
{
ClosePopup();
WorkbenchSingleton.Workbench.ActiveViewContentChanged -= WorkbenchSingleton_Workbench_ActiveViewContentChanged;
delayMoveTimer.Stop();
}
void ContextActionsRenderer_KeyDown(object sender, KeyEventArgs e)
{
if (this.popup == null)
@ -139,27 +144,14 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -139,27 +144,14 @@ namespace ICSharpCode.AvalonEdit.AddIn
this.lastActions = null;
}
}
void WorkbenchSingleton_Workbench_ViewClosed(object sender, ViewContentEventArgs e)
{
try {
// prevent memory leaks
if (e.Content.PrimaryFileName == this.Editor.FileName) {
WorkbenchSingleton.Workbench.ViewClosed -= WorkbenchSingleton_Workbench_ViewClosed;
WorkbenchSingleton.Workbench.ActiveViewContentChanged -= WorkbenchSingleton_Workbench_ActiveViewContentChanged;
ClosePopup();
}
} catch {}
}
void WorkbenchSingleton_Workbench_ActiveViewContentChanged(object sender, EventArgs e)
{
ClosePopup();
try {
// open the popup again if in current file
if (((IViewContent)WorkbenchSingleton.Workbench.ActiveContent).PrimaryFileName == this.Editor.FileName)
CaretPositionChanged(this, EventArgs.Empty);
} catch {}
// open the popup again if in current file
IViewContent activeViewContent = WorkbenchSingleton.Workbench.ActiveViewContent;
if (activeViewContent != null && activeViewContent.PrimaryFileName == this.Editor.FileName)
CaretPositionChanged(this, EventArgs.Empty);
else // otherwise close popup
ClosePopup();
}
}
}

27
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CustomizableHighlightingColorizer.cs

@ -6,8 +6,8 @@ using System.Collections.Generic; @@ -6,8 +6,8 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Editing;
using ICSharpCode.AvalonEdit.Highlighting;
@ -22,16 +22,23 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -22,16 +22,23 @@ namespace ICSharpCode.AvalonEdit.AddIn
{
public const string DefaultTextAndBackground = "Default text/background";
public const string SelectedText = "Selected text";
public const string NonPrintableCharacters = "Non-printable characters";
public const string LineNumbers = "Line numbers";
public static void ApplyCustomizationsToDefaultElements(TextEditor textEditor, IEnumerable<CustomizedHighlightingColor> customizations)
{
textEditor.ClearValue(TextEditor.BackgroundProperty);
textEditor.ClearValue(TextEditor.ForegroundProperty);
textEditor.ClearValue(TextEditor.LineNumbersForegroundProperty);
textEditor.TextArea.ClearValue(TextArea.SelectionBorderProperty);
textEditor.TextArea.ClearValue(TextArea.SelectionBrushProperty);
textEditor.TextArea.ClearValue(TextArea.SelectionForegroundProperty);
textEditor.TextArea.TextView.ClearValue(TextView.NonPrintableCharacterBrushProperty);
bool assignedDefaultText = false;
bool assignedSelectedText = false;
bool assignedNonPrintableCharacter = false;
bool assignedLineNumbers = false;
foreach (CustomizedHighlightingColor color in customizations) {
switch (color.Name) {
case DefaultTextAndBackground:
@ -54,7 +61,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -54,7 +61,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
pen.Freeze();
textEditor.TextArea.SelectionBorder = pen;
SolidColorBrush back = new SolidColorBrush(color.Background.Value);
back.Opacity = 0.7;
back.Opacity = 0.7; // TODO : remove this constant, let the use choose the opacity.
back.Freeze();
textEditor.TextArea.SelectionBrush = back;
}
@ -62,6 +69,22 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -62,6 +69,22 @@ namespace ICSharpCode.AvalonEdit.AddIn
textEditor.TextArea.SelectionForeground = CreateFrozenBrush(color.Foreground.Value);
}
break;
case NonPrintableCharacters:
if (assignedNonPrintableCharacter)
continue;
assignedNonPrintableCharacter = true;
if (color.Foreground != null)
textEditor.TextArea.TextView.NonPrintableCharacterBrush = CreateFrozenBrush(color.Foreground.Value);
break;
case LineNumbers:
if (assignedLineNumbers)
continue;
assignedLineNumbers = true;
if (color.Foreground != null)
textEditor.LineNumbersForeground = CreateFrozenBrush(color.Foreground.Value);
break;
}
}
}

13
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/CodeEditorOptions.cs

@ -144,6 +144,19 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options @@ -144,6 +144,19 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
}
}
bool enableAnimations = true;
[DefaultValue(true)]
public bool EnableAnimations {
get { return enableAnimations; }
set {
if (enableAnimations != value) {
enableAnimations = value;
OnPropertyChanged("EnableAnimations");
}
}
}
bool useSmartIndentation = true;
[DefaultValue(true)]

64
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/HighlightingOptions.xaml.cs

@ -10,11 +10,13 @@ using System.Windows; @@ -10,11 +10,13 @@ using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Xml;
using ICSharpCode.AvalonEdit.Editing;
using ICSharpCode.AvalonEdit.Highlighting;
using ICSharpCode.AvalonEdit.Highlighting.Xshd;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.SharpDevelop.Bookmarks;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.AvalonEdit;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.AvalonEdit.AddIn.Options
@ -29,9 +31,13 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options @@ -29,9 +31,13 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
InitializeComponent();
textEditor.Document.UndoStack.SizeLimit = 0;
textEditor.Options = CodeEditorOptions.Instance;
bracketHighlighter = new BracketHighlightRenderer(textEditor.TextArea.TextView);
CodeEditorOptions.Instance.BindToTextEditor(textEditor);
}
BracketHighlightRenderer bracketHighlighter;
List<CustomizedHighlightingColor> customizationList;
XshdSyntaxDefinition LoadBuiltinXshd(string name)
@ -132,6 +138,61 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options @@ -132,6 +138,61 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
selectedText = new CustomizedHighlightingItem(customizationList, selectedText, language, canSetFont: false);
selectedText.PropertyChanged += item_PropertyChanged;
listBox.Items.Add(selectedText);
// Create entry for "Non-printable characters"
IHighlightingItem nonPrintChars = new SimpleHighlightingItem(
CustomizableHighlightingColorizer.NonPrintableCharacters,
ta => {
ta.Document.Text = " \r \r\n \n";
})
{
Foreground = Colors.LightGray
};
nonPrintChars = new CustomizedHighlightingItem(customizationList, nonPrintChars, null, canSetFont: false, canSetBackground: false);
if (language != null)
nonPrintChars = new CustomizedHighlightingItem(customizationList, nonPrintChars, language, canSetFont: false);
nonPrintChars.PropertyChanged += item_PropertyChanged;
listBox.Items.Add(nonPrintChars);
// Create entry for "Line numbers"
IHighlightingItem lineNumbers = new SimpleHighlightingItem(
CustomizableHighlightingColorizer.LineNumbers,
ta => {
ta.Document.Text = "These are just" + Environment.NewLine +
"multiple" + Environment.NewLine +
"lines of" + Environment.NewLine +
"text";
})
{
Foreground = Colors.Gray
};
lineNumbers = new CustomizedHighlightingItem(customizationList, lineNumbers, null, canSetFont: false, canSetBackground: false);
if (language != null)
lineNumbers = new CustomizedHighlightingItem(customizationList, lineNumbers, language, canSetFont: false);
lineNumbers.PropertyChanged += item_PropertyChanged;
listBox.Items.Add(lineNumbers);
// Create entry for "Bracket highlight"
IHighlightingItem bracketHighlight = new SimpleHighlightingItem(
BracketHighlightRenderer.BracketHighlight,
ta => {
ta.Document.Text = "(simple) example";
XshdSyntaxDefinition xshd = (XshdSyntaxDefinition)languageComboBox.SelectedItem;
if (xshd == null)
return;
var customizationsForCurrentLanguage = customizationList.Where(c => c.Language == null || c.Language == xshd.Name);
BracketHighlightRenderer.ApplyCustomizationsToRendering(bracketHighlighter, customizationsForCurrentLanguage);
bracketHighlighter.SetHighlight(new BracketSearchResult(0, 1, 7, 1));
})
{
Foreground = BracketHighlightRenderer.DefaultBorder,
Background = BracketHighlightRenderer.DefaultBackground
};
bracketHighlight = new CustomizedHighlightingItem(customizationList, bracketHighlight, null, canSetFont: false);
if (language != null)
bracketHighlight = new CustomizedHighlightingItem(customizationList, bracketHighlight, language, canSetFont: false);
bracketHighlight.PropertyChanged += item_PropertyChanged;
listBox.Items.Add(bracketHighlight);
}
void item_PropertyChanged(object sender, PropertyChangedEventArgs e)
@ -175,6 +236,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options @@ -175,6 +236,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
textView.LineTransformers.Add(colorizer);
}
textEditor.Select(0, 0);
bracketHighlighter.SetHighlight(null);
item.ShowExample(textEditor.TextArea);
}
}

3
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/TextViewOptions.xaml

@ -24,6 +24,9 @@ @@ -24,6 +24,9 @@
<CheckBox
IsChecked="{core:OptionBinding local:CodeEditorOptions.HighlightSymbol}"
Content="{core:Localize Dialog.Options.IDEOptions.TextEditor.Markers.HighlightSymbolCheckBox}" />
<CheckBox
IsChecked="{core:OptionBinding local:CodeEditorOptions.EnableAnimations}"
Content="{core:Localize Dialog.Options.IDEOptions.TextEditor.Markers.EnableAnimationsCheckBox}" />
</widgets:StackPanelWithSpacing>
</GroupBox>
</StackPanel>

9
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs

@ -494,8 +494,13 @@ namespace ICSharpCode.FormsDesigner @@ -494,8 +494,13 @@ namespace ICSharpCode.FormsDesigner
host.Dispose();
return;
}
if (host != null && host.Child == value)
return;
if (host != null) {
if (host.IsDisposed) {
host = null;
} else if (host.Child == value) {
return;
}
}
if (host == null) {
host = new SDWindowsFormsHost(true);
host.ServiceObject = this;

30
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/MyTypeFinder.cs

@ -33,19 +33,33 @@ namespace ICSharpCode.WpfDesign.AddIn @@ -33,19 +33,33 @@ namespace ICSharpCode.WpfDesign.AddIn
}
return null;
} else {
// Load any other assembly from the solution.
foreach(var project in ProjectService.OpenSolution.Projects) {
if(project.AssemblyName==name) {
var pc = ParserService.GetProjectContent(project);
if (pc != null)
return this.typeResolutionService.LoadAssembly(pc);
}
Assembly assembly = FindAssemblyInProjectReferences(name);
if (assembly != null) {
return assembly;
}
return base.LoadAssembly(name);
}
}
Assembly FindAssemblyInProjectReferences(string name)
{
IProjectContent pc = GetProjectContent(file);
if (pc != null) {
return FindAssemblyInProjectReferences(pc, name);
}
return null;
}
Assembly FindAssemblyInProjectReferences(IProjectContent pc, string name)
{
foreach (IProjectContent referencedProjectContent in pc.ReferencedContents) {
if (name == referencedProjectContent.AssemblyName) {
return this.typeResolutionService.LoadAssembly(referencedProjectContent);
}
}
return null;
}
public override XamlTypeFinder Clone()
{
MyTypeFinder copy = new MyTypeFinder();

39
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/GridAdorner.cs

@ -433,34 +433,37 @@ namespace ICSharpCode.WpfDesign.Designer.Controls @@ -433,34 +433,37 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
public void SetGridLengthUnit(GridUnitType unit)
{
DesignItem item = unitSelector.SelectedItem;
GridLength value;
grid.UpdateLayout();
Debug.Assert(item != null);
if (orientation == Orientation.Vertical) {
value = (GridLength)item.Properties[RowDefinition.HeightProperty].ValueOnInstance;
if (unit == GridUnitType.Auto)
value = GridLength.Auto;
else
value = new GridLength(value.Value, unit);
item.Properties[RowDefinition.HeightProperty].SetValue(value);
SetGridLengthUnit(unit, item, RowDefinition.HeightProperty);
} else {
value = (GridLength)item.Properties[ColumnDefinition.WidthProperty].ValueOnInstance;
if (unit == GridUnitType.Auto)
value = GridLength.Auto;
else
value = new GridLength(value.Value, unit);
item.Properties[ColumnDefinition.WidthProperty].SetValue(value);
SetGridLengthUnit(unit, item, ColumnDefinition.WidthProperty);
}
grid.UpdateLayout();
InvalidateVisual();
}
void SetGridLengthUnit(GridUnitType unit, DesignItem item, DependencyProperty property)
{
DesignItemProperty itemProperty = item.Properties[property];
GridLength oldValue = (GridLength)itemProperty.ValueOnInstance;
GridLength value = GetNewGridLength(unit, oldValue);
if (value != oldValue) {
itemProperty.SetValue(value);
}
}
GridLength GetNewGridLength(GridUnitType unit, GridLength oldValue)
{
if (unit == GridUnitType.Auto) {
return GridLength.Auto;
}
return new GridLength(oldValue.Value, unit);
}
}
public abstract class GridSplitterAdorner : Control

10
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/SolidBrushEditor.xaml

@ -1,14 +1,12 @@ @@ -1,14 +1,12 @@
<UserControl
x:Class="ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors.BrushEditor.SolidBrushEditor"
<UserControl x:Class="ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors.BrushEditor.SolidBrushEditor"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:BrushEditor="clr-namespace:ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors.BrushEditor"
xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets"
x:Name="this"
Height="284"
>
Height="284">
<TabControl>
<TabItem Header="Color Picker">
<BrushEditor:ColorPicker Color="{Binding Color, ElementName=this}" />
<widgets:ColorPicker Color="{Binding Color, ElementName=this}" />
</TabItem>
<TabItem Header="Color List">
<ListBox ItemsSource="{Binding AvailableColors}"

18
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Services/CreateComponentTool.cs

@ -79,7 +79,9 @@ namespace ICSharpCode.WpfDesign.Designer.Services @@ -79,7 +79,9 @@ namespace ICSharpCode.WpfDesign.Designer.Services
if (AddItemWithDefaultSize(result.ModelHit, createdItem, e.GetPosition(result.ModelHit.View))) {
moveLogic = new MoveLogic(createdItem);
createPoint = p;
// We'll keep the ChangeGroup open as long as the moveLogic is active.
} else {
// Abort the ChangeGroup created by the CreateItem() call.
changeGroup.Abort();
}
}
@ -169,7 +171,9 @@ namespace ICSharpCode.WpfDesign.Designer.Services @@ -169,7 +171,9 @@ namespace ICSharpCode.WpfDesign.Designer.Services
if (behavior != null) {
DesignItem createdItem = CreateItem(designPanel.Context);
new CreateComponentMouseGesture(result.ModelHit, createdItem).Start(designPanel, e);
new CreateComponentMouseGesture(result.ModelHit, createdItem, changeGroup).Start(designPanel, e);
// CreateComponentMouseGesture now is responsible for the changeGroup created by CreateItem()
changeGroup = null;
}
}
}
@ -181,12 +185,14 @@ namespace ICSharpCode.WpfDesign.Designer.Services @@ -181,12 +185,14 @@ namespace ICSharpCode.WpfDesign.Designer.Services
DesignItem createdItem;
PlacementOperation operation;
DesignItem container;
ChangeGroup changeGroup;
public CreateComponentMouseGesture(DesignItem clickedOn, DesignItem createdItem)
public CreateComponentMouseGesture(DesignItem clickedOn, DesignItem createdItem, ChangeGroup changeGroup)
{
this.container = clickedOn;
this.createdItem = createdItem;
this.positionRelativeTo = clickedOn.View;
this.changeGroup = changeGroup;
}
// GrayOutDesignerExceptActiveArea grayOut;
@ -236,6 +242,10 @@ namespace ICSharpCode.WpfDesign.Designer.Services @@ -236,6 +242,10 @@ namespace ICSharpCode.WpfDesign.Designer.Services
} else {
CreateComponentTool.AddItemWithDefaultSize(container, createdItem, e.GetPosition(positionRelativeTo));
}
if (changeGroup != null) {
changeGroup.Commit();
changeGroup = null;
}
base.OnMouseUp(sender, e);
}
@ -245,6 +255,10 @@ namespace ICSharpCode.WpfDesign.Designer.Services @@ -245,6 +255,10 @@ namespace ICSharpCode.WpfDesign.Designer.Services
operation.Abort();
operation = null;
}
if (changeGroup != null) {
changeGroup.Abort();
changeGroup = null;
}
if (services.Tool.CurrentTool is CreateComponentTool) {
services.Tool.CurrentTool = services.Tool.PointerTool;
}

9
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj

@ -165,10 +165,6 @@ @@ -165,10 +165,6 @@
<Compile Include="PropertyGrid\Editors\BrushEditor\BrushTypeEditor.xaml.cs">
<DependentUpon>BrushTypeEditor.xaml</DependentUpon>
</Compile>
<Compile Include="PropertyGrid\Editors\BrushEditor\ColorHelper.cs" />
<Compile Include="PropertyGrid\Editors\BrushEditor\ColorPicker.xaml.cs">
<DependentUpon>ColorPicker.xaml</DependentUpon>
</Compile>
<Compile Include="PropertyGrid\Editors\BrushEditor\GradientBrushEditor.xaml.cs">
<DependentUpon>GradientBrushEditor.xaml</DependentUpon>
</Compile>
@ -176,7 +172,6 @@ @@ -176,7 +172,6 @@
<DependentUpon>GradientSlider.xaml</DependentUpon>
</Compile>
<Compile Include="PropertyGrid\Editors\BrushEditor\NormalizedPanel.cs" />
<Compile Include="PropertyGrid\Editors\BrushEditor\Picker.cs" />
<Compile Include="PropertyGrid\Editors\BrushEditor\SolidBrushEditor.xaml.cs">
<DependentUpon>SolidBrushEditor.xaml</DependentUpon>
</Compile>
@ -279,10 +274,6 @@ @@ -279,10 +274,6 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="PropertyGrid\Editors\BrushEditor\ColorPicker.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="PropertyGrid\Editors\BrushEditor\GradientBrushEditor.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>

27
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/Designer/EditOperationTests.cs

@ -1,16 +1,41 @@ @@ -1,16 +1,41 @@
// 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.Threading;
using System.Windows;
using NUnit.Framework;
using ICSharpCode.WpfDesign.Designer.Xaml;
using ICSharpCode.WpfDesign.XamlDom;
using NUnit.Framework;
namespace ICSharpCode.WpfDesign.Tests.Designer
{
[TestFixture]
public class EditOperationTests : ModelTestHelper
{
Mutex mutex;
[TestFixtureSetUp]
public void FixtureSetUp()
{
// Avoid test failure on build server when unit tests for several branches are run concurrently.
bool createdNew;
mutex = new Mutex(true, "ClipboardUnitTest", out createdNew);
if (!createdNew) {
if (!mutex.WaitOne(10000)) {
throw new Exception("Could not acquire mutex");
}
}
}
[TestFixtureTearDown]
public void FixtureTearDown()
{
mutex.ReleaseMutex();
mutex.Dispose();
}
[Test]
public void Cut()
{

31
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlDocument.cs

@ -44,22 +44,24 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -44,22 +44,24 @@ namespace ICSharpCode.WpfDesign.XamlDom
/// type descriptor context needs to resolve an XML namespace.</param>
internal ITypeDescriptorContext GetTypeDescriptorContext(XamlObject containingObject)
{
return new DummyTypeDescriptorContext(this, containingObject);
IServiceProvider serviceProvider;
if (containingObject != null) {
if (containingObject.OwnerDocument != this)
throw new ArgumentException("Containing object must belong to the document!");
serviceProvider = containingObject.ServiceProvider;
} else {
serviceProvider = this.ServiceProvider;
}
return new DummyTypeDescriptorContext(serviceProvider);
}
sealed class DummyTypeDescriptorContext : ITypeDescriptorContext
{
IServiceProvider baseServiceProvider;
readonly IServiceProvider baseServiceProvider;
public DummyTypeDescriptorContext(XamlDocument document, XamlObject containingObject)
public DummyTypeDescriptorContext(IServiceProvider serviceProvider)
{
if (containingObject != null) {
if (containingObject.OwnerDocument != document)
throw new ArgumentException("Containing object must belong to the document!");
baseServiceProvider = containingObject.ServiceProvider;
} else {
baseServiceProvider = document.ServiceProvider;
}
this.baseServiceProvider = serviceProvider;
}
public IContainer Container {
@ -67,7 +69,7 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -67,7 +69,7 @@ namespace ICSharpCode.WpfDesign.XamlDom
}
public object Instance {
get { return null; }
get; set;
}
public PropertyDescriptor PropertyDescriptor {
@ -157,10 +159,11 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -157,10 +159,11 @@ namespace ICSharpCode.WpfDesign.XamlDom
Type elementType = instance.GetType();
TypeConverter c = TypeDescriptor.GetConverter(instance);
bool hasStringConverter = c.CanConvertTo(typeof(string)) && c.CanConvertFrom(typeof(string));
var ctx = new DummyTypeDescriptorContext(this.ServiceProvider);
ctx.Instance = instance;
bool hasStringConverter = c.CanConvertTo(ctx, typeof(string)) && c.CanConvertFrom(typeof(string));
if (forProperty != null && hasStringConverter) {
return new XamlTextValue(this, c.ConvertToInvariantString(instance));
return new XamlTextValue(this, c.ConvertToInvariantString(ctx, instance));
}

16
src/AddIns/Misc/HelpViewer/Source/Controls/TocEntry.cs

@ -34,11 +34,17 @@ namespace MSHelpSystem.Controls @@ -34,11 +34,17 @@ namespace MSHelpSystem.Controls
client.DownloadStringCompleted += (_, e) =>
{
LoggingService.Debug(string.Format("Help 3.0: title \"{0}\"", Title));
var children = XElement.Parse(e.Result);
Children = children.Elements("topic")
.Select(link => new TocEntry(link.Attribute("id").Value) { Title = link.Element("title").Value })
.ToArray();
try {
LoggingService.Debug(string.Format("Help 3.0: title \"{0}\"", Title));
var children = XElement.Parse(e.Result);
Children = children.Elements("topic")
.Select(link => new TocEntry(link.Attribute("id").Value) { Title = link.Element("title").Value })
.ToArray();
} catch (TargetInvocationException ex) {
// Exception when fetching e.Result:
LoggingService.Warn(ex);
this.children = defaultChild;
}
client.Dispose();
};
RaisePropertyChanged("Children");

37
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs

@ -2,13 +2,8 @@ @@ -2,13 +2,8 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Globalization;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.Reports.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.Reports.Core.ReportViewer;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.Reports.Addin.Commands
@ -16,8 +11,6 @@ namespace ICSharpCode.Reports.Addin.Commands @@ -16,8 +11,6 @@ namespace ICSharpCode.Reports.Addin.Commands
public class AbstractPreviewCommand :AbstractCommand
{
ReportModel model;
ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer;
public AbstractPreviewCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer)
{
@ -28,31 +21,29 @@ namespace ICSharpCode.Reports.Addin.Commands @@ -28,31 +21,29 @@ namespace ICSharpCode.Reports.Addin.Commands
throw new ArgumentNullException("reportViewer");
}
this.model = model;
this.reportViewer = reportViewer;
this.Model = model;
this.ReportViewer = reportViewer;
}
public override void Run()
{
CollectParametersCommand sql = new CollectParametersCommand(model);
sql.Run();
CollectParametersCommand cmd = new CollectParametersCommand(Model);
cmd.Run();
}
public ICSharpCode.Reports.Core.ReportViewer.PreviewControl ReportViewer {
get { return reportViewer; }
}
public ICSharpCode.Reports.Core.ReportViewer.PreviewControl ReportViewer {get;private set;}
public ReportModel Model {get;private set;}
public ReportModel Model {
get { return this.model; }
}
}
public class AsyncFormsSheetPreviewCommand:AbstractPreviewCommand
public class FormSheetToReportViewerCommand:AbstractPreviewCommand
{
public AsyncFormsSheetPreviewCommand(ReportModel model,
public FormSheetToReportViewerCommand(ReportModel model,
ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer)
{
}
@ -65,10 +56,10 @@ namespace ICSharpCode.Reports.Addin.Commands @@ -65,10 +56,10 @@ namespace ICSharpCode.Reports.Addin.Commands
}
public class AsyncPullModelPreviewCommand:AbstractPreviewCommand
public class PullModelToReportViewerCommand:AbstractPreviewCommand
{
public AsyncPullModelPreviewCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer)
public PullModelToReportViewerCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer)
{
}
@ -81,9 +72,9 @@ namespace ICSharpCode.Reports.Addin.Commands @@ -81,9 +72,9 @@ namespace ICSharpCode.Reports.Addin.Commands
}
public class AsyncPushModelPreviewCommand:AbstractPreviewCommand
public class PushModelToReportViewerCommand:AbstractPreviewCommand
{
public AsyncPushModelPreviewCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer)
public PushModelToReportViewerCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer)
{
}

71
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs

@ -5,13 +5,20 @@ using System; @@ -5,13 +5,20 @@ using System;
using System.Collections;
using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization;
using System.Data;
using System.Drawing.Design;
using System.Drawing.Printing;
using System.IO;
using System.Text;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.Reports.Addin.Commands;
using ICSharpCode.Reports.Addin.Designer;
using ICSharpCode.Reports.Core;
using ICSharpCode.Reports.Core.BaseClasses.Printing;
using ICSharpCode.Reports.Core.Exporter;
using ICSharpCode.Reports.Core.Exporter.ExportRenderer;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
@ -185,21 +192,11 @@ namespace ICSharpCode.Reports.Addin @@ -185,21 +192,11 @@ namespace ICSharpCode.Reports.Addin
LoggingService.Debug("FormsDesigner loaded, setting ActiveDesignSurface to " + this.designSurface.ToString());
designSurfaceManager.ActiveDesignSurface = this.designSurface;
this.UpdatePropertyPad();
} else {
// This method can not only be called during initialization,
// but also when the designer reloads itself because of
// a language change.
// When a load error occurs there, we are not somewhere
// below the Load method which handles load errors.
// That is why we create an error text box here anyway.
// TextBox errorTextBox = new TextBox() { Multiline=true, ScrollBars=ScrollBars.Both, ReadOnly=true, BackColor=SystemColors.Window, Dock=DockStyle.Fill };
// errorTextBox.Text = String.Concat(this.LoadErrorHeaderText, FormatLoadErrors(designSurface));
// this.UserContent = errorTextBox;
}
}
private void CreatePanel ()
{
this.panel = new Panel();
@ -220,10 +217,6 @@ namespace ICSharpCode.Reports.Addin @@ -220,10 +217,6 @@ namespace ICSharpCode.Reports.Addin
{
LoggingService.Debug("Forms designer: DesignerLoader unloading...");
this.unloading = true;
// if (!this.disposing) {
// this.UserContent = this.pleaseWaitLabel;
// Application.DoEvents();
// }
}
@ -284,7 +277,6 @@ namespace ICSharpCode.Reports.Addin @@ -284,7 +277,6 @@ namespace ICSharpCode.Reports.Addin
this.MakeDirty();
ReportExplorerPad explorerPad = CheckReportExplorer();
IComponentChangeService change = Host.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
// change.OnComponentChanged(explorerPad.ReportModel.ReportSettings.SortColumnsCollection, null, null, null);
change.OnComponentChanged(explorerPad, null, null, null);
}
@ -557,16 +549,47 @@ namespace ICSharpCode.Reports.Addin @@ -557,16 +549,47 @@ namespace ICSharpCode.Reports.Addin
#region IPrintable
public System.Drawing.Printing.PrintDocument PrintDocument {
public PrintDocument PrintDocument
{
get {
ICSharpCode.Reports.Core.ReportModel model = this.loader.CreateRenderableModel();
StandartPreviewManager reportManager = new StandartPreviewManager();
ICSharpCode.Reports.Core.AbstractRenderer r = reportManager.CreateRenderer (model);
r.ReportDocument.PrintController = new ICSharpCode.Reports.Core.ExtendedPrintController(new System.Drawing.Printing.PreviewPrintController());
return r.ReportDocument;
ReportModel model = loader.CreateRenderableModel();
IReportCreator reportCreator = null;
var paramCmd = new CollectParametersCommand(model);
paramCmd.Run();
switch (model.DataModel) {
case GlobalEnums.PushPullModel.FormSheet :
{
reportCreator = FormPageBuilder.CreateInstance(model);
break;
}
case GlobalEnums.PushPullModel.PullData:
{
IDataManager dataManager = DataManagerFactory.CreateDataManager(model,(ReportParameters)null);
reportCreator = DataPageBuilder.CreateInstance(model,dataManager);
break;
}
case GlobalEnums.PushPullModel.PushData:{
var cmd = new ICSharpCode.Reports.Addin.Commands.DataSetFromXsdCommand();
cmd.Run();
DataSet ds = cmd.DataSet;
IDataManager dataManager = DataManagerFactory.CreateDataManager(model,ds.Tables[0]);
reportCreator = DataPageBuilder.CreateInstance(model,dataManager);
break;
}
default:
throw new InvalidReportModelException();
}
reportCreator.BuildExportList();
PrintRenderer printer = PrintRenderer.CreateInstance(reportCreator.Pages);
printer.Start();
printer.RenderOutput();
printer.End();
return printer.PrintDocument;
}
}
#endregion

4
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs

@ -20,14 +20,14 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -20,14 +20,14 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
public LayoutPanel()
{
base.EnableFinish = true;
base.EnableFinish = true;
base.EnableCancel = true;
base.EnableNext = true;
base.Refresh();
layoutControl = new LayoutPanelControl();
layoutControl.Location = new Point (20,20);
this.Controls.Add(layoutControl);
}

28
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanelControl.Designer.cs generated

@ -32,38 +32,50 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -32,38 +32,50 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
private void InitializeComponent()
{
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.comboBox1 = new System.Windows.Forms.ComboBox();
this.checkBox1 = new System.Windows.Forms.CheckBox();
this.radioTableLayout = new System.Windows.Forms.RadioButton();
this.radioListLayout = new System.Windows.Forms.RadioButton();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Controls.Add(this.comboBox1);
this.groupBox1.Controls.Add(this.groupBox2);
this.groupBox1.Controls.Add(this.checkBox1);
this.groupBox1.Controls.Add(this.radioTableLayout);
this.groupBox1.Controls.Add(this.radioListLayout);
this.groupBox1.Location = new System.Drawing.Point(17, 18);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(232, 205);
this.groupBox1.Size = new System.Drawing.Size(232, 242);
this.groupBox1.TabIndex = 2;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Report Layout";
//
// groupBox2
//
this.groupBox2.Controls.Add(this.comboBox1);
this.groupBox2.Location = new System.Drawing.Point(55, 146);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(200, 64);
this.groupBox2.TabIndex = 6;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "groupBox2";
this.groupBox2.Visible = false;
//
// comboBox1
//
this.comboBox1.FormattingEnabled = true;
this.comboBox1.Location = new System.Drawing.Point(64, 160);
this.comboBox1.Location = new System.Drawing.Point(6, 28);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(121, 21);
this.comboBox1.TabIndex = 5;
this.comboBox1.Visible = false;
this.comboBox1.TabIndex = 6;
//
// checkBox1
//
this.checkBox1.Location = new System.Drawing.Point(64, 116);
this.checkBox1.Location = new System.Drawing.Point(64, 106);
this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(104, 24);
this.checkBox1.TabIndex = 4;
@ -97,10 +109,12 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -97,10 +109,12 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBox1);
this.Name = "LayoutPanelControl";
this.Size = new System.Drawing.Size(270, 252);
this.Size = new System.Drawing.Size(331, 284);
this.groupBox1.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
this.ResumeLayout(false);
}
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.CheckBox checkBox1;
private System.Windows.Forms.ComboBox comboBox1;
private System.Windows.Forms.RadioButton radioTableLayout;

11
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanelControl.cs

@ -5,6 +5,8 @@ using System; @@ -5,6 +5,8 @@ using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.Reports.Core;
namespace ICSharpCode.Reports.Addin.ReportWizard
@ -22,6 +24,11 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -22,6 +24,11 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
public LayoutPanelControl()
{
InitializeComponent();
groupBox1.Text = ResourceService.GetString("SharpReport.Wizard.Layout.ReportLayout");
radioListLayout.Text = ResourceService.GetString("SharpReport.Wizard.Layout.ListLayout");
radioTableLayout.Text = ResourceService.GetString("SharpReport.Wizard.Layout.TableLayout");
groupBox2.Text = ResourceService.GetString("SharpReport.Wizard.Layout.Column");
checkBox1.Text = ResourceService.GetString("SharpReport.Wizard.Layout.Grouping");
}
@ -49,6 +56,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -49,6 +56,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
}
}
public GlobalEnums.ReportLayout ReportLayout {
get {
GetLayout();
@ -61,7 +69,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -61,7 +69,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
void CheckBox1CheckedChanged(object sender, System.EventArgs e)
{
comboBox1.Visible = checkBox1.Checked;
//comboBox1.Visible = checkBox1.Checked;
this.groupBox2.Visible = checkBox1.Checked;
}

22
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs

@ -28,7 +28,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -28,7 +28,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
private System.Windows.Forms.Label label3;
private bool firstDrag;
private string connectionString;
private CommandType commandType;
// private CommandType commandType;
private ReportStructure reportStructure;
private Properties customizer;
private IDatabaseObjectBase currentNode;
@ -60,7 +60,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -60,7 +60,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
base.EnableCancel = true;
this.firstDrag = true;
base.IsLastPanel = false;
commandType = CommandType.Text;
//commandType = CommandType.Text;
this.txtSqlString.Enabled = false;
this.databasesTreeHost = new ElementHost() { Dock = DockStyle.Fill };
@ -90,12 +90,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -90,12 +90,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
}
if (message == DialogMessage.Next) {
commandType = CommandType.Text;
customizer.Set("SqlString", this.txtSqlString.Text.Trim());
reportStructure.CommandType = commandType;
//reportStructure.CommandType = commandType;
reportStructure.SqlString = this.txtSqlString.Text.Trim();
reportStructure.ConnectionString = connectionString;
base.EnableFinish = true;
@ -123,6 +119,9 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -123,6 +119,9 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
if (e.Data.GetFormats().Length > 0)
{
string draggedFormat = e.Data.GetFormats()[0];
String str = String.Format("drag {0}",draggedFormat);
System.Diagnostics.Trace.WriteLine(str);
Type draggedType = null;
@ -173,9 +172,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -173,9 +172,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
// we insert Select * from.... otherwise we have to scan
//the whole string for incorrect columnNames
this.txtSqlString.Clear();
// AbstractSharpQuerySchemaClass tbl = (AbstractSharpQuerySchemaClass)this.currentNode.SchemaClass;
this.txtSqlString.Text = "SELECT * FROM " + (draggedObject as ICSharpCode.Data.Core.Interfaces.ITable).Name;
reportStructure.CommandType = CommandType.Text;
break;
case NodeType.ColumnImage:
@ -184,9 +182,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -184,9 +182,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
{
this.txtSqlString.AppendText("SELECT ");
this.txtSqlString.AppendText(colName);
}
//FxCop : http://msdn.microsoft.com/library/bb386042(VS.100).aspx
else if (this.txtSqlString.Text.ToUpper(CultureInfo.InvariantCulture).IndexOf("where", StringComparison.OrdinalIgnoreCase) > 0)
{
this.txtSqlString.AppendText(colName + " = ?");
@ -196,6 +193,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -196,6 +193,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
this.txtSqlString.AppendText(", ");
this.txtSqlString.AppendText(colName);
}
reportStructure.CommandType = CommandType.Text;
break;
case NodeType.ProcedureImage:
@ -204,7 +202,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -204,7 +202,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
// we can't use the dragobject because it returns an string like 'EXECUTE ProcName'
IProcedure procedure = draggedObject as IProcedure;
this.txtSqlString.Text = "EXECUTE " + procedure.Name;
reportStructure.CommandType = CommandType.StoredProcedure;
// reportStructure.SharpQueryProcedure = new SharpQueryProcedure(new SharpQuery.Connection.OLEDBConnectionWrapper(this.connectionString), procedure.Parent.Name, procedure.SchemaName, string.Empty, procedure.Name);
break;

43
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs

@ -50,6 +50,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -50,6 +50,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
#endregion
#region Fill data
private DataSet FillGrid()
@ -62,7 +63,23 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -62,7 +63,23 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
model.ReportSettings.CommandText);
DataSet dataSet = ResultPanel.CreateDataSet ();
this.txtSqlString.Text = model.ReportSettings.CommandText;
switch (model.ReportSettings.CommandType) {
case CommandType.Text:
this.txtSqlString.Text = model.ReportSettings.CommandText;
dataSet = BuildFromSqlString();
break;
case CommandType.StoredProcedure:
MessageService.ShowError("Stored Procedures are not suppurted at the moment");
break;
case CommandType.TableDirect:
MessageService.ShowError("TableDirect is not suppurted at the moment");
break;
default:
throw new Exception("Invalid value for CommandType");
}
if (model.ReportSettings.CommandType == CommandType.StoredProcedure){
/*
if (reportStructure.SharpQueryProcedure == null) {
@ -81,10 +98,10 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -81,10 +98,10 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
}
// from here we create from an SqlString like "Select...."
if (model.ReportSettings.CommandType == CommandType.Text){
this.txtSqlString.Text = model.ReportSettings.CommandText;
dataSet = BuildFromSqlString();
}
// if (model.ReportSettings.CommandType == CommandType.Text){
// this.txtSqlString.Text = model.ReportSettings.CommandText;
// dataSet = BuildFromSqlString();
// }
return dataSet;
}
@ -247,6 +264,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -247,6 +264,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
#endregion
#region overrides
public override bool ReceiveDialogMessage(DialogMessage message)
@ -257,9 +275,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -257,9 +275,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
}
if (message == DialogMessage.Activated)
{
this.model = reportStructure.CreateAndFillReportModel();
this.resultDataSet = FillGrid();
SetupGrid ();
ShowData();
base.EnableNext = true;
base.EnableFinish = true;
@ -281,6 +297,17 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -281,6 +297,17 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
}
void ShowData()
{
this.model = reportStructure.CreateAndFillReportModel();
this.resultDataSet = FillGrid();
if (resultDataSet.Tables.Count > 0) {
SetupGrid ();
}
}
private void SetupGrid()
{
if (this.resultDataSet != null) {

6
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportViewerSecondaryView.cs

@ -50,15 +50,15 @@ namespace ICSharpCode.Reports.Addin @@ -50,15 +50,15 @@ namespace ICSharpCode.Reports.Addin
AbstractPreviewCommand cmd = null;
switch (model.DataModel) {
case GlobalEnums.PushPullModel.FormSheet : {
cmd = new AsyncFormsSheetPreviewCommand (model,control);
cmd = new FormSheetToReportViewerCommand (model,control);
break;
}
case GlobalEnums.PushPullModel.PullData:{
cmd = new AsyncPullModelPreviewCommand(model,control);
cmd = new PullModelToReportViewerCommand(model,control);
break;
}
case GlobalEnums.PushPullModel.PushData:{
cmd = new AsyncPushModelPreviewCommand(model,control);
cmd = new PushModelToReportViewerCommand(model,control);
break;
}
default:

29
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Toolbox/ToolboxProvider.cs

@ -15,6 +15,9 @@ using ICSharpCode.SharpDevelop.Widgets.SideBar; @@ -15,6 +15,9 @@ using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.Reports.Addin
{
//http://developer.sharpdevelop.net/corsavy/translation/default.asp
internal sealed class ReportingSideTabProvider
{
@ -61,39 +64,41 @@ namespace ICSharpCode.Reports.Addin @@ -61,39 +64,41 @@ namespace ICSharpCode.Reports.Addin
tb.Bitmap = WinFormsResourceService.GetIcon("Icons.16.16.SharpReport.Textbox").ToBitmap();
sideTab.Items.Add(new SideTabItemDesigner(tb));
// Row
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseRowItem));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.DataRow");
sideTab.Items.Add(new SideTabItemDesigner(tb));
//GroupHeader
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.GroupHeader));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
tb.DisplayName = "GroupHeader";
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.NameSpace");
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.GroupHeader");
sideTab.Items.Add(new SideTabItemDesigner(tb));
//GroupFooter
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.GroupFooter));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
tb.DisplayName = "GroupFooter";
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.NameSpace");
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.GroupFooter");
sideTab.Items.Add(new SideTabItemDesigner(tb));
// Row
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseRowItem));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.DataRow");
sideTab.Items.Add(new SideTabItemDesigner(tb));
//BaseTable
// tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseTableItem));
tb.DisplayName ="Table";
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.Table");
sideTab.Items.Add(new SideTabItemDesigner(tb));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
//BaseDataItem
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseDataItem));
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.DataField");
// tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Column");
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Column");
sideTab.Items.Add(new SideTabItemDesigner(tb));
//Grahics

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj

@ -252,7 +252,6 @@ @@ -252,7 +252,6 @@
<Compile Include="Project\Globals\UnitConverter.cs" />
<Compile Include="Project\Interfaces\IDataAccessStrategy.cs" />
<Compile Include="Project\Interfaces\IDataViewStrategy.cs" />
<Compile Include="Project\Interfaces\IHierarchyInterfaces.cs" />
<Compile Include="Project\Interfaces\IItemConverter.cs" />
<Compile Include="Project\Interfaces\ILayouter.cs" />
<Compile Include="Project\Interfaces\IReportItem.cs" />
@ -260,7 +259,6 @@ @@ -260,7 +259,6 @@
<Compile Include="Project\Interfaces\IReportModel.cs" />
<Compile Include="Project\Interfaces\ISinglePage.cs" />
<Compile Include="Project\IReportCreator.cs" />
<Compile Include="Project\Printing\ExtendedPrintController.cs" />
<Compile Include="Project\Printing\Graphics\BaseLine.cs" />
<Compile Include="Project\Printing\Graphics\BaseShape.cs" />
<Compile Include="Project\Printing\Graphics\Border.cs" />

12
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs

@ -33,8 +33,8 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -33,8 +33,8 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
return Rectangle.Empty;
}
Console.WriteLine("\tlayouter for container <{0}>",container.ToString());
// Console.WriteLine("\tlayouter for container <{0}>",container.ToString());
Console.WriteLine("\tLayouter for Container");
Rectangle desiredContainerRectangle = new Rectangle (container.Location,container.Size);
System.Collections.Generic.IEnumerable<BaseReportItem> canGrowShrinkCollection = from bt in container.Items where bt.CanGrow == true select bt;
@ -58,7 +58,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -58,7 +58,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
//
// Console.WriteLine("Diff {0} - {1} dif {2}",desiredContainerRectangle,r1,desiredContainerRectangle.Height - r1.Height);
}
Console.WriteLine("\tContainer : {0} - DesiredContainerRectangle {1} ",container.Size,desiredContainerRectangle.Size);
// Console.WriteLine("\tContainer : {0} - DesiredContainerRectangle {1} ",container.Size,desiredContainerRectangle.Size);
return desiredContainerRectangle;
}
@ -72,8 +72,8 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -72,8 +72,8 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
throw new ArgumentNullException("section");
}
Console.WriteLine("\tlayouter for section <{0}>",section.Name);
// Console.WriteLine("\tLayouter for Container");Console.WriteLine("\tlayouter for section <{0}>",section.Name);
Console.WriteLine("\tLayouter for Section");
IEnumerable<BaseReportItem> canGrowShrinkCollection = from bt in section.Items where bt.CanGrow == true select bt;
Rectangle desiredSectionRectangle = new Rectangle(section.Location.X,
@ -93,7 +93,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -93,7 +93,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
surroundingRec.Size.Height);
}
}
Console.WriteLine("\tSection : {0} - DesiredContainerRectangle {1} ",section.Size,desiredSectionRectangle.Size);
// Console.WriteLine("\tSection : {0} - DesiredContainerRectangle {1} ",section.Size,desiredSectionRectangle.Size);
return desiredSectionRectangle;
}

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Collections/Collections.cs

@ -143,7 +143,6 @@ namespace ICSharpCode.Reports.Core{ @@ -143,7 +143,6 @@ namespace ICSharpCode.Reports.Core{
protected override void RemoveItem(int index)
{
BaseReportItem item = this[index];
base.RemoveItem(index);
}

45
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataManager.cs

@ -191,23 +191,7 @@ namespace ICSharpCode.Reports.Core { @@ -191,23 +191,7 @@ namespace ICSharpCode.Reports.Core {
}
}
/*
private void CheckReportColumns()
{
if (this.reportSettings.SortColumnCollection.Count > 0) {
if (this.dataViewStrategy.AvailableFields.Count > 0) {
foreach (SortColumn col in this.reportSettings.SortColumnCollection) {
string colName = col.ColumnName;
AbstractColumn c = this.dataViewStrategy.AvailableFields.Find (colName);
if (c == null) {
throw new WrongColumnException(col.ColumnName);
}
}
}
}
}
*/
#endregion
@ -245,23 +229,6 @@ namespace ICSharpCode.Reports.Core { @@ -245,23 +229,6 @@ namespace ICSharpCode.Reports.Core {
}
}
/*
public IndexList ChildRows
{
get {
return this.dataViewStrategy.ChildRows;
}
}
public bool IsGrouped
{
get {
return this.dataViewStrategy.IsGrouped;
}
}
*/
public bool IsSorted
{
@ -270,17 +237,11 @@ namespace ICSharpCode.Reports.Core { @@ -270,17 +237,11 @@ namespace ICSharpCode.Reports.Core {
}
}
/*
public bool IsFiltered
{
get {
return this.dataViewStrategy.IsFiltered;
}
}
*/
#endregion
#region System.IDisposable interface implementation
public void Dispose() {
this.Dispose(true);
GC.SuppressFinalize(this);

4
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs

@ -130,7 +130,7 @@ namespace ICSharpCode.Reports.Core { @@ -130,7 +130,7 @@ namespace ICSharpCode.Reports.Core {
#endregion
#region Debug Code
/*
protected static void ShowIndexList (IndexList list)
{
@ -151,7 +151,7 @@ namespace ICSharpCode.Reports.Core { @@ -151,7 +151,7 @@ namespace ICSharpCode.Reports.Core {
}
}
}
*/
#endregion
public virtual void Reset()

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/SqlDataAccess.cs

@ -14,7 +14,7 @@ namespace ICSharpCode.Reports.Core @@ -14,7 +14,7 @@ namespace ICSharpCode.Reports.Core
/// </summary>
///
public class SqlDataAccessStrategy:IDataAccessStrategy
internal class SqlDataAccessStrategy:IDataAccessStrategy
{
private ConnectionObject connectionObject;
private ReportSettings reportSettings;

11
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs

@ -27,16 +27,15 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -27,16 +27,15 @@ namespace ICSharpCode.Reports.Core.Exporter
#region Constructor
public BasePager(IReportModel reportModel,ILayouter layouter)
public BasePager(IReportModel reportModel)
{
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
}
if (layouter == null) {
throw new ArgumentNullException ("layouter");
}
this.ReportModel = reportModel;
this.Layouter = layouter;
//this.Layouter = layouter;
this.Layouter = new Layouter();
this.Graphics = CreateGraphicObject.FromSize(this.ReportModel.ReportSettings.PageSize);
}
@ -210,7 +209,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -210,7 +209,7 @@ namespace ICSharpCode.Reports.Core.Exporter
ExportText et = be as ExportText;
if (et != null) {
if (et.Text.StartsWith("=")) {
if (et.Text.StartsWith("=",StringComparison.InvariantCulture)) {
et.Text = evaluatorFassade.Evaluate(et.Text);
}
}

47
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs

@ -78,7 +78,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -78,7 +78,7 @@ namespace ICSharpCode.Reports.Core.Exporter
if (row == null) {
throw new ArgumentException("row");
}
Console.WriteLine("\tFireRowRendering");
// Console.WriteLine("\tFireRowRendering");
RowRenderEventArgs rrea = new RowRenderEventArgs(row,currentNavigator.Current);
EventHelper.Raise<RowRenderEventArgs>(RowRendering,this,rrea);
}
@ -86,7 +86,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -86,7 +86,7 @@ namespace ICSharpCode.Reports.Core.Exporter
protected void FireGroupHeaderRendering (GroupHeader groupHeader)
{
Console.WriteLine("\tFireGroupHeaderRendering");
// Console.WriteLine("\tFireGroupHeaderRendering");
GroupHeaderEventArgs ghea = new GroupHeaderEventArgs(groupHeader);
EventHelper.Raise<GroupHeaderEventArgs>(GroupHeaderRendering,this,ghea);
}
@ -94,7 +94,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -94,7 +94,7 @@ namespace ICSharpCode.Reports.Core.Exporter
protected void FireGroupFooterRendering (GroupFooter groupFooter)
{
Console.WriteLine("\tFireGroupFooterRendering");
// Console.WriteLine("\tFireGroupFooterRendering");
GroupFooterEventArgs gfea = new GroupFooterEventArgs(groupFooter);
EventHelper.Raise<GroupFooterEventArgs>(GroupFooterRendering,this,gfea);
}
@ -136,27 +136,18 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -136,27 +136,18 @@ namespace ICSharpCode.Reports.Core.Exporter
#region Grouping
protected void ConvertGroupFooter (BaseSection section,ISimpleContainer container,ExporterCollection exporterCollection)
protected void ConvertGroupFooter (ISimpleContainer container,ExporterCollection exporterCollection)
{
var footers = BaseConverter.FindGroupFooter(container);
if (footers.Count > 0) {
Size rowSize = footers[0].Size;
CurrentPosition = ConvertStandardRow(exporterCollection,section,(ISimpleContainer)footers[0]);
CurrentPosition = ConvertStandardRow(exporterCollection,(ISimpleContainer)footers[0]);
FireGroupFooterRendering(footers[0]);
footers[0].Size = rowSize;
}
}
protected Point ConvertGroupChilds(ExporterCollection mylist, BaseSection section,
ISimpleContainer simpleContainer)
{
PrepareContainerForConverting(section,simpleContainer);
Point curPos = ConvertContainer(mylist,simpleContainer,DefaultLeftPosition,CurrentPosition);
AfterConverting (mylist);
return curPos;
}
protected void PageBreakAfterGroupChange(BaseSection section,ExporterCollection exporterCollection)
{
@ -247,21 +238,25 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -247,21 +238,25 @@ namespace ICSharpCode.Reports.Core.Exporter
}
protected Point ConvertStandardRow(ExporterCollection mylist, BaseSection section, ISimpleContainer simpleContainer)
protected void PrepareContainerForConverting(BaseSection section,ISimpleContainer simpleContainer)
{
Console.WriteLine("\tPrepareContainerForConverting");
FireSectionRendering(section);
LayoutRow(simpleContainer);
}
protected Point ConvertStandardRow(ExporterCollection mylist, ISimpleContainer simpleContainer)
{
var rowSize = simpleContainer.Size;
PrepareContainerForConverting(section,simpleContainer);
Console.WriteLine("ConvertStandardRow");
Point curPos = ConvertContainer(mylist,simpleContainer,DefaultLeftPosition,CurrentPosition);
AfterConverting (mylist);
simpleContainer.Size = rowSize;
Console.WriteLine("");
return curPos;
}
protected void PrepareContainerForConverting(BaseSection section,ISimpleContainer simpleContainer)
{
FireSectionRendering(section);
LayoutRow(simpleContainer);
}
@ -279,10 +274,10 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -279,10 +274,10 @@ namespace ICSharpCode.Reports.Core.Exporter
}
protected void FillRow (ISimpleContainer row)
protected static void FillRow (ISimpleContainer row,IDataNavigator currentNavigator)
{
Console.WriteLine("\tFillRow");
DataNavigator.Fill(row.Items);
Console.WriteLine("\tFillrow");
currentNavigator.Fill(row.Items);
}

30
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs

@ -96,21 +96,22 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -96,21 +96,22 @@ namespace ICSharpCode.Reports.Core.Exporter
StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor);
do
{
Console.WriteLine("");
section.Size = base.RestoreSectionSize;
section.Items[0].Size = groupSize;
section.Items[1].Size = childSize;
Console.WriteLine("\tFillRow");
childNavigator.Fill(simpleContainer.Items);
base.CurrentPosition = ConvertGroupChilds (exporterCollection,section,simpleContainer);
FillRow(simpleContainer,childNavigator);
FireRowRendering(simpleContainer,childNavigator);
PrepareContainerForConverting(section,simpleContainer);
// FireRowRendering(simpleContainer,childNavigator);
base.CurrentPosition = ConvertStandardRow(exporterCollection,simpleContainer);
CheckForPageBreak(section,exporterCollection);
Console.WriteLine("");
}
while ( childNavigator.MoveNext());
// GroupFooter
base.ConvertGroupFooter(section,section,exporterCollection);
base.ConvertGroupFooter(section,exporterCollection);
base.PageBreakAfterGroupChange(section,exporterCollection);
@ -120,15 +121,15 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -120,15 +121,15 @@ namespace ICSharpCode.Reports.Core.Exporter
else
{
// No Grouping at all, the first item in section.items is the DetailRow
Console.WriteLine("");
Size containerSize = section.Items[0].Size;
base.FillRow(simpleContainer);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer);
base.FireRowRendering(simpleContainer,base.DataNavigator);
FillRow(simpleContainer,base.DataNavigator);
FireRowRendering(simpleContainer,base.DataNavigator);
base.PrepareContainerForConverting(section,simpleContainer);
// FireRowRendering(simpleContainer,base.DataNavigator);
base.CurrentPosition = ConvertStandardRow (exporterCollection,simpleContainer);
section.Size = base.RestoreSectionSize;
section.Items[0].Size = containerSize;
Console.WriteLine("");
}
CheckForPageBreak (section,exporterCollection);
ShouldDrawBorder (section,exporterCollection);
@ -185,10 +186,11 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -185,10 +186,11 @@ namespace ICSharpCode.Reports.Core.Exporter
AfterConverting (list);
retVal = new Point (DefaultLeftPosition,offset.Y + groupCollection[0].Size.Height + 20 + (3 *GlobalValues.GapBetweenContainer));
} else {
FillRow(groupedRows[0]);
FillRow(groupedRows[0],base.DataNavigator);
rowSize = groupedRows[0].Size;
retVal = ConvertStandardRow(exportList,section,groupedRows[0]);
base.FireGroupHeaderRendering(groupedRows[0]);
retVal = ConvertStandardRow(exportList,groupedRows[0]);
groupedRows[0].Size = rowSize;
}
return retVal;

43
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs

@ -38,7 +38,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -38,7 +38,7 @@ namespace ICSharpCode.Reports.Core.Exporter
ExporterCollection mylist = base.Convert(parent,item);
this.table = (BaseTableItem)item ;
this.table.Parent = parent;
this.table.DataNavigator = base.DataNavigator;
// this.table.DataNavigator = base.DataNavigator;
return ConvertInternal(mylist);
}
@ -95,7 +95,14 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -95,7 +95,14 @@ namespace ICSharpCode.Reports.Core.Exporter
childNavigator.Reset();
childNavigator.MoveNext();
/*
---- GroupTableConverter.cs Zeile 151:
FillRow(simpleContainer,base.DataNavigator);
FireRowRendering(simpleContainer,base.DataNavigator);
base.PrepareContainerForConverting(section,simpleContainer);
----
*/
//Convert children
if (childNavigator != null) {
do
@ -104,10 +111,12 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -104,10 +111,12 @@ namespace ICSharpCode.Reports.Core.Exporter
simpleContainer = table.Items[2] as ISimpleContainer;
containerSize = simpleContainer.Size;
childNavigator.Fill(simpleContainer.Items);
base.CurrentPosition = ConvertGroupChilds (exporterCollection,section,simpleContainer);
FillRow(simpleContainer,childNavigator);
// PrepareContainerForConverting(section,simpleContainer);
FireRowRendering(simpleContainer,childNavigator);
PrepareContainerForConverting(section,simpleContainer);
base.CurrentPosition = ConvertStandardRow(exporterCollection,simpleContainer);
simpleContainer.Size = containerSize;
CheckForPageBreak(section,simpleContainer,headerRow,exporterCollection);
@ -115,7 +124,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -115,7 +124,7 @@ namespace ICSharpCode.Reports.Core.Exporter
while ( childNavigator.MoveNext());
// GroupFooter
base.ConvertGroupFooter(section,table,exporterCollection);
base.ConvertGroupFooter(table,exporterCollection);
base.PageBreakAfterGroupChange(section,exporterCollection);
base.Evaluator.SinglePage.IDataNavigator = base.DataNavigator;
@ -131,22 +140,22 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -131,22 +140,22 @@ namespace ICSharpCode.Reports.Core.Exporter
simpleContainer = table.Items[1] as ISimpleContainer;
base.SaveSectionSize(section.Size);
containerSize = simpleContainer.Size;
Console.WriteLine("datasection - NO grouping");
do {
Console.WriteLine("");
PrintHelper.AdjustSectionLocation(section);
CheckForPageBreak(section,simpleContainer,headerRow,exporterCollection);
FillRow(simpleContainer);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer);
FillRow(simpleContainer,base.DataNavigator);
// base.PrepareContainerForConverting(section,simpleContainer);
FireRowRendering(simpleContainer,base.DataNavigator);
base.PrepareContainerForConverting(section,simpleContainer);
base.CurrentPosition = ConvertStandardRow (exporterCollection,simpleContainer);
simpleContainer.Size = containerSize;
section.Size = base.RestoreSectionSize;
Console.WriteLine("");
}
while (base.DataNavigator.MoveNext());
Console.WriteLine("");
Console.WriteLine("END of datasection - NO grouping");
base.DataNavigator.Reset();
base.DataNavigator.MoveNext();
SectionBounds.ReportFooterRectangle = new Rectangle(SectionBounds.ReportFooterRectangle.Left,
@ -168,7 +177,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -168,7 +177,7 @@ namespace ICSharpCode.Reports.Core.Exporter
{
base.CurrentPosition = ForcePageBreak(exporterCollection,section);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,headerRow);
base.CurrentPosition = ConvertStandardRow (exporterCollection,headerRow);
}
}
@ -208,9 +217,11 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -208,9 +217,11 @@ namespace ICSharpCode.Reports.Core.Exporter
} else {
rowSize = groupedRow[0].Size;
FillRow(groupedRow[0],base.DataNavigator);
base.FireGroupHeaderRendering(groupedRow[0]);
retVal = ConvertStandardRow(exportList,section,groupedRow[0]);
retVal = ConvertStandardRow(exportList,groupedRow[0]);
groupedRow[0].Size = rowSize;
}
return retVal;

11
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs

@ -19,8 +19,8 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -19,8 +19,8 @@ namespace ICSharpCode.Reports.Core.Exporter
#region Constructor
public static IReportCreator CreateInstance(IReportModel reportModel, IDataManager dataManager,ILayouter layouter)
public static IReportCreator CreateInstance(IReportModel reportModel, IDataManager dataManager)
// public static IReportCreator CreateInstance(IReportModel reportModel, IDataManager dataManager,ILayouter layouter)
{
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
@ -28,15 +28,12 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -28,15 +28,12 @@ namespace ICSharpCode.Reports.Core.Exporter
if (dataManager == null) {
throw new ArgumentNullException("dataManager");
}
if (layouter == null) {
throw new ArgumentNullException("layouter");
}
DataPageBuilder instance = new DataPageBuilder(reportModel,dataManager,layouter);
DataPageBuilder instance = new DataPageBuilder(reportModel,dataManager);
return instance;
}
private DataPageBuilder (IReportModel reportModel,IDataManager dataManager,ILayouter layouter):base(reportModel,layouter)
private DataPageBuilder (IReportModel reportModel,IDataManager dataManager):base(reportModel)
{
this.dataManager = dataManager;
}

3
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/BaseExportRenderer.cs

@ -11,6 +11,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{ @@ -11,6 +11,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
/// </summary>
///
public class BaseExportRenderer{
PagesCollection pages;
public BaseExportRenderer ()
@ -46,6 +47,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{ @@ -46,6 +47,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
{
}
public virtual void RenderOutput ()
{
}
@ -54,6 +56,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{ @@ -54,6 +56,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
{
}
public PagesCollection Pages
{
get {if (this.pages == null) {

19
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/PreviewRenderer.cs

@ -11,10 +11,8 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer @@ -11,10 +11,8 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer
/// </summary>
public class PreviewRenderer:BaseExportRenderer
internal class PreviewRenderer:BaseExportRenderer
{
Graphics graphics;
ExporterPage page;
#region Constructor
@ -29,23 +27,18 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer @@ -29,23 +27,18 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer
public override void RenderOutput(){
base.RenderOutput();
if (this.graphics != null) {
BaseExportRenderer.DrawItems(this.graphics,this.page.Items);
if (this.Graphics != null) {
BaseExportRenderer.DrawItems(this.Graphics,this.Page.Items);
} else {
return;
}
}
public Graphics Graphics {
get { return this.graphics;}
set { this.graphics = value;}
}
public Graphics Graphics {get;set;}
public ExporterPage Page {
get {return this.page;}
set { page = value; }
}
public ExporterPage Page {get;set;}
}
}

26
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/PrintRenderer.cs

@ -10,7 +10,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{ @@ -10,7 +10,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
/// Description of PrintRenderer.
/// </summary>
public class PrintRenderer:BaseExportRenderer,IDisposable{
PrintDocument doc;
int currentPage;
PrinterSettings printerSettings;
@ -43,11 +43,14 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{ @@ -43,11 +43,14 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
private PrintRenderer(PagesCollection pages):base(pages)
{
doc = new PrintDocument();
this.PrintDocument = new PrintDocument();
this.PrintDocument.PrinterSettings = new PrinterSettings();
// doc.QueryPageSettings += new QueryPageSettingsEventHandler(OnQueryPage);
doc.BeginPrint += new PrintEventHandler(OnBeginPrint);
doc.EndPrint += new PrintEventHandler(OnEndPrint);
doc.PrintPage += new PrintPageEventHandler(OnPrintPage);
this.PrintDocument.BeginPrint += new PrintEventHandler(OnBeginPrint);
this.PrintDocument.EndPrint += new PrintEventHandler(OnEndPrint);
this.PrintDocument.PrintPage += new PrintPageEventHandler(OnPrintPage);
}
#endregion
@ -87,22 +90,25 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{ @@ -87,22 +90,25 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
{
base.RenderOutput();
if (this.printerSettings != null) {
doc.PrinterSettings = this.printerSettings;
this.PrintDocument.PrinterSettings = this.printerSettings;
}
doc.Print();
}
public override void End()
{
base.End();
}
public PrintDocument PrintDocument {get;private set;}
internal PrinterSettings PrinterSettings
{
set { printerSettings = value; }
}
#region IDisposable
public void Dispose()
@ -116,10 +122,10 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{ @@ -116,10 +122,10 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
if (disposing)
{
// free managed resources
if (this.doc != null)
if (this.PrintDocument != null)
{
doc.Dispose();
doc = null;
this.PrintDocument.Dispose();
this.PrintDocument = null;
}
}
}

7
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/FormPageBuilder.cs

@ -16,18 +16,17 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -16,18 +16,17 @@ namespace ICSharpCode.Reports.Core.Exporter
#region Constructure
public static FormPageBuilder CreateInstance(IReportModel reportModel,ILayouter layouter)
public static FormPageBuilder CreateInstance(IReportModel reportModel)
{
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
}
FormPageBuilder instance = new FormPageBuilder(reportModel,layouter);
FormPageBuilder instance = new FormPageBuilder(reportModel);
return instance;
}
private FormPageBuilder(IReportModel reportModel,ILayouter layouter):base(reportModel,layouter)
private FormPageBuilder(IReportModel reportModel):base(reportModel)
{
}

30
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IHierarchyInterfaces.cs

@ -1,30 +0,0 @@ @@ -1,30 +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)
//ToDo with NET2.0 change this Interface to the one provided by NET2.0
using System;
namespace ICSharpCode.Reports.Core {
public interface IHierarchyData{
IndexList GetChildren {
get;
}
bool HasChildren {
get;
}
object Item {
get;
}
string Path {
get;
}
string Type {
get;
}
}
}

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

Loading…
Cancel
Save