Browse Source

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

newNRvisualizers
Daniel Grunwald 13 years ago
parent
commit
d7b2eb3d10
  1. 38
      data/resources/StringResources.de.resx
  2. 46
      data/resources/StringResources.es-mx.resx
  3. 46
      data/resources/StringResources.es.resx
  4. 5660
      data/resources/StringResources.fi.resx
  5. 26
      data/resources/StringResources.fr.resx
  6. 56
      data/resources/StringResources.it.resx
  7. 56
      data/resources/StringResources.nl.resx
  8. 44
      data/resources/StringResources.resx
  9. 2
      data/resources/StringResources.ru.resx
  10. 47
      data/resources/StringResources.tr.resx
  11. 4
      data/resources/image/BitmapResources/BitmapList.txt
  12. 4
      data/resources/image/BitmapResources/BitmapResources.res
  13. BIN
      data/resources/image/BitmapResources/backendicons/BackEndIcons32x32.pdn
  14. BIN
      data/resources/image/BitmapResources/backendicons/CSharp/file/PRISMView.png
  15. BIN
      data/resources/image/BitmapResources/backendicons/CSharp/file/PRISMViewModel.png
  16. BIN
      data/resources/image/BitmapResources/backendicons/CSharp/project/PRISMApplication.png
  17. BIN
      data/resources/image/BitmapResources/backendicons/CSharp/project/PRISMModule.png
  18. 2
      data/resources/languages/LanguageDefinition.xml
  19. 28
      data/schemas/difxapp.xsd
  20. 59
      data/schemas/firewall.xsd
  21. 18
      data/schemas/gaming.xsd
  22. 51
      data/schemas/iis.xsd
  23. 18
      data/schemas/lux.xsd
  24. 18
      data/schemas/msmq.xsd
  25. 109
      data/schemas/netfx.xsd
  26. 18
      data/schemas/ps.xsd
  27. 18
      data/schemas/sql.xsd
  28. 450
      data/schemas/util.xsd
  29. 108
      data/schemas/vs.xsd
  30. 22264
      data/schemas/wix.xsd
  31. 85
      data/schemas/wixloc.xsd
  32. 2
      data/templates/project/CSharp/ConsoleProject.xpt
  33. 2
      data/templates/project/CSharp/FormsProject.xpt
  34. 2
      data/templates/project/CSharp/NotifyIcon.xpt
  35. 2
      data/templates/project/CSharp/Service.xpt
  36. 2
      data/templates/project/CSharp/WPFApplication.xpt
  37. 2
      data/templates/project/CSharp/WPFNavigationApplication.xpt
  38. 2
      data/templates/project/VB/ConsoleProject.xpt
  39. 2
      data/templates/project/VB/FormsProject.xpt
  40. 2
      data/templates/project/VB/NotifyIcon.xpt
  41. 2
      data/templates/project/VB/Service.xpt
  42. 2
      data/templates/project/VB/WPFApplication.xpt
  43. 2
      data/templates/project/VB/WPFNavigationApplication.xpt
  44. 6
      src/AddIns/Analysis/CodeAnalysis/CodeAnalysis.addin
  45. 18
      src/AddIns/Analysis/CodeAnalysis/CodeAnalysis.csproj
  46. 35
      src/AddIns/Analysis/CodeAnalysis/Resources/old_AnalysisIdeOptionPanel.xfrm
  47. 5
      src/AddIns/Analysis/CodeAnalysis/Src/AnalysisIdeOptionsPanel.xaml
  48. 10
      src/AddIns/Analysis/CodeAnalysis/Src/AnalysisIdeOptionsPanel.xaml.cs
  49. 82
      src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanel.xaml
  50. 80
      src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanel.xaml.cs
  51. 87
      src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml
  52. 104
      src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs
  53. 64
      src/AddIns/Analysis/CodeAnalysis/Src/old_AnalysisIdeOptionsPanel.cs
  54. 166
      src/AddIns/Analysis/CodeAnalysis/Src/old_AnalysisProjectOptions.Designer.cs
  55. 450
      src/AddIns/Analysis/CodeAnalysis/Src/old_AnalysisProjectOptions.cs
  56. 32
      src/AddIns/Analysis/CodeAnalysis/Src/old_AnalysisProjectOptionsPanel.cs
  57. 3
      src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.addin
  58. 11
      src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj
  59. 106
      src/AddIns/Analysis/CodeCoverage/Project/Resources/old_CodeCoverageOptionsPanel.xfrm
  60. 15
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageControl.cs
  61. 32
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanel.xaml
  62. 0
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanel.xaml.cs
  63. 2
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageResults.cs
  64. 10
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageService.cs
  65. 2
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageTestRunner.cs
  66. 13
      src/AddIns/Analysis/CodeCoverage/Project/Src/OpenCoverApplication.cs
  67. 30
      src/AddIns/Analysis/CodeCoverage/Project/Src/ProjectCodeCoverageResultsFileName.cs
  68. 48
      src/AddIns/Analysis/CodeCoverage/Project/Src/SolutionCodeCoverageResults.cs
  69. 112
      src/AddIns/Analysis/CodeCoverage/Project/Src/old_CodeCoverageOptionsPanel.cs
  70. 5
      src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj
  71. 89
      src/AddIns/Analysis/CodeCoverage/Test/Coverage/SolutionCodeCoverageResultsTests.cs
  72. 89
      src/AddIns/Analysis/CodeCoverage/Test/Coverage/TwoClassNamesMatchingAtStartTests.cs
  73. 2
      src/AddIns/Analysis/CodeCoverage/Test/Gui/TreeViewAfterSelectTestFixture.cs
  74. 19
      src/AddIns/Analysis/CodeCoverage/Test/Utils/DerivedCodeCoverageTreeView.cs
  75. 43
      src/AddIns/Analysis/SourceAnalysis/Resources/old_AnalysisIdeOptionPanel.xfrm
  76. 11
      src/AddIns/Analysis/SourceAnalysis/SourceAnalysis.csproj
  77. 13
      src/AddIns/Analysis/SourceAnalysis/Src/AnalysisIdeOptionsPanel.xaml.cs
  78. 6
      src/AddIns/Analysis/SourceAnalysis/Src/AnalysisOptionsPanel.xaml.cs
  79. 86
      src/AddIns/Analysis/SourceAnalysis/Src/old_AnalysisIdeOptionsPanel.cs
  80. 104
      src/AddIns/Analysis/SourceAnalysis/Src/old_AnalysisProjectOptions.Designer.cs
  81. 98
      src/AddIns/Analysis/SourceAnalysis/Src/old_AnalysisProjectOptions.cs
  82. 123
      src/AddIns/Analysis/SourceAnalysis/Src/old_AnalysisProjectOptions.resx
  83. 130
      src/AddIns/Analysis/SourceAnalysis/Src/old_AnalysisProjectOptionsPanel.cs
  84. 1
      src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.csproj
  85. 13
      src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin
  86. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj
  87. 255
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/OptionPanels/BuildOptions.xaml
  88. 355
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/OptionPanels/BuildOptions.xaml.cs
  89. 3
      src/AddIns/BackendBindings/CppBinding/CppBinding/CppBinding.addin
  90. 142
      src/AddIns/BackendBindings/CppBinding/CppBinding/Project/ApplicationOptions.cs
  91. 6
      src/AddIns/BackendBindings/CppBinding/CppBinding/Project/ApplicationOptions.xaml
  92. 56
      src/AddIns/BackendBindings/CppBinding/CppBinding/Project/LinkerOptions.xaml.cs
  93. 54
      src/AddIns/BackendBindings/CppBinding/CppBinding/Project/PreprocessorOptions.xaml.cs
  94. 12
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonOptionsPanel.xaml.cs
  95. 381
      src/AddIns/BackendBindings/VBNetBinding/Project/Resources/BuildOptions.xfrm
  96. 62
      src/AddIns/BackendBindings/VBNetBinding/Project/Resources/old_ProjectImports.xfrm
  97. 2
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs
  98. 62
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/BuildOptions.cs
  99. 150
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/BuildOptions.xaml
  100. 135
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/BuildOptions.xaml.cs
  101. Some files were not shown because too many files have changed in this diff Show More

38
data/resources/StringResources.de.resx

@ -6402,6 +6402,24 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht @@ -6402,6 +6402,24 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht
<data name="Templates.File.NAnt.NAntBuildFile.Name" xml:space="preserve">
<value>NAnt Builddatei</value>
</data>
<data name="Templates.File.PRISMViewAndViewModelUnity.Description" xml:space="preserve">
<value>Erstellt eine View für ein PRISM-Modul mit einem zugehörigen ViewModel.</value>
</data>
<data name="Templates.File.PRISMViewAndViewModelUnity.Name" xml:space="preserve">
<value>PRISM View und ViewModel (Unity)</value>
</data>
<data name="Templates.File.PRISMViewModelUnity.Description" xml:space="preserve">
<value>Erstellt ein ViewModel für ein PRISM-Modul.</value>
</data>
<data name="Templates.File.PRISMViewModelUnity.Name" xml:space="preserve">
<value>PRISM ViewModel (Unity)</value>
</data>
<data name="Templates.File.PRISMViewUnity.Description" xml:space="preserve">
<value>Erstellt eine View für ein PRISM-Modul.</value>
</data>
<data name="Templates.File.PRISMViewUnity.Name" xml:space="preserve">
<value>PRISM View (Unity)</value>
</data>
<data name="Templates.File.Properties.AddIFDEFTest" xml:space="preserve">
<value>'#if TEST ... #endif' einfügen</value>
</data>
@ -6666,6 +6684,24 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht @@ -6666,6 +6684,24 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht
<data name="Templates.Project.GtkSharpProject.Name" xml:space="preserve">
<value>Gtk#-Anwendung</value>
</data>
<data name="Templates.Project.PRISMApplicationSmallUnity.Description" xml:space="preserve">
<value>Erstellt eine einfache PRISM-Anwendung mit Bootstrapper und Infrastruktur.</value>
</data>
<data name="Templates.Project.PRISMApplicationSmallUnity.Name" xml:space="preserve">
<value>PRISM-Anwendung - einfach (Unity)</value>
</data>
<data name="Templates.Project.PRISMApplicationUnity.Description" xml:space="preserve">
<value>Erstellt eine PRISM-Anwendung mit Bootstrapper und Infrastruktur.</value>
</data>
<data name="Templates.Project.PRISMApplicationUnity.Name" xml:space="preserve">
<value>PRISM-Anwendung (Unity)</value>
</data>
<data name="Templates.Project.PRISMModuleUnity.Description" xml:space="preserve">
<value>Erstellt ein PRISM-Modul mit einer View und zugehörigem ViewModel.</value>
</data>
<data name="Templates.Project.PRISMModuleUnity.Name" xml:space="preserve">
<value>PRISM-Modul (Unity)</value>
</data>
<data name="Templates.Project.SetupProject.Description" xml:space="preserve">
<value>Ein Windows Installer-Projekt zum Erstellen eines MSI Installers.</value>
</data>
@ -7417,6 +7453,6 @@ Fehler beim Starten: @@ -7417,6 +7453,6 @@ Fehler beim Starten:
<value>Kommentar entfernen</value>
</data>
<data name="_Internal.Bogus.Translation.Test1" xml:space="preserve">
<value>Wir sind in Corsavy</value>
<value>6e61ff43-0241-47da-95bd-2ab6cd6d60f7</value>
</data>
</root>

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

@ -1505,9 +1505,19 @@ Ejemplo: "120", "MainClass", "Main.cs, 120".</value> @@ -1505,9 +1505,19 @@ Ejemplo: "120", "MainClass", "Main.cs, 120".</value>
<data name="Dialog.HighlightingEditor.Import" xml:space="preserve">
<value>Importar colores de resaltado</value>
</data>
<data name="Dialog.HighlightingEditor.NotSupportedMessage" xml:space="preserve">
<value>Versión de configuraciones no soportada!</value>
</data>
<data name="Dialog.HighlightingEditor.OverwriteCustomizationsMessage" xml:space="preserve">
<value>Esto reiniciará todas las personalizaciones y luego importará el archivo seleccionado.
¿Quiere continuar?</value>
</data>
<data name="Dialog.HighlightingEditor.Properties.Value" xml:space="preserve">
<value>Valor</value>
</data>
<data name="Dialog.HighlightingEditor.ResetAll" xml:space="preserve">
<value>Restablecer todo a predeterminado</value>
</data>
<data name="Dialog.HighlightingEditor.SampleText" xml:space="preserve">
<value>Texto de ejemplo</value>
</data>
@ -6410,6 +6420,24 @@ Los archivos de recursos han sido renombrados/movidos convenientemente.</value> @@ -6410,6 +6420,24 @@ Los archivos de recursos han sido renombrados/movidos convenientemente.</value>
<data name="Templates.File.NAnt.NAntBuildFile.Name" xml:space="preserve">
<value>Archivo de compilación NAnt</value>
</data>
<data name="Templates.File.PRISMViewAndViewModelUnity.Description" xml:space="preserve">
<value>Crea una Vista para un Módulo PRISM con un ViewModel acorde.</value>
</data>
<data name="Templates.File.PRISMViewAndViewModelUnity.Name" xml:space="preserve">
<value>View y ViewModel PRISM (Unity)</value>
</data>
<data name="Templates.File.PRISMViewModelUnity.Description" xml:space="preserve">
<value>Crea un ViewModel para un Módulo PRISM.</value>
</data>
<data name="Templates.File.PRISMViewModelUnity.Name" xml:space="preserve">
<value>ViewModel PRISM (Unity)</value>
</data>
<data name="Templates.File.PRISMViewUnity.Description" xml:space="preserve">
<value>Crea un View para un Módulo PRISM.</value>
</data>
<data name="Templates.File.PRISMViewUnity.Name" xml:space="preserve">
<value>View PRISM (unity)</value>
</data>
<data name="Templates.File.Properties.AddIFDEFTest" xml:space="preserve">
<value>Agregar '#if TEST ... #endif'</value>
</data>
@ -6680,6 +6708,24 @@ Los archivos de recursos han sido renombrados/movidos convenientemente.</value> @@ -6680,6 +6708,24 @@ Los archivos de recursos han sido renombrados/movidos convenientemente.</value>
<data name="Templates.Project.PortableLibrary.Name" xml:space="preserve">
<value>Biblioteca de Clases Portable</value>
</data>
<data name="Templates.Project.PRISMApplicationSmallUnity.Description" xml:space="preserve">
<value>Crea una pequeña aplicación PRISM con Bootstrapper e Infraestructura.</value>
</data>
<data name="Templates.Project.PRISMApplicationSmallUnity.Name" xml:space="preserve">
<value>Aplicación PRISM - pequeña (Unity)</value>
</data>
<data name="Templates.Project.PRISMApplicationUnity.Description" xml:space="preserve">
<value>Crea una aplicación PRISM con Bootstrapper e Infraestructura.</value>
</data>
<data name="Templates.Project.PRISMApplicationUnity.Name" xml:space="preserve">
<value>Aplicación PRISM (Unity)</value>
</data>
<data name="Templates.Project.PRISMModuleUnity.Description" xml:space="preserve">
<value>Crea un Módulo PRISM con un View y un ViewModel acorde.</value>
</data>
<data name="Templates.Project.PRISMModuleUnity.Name" xml:space="preserve">
<value>Módulo PRISM (Unity)</value>
</data>
<data name="Templates.Project.SetupProject.Description" xml:space="preserve">
<value>Un proyecto de instalador de Windows para crear un instalador MSI.</value>
</data>

46
data/resources/StringResources.es.resx

@ -1501,9 +1501,19 @@ Para crear/manipular un objeto ActiveX/COM, arrastre una clase de un Control/Bib @@ -1501,9 +1501,19 @@ Para crear/manipular un objeto ActiveX/COM, arrastre una clase de un Control/Bib
<data name="Dialog.HighlightingEditor.Import" xml:space="preserve">
<value>Importar colores de resaltado</value>
</data>
<data name="Dialog.HighlightingEditor.NotSupportedMessage" xml:space="preserve">
<value>Versión de configuraciones no soportada!</value>
</data>
<data name="Dialog.HighlightingEditor.OverwriteCustomizationsMessage" xml:space="preserve">
<value>Esto reiniciará todas las personalizaciones y luego importará el archivo seleccionado.
¿Quiere continuar?</value>
</data>
<data name="Dialog.HighlightingEditor.Properties.Value" xml:space="preserve">
<value>Valor</value>
</data>
<data name="Dialog.HighlightingEditor.ResetAll" xml:space="preserve">
<value>Restablecer todo a predeterminado</value>
</data>
<data name="Dialog.HighlightingEditor.SampleText" xml:space="preserve">
<value>Texto de ejemplo</value>
</data>
@ -6416,6 +6426,24 @@ Los archivos de recursos han sido renombrados o cambiados de ubicación de acuer @@ -6416,6 +6426,24 @@ Los archivos de recursos han sido renombrados o cambiados de ubicación de acuer
<data name="Templates.File.NAnt.NAntBuildFile.Name" xml:space="preserve">
<value>Archivo de generación NAnt</value>
</data>
<data name="Templates.File.PRISMViewAndViewModelUnity.Description" xml:space="preserve">
<value>Crea una Vista para un modulo PRISM con un ViewModel acorde.</value>
</data>
<data name="Templates.File.PRISMViewAndViewModelUnity.Name" xml:space="preserve">
<value>Vista y ViewModel PRISM (Unity)</value>
</data>
<data name="Templates.File.PRISMViewModelUnity.Description" xml:space="preserve">
<value>Crea un ViewModel para un Módulo PRISM.</value>
</data>
<data name="Templates.File.PRISMViewModelUnity.Name" xml:space="preserve">
<value>ViewModel PRISM (Unity)</value>
</data>
<data name="Templates.File.PRISMViewUnity.Description" xml:space="preserve">
<value>Crea un View para un Módulo PRISM.</value>
</data>
<data name="Templates.File.PRISMViewUnity.Name" xml:space="preserve">
<value>View Prism (Unity)</value>
</data>
<data name="Templates.File.Properties.AddIFDEFTest" xml:space="preserve">
<value>Incluir '#if TEST ... #endif'</value>
</data>
@ -6686,6 +6714,24 @@ Los archivos de recursos han sido renombrados o cambiados de ubicación de acuer @@ -6686,6 +6714,24 @@ Los archivos de recursos han sido renombrados o cambiados de ubicación de acuer
<data name="Templates.Project.PortableLibrary.Name" xml:space="preserve">
<value>Biblioteca de Clases Portable</value>
</data>
<data name="Templates.Project.PRISMApplicationSmallUnity.Description" xml:space="preserve">
<value>Crea una pequeña aplicación PRISM con Bootstrapper e Infraestructura.</value>
</data>
<data name="Templates.Project.PRISMApplicationSmallUnity.Name" xml:space="preserve">
<value>Aplicación PRISM - pequeña (Unity)</value>
</data>
<data name="Templates.Project.PRISMApplicationUnity.Description" xml:space="preserve">
<value>Crea una aplicación PRISM con Bootstrapper e Infraestructura.</value>
</data>
<data name="Templates.Project.PRISMApplicationUnity.Name" xml:space="preserve">
<value>Aplicación PRISM (Unity)</value>
</data>
<data name="Templates.Project.PRISMModuleUnity.Description" xml:space="preserve">
<value>Crea un Módulo PRISM con un View y un ViewModel acorde.</value>
</data>
<data name="Templates.Project.PRISMModuleUnity.Name" xml:space="preserve">
<value>Módulo PRISM (Unity)</value>
</data>
<data name="Templates.Project.SetupProject.Description" xml:space="preserve">
<value>Un proyecto de instalador de windows para crear un instalador MSI.</value>
</data>

5660
data/resources/StringResources.fi.resx

File diff suppressed because it is too large Load Diff

26
data/resources/StringResources.fr.resx

@ -1501,9 +1501,19 @@ Pour créer ou manipuler un objet ActiveX/COM, déplcaer une classe depuis TypeL @@ -1501,9 +1501,19 @@ Pour créer ou manipuler un objet ActiveX/COM, déplcaer une classe depuis TypeL
<data name="Dialog.HighlightingEditor.Import" xml:space="preserve">
<value>Importer les couleurs de surlignage</value>
</data>
<data name="Dialog.HighlightingEditor.NotSupportedMessage" xml:space="preserve">
<value>Version des paramétres non-supportée !</value>
</data>
<data name="Dialog.HighlightingEditor.OverwriteCustomizationsMessage" xml:space="preserve">
<value>Toutes les personnalisations seront réinitialisées et le fichier sélectionné sera importé.
Voulez-vous continuer ?</value>
</data>
<data name="Dialog.HighlightingEditor.Properties.Value" xml:space="preserve">
<value>Valeur</value>
</data>
<data name="Dialog.HighlightingEditor.ResetAll" xml:space="preserve">
<value>Tout réinitialiser aux valeurs par défaut</value>
</data>
<data name="Dialog.HighlightingEditor.SampleText" xml:space="preserve">
<value>Echantillon de texte</value>
</data>
@ -7264,10 +7274,10 @@ Les fichiers de resources ont été renommés/déplacés en conséquence.</value @@ -7264,10 +7274,10 @@ Les fichiers de resources ont été renommés/déplacés en conséquence.</value
<value>&amp;Recherche</value>
</data>
<data name="XML.MainMenu.SearchMenu.ClrBookmark" xml:space="preserve">
<value>Effa&amp;cer les points d'arrêt</value>
<value>Effa&amp;cer les marque-pages</value>
</data>
<data name="XML.MainMenu.SearchMenu.ClrBookmark.Description" xml:space="preserve">
<value>Effacer tous les Favoris...</value>
<value>Effacer tous les marque-pages</value>
</data>
<data name="XML.MainMenu.SearchMenu.Find" xml:space="preserve">
<value>&amp;Rechercher...</value>
@ -7288,16 +7298,16 @@ Les fichiers de resources ont été renommés/déplacés en conséquence.</value @@ -7288,16 +7298,16 @@ Les fichiers de resources ont été renommés/déplacés en conséquence.</value
<value>Recherche incrémentale</value>
</data>
<data name="XML.MainMenu.SearchMenu.NextBookmark" xml:space="preserve">
<value>Point d'arrêt &amp;suivant</value>
<value>Marque-page suivant ^X</value>
</data>
<data name="XML.MainMenu.SearchMenu.NextBookmark.Description" xml:space="preserve">
<value>Aller au point d'arrêt suivant</value>
<value>Aller au marque-page suivant</value>
</data>
<data name="XML.MainMenu.SearchMenu.PrevBookmark" xml:space="preserve">
<value>Point d'arrêt &amp;précédent</value>
<value>Marque-page &amp;précédent</value>
</data>
<data name="XML.MainMenu.SearchMenu.PrevBookmark.Description" xml:space="preserve">
<value>Revenir au point d'arrêt précédent</value>
<value>Revenir au marque-page précédent</value>
</data>
<data name="XML.MainMenu.SearchMenu.Replace" xml:space="preserve">
<value>&amp;Remplacer...</value>
@ -7306,10 +7316,10 @@ Les fichiers de resources ont été renommés/déplacés en conséquence.</value @@ -7306,10 +7316,10 @@ Les fichiers de resources ont été renommés/déplacés en conséquence.</value
<value>Recherche incrémentale inversée</value>
</data>
<data name="XML.MainMenu.SearchMenu.ToggleBookmark" xml:space="preserve">
<value>Point d'arrê&amp;t</value>
<value>Ac&amp;tiver/Désactiver un marque-page</value>
</data>
<data name="XML.MainMenu.SearchMenu.ToggleBookmark.Description" xml:space="preserve">
<value>Positionner/Dépositionner un point d'arrêt à la ligne courante</value>
<value>Activer/désactiver un marque-page à la ligne actuelle</value>
</data>
<data name="XML.MainMenu.ToolMenu" xml:space="preserve">
<value>&amp;Outils</value>

56
data/resources/StringResources.it.resx

@ -1493,9 +1493,21 @@ Ad esempio: "120", "MainClass", "Main.cs, 120".</value> @@ -1493,9 +1493,21 @@ Ad esempio: "120", "MainClass", "Main.cs, 120".</value>
<data name="Dialog.HighlightingEditor.ColorDlg.Italic" xml:space="preserve">
<value>Corsivo</value>
</data>
<data name="Dialog.HighlightingEditor.Export" xml:space="preserve">
<value>Esporta schema colori</value>
</data>
<data name="Dialog.HighlightingEditor.Import" xml:space="preserve">
<value>Importa schema colori</value>
</data>
<data name="Dialog.HighlightingEditor.NotSupportedMessage" xml:space="preserve">
<value>Versione delle impostazioni non supportata!</value>
</data>
<data name="Dialog.HighlightingEditor.Properties.Value" xml:space="preserve">
<value>Valore</value>
</data>
<data name="Dialog.HighlightingEditor.ResetAll" xml:space="preserve">
<value>Reimposta tutto a predefinito</value>
</data>
<data name="Dialog.HighlightingEditor.SampleText" xml:space="preserve">
<value>Testo di esempio</value>
</data>
@ -2177,11 +2189,14 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value> @@ -2177,11 +2189,14 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value>
<value>Nessuna</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.MarkersGroupBox" xml:space="preserve">
<value>Marcatori e righelli</value>
<value>Marcatori</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.PanelName" xml:space="preserve">
<value>Marcatori e righelli</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.RulersGroupBox" xml:space="preserve">
<value>Righelli</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.ShowHiddenDefinitionsCheckBox" xml:space="preserve">
<value>Mostra definizioni nascoste (solo parentesi)</value>
</data>
@ -3382,6 +3397,9 @@ Configura il percorso di NAnt nelle opzioni di SharpDevelop.</value> @@ -3382,6 +3397,9 @@ Configura il percorso di NAnt nelle opzioni di SharpDevelop.</value>
<data name="ICSharpCode.Refactoring.NoClassOrOverridableSymbolUnderCursorError" xml:space="preserve">
<value>L'elemento selezionato non è una classe o un membro overridable quindi non può essere mostrato nessun simbolo derivato.</value>
</data>
<data name="ICSharpCode.Refactoring.NoClassUnderCursorError" xml:space="preserve">
<value>Impossibile trovare la definizione del tipo sulla posizione del cursore</value>
</data>
<data name="ICSharpCode.RubyBinding.SendLineToRubyConsole" xml:space="preserve">
<value>Invia Linea alla Console Ruby</value>
</data>
@ -3782,6 +3800,9 @@ QUESTO NON INTERESSA IL CODICE SORGENTE.</value> @@ -3782,6 +3800,9 @@ QUESTO NON INTERESSA IL CODICE SORGENTE.</value>
<data name="ICSharpCode.SharpDevelop.FormDesigner.LoadErrorCheckSourceCodeForErrors" xml:space="preserve">
<value>Impossibile caricare il designer. Controllare il codice sorgente per eventuali errori sintattici e controllare che siano disponibili tutti i references.</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.ReportFlushErrors" xml:space="preserve">
<value>Uno o più errori sono stati sollevati durante il salvataggio dei contenuti del Designer. Potrebbe trattarsi di una eccezione non gestita in un componente personalizzato o di terze parti presente nella finestra/controllo.</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.ToolboxProvider.CantLoadSidbarComponentLibraryWarning" xml:space="preserve">
<value>Impossibile caricare la barra laterale dei componenti.
Nessun componente Windows Forms trovato, configurare la barra laterale manualmente.
@ -4863,6 +4884,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4863,6 +4884,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.Conditional.Breakpoints.DisableBreakpoint" xml:space="preserve">
<value>Disattiva interruzione</value>
</data>
<data name="MainWindow.Windows.Debug.Conditional.Breakpoints.EditCondition" xml:space="preserve">
<value>Modifica condizioni...</value>
</data>
<data name="MainWindow.Windows.Debug.Conditional.Breakpoints.EnableBreakpoint" xml:space="preserve">
<value>Attiva interruzione</value>
</data>
@ -5367,6 +5391,27 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5367,6 +5391,27 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="OpenFileTabEventHandler.FileContainingFolderInExplorer" xml:space="preserve">
<value>Apri la cartella in Esplora risorse</value>
</data>
<data name="OpenFileTabEventHandler.OpenCommandPromptHere" xml:space="preserve">
<value>Apri prompt dei comandi</value>
</data>
<data name="PortableLibrary.ChooseTargetFrameworks" xml:space="preserve">
<value>Scegli i framework di destinazione</value>
</data>
<data name="PortableLibrary.CouldNotFindTools" xml:space="preserve">
<value>Impossibile trovare gli strumenti per Libreria di Classi Portabile</value>
</data>
<data name="PortableLibrary.SelectAtLeastTwoFrameworks" xml:space="preserve">
<value>Selezionare almeno 2 frameworks.</value>
</data>
<data name="PortableLibrary.SelectedProfile" xml:space="preserve">
<value>Profilo selezionato:</value>
</data>
<data name="PortableLibrary.SelectProfileDialog.Title" xml:space="preserve">
<value>Seleziona il profilo di Libreria Portabile</value>
</data>
<data name="PortableLibrary.ToolsInstallationHelp" xml:space="preserve">
<value>Per installare i Portable Class Library Tools senza installare Visual Studio, salva il file (PortableLibraryTools.exe) nel computer ed esegui il programma di installazione dal prompt dei comandi. Aggiungi l'opzione /buildmachine sulla linea di comando.</value>
</data>
<data name="ProjectBrowser.Toolbar.CollapseAll" xml:space="preserve">
<value>Comprimi tutti i nodi</value>
</data>
@ -5502,6 +5547,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5502,6 +5547,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ProjectComponent.ContextMenu.RunProject" xml:space="preserve">
<value>&amp;Esegui Progetto</value>
</data>
<data name="ProjectComponent.ContextMenu.RunProjectWithoutDebugger" xml:space="preserve">
<value>Esegui Progetto senza Debugger</value>
</data>
<data name="ProjectComponent.ContextMenu.SetAsStartupProject" xml:space="preserve">
<value>Imposta come Progetto Inizi&amp;ale</value>
</data>
@ -6617,6 +6665,12 @@ SharpDevelop 2 compila le risorse differentemente: il nome della risorsa non è @@ -6617,6 +6665,12 @@ SharpDevelop 2 compila le risorse differentemente: il nome della risorsa non è
<data name="Templates.Project.GtkSharpProject.Name" xml:space="preserve">
<value>Applicazione Gtk#</value>
</data>
<data name="Templates.Project.PortableLibrary.Description" xml:space="preserve">
<value>Libreria che può essere usata su Windows, Silverlight, Windows Phone e XBox.</value>
</data>
<data name="Templates.Project.PortableLibrary.Name" xml:space="preserve">
<value>Libreria di classi portabile</value>
</data>
<data name="Templates.Project.SetupProject.Description" xml:space="preserve">
<value>Un progetto Windows Installer per creare file di installazione MSI.</value>
</data>

56
data/resources/StringResources.nl.resx

@ -1507,9 +1507,19 @@ Voorbeelden: "120", "MainClass", "Main.cs, 120".</value> @@ -1507,9 +1507,19 @@ Voorbeelden: "120", "MainClass", "Main.cs, 120".</value>
<data name="Dialog.HighlightingEditor.Import" xml:space="preserve">
<value>Selectie kleuren importeren</value>
</data>
<data name="Dialog.HighlightingEditor.NotSupportedMessage" xml:space="preserve">
<value>Settings versie niet ondersteund!</value>
</data>
<data name="Dialog.HighlightingEditor.OverwriteCustomizationsMessage" xml:space="preserve">
<value>Dit zet alle toegevoegde wijzigingen terug en importeert vervolgens het geselecteerde bestand.
Wilt u doorgaan?</value>
</data>
<data name="Dialog.HighlightingEditor.Properties.Value" xml:space="preserve">
<value>Waarde</value>
</data>
<data name="Dialog.HighlightingEditor.ResetAll" xml:space="preserve">
<value>Alles terug naar verstekwaardes.</value>
</data>
<data name="Dialog.HighlightingEditor.SampleText" xml:space="preserve">
<value>Voorbeeldtekst</value>
</data>
@ -4781,7 +4791,7 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -4781,7 +4791,7 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<value>Toon openbare leden</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.ClassViewSettingsButton.ToolTip" xml:space="preserve">
<value>Klassen Overzicht instellingen</value>
<value>Weergave Klassen Instellingen</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.ClearSearch.ToolTip" xml:space="preserve">
<value>Maak zoeken leeg</value>
@ -5171,7 +5181,7 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5171,7 +5181,7 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<value>Observatiepunt verwijderen</value>
</data>
<data name="MainWindow.Windows.DefinitionViewLabel" xml:space="preserve">
<value>Definitie overzicht</value>
<value>Definitie Weergave</value>
</data>
<data name="MainWindow.Windows.ErrorList" xml:space="preserve">
<value>Fouten</value>
@ -6408,6 +6418,24 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value> @@ -6408,6 +6418,24 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value>
<data name="Templates.File.NAnt.NAntBuildFile.Name" xml:space="preserve">
<value>NAnt Build sjabloon</value>
</data>
<data name="Templates.File.PRISMViewAndViewModelUnity.Description" xml:space="preserve">
<value>Maakt een Weergave voor PRISMA module volgens Weergavemodel.</value>
</data>
<data name="Templates.File.PRISMViewAndViewModelUnity.Name" xml:space="preserve">
<value>PRISMA Weergave en Weergavemodel (Eenheid)</value>
</data>
<data name="Templates.File.PRISMViewModelUnity.Description" xml:space="preserve">
<value>Maakt een Weergavemodel voor een PRISMA module.</value>
</data>
<data name="Templates.File.PRISMViewModelUnity.Name" xml:space="preserve">
<value>PRISMA Weergavemodel (Eenheid)</value>
</data>
<data name="Templates.File.PRISMViewUnity.Description" xml:space="preserve">
<value>Maakt een weergave voor een PRISMA module.</value>
</data>
<data name="Templates.File.PRISMViewUnity.Name" xml:space="preserve">
<value>PRISMA weergave (Eenheid)</value>
</data>
<data name="Templates.File.Properties.AddIFDEFTest" xml:space="preserve">
<value>'#if TEST ... #endif' toevoegen</value>
</data>
@ -6475,10 +6503,10 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value> @@ -6475,10 +6503,10 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value>
<value>Leeg Pad</value>
</data>
<data name="Templates.File.SharpDevelop.View.Description" xml:space="preserve">
<value>Een #D view inhoud (bijv. een tekstbewerker of bronbestand editor).</value>
<value>Een #D inhoudsweergave (bijv. tekstbewerker of bronbestand editor).</value>
</data>
<data name="Templates.File.SharpDevelop.View.Name" xml:space="preserve">
<value>Leeg View</value>
<value>Lege Weergave</value>
</data>
<data name="Templates.File.SingletonClass.Description" xml:space="preserve">
<value>Klasse welke het singleton patroon volgt.</value>
@ -6678,6 +6706,24 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value> @@ -6678,6 +6706,24 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value>
<data name="Templates.Project.PortableLibrary.Name" xml:space="preserve">
<value>Portable Klassen-bibliotheek</value>
</data>
<data name="Templates.Project.PRISMApplicationSmallUnity.Description" xml:space="preserve">
<value>Maakt een kleine PRISMA applicatie met bootstrapper en infrastructuur.</value>
</data>
<data name="Templates.Project.PRISMApplicationSmallUnity.Name" xml:space="preserve">
<value>PRISMA Applicatie - klein (Eenheid)</value>
</data>
<data name="Templates.Project.PRISMApplicationUnity.Description" xml:space="preserve">
<value>Maakt een PRISMA applicatie met bootstrapper en infrastructuur.</value>
</data>
<data name="Templates.Project.PRISMApplicationUnity.Name" xml:space="preserve">
<value>PRISMA applicatie (Eenheid)</value>
</data>
<data name="Templates.Project.PRISMModuleUnity.Description" xml:space="preserve">
<value>Maakt een PRISMA module met weergave naar overeenkomend weergavemodel.</value>
</data>
<data name="Templates.Project.PRISMModuleUnity.Name" xml:space="preserve">
<value>PRISMA module (Eenheid)</value>
</data>
<data name="Templates.Project.SetupProject.Description" xml:space="preserve">
<value>Windows installatie project om een MSI installatie programma te maken.</value>
</data>
@ -7350,7 +7396,7 @@ Startfout:</value> @@ -7350,7 +7396,7 @@ Startfout:</value>
<value>Reguliere expressie gereedschap</value>
</data>
<data name="XML.MainMenu.ViewMenu" xml:space="preserve">
<value>Beel&amp;d</value>
<value>Weerga&amp;ve</value>
</data>
<data name="XML.MainMenu.ViewMenu.DebugMenu" xml:space="preserve">
<value>&amp;Foutopsporing</value>

44
data/resources/StringResources.resx

@ -1867,7 +1867,7 @@ Do you want to add the new file to the project ${CurrentProjectName}?</value> @@ -1867,7 +1867,7 @@ Do you want to add the new file to the project ${CurrentProjectName}?</value>
<value>Code completion detail settings</value>
</data>
<data name="Dialog.Options.IDEOptions.CodeCompletion.LanguageDependend" xml:space="preserve">
<value>The following options are language-dependend, some options are not available in some programming languages.</value>
<value>The following options are language-dependent, some options are not available in some programming languages.</value>
</data>
<data name="Dialog.Options.IDEOptions.CodeCompletion.MainOption" xml:space="preserve">
<value>Use the following option to turn code completion completely off:</value>
@ -2437,6 +2437,12 @@ system. I don't think that it needs translation.</comment> @@ -2437,6 +2437,12 @@ system. I don't think that it needs translation.</comment>
<data name="Dialog.ProjectOptions.Build.TargetCPU.Any" xml:space="preserve">
<value>Any processor</value>
</data>
<data name="Dialog.ProjectOptions.Build.TargetCPU.Any32" xml:space="preserve">
<value>Any processor (prefer 32-bit)</value>
</data>
<data name="Dialog.ProjectOptions.Build.TargetCPU.Any64" xml:space="preserve">
<value>Any processor (prefer 64-bit)</value>
</data>
<data name="Dialog.ProjectOptions.Build.TargetCPU.Itanium" xml:space="preserve">
<value>Intel 64-bit Itanium processor</value>
</data>
@ -6789,6 +6795,24 @@ The resources files have been renamed/moved accordingly.</value> @@ -6789,6 +6795,24 @@ The resources files have been renamed/moved accordingly.</value>
<value>NAnt Build File</value>
<comment>Name for the template that creates a new NAnt build file.</comment>
</data>
<data name="Templates.File.PRISMViewAndViewModelUnity.Description" xml:space="preserve">
<value>Creates a View for a PRISM Module with an according ViewModel.</value>
</data>
<data name="Templates.File.PRISMViewAndViewModelUnity.Name" xml:space="preserve">
<value>PRISM View and ViewModel (Unity)</value>
</data>
<data name="Templates.File.PRISMViewModelUnity.Description" xml:space="preserve">
<value>Creates a ViewModel for a PRISM Module.</value>
</data>
<data name="Templates.File.PRISMViewModelUnity.Name" xml:space="preserve">
<value>PRISM ViewModel (Unity)</value>
</data>
<data name="Templates.File.PRISMViewUnity.Description" xml:space="preserve">
<value>Creates a View for a PRISM Module.</value>
</data>
<data name="Templates.File.PRISMViewUnity.Name" xml:space="preserve">
<value>PRISM View (Unity)</value>
</data>
<data name="Templates.File.Properties.AddIFDEFTest" xml:space="preserve">
<value>Add '#if TEST ... #endif'</value>
</data>
@ -7066,6 +7090,24 @@ The resources files have been renamed/moved accordingly.</value> @@ -7066,6 +7090,24 @@ The resources files have been renamed/moved accordingly.</value>
<data name="Templates.Project.PortableLibrary.Name" xml:space="preserve">
<value>Portable Class Library</value>
</data>
<data name="Templates.Project.PRISMApplicationSmallUnity.Description" xml:space="preserve">
<value>Creates a small PRISM Application with Bootstrapper and Infrastructure.</value>
</data>
<data name="Templates.Project.PRISMApplicationSmallUnity.Name" xml:space="preserve">
<value>PRISM Application - small (Unity)</value>
</data>
<data name="Templates.Project.PRISMApplicationUnity.Description" xml:space="preserve">
<value>Creates a PRISM Application with Bootstrapper and Infrastructure.</value>
</data>
<data name="Templates.Project.PRISMApplicationUnity.Name" xml:space="preserve">
<value>PRISM Application (Unity)</value>
</data>
<data name="Templates.Project.PRISMModuleUnity.Description" xml:space="preserve">
<value>Creates a PRISM Module with a View and an according ViewModel.</value>
</data>
<data name="Templates.Project.PRISMModuleUnity.Name" xml:space="preserve">
<value>PRISM Module (Unity)</value>
</data>
<data name="Templates.Project.SetupProject.Description" xml:space="preserve">
<value>A windows installer project for creating a MSI installer.</value>
</data>

2
data/resources/StringResources.ru.resx

@ -4714,7 +4714,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4714,7 +4714,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Добавить существующие файлы</value>
</data>
<data name="ProjectComponent.ContextMenu.AddExistingFiles.Copy" xml:space="preserve">
<value>Корировать</value>
<value>Копировать</value>
</data>
<data name="ProjectComponent.ContextMenu.AddExistingFiles.Link" xml:space="preserve">
<value>Создать ссылку</value>

47
data/resources/StringResources.tr.resx

@ -1504,9 +1504,18 @@ Satır numaraları, sınıf yada dosya adları girebilirsiniz. @@ -1504,9 +1504,18 @@ Satır numaraları, sınıf yada dosya adları girebilirsiniz.
<data name="Dialog.HighlightingEditor.Import" xml:space="preserve">
<value>Renk vurgulaması al</value>
</data>
<data name="Dialog.HighlightingEditor.NotSupportedMessage" xml:space="preserve">
<value>Ayarlar sürümü desteklenmiyor!</value>
</data>
<data name="Dialog.HighlightingEditor.OverwriteCustomizationsMessage" xml:space="preserve">
<value>Mevcut tüm özelleştirmeler sıfırlanacak ve seçili dosyadaki bilgi aktarılacak. Devam etmek istiyor musunuz?</value>
</data>
<data name="Dialog.HighlightingEditor.Properties.Value" xml:space="preserve">
<value>Değer</value>
</data>
<data name="Dialog.HighlightingEditor.ResetAll" xml:space="preserve">
<value>Varsayılanları sıfırla</value>
</data>
<data name="Dialog.HighlightingEditor.SampleText" xml:space="preserve">
<value>Örnek metin</value>
</data>
@ -2496,7 +2505,7 @@ Yeni dosyayı, ${CurrentProjectName} projesine eklemek istiyor musunuz?</value> @@ -2496,7 +2505,7 @@ Yeni dosyayı, ${CurrentProjectName} projesine eklemek istiyor musunuz?</value>
<value>Referans Yolları</value>
</data>
<data name="Dialog.ProjectOptions.ReferencePaths.AddPath" xml:space="preserve">
<value>Yol ekle</value>
<value>&amp;Yol ekle</value>
</data>
<data name="Dialog.ProjectOptions.RunPostBuildEvent.Always" xml:space="preserve">
<value>Daima</value>
@ -6411,6 +6420,24 @@ Kaynak dosyaları buna göre yeniden adlandırıldı/taşındı.</value> @@ -6411,6 +6420,24 @@ Kaynak dosyaları buna göre yeniden adlandırıldı/taşındı.</value>
<data name="Templates.File.NAnt.NAntBuildFile.Name" xml:space="preserve">
<value>NAnt derleme dosyası</value>
</data>
<data name="Templates.File.PRISMViewAndViewModelUnity.Description" xml:space="preserve">
<value>Uygun bir ModelGörünüm içeren PRISM Modülü Görünümü oluşturur.</value>
</data>
<data name="Templates.File.PRISMViewAndViewModelUnity.Name" xml:space="preserve">
<value>PRISM Görünüm ve ModelGörünüm(Ünite)</value>
</data>
<data name="Templates.File.PRISMViewModelUnity.Description" xml:space="preserve">
<value>PRISM Modülü için bir ModelGörünüm oluşturur.</value>
</data>
<data name="Templates.File.PRISMViewModelUnity.Name" xml:space="preserve">
<value>PRISM ModelGörünüm(Ünite)</value>
</data>
<data name="Templates.File.PRISMViewUnity.Description" xml:space="preserve">
<value>Bir PRISM Modulü için Görünüm oluştur.</value>
</data>
<data name="Templates.File.PRISMViewUnity.Name" xml:space="preserve">
<value>PRISM Görünüm (Ünite)</value>
</data>
<data name="Templates.File.Properties.AddIFDEFTest" xml:space="preserve">
<value>'#if TEST ... #endif' ekle</value>
</data>
@ -6681,6 +6708,24 @@ Kaynak dosyaları buna göre yeniden adlandırıldı/taşındı.</value> @@ -6681,6 +6708,24 @@ Kaynak dosyaları buna göre yeniden adlandırıldı/taşındı.</value>
<data name="Templates.Project.PortableLibrary.Name" xml:space="preserve">
<value>Taşınabilir Sınıf Kitaplığı</value>
</data>
<data name="Templates.Project.PRISMApplicationSmallUnity.Description" xml:space="preserve">
<value>Önyükleyicisi ve Altyapı ile küçük bir PRISM Uygulaması oluşturur.</value>
</data>
<data name="Templates.Project.PRISMApplicationSmallUnity.Name" xml:space="preserve">
<value>PRISM Uygulaması - küçük (Ünite)</value>
</data>
<data name="Templates.Project.PRISMApplicationUnity.Description" xml:space="preserve">
<value>Önyükleyicisi ve Altyapı ile bir PRISM Uygulaması oluşturur.</value>
</data>
<data name="Templates.Project.PRISMApplicationUnity.Name" xml:space="preserve">
<value>PRISM Uygulaması (Ünite)</value>
</data>
<data name="Templates.Project.PRISMModuleUnity.Description" xml:space="preserve">
<value>Uygun bir ModelGörünüm ve Görünüm ile PRISM Modülü oluşturur.</value>
</data>
<data name="Templates.Project.PRISMModuleUnity.Name" xml:space="preserve">
<value>PRISM Modülü (Ünite)</value>
</data>
<data name="Templates.Project.SetupProject.Description" xml:space="preserve">
<value>MSI Installer oluşturabilmek için bir Windows Installer projesi.</value>
</data>

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

@ -341,6 +341,8 @@ backendicons\CSharp\file\WPFPageFunction.png @@ -341,6 +341,8 @@ backendicons\CSharp\file\WPFPageFunction.png
backendicons\CSharp\file\WPFResourceDictionary.png
backendicons\CSharp\file\WPFUserControl.png
backendicons\CSharp\file\WPFWindow.png
backendicons\CSharp\file\PRISMView.png
backendicons\CSharp\file\PRISMViewModel.png
backendicons\CSharp\file\WebFile.png
backendicons\CSharp\project\ASPProject.png
backendicons\CSharp\project\ControlLibrary.png
@ -358,6 +360,8 @@ backendicons\CSharp\project\WPFCustomControlLibrary.png @@ -358,6 +360,8 @@ backendicons\CSharp\project\WPFCustomControlLibrary.png
backendicons\CSharp\project\WPFNavigationProject.png
backendicons\CSharp\project\WPFProject.png
backendicons\CSharp\project\WPFUserControlLibrary.png
backendicons\CSharp\project\PRISMApplication.png
backendicons\CSharp\project\PRISMModule.png
backendicons\CSharp\project\WebProject.png
backendicons\CSharp\project\WebService.png
backendicons\FSharp\F#.FileIcon.png

4
data/resources/image/BitmapResources/BitmapResources.res

@ -391,6 +391,8 @@ C#.File.WPFPageFunction = backendicons\CSharp\file\WPFPageFunction.png @@ -391,6 +391,8 @@ C#.File.WPFPageFunction = backendicons\CSharp\file\WPFPageFunction.png
C#.File.WPFResourceDictionary = backendicons\CSharp\file\WPFResourceDictionary.png
C#.File.WPFUserControl = backendicons\CSharp\file\WPFUserControl.png
C#.File.WPFWindow = backendicons\CSharp\file\WPFWindow.png
C#.File.PRISMView = backendicons\CSharp\file\PRISMView.png
C#.File.PRISMViewModel = backendicons\CSharp\file\PRISMViewModel.png
C#.Project.EmptyProject = backendicons\CSharp\project\EmptyProject.png
C#.Project.DOSProject = backendicons\CSharp\project\DOSProject.png
C#.Project.Form = backendicons\CSharp\project\Form.png
@ -409,6 +411,8 @@ C#.Project.WPFCustomControlLibrary = backendicons\CSharp\project\WPFCustomCo @@ -409,6 +411,8 @@ C#.Project.WPFCustomControlLibrary = backendicons\CSharp\project\WPFCustomCo
C#.Project.WPFNavigationProject = backendicons\CSharp\project\WPFNavigationProject.png
C#.Project.WPFProject = backendicons\CSharp\project\WPFProject.png
C#.Project.WPFUserControlLibrary = backendicons\CSharp\project\WPFUserControlLibrary.png
C#.Project.PRISMApplication = backendicons\CSharp\project\PRISMApplication.png
C#.Project.PRISMModule = backendicons\CSharp\project\PRISMModule.png
VBNet.ProjectIcon = backendicons\VBNet\SmallProject.png
VBNet.FileIcon = backendicons\VBNet\SmallFile.png

BIN
data/resources/image/BitmapResources/backendicons/BackEndIcons32x32.pdn

Binary file not shown.

BIN
data/resources/image/BitmapResources/backendicons/CSharp/file/PRISMView.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
data/resources/image/BitmapResources/backendicons/CSharp/file/PRISMViewModel.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
data/resources/image/BitmapResources/backendicons/CSharp/project/PRISMApplication.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
data/resources/image/BitmapResources/backendicons/CSharp/project/PRISMModule.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

2
data/resources/languages/LanguageDefinition.xml

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
<Languages name="Czech" code="cz" icon="czech.png" />
<!--<Languages name="Danish" code="dk" icon="denmark.png" />-->
<Languages name="Dutch" code="nl" icon="netherlands.png" />
<!--<Languages name="Finnish" code="fi" icon="finnish.png" />-->
<Languages name="Finnish" code="fi" icon="finnish.png" />
<Languages name="French" code="fr" icon="france.png" />
<Languages name="German" code="de" icon="germany.png" />
<!--<Languages name="Greek" code="el" icon="notyetdone.png" />-->

28
data/schemas/difxapp.xsd

@ -1,4 +1,12 @@ @@ -1,4 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<copyright file="difxapp.xsd" company="Outercurve Foundation">
Copyright (c) 2004, Outercurve Foundation.
This software is released under Microsoft Reciprocal License (MS-RL).
The license and further copyright text can be found in the file
LICENSE.TXT at the root directory of the distribution.
</copyright>
-->
<xs:schema xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
@ -7,16 +15,6 @@ @@ -7,16 +15,6 @@
xmlns="http://schemas.microsoft.com/wix/DifxAppExtension">
<xs:annotation>
<xs:documentation>
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
You must not remove this notice, or any other, from this software.
The source code schema for the Windows Installer XML Toolset Driver Install Frameworks for Applications Extension.
</xs:documentation>
</xs:annotation>
@ -50,9 +48,9 @@ @@ -50,9 +48,9 @@
store when a driver package was installed. If this attribute is set to "no" or not present, DIFxApp does not
remove these files from a system. Note that configuring DIFxApp to delete these files is controlled by the
Flags entry value of the component that represents the driver package in the MsiDriverPackages custom table.
Setting DriverDeleteFiles to "yes" sets the corresponding bit in the Flags entry value. Setting DriverLegacy
to "no" clears the corresponding bit in the Flags entry value. If this attribute is not present, DIFxApp uses
a default value of "no".
Setting DeleteFiles to "yes" sets the corresponding bit in the Flags entry value. Setting DeleteFiles to "no"
clears the corresponding bit in the Flags entry value. If this attribute is not present, DIFxApp uses a
default value of "no".
</xs:documentation>
</xs:annotation>
</xs:attribute>
@ -75,8 +73,8 @@ @@ -75,8 +73,8 @@
files. For more information, see "Installing Unsigned Driver Packages in Legacy Mode" earlier in this paper.
If this attribute is set to "no" or not present, DIFxApp will install only signed driver packages. Note
that configuring DIFxApp to install unsigned drivers is controlled by the Flags entry value of the component
that represents the driver package in the MsiDriverPackages custom table. Setting DriverLegacy to "yes" sets
the corresponding bit in the Flags entry value. Setting DriverLegacy to "no" clears the bit in the Flags
that represents the driver package in the MsiDriverPackages custom table. Setting Legacy to "yes" sets
the corresponding bit in the Flags entry value. Setting Legacy to "no" clears the bit in the Flags
entry value that configures DIFxApp to install unsigned driver packages. If this attribute is not present,
DIFxApp uses a default value of "no".
</xs:documentation>

59
data/schemas/firewall.xsd

@ -1,4 +1,12 @@ @@ -1,4 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<copyright file="firewall.xsd" company="Outercurve Foundation">
Copyright (c) 2004, Outercurve Foundation.
This software is released under Microsoft Reciprocal License (MS-RL).
The license and further copyright text can be found in the file
LICENSE.TXT at the root directory of the distribution.
</copyright>
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
@ -6,16 +14,6 @@ @@ -6,16 +14,6 @@
xmlns="http://schemas.microsoft.com/wix/FirewallExtension">
<xs:annotation>
<xs:documentation>
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
You must not remove this notice, or any other, from this software.
The source code schema for the Windows Installer XML Toolset Firewall Extension.
</xs:documentation>
</xs:annotation>
@ -85,8 +83,12 @@ @@ -85,8 +83,12 @@
<xs:attribute name="Port" type="xs:string">
<xs:annotation>
<xs:documentation>
Port to allow through the firewall for this exception. If you use Port, you
cannot also use File or Program.
Port to allow through the firewall for this exception.
If you use Port and also File or Program in the same
FirewallException element, the exception will fail to install on
Windows XP and Windows Server 2003. IgnoreFailure="yes" can be used to
ignore the resulting failure, but the exception will not be added.
</xs:documentation>
</xs:annotation>
</xs:attribute>
@ -94,9 +96,13 @@ @@ -94,9 +96,13 @@
<xs:attribute name="Protocol">
<xs:annotation>
<xs:documentation>
IP protocol used for this firewall exception. If not specified, "tcp" is
assumed. If you use Protocol, you must also specify Port and you cannot
also use File or Program.
IP protocol used for this firewall exception. If Port is defined,
"tcp" is assumed if the protocol is not specified.
If you use Protocol and also File or Program in the same
FirewallException element, the exception will fail to install on
Windows XP and Windows Server 2003. IgnoreFailure="yes" can be used to
ignore the resulting failure, but the exception will not be added.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
@ -111,7 +117,12 @@ @@ -111,7 +117,12 @@
<xs:annotation>
<xs:documentation>
Identifier of a file to be granted access to all incoming ports and
protocols. If you use File, you cannot also use Program, Port, or Protocol.
protocols. If you use File, you cannot also use Program.
If you use File and also Port or Protocol in the same
FirewallException element, the exception will fail to install on
Windows XP and Windows Server 2003. IgnoreFailure="yes" can be used to
ignore the resulting failure, but the exception will not be added.
</xs:documentation>
</xs:annotation>
</xs:attribute>
@ -122,7 +133,12 @@ @@ -122,7 +133,12 @@
Path to a target program to be granted access to all incoming ports and
protocols. Note that this is a formatted field, so you can use [#fileId]
syntax to refer to a file being installed. If you use Program, you cannot
also use File, Port, or Protocol.
also use File.
If you use Program and also Port or Protocol in the same
FirewallException element, the exception will fail to install on
Windows XP and Windows Server 2003. IgnoreFailure="yes" can be used to
ignore the resulting failure, but the exception will not be added.
</xs:documentation>
</xs:annotation>
</xs:attribute>
@ -151,7 +167,14 @@ @@ -151,7 +167,14 @@
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Description" type="xs:string">
<xs:annotation>
<xs:documentation>
Description for this firewall rule displayed in Windows Firewall manager in
Windows Vista and later.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>

18
data/schemas/gaming.xsd

@ -1,4 +1,12 @@ @@ -1,4 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<copyright file="gaming.xsd" company="Outercurve Foundation">
Copyright (c) 2004, Outercurve Foundation.
This software is released under Microsoft Reciprocal License (MS-RL).
The license and further copyright text can be found in the file
LICENSE.TXT at the root directory of the distribution.
</copyright>
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
@ -6,16 +14,6 @@ @@ -6,16 +14,6 @@
xmlns="http://schemas.microsoft.com/wix/GamingExtension">
<xs:annotation>
<xs:documentation>
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
You must not remove this notice, or any other, from this software.
The source code schema for the Windows Installer XML Toolset Gaming Extension.
</xs:documentation>
</xs:annotation>

51
data/schemas/iis.xsd

@ -1,4 +1,12 @@ @@ -1,4 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<copyright file="iis.xsd" company="Outercurve Foundation">
Copyright (c) 2004, Outercurve Foundation.
This software is released under Microsoft Reciprocal License (MS-RL).
The license and further copyright text can be found in the file
LICENSE.TXT at the root directory of the distribution.
</copyright>
-->
<xs:schema xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
@ -7,16 +15,6 @@ @@ -7,16 +15,6 @@
xmlns="http://schemas.microsoft.com/wix/IIsExtension">
<xs:annotation>
<xs:documentation>
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
You must not remove this notice, or any other, from this software.
The source code schema for the Windows Installer XML Toolset Internet Information Services Extension.
</xs:documentation>
</xs:annotation>
@ -407,28 +405,23 @@ @@ -407,28 +405,23 @@
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="ManagedPipelineMode">
<xs:attribute name="ManagedPipelineMode" type="xs:string">
<xs:annotation>
<xs:documentation>Specifies the request-processing mode that is used to process requests for managed content. Only available on IIS7, ignored on IIS6.</xs:documentation>
<xs:documentation>
Specifies the request-processing mode that is used to process requests for managed content. Only available on IIS7, ignored on IIS6.
See <a href="http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/applicationPoolDefaults" target="_blank">http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/applicationPoolDefaults</a> for valid values.
This attribute may be set via a formatted Property (e.g. [MyProperty]).
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="classic"/>
<xs:enumeration value="integrated"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="ManagedRuntimeVersion">
<xs:attribute name="ManagedRuntimeVersion" type="xs:string">
<xs:annotation>
<xs:documentation>Specifies the .NET Framework version to be used by the application pool. Only available on IIS7, ignored on IIS6.</xs:documentation>
<xs:documentation>
Specifies the .NET Framework version to be used by the application pool. Only available on IIS7, ignored on IIS6.
See <a href="http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/applicationPoolDefaults" target="_blank">http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/applicationPoolDefaults</a> for valid values.
This attribute may be set via a formatted Property (e.g. [MyProperty]).
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="v1.1"/>
<xs:enumeration value="v2.0"/>
<xs:enumeration value="v4.0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
@ -768,9 +761,9 @@ @@ -768,9 +761,9 @@
The IP address to locate an existing WebSite or create a new WebSite. When the WebAddress is part of a WebSite element
used to locate an existing web site the following rules are used:
<html:ul>
<html:li>When this attribute is not specified only the “All Unassigned” IP address will be located.</html:li>
<html:li>When this attribute is not specified only the "All Unassigned" IP address will be located.</html:li>
<html:li>When this attribute is explicitly specified only the specified IP address will be located.</html:li>
<html:li>When this attribute has the value “*” then any IP address including the “All Unassigned” IP address will be located</html:li>
<html:li>When this attribute has the value "*" then any IP address including the "All Unassigned" IP address will be located</html:li>
</html:ul>
When the WebAddress is part of a WebSite element used to create a new web site the following rules are used:
<html:ul>

18
data/schemas/lux.xsd

@ -1,4 +1,12 @@ @@ -1,4 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<copyright file="lux.xsd" company="Outercurve Foundation">
Copyright (c) 2004, Outercurve Foundation.
This software is released under Microsoft Reciprocal License (MS-RL).
The license and further copyright text can be found in the file
LICENSE.TXT at the root directory of the distribution.
</copyright>
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
@ -6,16 +14,6 @@ @@ -6,16 +14,6 @@
xmlns="http://schemas.microsoft.com/wix/2009/Lux">
<xs:annotation>
<xs:documentation>
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
You must not remove this notice, or any other, from this software.
The source code schema for the Windows Installer XML Toolset Lux Extension.
</xs:documentation>
</xs:annotation>

18
data/schemas/msmq.xsd

@ -1,4 +1,12 @@ @@ -1,4 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<copyright file="msmq.xsd" company="Outercurve Foundation">
Copyright (c) 2004, Outercurve Foundation.
This software is released under Microsoft Reciprocal License (MS-RL).
The license and further copyright text can be found in the file
LICENSE.TXT at the root directory of the distribution.
</copyright>
-->
<xs:schema xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
@ -7,16 +15,6 @@ @@ -7,16 +15,6 @@
xmlns="http://schemas.microsoft.com/wix/MsmqExtension">
<xs:annotation>
<xs:documentation>
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
You must not remove this notice, or any other, from this software.
The source code schema for the Windows Installer XML Toolset MSMQ Extension.
</xs:documentation>
</xs:annotation>

109
data/schemas/netfx.xsd

@ -1,4 +1,12 @@ @@ -1,4 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<copyright file="netfx.xsd" company="Outercurve Foundation">
Copyright (c) 2004, Outercurve Foundation.
This software is released under Microsoft Reciprocal License (MS-RL).
The license and further copyright text can be found in the file
LICENSE.TXT at the root directory of the distribution.
</copyright>
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
@ -6,16 +14,6 @@ @@ -6,16 +14,6 @@
xmlns="http://schemas.microsoft.com/wix/NetFxExtension">
<xs:annotation>
<xs:documentation>
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
You must not remove this notice, or any other, from this software.
The source code schema for the Windows Installer XML Toolset .NET Framework Extension.
</xs:documentation>
</xs:annotation>
@ -30,12 +28,31 @@ @@ -30,12 +28,31 @@
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
<xse:remarks>
Native images are files containing compiled processor-specific machine code, which
are installed into the native image cache on the local computer. The runtime
can use native images from the cache instead using the just-in-time (JIT)
compiler to compile the original assembly.
The native image custom actions are configured to ignore failures so that failing
to generate or remove a native image will not cause setup to fail and roll back.
<html:p>
Native images are files containing compiled processor-specific machine code, which
are installed into the native image cache on the local computer. The runtime
can use native images from the cache instead using the just-in-time (JIT)
compiler to compile the original assembly.
</html:p>
<html:p>
The native image custom actions are configured to ignore failures so that failing
to generate or remove a native image will not cause setup to fail and roll back.
</html:p>
<html:p>
<html:b>Note for patches:</html:b> if you built your target, or baseline, MSI with
previous versions 3.0 or 3.5 of this extension and want to upgrade to formattable
values for @AssemblyApplication or @AppBaseDirectory you must also include a
BinaryRef to "NetFxCA" to pull in necessary changes. If you do use formattable
values and do not include the binary changes ngen.exe will not optimize your
native images for the specified application.
</html:p>
<html:p>
This should be a rare occurrence, however. Because you cannot remove components
in a patch - and pyro does validate you do not - it is not practical to switch
from using identifiers to formattable values in a patch. One practical possibility
is if you wanted to use a different application to optimize your native images
and that application is not already installed with the MSI to be updated.
</html:p>
</xse:remarks>
</xs:appinfo>
</xs:annotation>
@ -50,34 +67,50 @@ @@ -50,34 +67,50 @@
<xs:attribute name="AppBaseDirectory" type="xs:string">
<xs:annotation>
<xs:documentation>
The identifier of the directory to use for locating dependent assemblies.
For DLL assemblies and assemblies installed to the Global Assembly Cache (GAC),
this attribute should be set to the directory of the application which loads this
assembly. For EXE assemblies, this attribute does not need to be set because NGen
will use the directory of the assembly file by default.
<html:p>
The directory to use for locating dependent assemblies.
For DLL assemblies and assemblies installed to the Global Assembly Cache (GAC),
this attribute should be set to the directory of the application which loads this
assembly. For EXE assemblies, this attribute does not need to be set because NGen
will use the directory of the assembly file by default.
</html:p>
<html:p>
The value can be in the form of a directory identifier, or a formatted string
that resolves to either a directory identifier or a full path to a directory.
</html:p>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AssemblyApplication" type="xs:string">
<xs:annotation>
<xs:documentation>
The identifier of the application which will load this assembly.
For DLL assemblies which are loaded via reflection, this attribute should
be set to indicate the application which will load this assembly.
The configuration of the application (usually specified via an exe.config file) will be used
to determine how to resolve dependencies for this assembly.
When a shared component is loaded at run time, using the Load method, the
application's configuration file determines the dependencies that are loaded
for the shared component — for example, the version of a dependency that is loaded.
This attribute gives guidance on which dependencies would be loaded at run time in order
to figure out which dependency assemblies will also need to have native images generated
(assuming the Dependency attribute is not set to "no").
This attribute cannot be set if the AssemblyApplication attribute is set on the parent
File element (please note that these attributes both refer to the same application
assembly but do very different things: specifiying File/@AssemblyApplication will force
an assembly to install to a private location next to the indicated application, whereas
this AssemblyApplication attribute will be used to help resolve dependent assemblies
while generating native images for this assembly).
<html:p>
The application which will load this assembly.
For DLL assemblies which are loaded via reflection, this attribute should
be set to indicate the application which will load this assembly.
The configuration of the application (usually specified via an exe.config file) will be used
to determine how to resolve dependencies for this assembly.
</html:p>
<html:p>
The value can be in the form of a file identifier, or a formatted string
that resolves to either a file identifier or a full path to a file.
</html:p>
<html:p>
When a shared component is loaded at run time, using the Load method, the
application's configuration file determines the dependencies that are loaded
for the shared component — for example, the version of a dependency that is loaded.
This attribute gives guidance on which dependencies would be loaded at run time in order
to figure out which dependency assemblies will also need to have native images generated
(assuming the Dependency attribute is not set to "no").
</html:p>
<html:p>
This attribute cannot be set if the AssemblyApplication attribute is set on the parent
File element (please note that these attributes both refer to the same application
assembly but do very different things: specifiying File/@AssemblyApplication will force
an assembly to install to a private location next to the indicated application, whereas
this AssemblyApplication attribute will be used to help resolve dependent assemblies
while generating native images for this assembly).
</html:p>
</xs:documentation>
</xs:annotation>
</xs:attribute>

18
data/schemas/ps.xsd

@ -1,4 +1,12 @@ @@ -1,4 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<copyright file="ps.xsd" company="Outercurve Foundation">
Copyright (c) 2004, Outercurve Foundation.
This software is released under Microsoft Reciprocal License (MS-RL).
The license and further copyright text can be found in the file
LICENSE.TXT at the root directory of the distribution.
</copyright>
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
@ -7,16 +15,6 @@ @@ -7,16 +15,6 @@
xmlns="http://schemas.microsoft.com/wix/PSExtension">
<xs:annotation>
<xs:documentation>
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
You must not remove this notice, or any other, from this software.
The source code schema for the Windows Installer XML Toolset PowerShell Extension.
</xs:documentation>
</xs:annotation>

18
data/schemas/sql.xsd

@ -1,4 +1,12 @@ @@ -1,4 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<copyright file="sql.xsd" company="Outercurve Foundation">
Copyright (c) 2004, Outercurve Foundation.
This software is released under Microsoft Reciprocal License (MS-RL).
The license and further copyright text can be found in the file
LICENSE.TXT at the root directory of the distribution.
</copyright>
-->
<xs:schema xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
@ -7,16 +15,6 @@ @@ -7,16 +15,6 @@
xmlns="http://schemas.microsoft.com/wix/SqlExtension">
<xs:annotation>
<xs:documentation>
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
You must not remove this notice, or any other, from this software.
The source code schema for the Windows Installer XML Toolset SQL Server Extension.
</xs:documentation>
</xs:annotation>

450
data/schemas/util.xsd

@ -1,17 +1,15 @@ @@ -1,17 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<copyright file="util.xsd" company="Outercurve Foundation">
Copyright (c) 2004, Outercurve Foundation.
This software is released under Microsoft Reciprocal License (MS-RL).
The license and further copyright text can be found in the file
LICENSE.TXT at the root directory of the distribution.
</copyright>
-->
<xs:schema xmlns:html="http://www.w3.org/1999/xhtml" xmlns:wix="http://schemas.microsoft.com/wix/2006/wi" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" targetNamespace="http://schemas.microsoft.com/wix/UtilExtension" xmlns="http://schemas.microsoft.com/wix/UtilExtension">
<xs:annotation>
<xs:documentation>
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
You must not remove this notice, or any other, from this software.
The source code schema for the Windows Installer XML Toolset Utility Extension.
</xs:documentation>
</xs:annotation>
@ -78,6 +76,112 @@ @@ -78,6 +76,112 @@
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="ComponentSearch">
<xs:annotation>
<xs:documentation>Describes a component search.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Bundle" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="SearchCommonAttributes" />
<xs:attribute name="Guid" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Component to search for.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ProductCode" type="xs:string">
<xs:annotation>
<xs:documentation>Optional ProductCode to determine if the component is installed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Result">
<xs:annotation>
<xs:documentation>
Rather than saving the matching key path into the variable, a ComponentSearch can save an attribute of the component instead.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="directory">
<xs:annotation>
<xs:documentation>Saves the parent directory for the component's file key path; other types of key path are returned unmodified.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="state">
<xs:annotation>
<xs:documentation>Saves the state of the component: absent (2), locally installed (3), will run from source (4), or installed in default location (either local or from source) (5)</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="keyPath">
<xs:annotation>
<xs:documentation>Saves the key path of the component if installed. This is the default.</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ComponentSearchRef">
<xs:annotation>
<xs:documentation>References a ComponentSearch.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Bundle" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="DirectorySearch">
<xs:annotation>
<xs:documentation>Describes a directory search.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Bundle" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="SearchCommonAttributes" />
<xs:attribute name="Path" type="xs:string">
<xs:annotation>
<xs:documentation>Directory path to search for.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Result">
<xs:annotation>
<xs:documentation>
Rather than saving the matching directory path into the variable, a DirectorySearch can save an
attribute of the matching directory instead.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="exists">
<xs:annotation>
<xs:documentation>Saves true if a matching directory is found; false otherwise.</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="DirectorySearchRef">
<xs:annotation>
<xs:documentation>References a DirectorySearch.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Bundle" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="EventSource">
<xs:annotation>
<xs:appinfo>
@ -181,6 +285,56 @@ @@ -181,6 +285,56 @@
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="FileSearch">
<xs:annotation>
<xs:documentation>Describes a file search.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Bundle" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="SearchCommonAttributes" />
<xs:attribute name="Path" type="xs:string">
<xs:annotation>
<xs:documentation>File path to search for.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Result">
<xs:annotation>
<xs:documentation>
Rather than saving the matching file path into the variable, a FileSearch can save an attribute of the matching file instead.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="exists">
<xs:annotation>
<xs:documentation>Saves true if a matching file is found; false otherwise.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="version">
<xs:annotation>
<xs:documentation>Saves the version information for files that have it (.exe, .dll); zero-version (0.0.0.0) otherwise.</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="FileSearchRef">
<xs:annotation>
<xs:documentation>References a FileSearch.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Bundle" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="FileShare">
<xs:annotation>
<xs:appinfo>
@ -621,6 +775,143 @@ @@ -621,6 +775,143 @@
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ProductSearch">
<xs:annotation>
<xs:documentation>Describes a product search.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Bundle" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="SearchCommonAttributes" />
<xs:attribute name="Guid" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>ProductCode to search for.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Result">
<xs:annotation>
<xs:documentation>
Rather than saving the product version into the variable, a ProductSearch can save another attribute of the matching product instead.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="version">
<xs:annotation>
<xs:documentation>Saves the version of a matching product if found; 0.0.0.0 otherwise. This is the default.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="language">
<xs:annotation>
<xs:documentation>Saves the language of a matching product if found; empty otherwise.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="state">
<xs:annotation>
<xs:documentation>Saves the state of the product: advertised (1), absent (2), or locally installed (3).</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="assignment">
<xs:annotation>
<xs:documentation>Saves the assignment type of the product: per-user (0), or per-machine (1).</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ProductSearchRef">
<xs:annotation>
<xs:documentation>References a ProductSearch.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Bundle" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="RemoveFolderEx">
<xs:annotation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
<xse:msiRef table="RemoveFile" href="http://msdn.microsoft.com/library/aa371201.aspx"/>
<xse:remarks>
<html:p>The custom action that implements RemoveFolderEx does so by writing temporary rows to the RemoveFile table
for each subfolder of the root folder you specify. Because it might dramatically affect Windows Installer's
<html:a href="http://msdn.microsoft.com/en-us/library/aa368593.aspx">File Costing</html:a>,
the temporary rows must be written before the CostInitialize standard action. Unfortunately, MSI doesn't
create properties for the Directory hierarchy in your package until later, in the CostFinalize action.</html:p>
<html:p>An easy workaround for a typical use case of removing a folder during uninstall is to write the directory
path to the registry and to load it during uninstall. See
<html:a href="http://robmensching.com/blog/posts/2010/5/2/The-WiX-toolsets-Remember-Property-pattern">The WiX toolset's "Remember Property" pattern</html:a>
for an example.</html:p>
<html:p>If you use custom actions to set properties, ensure that they are scheduled before the WixRemoveFoldersEx custom action.</html:p>
</xse:remarks>
</xs:appinfo>
<xs:documentation>
Remove a folder and all contained files and folders if the parent component is selected for installation or removal.
The folder must be specified in the Property attribute as the name of a property that will have a value that resolves
to the full path of the folder before the CostInitialize action. Note that Directory ids cannot be used.
For more details, see the Remarks.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string">
<xs:annotation>
<xs:documentation>Primary key used to identify this particular entry. If this is not specified, a stable identifier
will be generated at compile time based on the other attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Property" type="xs:string">
<xs:annotation>
<xs:documentation>
The id of a property that resolves to the full path of the source directory. The property does not have
to exist in the installer database at creation time; it could be created at installation time by a custom
action, on the command line, etc. The property value can contain environment variables surrounded by
percent signs such as from a REG_EXPAND_SZ registry value; environment variables will be expanded before
being evaluated for a full path.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="On">
<xs:annotation>
<xs:documentation>
This value determines when the folder may be removed.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="install">
<xs:annotation>
<xs:documentation>
Removes the folder only when the parent component is being installed (msiInstallStateLocal or msiInstallStateSource).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="uninstall">
<xs:annotation>
<xs:documentation>
Default: Removes the folder only when the parent component is being removed (msiInstallStateAbsent).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="both">
<xs:annotation>
<xs:documentation>
Removes the folder when the parent component is being installed or removed.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="RestartResource">
<xs:annotation>
<xs:documentation>Registers a resource with the Restart Manager.</xs:documentation>
@ -658,6 +949,119 @@ @@ -658,6 +949,119 @@
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="RegistrySearch">
<xs:annotation>
<xs:documentation>Describes a registry search.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Bundle" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="SearchCommonAttributes" />
<xs:attribute name="Root" use="required">
<xs:annotation>
<xs:documentation>Registry root hive to search under.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="HKLM">
<xs:annotation>
<xs:documentation>HKEY_LOCAL_MACHINE</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="HKCU">
<xs:annotation>
<xs:documentation>HKEY_CURRENT_USER</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="HKCR">
<xs:annotation>
<xs:documentation>HKEY_CLASSES_ROOT</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="HKU">
<xs:annotation>
<xs:documentation>HKEY_USERS</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Key" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Key to search for.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Value" type="xs:string">
<xs:annotation>
<xs:documentation>Optional value to search for under the given Key.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Format">
<xs:annotation>
<xs:documentation>What format to return the value in.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="raw">
<xs:annotation>
<xs:documentation>Returns the unformatted value directly from the registry. For example, a REG_DWORD value of '1' is returned as '1', not '#1'.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="compatible">
<xs:annotation>
<xs:documentation>Returns the value formatted as Windows Installer would. For example, a REG_DWORD value of '1' is returned as '#1', not '1'.</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="ExpandEnvironmentVariables" type="YesNoType">
<xs:annotation>
<xs:documentation>Whether to expand any environment variables in REG_SZ, REG_EXPAND_SZ, or REG_MULTI_SZ values.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Result">
<xs:annotation>
<xs:documentation>
Rather than saving the matching registry value into the variable, a RegistrySearch can save an attribute of the matching entry instead.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="exists">
<xs:annotation>
<xs:documentation>Saves true if a matching registry entry is found; false otherwise.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="value">
<xs:annotation>
<xs:documentation>Saves the value of the registry key in the variable. This is the default.</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Win64" type="YesNoType">
<xs:annotation>
<xs:documentation>Instructs the search to look in the 64-bit registry when the value is 'yes'. When the value is 'no', the search looks in the 32-bit registry. The default value is 'no'.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="RegistrySearchRef">
<xs:annotation>
<xs:documentation>References a RegistrySearch.</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Bundle" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="ServiceConfig">
<xs:annotation>
<xs:documentation>Service configuration information for failure actions.</xs:documentation>
@ -729,7 +1133,7 @@ @@ -729,7 +1133,7 @@
</xs:attribute>
<xs:attribute name="ProgramCommandLine" type="xs:string">
<xs:annotation>
<xs:documentation>If any of the three *ActionType attributes is "runCommand", this specifies the command to run when doing so.</xs:documentation>
<xs:documentation>If any of the three *ActionType attributes is "runCommand", this specifies the command to run when doing so. This value is formatted.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RebootMessage" type="xs:string">
@ -942,7 +1346,7 @@ @@ -942,7 +1346,7 @@
</xs:attribute>
<xs:attribute name="ElementId" type="xs:string">
<xs:annotation>
<xs:documentation>The Id of another XmlConfig to add attributes to. In this case, the 'Action' 'Node' and 'On' attributes must be left unspecified.</xs:documentation>
<xs:documentation>The Id of another XmlConfig to add attributes to. In this case, the 'ElementPath', 'Action', 'Node', and 'On' attributes must be omitted.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ElementPath" type="xs:string">
@ -1001,6 +1405,28 @@ @@ -1001,6 +1405,28 @@
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="SearchCommonAttributes">
<xs:attribute name="Id" type="xs:string">
<xs:annotation>
<xs:documentation>Id of the search for ordering and dependency.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Variable" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Name of the variable in which to place the result of the search.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Condition" type="xs:string">
<xs:annotation>
<xs:documentation>Condition for evaluating the search. If this evaluates to false, the search is not executed at all.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="After" type="xs:string">
<xs:annotation>
<xs:documentation>Id of the search that this one should come after.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:simpleType name="YesNoType">
<xs:annotation>
<xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>

108
data/schemas/vs.xsd

@ -1,20 +1,18 @@ @@ -1,20 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<copyright file="vs.xsd" company="Outercurve Foundation">
Copyright (c) 2004, Outercurve Foundation.
This software is released under Microsoft Reciprocal License (MS-RL).
The license and further copyright text can be found in the file
LICENSE.TXT at the root directory of the distribution.
</copyright>
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
targetNamespace="http://schemas.microsoft.com/wix/VSExtension"
xmlns="http://schemas.microsoft.com/wix/VSExtension">
<xs:annotation>
<xs:documentation>
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
You must not remove this notice, or any other, from this software.
The source code schema for the Windows Installer XML Toolset Visual Studio Extension.
</xs:documentation>
</xs:annotation>
@ -197,6 +195,96 @@ @@ -197,6 +195,96 @@
</xs:complexType>
</xs:element>
<xs:element name="VsixPackage">
<xs:annotation>
<xs:documentation>
This element provides the metdata required to install/uninstall a file as
a VSIX Package. The VSIX package file will be installed as part of the MSI
then passed to the VSIX installer to install the VSIX package. To avoid the
duplication, simply use the MSI to install the VSIX package itself.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="File" type="xs:string">
<xs:annotation>
<xs:documentation>
Reference to file identifer. This attribute is required when the element is not a
child of a File element and is invalid when the element is a child of the File element.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PackageId" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Identity of the VSIX package per its internal manifest. If this value is not correct
the VSIX package will not correctly uninstall.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Permanent" type="YesNoType">
<xs:annotation>
<xs:documentation>
Indicates whether the VSIX package is uninstalled when the parent Component is uninstalled.
The default is 'no'.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Target" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies the SKU of Visual Studio in which to register the extension. If no target
is specified the extension is registered with all installed SKUs. If the Target
attribute is specified the TargetVersion attribute must also be specified. The
following is a list of known Visual Studio targets: integratedShell, professional,
premium, ultimate, vbExpress, vcExpress, vcsExpress, vwdExpress
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TargetVersion" type="VersionType">
<xs:annotation>
<xs:documentation>
Specifies the version of Visual Studio in which to register the extension. This attribute
is required if the Target attribute is specified.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Vital" type="YesNoType">
<xs:annotation>
<xs:documentation>
Indicates whether failure to install the VSIX package causes the installation to rollback.
The default is 'yes'.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VsixInstallerPathProperty" type="xs:string">
<xs:annotation>
<xs:documentation>
Optional reference to a Property element that contains the path to the VsixInstaller.exe.
By default, the latest VsixInstaller.exe on the machine will be used to install the VSIX
package. It is highly recommended that this attribute is *not* used.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:anyAttribute namespace="##other" processContents="lax">
<xs:annotation><xs:documentation>
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
</xs:documentation></xs:annotation>
</xs:anyAttribute>
</xs:complexType>
</xs:element>
<xs:simpleType name="VersionType">
<xs:annotation><xs:documentation>Values of this type will look like: "x.x.x.x" where x is an integer from 0 to 65534.</xs:documentation></xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(\d{1,5}\.){0,3}\d{1,5}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="YesNoType">
<xs:annotation>
<xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>

22264
data/schemas/wix.xsd

File diff suppressed because it is too large Load Diff

85
data/schemas/wixloc.xsd

@ -1,4 +1,12 @@ @@ -1,4 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<copyright file="wixloc.xsd" company="Outercurve Foundation">
Copyright (c) 2004, Outercurve Foundation.
This software is released under Microsoft Reciprocal License (MS-RL).
The license and further copyright text can be found in the file
LICENSE.TXT at the root directory of the distribution.
</copyright>
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
@ -6,16 +14,6 @@ @@ -6,16 +14,6 @@
xmlns="http://schemas.microsoft.com/wix/2006/localization">
<xs:annotation>
<xs:documentation>
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
You must not remove this notice, or any other, from this software.
Schema for describing Windows Installer Xml Localization files (.wxl).
</xs:documentation>
</xs:annotation>
@ -24,26 +22,32 @@ @@ -24,26 +22,32 @@
<xs:annotation>
<xs:appinfo>
<xse:remarks>
<html:p>You can specify any valid Windows code by integer like 1252, or by web name like Windows-1252 or iso-8859-1. See <a href="/html/codepage.htm">Code Pages</a> for more information.</html:p>
<html:p>You can specify any valid Windows code page by integer like 1252, or by web name like Windows-1252 or iso-8859-1. See <a href="/html/codepage.htm">Code Pages</a> for more information.</html:p>
</xse:remarks>
<xse:howtoRef href="build_a_localized_version.htm">How To: Build a localized version of your installer</xse:howtoRef>
<xse:howtoRef href="make_installer_localizable.htm">How To: Make your installer localizable</xse:howtoRef>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="String" />
</xs:sequence>
<xs:element ref="UI" />
</xs:choice>
<xs:attribute name="Codepage" type="xs:string">
<xs:annotation>
<xs:documentation>The code page integer value or web name for the resulting database. You can also specify -1 which will not reset the database code page. See remarks for more information.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Culture" type="xs:string" use="required">
<xs:attribute name="Culture" type="xs:string">
<xs:annotation>
<xs:documentation>Culture of the localization strings.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Language" type="xs:integer">
<xs:annotation>
<xs:documentation>The decimal language ID (LCID) for the culture.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
@ -73,6 +77,59 @@ @@ -73,6 +77,59 @@
</xs:complexType>
</xs:element>
<xs:element name="UI">
<xs:annotation>
<xs:documentation>Allows a localization to override the position, size, and text of dialogs and controls. Override the text by specifying the replacement text in the inner text of the UI element.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:attribute name="Dialog" type="xs:string">
<xs:annotation>
<xs:documentation>Identifies the dialog to localize or the dialog that a control to localize is in.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Control" type="xs:string">
<xs:annotation>
<xs:documentation>Combined with the Dialog attribute, identifies the control to localize.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="X" type="xs:integer">
<xs:annotation>
<xs:documentation>For a dialog, overrides the authored horizontal centering. For a control, overrides the authored horizontal coordinate of the upper-left corner of the rectangular boundary. This must be a non-negative number.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Y" type="xs:integer">
<xs:annotation>
<xs:documentation>For a dialog, overrides the authored vertical centering. For a control, overrides the authored vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Width" type="xs:integer">
<xs:annotation>
<xs:documentation>For a dialog, overrides the authored width in dialog units. For a control, overrides the authored width of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Height" type="xs:integer">
<xs:annotation>
<xs:documentation>For a dialog, overrides the authored height in dialog units. For a control, overrides the authored height of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RightToLeft" type="LocalizationYesNoType">
<xs:annotation>
<xs:documentation>Set this attribute to "yes" to cause the Control to display from right to left. Not valid for a dialog.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RightAligned" type="LocalizationYesNoType">
<xs:annotation>
<xs:documentation>Set this attribute to "yes" to cause the Control to be right aligned. Not valid for a dialog.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LeftScroll" type="LocalizationYesNoType">
<xs:annotation>
<xs:documentation>Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control. Not valid for a dialog.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:simpleType name="LocalizationYesNoType">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="no" />

2
data/templates/project/CSharp/ConsoleProject.xpt

@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
</Actions>
<!-- Template Content -->
<Project language = "C#" defaultPlatform="x86">
<Project language = "C#">
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

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

@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
<Open filename = "MainForm.cs"/>
</Actions>
<Project language = "C#" defaultPlatform="x86">
<Project language = "C#">
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

2
data/templates/project/CSharp/NotifyIcon.xpt

@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
<Open filename = "NotificationIcon.cs"/>
</Actions>
<Project language="C#" defaultPlatform="x86">
<Project language="C#">
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

2
data/templates/project/CSharp/Service.xpt

@ -19,7 +19,7 @@ @@ -19,7 +19,7 @@
</Actions>
<!-- Template Content -->
<Project language = "C#" defaultPlatform="x86">
<Project language = "C#">
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Configuration.Install" />

2
data/templates/project/CSharp/WPFApplication.xpt

@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
<Open filename = "Window1.xaml"/>
</Actions>
<Project language = "C#" defaultPlatform="x86">
<Project language = "C#">
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

2
data/templates/project/CSharp/WPFNavigationApplication.xpt

@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
<Open filename = "Page1.xaml"/>
</Actions>
<Project language = "C#" defaultPlatform="x86">
<Project language = "C#">
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

2
data/templates/project/VB/ConsoleProject.xpt

@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
<!-- Template Content -->
<Project language = "VBNet" defaultPlatform="x86">
<Project language = "VBNet">
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

2
data/templates/project/VB/FormsProject.xpt

@ -19,7 +19,7 @@ @@ -19,7 +19,7 @@
</Actions>
<!-- Template Content -->
<Project language="VBNet" defaultPlatform="x86">
<Project language="VBNet">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>

2
data/templates/project/VB/NotifyIcon.xpt

@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
<Open filename = "NotificationIcon.vb"/>
</Actions>
<Project language="VBNet" defaultPlatform="x86">
<Project language="VBNet">
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

2
data/templates/project/VB/Service.xpt

@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
<Open filename = "${ProjectName}.vb"/>
</Actions>
<Project language="VBNet" defaultPlatform="x86">
<Project language="VBNet">
<PropertyGroup>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>

2
data/templates/project/VB/WPFApplication.xpt

@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
<Open filename = "MainWindow.xaml"/>
</Actions>
<Project language = "VBNet" defaultPlatform="x86">
<Project language = "VBNet">
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

2
data/templates/project/VB/WPFNavigationApplication.xpt

@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
<Open filename = "Page1.xaml"/>
</Actions>
<Project language = "VBNet" defaultPlatform="x86">
<Project language = "VBNet">
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />

6
src/AddIns/Analysis/CodeAnalysis/CodeAnalysis.addin

@ -21,13 +21,9 @@ @@ -21,13 +21,9 @@
<Path name = "/SharpDevelop/BackendBindings/ProjectOptions/AllManaged">
<!--<OptionPanel id = "CodeAnalysis"
label = "${res:ICSharpCode.CodeAnalysis}"
class = "ICSharpCode.CodeAnalysis.AnalysisProjectOptionsPanel"/>-->
<OptionPanel id = "CodeAnalysis"
label = "${res:ICSharpCode.CodeAnalysis}"
class = "ICSharpCode.CodeAnalysis.AnalysisProjectOptionsPanelXaml"/>
class = "ICSharpCode.CodeAnalysis.AnalysisProjectOptionsPanel"/>
</Path>
<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ProjectActions">

18
src/AddIns/Analysis/CodeAnalysis/CodeAnalysis.csproj

@ -64,16 +64,8 @@ @@ -64,16 +64,8 @@
<DependentUpon>AnalysisIdeOptionsPanel.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Src\old_AnalysisProjectOptionsPanel.cs" />
<Compile Include="Src\old_AnalysisProjectOptions.Designer.cs">
<DependentUpon>old_AnalysisProjectOptions.cs</DependentUpon>
</Compile>
<Compile Include="Src\old_AnalysisProjectOptions.cs" />
<EmbeddedResource Include="Src\old_AnalysisProjectOptions.resx">
<DependentUpon>old_AnalysisProjectOptions.cs</DependentUpon>
</EmbeddedResource>
<Compile Include="Src\AnalysisProjectOptionsPanelXaml.xaml.cs">
<DependentUpon>AnalysisProjectOptionsPanelXaml.xaml</DependentUpon>
<Compile Include="Src\AnalysisProjectOptionsPanel.xaml.cs">
<DependentUpon>AnalysisProjectOptionsPanel.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Src\AnalysisProjectOptionsTreeNodes.cs" />
@ -82,13 +74,12 @@ @@ -82,13 +74,12 @@
<Compile Include="Src\CheckCurrentProjectCommand.cs" />
<Compile Include="Src\FxCopLogger.cs" />
<Compile Include="Src\SuppressMessageCommand.cs" />
<Compile Include="Src\old_AnalysisIdeOptionsPanel.cs" />
<EmbeddedResource Include="Resources\old_AnalysisIdeOptionPanel.xfrm" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>
<Name>ICSharpCode.NRefactory</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project>
@ -100,11 +91,10 @@ @@ -100,11 +91,10 @@
<Name>ICSharpCode.Core</Name>
<Private>False</Private>
</ProjectReference>
<Folder Include="Resources" />
</ItemGroup>
<ItemGroup>
<Page Include="Src\AnalysisIdeOptionsPanel.xaml" />
<Page Include="Src\AnalysisProjectOptionsPanelXaml.xaml" />
<Page Include="Src\AnalysisProjectOptionsPanel.xaml" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>

35
src/AddIns/Analysis/CodeAnalysis/Resources/old_AnalysisIdeOptionPanel.xfrm

@ -1,35 +0,0 @@ @@ -1,35 +0,0 @@
<Components version="1.0">
<System.Windows.Forms.UserControl>
<Name value="AnalysisIdeOptionPanel" />
<ClientSize value="{Width=348, Height=301}" />
<Controls>
<System.Windows.Forms.GroupBox>
<Name value="groupBox1" />
<Location value="3, 3" />
<Text value="${res:ICSharpCode.CodeAnalysis.IdeOptions.FxCopPath}" />
<Anchor value="Top, Left, Right" />
<Size value="342, 117" />
<TabIndex value="0" />
<Controls>
<System.Windows.Forms.Button>
<Name value="findFxCopPathButton" />
<Location value="92, 81" />
<Text value="${res:ICSharpCode.CodeAnalysis.IdeOptions.FindFxCopPath}" />
<Anchor value="Top" />
<UseVisualStyleBackColor value="True" />
<Size value="150, 23" />
<TabIndex value="1" />
</System.Windows.Forms.Button>
<System.Windows.Forms.Label>
<Name value="statusLabel" />
<Location value="6, 17" />
<Text value="(showing current FxCop path)" />
<Anchor value="Top, Left, Right" />
<Size value="330, 61" />
<TabIndex value="0" />
</System.Windows.Forms.Label>
</Controls>
</System.Windows.Forms.GroupBox>
</Controls>
</System.Windows.Forms.UserControl>
</Components>

5
src/AddIns/Analysis/CodeAnalysis/Src/AnalysisIdeOptionsPanel.xaml

@ -2,8 +2,7 @@ @@ -2,8 +2,7 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:core="http://icsharpcode.net/sharpdevelop/core"
xmlns:gui="clr-namespace:ICSharpCode.SharpDevelop.Gui;assembly=ICSharpCode.SharpDevelop"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets">
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<GroupBox Header="{core:Localize ICSharpCode.CodeAnalysis.IdeOptions.FxCopPath}">
<StackPanel>
@ -11,7 +10,7 @@ @@ -11,7 +10,7 @@
HorizontalAlignment="Center" TextWrapping="Wrap"
Text="(showing current FxCop path)"></TextBlock>
<Button Content="{core:Localize ICSharpCode.CodeAnalysis.IdeOptions.FindFxCopPath}"
HorizontalAlignment="Center"
HorizontalAlignment="Center"
Click="FindFxCopPath_Click"
Style="{x:Static core:GlobalStyles.ButtonStyle}"></Button>
</StackPanel>

10
src/AddIns/Analysis/CodeAnalysis/Src/AnalysisIdeOptionsPanel.xaml.cs

@ -10,6 +10,8 @@ using System.IO; @@ -10,6 +10,8 @@ using System.IO;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
using ICSharpCode.SharpDevelop.Project;
using Microsoft.Win32;
namespace ICSharpCode.CodeAnalysis
{
@ -39,9 +41,11 @@ namespace ICSharpCode.CodeAnalysis @@ -39,9 +41,11 @@ namespace ICSharpCode.CodeAnalysis
private void FindFxCopPath_Click(object sender, System.Windows.RoutedEventArgs e)
{
string fn = OptionsHelper.OpenFile("${res:SharpDevelop.FileFilter.ExecutableFiles}|*.exe;");
if (!String.IsNullOrEmpty(fn)) {
string path = Path.GetDirectoryName(fn);
OpenFileDialog dlg = new OpenFileDialog();
dlg.DefaultExt = "exe";
dlg.Filter = StringParser.Parse("FxCop|fxcop.exe|${res:SharpDevelop.FileFilter.AllFiles}|*.*");
if (dlg.ShowDialog() == true) {
string path = Path.GetDirectoryName(dlg.FileName);
if (FxCopWrapper.IsFxCopPath(path)) {
FxCopPath = path;
} else {

82
src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanel.xaml

@ -0,0 +1,82 @@ @@ -0,0 +1,82 @@
<optionpanels:ProjectOptionPanel x:Class="ICSharpCode.CodeAnalysis.AnalysisProjectOptionsPanel"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:optionpanels="clr-namespace:ICSharpCode.SharpDevelop.Gui.OptionPanels;assembly=ICSharpCode.SharpDevelop"
xmlns:tv="http://icsharpcode.net/sharpdevelop/treeview"
xmlns:local="clr-namespace:ICSharpCode.CodeAnalysis"
xmlns:core="http://icsharpcode.net/sharpdevelop/core">
<!-- xmlns:gui="clr-namespace:ICSharpCode.SharpDevelop.Gui;assembly=ICSharpCode.SharpDevelop"-->
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="30"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<optionpanels:StorageLocationPicker Location="{Binding RunCodeAnalysis.Location}"></optionpanels:StorageLocationPicker>
<CheckBox Grid.Column="1" VerticalAlignment="Center" Grid.ColumnSpan="2"
IsChecked="{Binding RunCodeAnalysis.Value}"
Content="{core:Localize ICSharpCode.CodeAnalysis.ProjectOptions.RunOnBuild}"></CheckBox>
<Button Grid.Row="1" VerticalAlignment="Center" Grid.ColumnSpan="2" Margin="0,10,0,10"
Style="{x:Static core:GlobalStyles.ButtonStyle}"
Click="ChangeRuleAssembliesButtonClick"
Content="{core:Localize ICSharpCode.CodeAnalysis.ProjectOptions.AddRemoveRuleAssembly}"></Button>
<tv:SharpTreeView x:Name="ruleTreeView" Grid.Row="2" Grid.ColumnSpan="3"
VerticalAlignment="Stretch"
ShowRoot="False" ShowLines="False" IsSynchronizedWithCurrentItem="True">
<ListView.View>
<tv:SharpGridView >
<tv:SharpGridView.Columns>
<GridViewColumn Width="500" Header="ID">
<GridViewColumn.CellTemplate>
<DataTemplate>
<tv:SharpTreeNodeView />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Action">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<ComboBox Background="Transparent" Width="100"
HorizontalAlignment="Center" VerticalAlignment="Center"
ItemsSource="{Binding Path=RuleState}"
IsSynchronizedWithCurrentItem="True"
IsReadOnly="False"
SelectedIndex="{Binding Index}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image VerticalAlignment="Center" Height="15" Margin="3,0,5,0"
Source="{Binding Item1}"></Image>
<TextBlock VerticalAlignment="Center" Text="{Binding Item2}"></TextBlock>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</tv:SharpGridView.Columns>
</tv:SharpGridView>
</ListView.View>
</tv:SharpTreeView>
</Grid>
</optionpanels:ProjectOptionPanel>

80
src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs → src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanel.xaml.cs

@ -7,25 +7,11 @@ @@ -7,25 +7,11 @@
*/
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Drawing;
using System.Drawing.Imaging;
using System.Globalization;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using Gui.Dialogs.OptionPanels.ProjectOptions;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
using ICSharpCode.SharpDevelop.Project;
@ -34,17 +20,16 @@ using ICSharpCode.TreeView; @@ -34,17 +20,16 @@ using ICSharpCode.TreeView;
namespace ICSharpCode.CodeAnalysis
{
/// <summary>
/// Interaction logic for AnalysisProjectOptionsPanelXaml.xaml
/// Interaction logic for AnalysisProjectOptionsPanel.xaml
/// </summary>
public partial class AnalysisProjectOptionsPanelXaml : ProjectOptionPanel
public partial class AnalysisProjectOptionsPanel : ProjectOptionPanel
{
private bool initSuccess;
private bool userCheck;
private Dictionary<string, RuleTreeNode> rules = new Dictionary<string, RuleTreeNode>();
public AnalysisProjectOptionsPanelXaml()
public AnalysisProjectOptionsPanel()
{
InitializeComponent();
DataContext = this;
@ -93,6 +78,7 @@ namespace ICSharpCode.CodeAnalysis @@ -93,6 +78,7 @@ namespace ICSharpCode.CodeAnalysis
string CreateRuleString()
{
StringBuilder b = new StringBuilder();
foreach (SharpTreeNode category in ruleTreeView.Items) {
foreach (RuleTreeNode rule in category.Children) {
@ -115,13 +101,13 @@ namespace ICSharpCode.CodeAnalysis @@ -115,13 +101,13 @@ namespace ICSharpCode.CodeAnalysis
void ReadRuleString()
{
userCheck = false;
foreach (SharpTreeNode cat in ruleTreeView.Root.Children) {
foreach (RuleTreeNode rtn in cat.Children) {
rtn.IsChecked = true;
rtn.isError = false;
}
}
foreach (string rule2 in ruleString.Split(';')) {
string rule = rule2;
if (rule.Length == 0) continue;
@ -140,39 +126,26 @@ namespace ICSharpCode.CodeAnalysis @@ -140,39 +126,26 @@ namespace ICSharpCode.CodeAnalysis
RuleTreeNode ruleNode;
if (rules.TryGetValue(rule, out ruleNode)) {
ruleNode.IsChecked = active;
//ruleNode.isError = error;
ruleNode.Index = 1;
ruleNode.isError = error;
if (error) {
ruleNode.Index = 1;
} else {
ruleNode.Index = 0;
}
// ruleNode.Index = 1;
}
}
userCheck = true;
SetCategoryIcon();
}
void SetCategoryIcon() {
Console.WriteLine("SetCategoryicon");
private void SetCategoryIcon() {
foreach (CategoryTreeNode categoryNode in ruleTreeView.Root.Children) {
categoryNode.CheckMode();
/*
if (!categoryNode.NewErrorState.HasValue) {
Console.WriteLine ("\t{0} is Mixed Mode",categoryNode.Text);
categoryNode.AddMixedMode();
} else{
if (categoryNode.NewErrorState == true) {
Console.WriteLine ("\t{0} is Error",categoryNode.Text);
// categoryNode.Index = 1;
} else {
Console.WriteLine ("\t{0} is Warning",categoryNode.Text);
// categoryNode.Index = ;
}
}
*/
}
Console.WriteLine("--------------");
}
string ruleString = "";
public string RuleString {
@ -193,6 +166,7 @@ namespace ICSharpCode.CodeAnalysis @@ -193,6 +166,7 @@ namespace ICSharpCode.CodeAnalysis
#endregion
#region overrides
protected override void Load(MSBuildBasedProject project, string configuration, string platform)
{
base.Load(project, configuration, platform);
@ -253,8 +227,27 @@ namespace ICSharpCode.CodeAnalysis @@ -253,8 +227,27 @@ namespace ICSharpCode.CodeAnalysis
private void OnPropertyChanged(object sender,System.ComponentModel.PropertyChangedEventArgs e)
{
if (initSuccess) {
Console.WriteLine("OnPropertyChanged {0}",e.PropertyName);
if (e.PropertyName == "Index") {
initSuccess = false;
var categoryNode = sender as CategoryTreeNode;
if (categoryNode != null) {
foreach (RuleTreeNode rule in categoryNode.Children) {
rule.Index = categoryNode.Index;
}
base.IsDirty = true;
initSuccess = true;
}
var ruleNode = sender as RuleTreeNode;
if (ruleNode != null) {
CategoryTreeNode parent = ruleNode.Parent as CategoryTreeNode;
parent.CheckMode();
base.IsDirty = true;
initSuccess = true;
}
}
if (e.PropertyName == "IsChecked") {
base.IsDirty = true;
}
}
@ -297,6 +290,7 @@ namespace ICSharpCode.CodeAnalysis @@ -297,6 +290,7 @@ namespace ICSharpCode.CodeAnalysis
initSuccess = true;
try {
this.RuleAssemblies = b.ToString();
IsDirty = true;
} finally {
initSuccess = oldInitSuccess;
}

87
src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml

@ -1,87 +0,0 @@ @@ -1,87 +0,0 @@
<optionpanels:ProjectOptionPanel x:Class="ICSharpCode.CodeAnalysis.AnalysisProjectOptionsPanelXaml"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:gui="clr-namespace:ICSharpCode.SharpDevelop.Gui;assembly=ICSharpCode.SharpDevelop"
xmlns:optionpanels="clr-namespace:ICSharpCode.SharpDevelop.Gui.OptionPanels;assembly=ICSharpCode.SharpDevelop"
xmlns:project="clr-namespace:ICSharpCode.SharpDevelop.Project;assembly=ICSharpCode.SharpDevelop"
xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets"
xmlns:tv="http://icsharpcode.net/sharpdevelop/treeview"
xmlns:local="clr-namespace:ICSharpCode.CodeAnalysis"
xmlns:core="http://icsharpcode.net/sharpdevelop/core">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="30"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<optionpanels:StorageLocationPicker Location="{Binding RunCodeAnalysis.Location}"></optionpanels:StorageLocationPicker>
<CheckBox Grid.Column="1" VerticalAlignment="Center" Grid.ColumnSpan="2"
IsChecked="{Binding RunCodeAnalysis.Value}"
Content="{core:Localize ICSharpCode.CodeAnalysis.ProjectOptions.RunOnBuild}"></CheckBox>
<Button Grid.Row="1" VerticalAlignment="Center" Grid.ColumnSpan="2" Margin="0,10,0,10"
Style="{x:Static core:GlobalStyles.ButtonStyle}"
Click="ChangeRuleAssembliesButtonClick"
Content="{core:Localize ICSharpCode.CodeAnalysis.ProjectOptions.AddRemoveRuleAssembly}"></Button>
<tv:SharpTreeView x:Name="ruleTreeView" ShowRoot="False" ShowLines="False" IsSynchronizedWithCurrentItem="True"
Grid.Row="2" Grid.ColumnSpan="3">
<ListView.View>
<tv:SharpGridView >
<tv:SharpGridView.Columns>
<GridViewColumn Width="500" Header="ID">
<GridViewColumn.CellTemplate>
<DataTemplate>
<tv:SharpTreeNodeView />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Action">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<ComboBox Background="Transparent" Width="100"
HorizontalAlignment="Center" VerticalAlignment="Center"
ItemsSource="{Binding Path=RuleState}"
IsSynchronizedWithCurrentItem="True"
IsReadOnly="False"
SelectedIndex="{Binding Index}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image VerticalAlignment="Center" Height="15" Margin="3,0,5,0"
Source="{Binding Item1}"></Image>
<TextBlock VerticalAlignment="Center" Text="{Binding Item2}"></TextBlock>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</tv:SharpGridView.Columns>
</tv:SharpGridView>
</ListView.View>
</tv:SharpTreeView>
</Grid>
</ScrollViewer>
</optionpanels:ProjectOptionPanel>

104
src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs

@ -6,7 +6,6 @@ @@ -6,7 +6,6 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Drawing;
using System.Windows;
@ -27,8 +26,6 @@ namespace ICSharpCode.CodeAnalysis @@ -27,8 +26,6 @@ namespace ICSharpCode.CodeAnalysis
{
private int index;
public BaseTree()
{
RuleState = new ObservableCollection<Tuple<ImageSource,string>>();
@ -42,9 +39,10 @@ namespace ICSharpCode.CodeAnalysis @@ -42,9 +39,10 @@ namespace ICSharpCode.CodeAnalysis
imageSource = ToImageSource(icon);
this.RuleState.Add(Tuple.Create<ImageSource,string>(imageSource,
ResourceService.GetString("Global.ErrorText")));
// bla.Add(Tuple.Create<Icon,string>(null,"None"));
}
private static ImageSource ToImageSource( Icon icon)
{
Bitmap bitmap = icon.ToBitmap();
@ -60,7 +58,6 @@ namespace ICSharpCode.CodeAnalysis @@ -60,7 +58,6 @@ namespace ICSharpCode.CodeAnalysis
}
public ObservableCollection<Tuple<ImageSource,string>> RuleState {get;set;}
private Tuple<Icon,string> selectedItem;
@ -93,7 +90,6 @@ namespace ICSharpCode.CodeAnalysis @@ -93,7 +90,6 @@ namespace ICSharpCode.CodeAnalysis
foreach (FxCopRule rule in category.Rules) {
this.Children.Add(new RuleTreeNode(rule));
}
CheckMode();
}
@ -101,29 +97,18 @@ namespace ICSharpCode.CodeAnalysis @@ -101,29 +97,18 @@ namespace ICSharpCode.CodeAnalysis
get { return true; }
}
public override object Text {
get { return category.DisplayName; }
}
bool ignoreCheckMode;
public override int Index {
get { return base.Index; }
set {
if (value != base.Index) {
base.Index = value;
if (mixedModeTuple == null) {
Console.WriteLine("Set all to index");
ignoreCheckMode = true;
foreach (RuleTreeNode rule in this.Children) {
rule.Index = Index;
}
ignoreCheckMode = false;
// CheckMode();
// base.RaisePropertyChanged("Index");
// foreach (RuleTreeNode rule in this.Children) {
// Console.WriteLine(rule.Index.ToString());
// }
}
RaisePropertyChanged("Index");
}
}
}
@ -131,7 +116,6 @@ namespace ICSharpCode.CodeAnalysis @@ -131,7 +116,6 @@ namespace ICSharpCode.CodeAnalysis
private void AddMixedMode()
{
Console.WriteLine("AddMixedMode");
if (!RuleState.Contains(mixedModeTuple)) {
var image = PresentationResourceService.GetBitmapSource("Icons.16x16.ClosedFolderBitmap");
mixedModeTuple = Tuple.Create<ImageSource,string>(image,
@ -139,48 +123,39 @@ namespace ICSharpCode.CodeAnalysis @@ -139,48 +123,39 @@ namespace ICSharpCode.CodeAnalysis
RuleState.Add(mixedModeTuple);
Index = RuleState.Count -1;
base.RaisePropertyChanged("Index");
CheckMode();
}
}
private void RemoveMixedMode()
{
Console.WriteLine("RemoveMixedMode(");
if (mixedModeTuple != null) {
if (RuleState.Contains(mixedModeTuple)) {
RuleState.Remove(mixedModeTuple);
mixedModeTuple = null;
base.RaisePropertyChanged("Index");
CheckMode();
}
}
}
public void CheckMode ()
{
if (! ignoreCheckMode) {
Console.WriteLine("CheckMode");
if (!NewErrorState.HasValue) {
Console.WriteLine ("\t{0} is Mixed Mode",Text);
AddMixedMode();
}
else{
RemoveMixedMode();
/*
if (NewErrorState == true) {
Console.WriteLine ("\t{0} is Error",Text);
// Index = 1;
} else {
Console.WriteLine ("\t{0} is Warning",Text);
// categoryNode.Index = ;
}
*/
}
var state = ErrorState;
if (state == 0) {
RemoveMixedMode();
Index = 0;
} else if (state == 1) {
RemoveMixedMode();
Index = 1;
} else {
AddMixedMode();
}
}
public Nullable<bool> NewErrorState {
internal int ErrorState {
get {
bool allWarn = true;
bool allErr = true;
@ -191,35 +166,13 @@ namespace ICSharpCode.CodeAnalysis @@ -191,35 +166,13 @@ namespace ICSharpCode.CodeAnalysis
allErr = false;
}
if (allErr)
return true;
else if (allWarn)
return false;
else
return null;
}
}
/*
internal int ErrorState {
get {
bool allWarn = true;
bool allErr = true;
foreach (RuleTreeNode tn in Children) {
if (tn.isError)
allWarn = false;
else
allErr = false;
}
if (allErr)
return 1;
else if (allWarn)
return 0;
else
return -1;
return 1;
if (allWarn) {
return 0;
}
return -1;
}
*/
}
}
@ -230,10 +183,7 @@ namespace ICSharpCode.CodeAnalysis @@ -230,10 +183,7 @@ namespace ICSharpCode.CodeAnalysis
internal bool isError {
get { return error; }
set {
error = value;
// Index = 1;
}
set {error = value;}
}
@ -242,14 +192,17 @@ namespace ICSharpCode.CodeAnalysis @@ -242,14 +192,17 @@ namespace ICSharpCode.CodeAnalysis
this.rule = rule;
}
public override bool IsCheckable {
get { return true; }
}
public override object Text {
get { return rule.CheckId + " : " + rule.DisplayName; }
}
public string Identifier {
get {
return rule.CategoryName + "#" + rule.CheckId;
@ -264,9 +217,6 @@ namespace ICSharpCode.CodeAnalysis @@ -264,9 +217,6 @@ namespace ICSharpCode.CodeAnalysis
isError = value == 1;
base.Index = value;
RaisePropertyChanged("Index");
var p = Parent as CategoryTreeNode;
p.CheckMode();
Console.WriteLine ("RuleNode {0} - index {1} - error {2}",rule.DisplayName,Index, isError);
}
}
}

64
src/AddIns/Analysis/CodeAnalysis/Src/old_AnalysisIdeOptionsPanel.cs

@ -1,64 +0,0 @@ @@ -1,64 +0,0 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
using System;
using System.IO;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.CodeAnalysis
{
/// <summary>
/// Option panel to choose the FxCop path from.
/// </summary>
public class old_AnalysisIdeOptionsPanel : XmlFormsOptionPanel
{
public override void LoadPanelContents()
{
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("ICSharpCode.CodeAnalysis.Resources.AnalysisIdeOptionPanel.xfrm"));
ShowStatus();
Get<Button>("findFxCopPath").Click += FindFxCopPathClick;
}
void ShowStatus()
{
string path = FxCopWrapper.FindFxCopPath();
if (path == null) {
Get<Label>("status").Text = StringParser.Parse("${res:ICSharpCode.CodeAnalysis.IdeOptions.FxCopNotFound}");
} else {
Get<Label>("status").Text = StringParser.Parse("${res:ICSharpCode.CodeAnalysis.IdeOptions.FxCopFoundInPath}")
+ Environment.NewLine + path;
}
}
void FindFxCopPathClick(object sender, EventArgs e)
{
using (OpenFileDialog dlg = new OpenFileDialog()) {
dlg.DefaultExt = "exe";
dlg.Filter = StringParser.Parse("FxCop|fxcop.exe|${res:SharpDevelop.FileFilter.AllFiles}|*.*");
if (dlg.ShowDialog() == DialogResult.OK) {
string path = Path.GetDirectoryName(dlg.FileName);
if (FxCopWrapper.IsFxCopPath(path)) {
FxCopPath = path;
} else {
MessageService.ShowError("${res:ICSharpCode.CodeAnalysis.IdeOptions.DirectoryDoesNotContainFxCop}");
}
}
}
ShowStatus();
}
public static string FxCopPath {
get {
return SD.PropertyService.Get("CodeAnalysis.FxCopPath", string.Empty);
}
set {
SD.PropertyService.Set("CodeAnalysis.FxCopPath", value);
}
}
}
}

166
src/AddIns/Analysis/CodeAnalysis/Src/old_AnalysisProjectOptions.Designer.cs generated

@ -1,166 +0,0 @@ @@ -1,166 +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)
namespace ICSharpCode.CodeAnalysis
{
partial class old_AnalysisProjectOptions : System.Windows.Forms.UserControl
{
/// <summary>
/// Designer variable used to keep track of non-visual components.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Disposes resources used by the control.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing) {
if (components != null) {
components.Dispose();
}
}
base.Dispose(disposing);
}
/// <summary>
/// This method is required for Windows Forms designer support.
/// Do not change the method contents inside the source code editor. The Forms designer might
/// not be able to load this method if it was changed manually.
/// </summary>
private void InitializeComponent()
{
System.Windows.Forms.SplitContainer splitContainer1;
System.Windows.Forms.Panel panel1;
this.ruleLabel = new System.Windows.Forms.Label();
this.warningOrErrorLabel = new System.Windows.Forms.Label();
this.enableCheckBox = new System.Windows.Forms.CheckBox();
this.ruleTreeView = new System.Windows.Forms.TreeView();
this.changeRuleAssembliesButton = new System.Windows.Forms.Button();
splitContainer1 = new System.Windows.Forms.SplitContainer();
panel1 = new System.Windows.Forms.Panel();
splitContainer1.Panel1.SuspendLayout();
splitContainer1.Panel2.SuspendLayout();
splitContainer1.SuspendLayout();
panel1.SuspendLayout();
this.SuspendLayout();
//
// splitContainer1
//
splitContainer1.BackColor = System.Drawing.SystemColors.ControlDark;
splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
splitContainer1.Location = new System.Drawing.Point(1, 1);
splitContainer1.Name = "splitContainer1";
//
// splitContainer1.Panel1
//
splitContainer1.Panel1.Controls.Add(this.ruleLabel);
splitContainer1.Panel1.RightToLeft = System.Windows.Forms.RightToLeft.No;
//
// splitContainer1.Panel2
//
splitContainer1.Panel2.Controls.Add(this.warningOrErrorLabel);
splitContainer1.Panel2.RightToLeft = System.Windows.Forms.RightToLeft.No;
splitContainer1.RightToLeft = System.Windows.Forms.RightToLeft.No;
splitContainer1.Size = new System.Drawing.Size(375, 17);
splitContainer1.SplitterDistance = 214;
splitContainer1.SplitterWidth = 2;
splitContainer1.TabIndex = 1;
//
// ruleLabel
//
this.ruleLabel.BackColor = System.Drawing.SystemColors.ControlLight;
this.ruleLabel.Dock = System.Windows.Forms.DockStyle.Fill;
this.ruleLabel.Location = new System.Drawing.Point(0, 0);
this.ruleLabel.Name = "ruleLabel";
this.ruleLabel.Size = new System.Drawing.Size(214, 17);
this.ruleLabel.TabIndex = 0;
this.ruleLabel.Text = "${res:ICSharpCode.CodeAnalysis.Rule}";
//
// warningOrErrorLabel
//
this.warningOrErrorLabel.BackColor = System.Drawing.SystemColors.ControlLight;
this.warningOrErrorLabel.Dock = System.Windows.Forms.DockStyle.Fill;
this.warningOrErrorLabel.Location = new System.Drawing.Point(0, 0);
this.warningOrErrorLabel.Name = "warningOrErrorLabel";
this.warningOrErrorLabel.Size = new System.Drawing.Size(159, 17);
this.warningOrErrorLabel.TabIndex = 0;
this.warningOrErrorLabel.Text = "${res:ICSharpCode.CodeAnalysis.ProjectOptions.WarningOrError}";
//
// panel1
//
panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
panel1.BackColor = System.Drawing.SystemColors.InactiveCaption;
panel1.Controls.Add(splitContainer1);
panel1.Location = new System.Drawing.Point(15, 57);
panel1.Name = "panel1";
panel1.Padding = new System.Windows.Forms.Padding(1);
panel1.Size = new System.Drawing.Size(377, 19);
panel1.TabIndex = 3;
//
// enableCheckBox
//
this.enableCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.enableCheckBox.Location = new System.Drawing.Point(15, 4);
this.enableCheckBox.Name = "enableCheckBox";
this.enableCheckBox.Size = new System.Drawing.Size(376, 24);
this.enableCheckBox.TabIndex = 0;
this.enableCheckBox.Text = "${res:ICSharpCode.CodeAnalysis.ProjectOptions.RunOnBuild}";
this.enableCheckBox.UseVisualStyleBackColor = true;
//
// ruleTreeView
//
this.ruleTreeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ruleTreeView.CheckBoxes = true;
this.ruleTreeView.DrawMode = System.Windows.Forms.TreeViewDrawMode.OwnerDrawText;
this.ruleTreeView.Location = new System.Drawing.Point(15, 75);
this.ruleTreeView.Name = "ruleTreeView";
this.ruleTreeView.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.ruleTreeView.Size = new System.Drawing.Size(377, 166);
this.ruleTreeView.TabIndex = 2;
this.ruleTreeView.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.RuleTreeViewAfterCheck);
this.ruleTreeView.DrawNode += new System.Windows.Forms.DrawTreeNodeEventHandler(this.RuleTreeViewDrawNode);
this.ruleTreeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.RuleTreeViewMouseDown);
//
// changeRuleAssembliesButton
//
this.changeRuleAssembliesButton.AutoSize = true;
this.changeRuleAssembliesButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.changeRuleAssembliesButton.Location = new System.Drawing.Point(15, 28);
this.changeRuleAssembliesButton.Name = "changeRuleAssembliesButton";
this.changeRuleAssembliesButton.Size = new System.Drawing.Size(387, 23);
this.changeRuleAssembliesButton.TabIndex = 4;
this.changeRuleAssembliesButton.Text = "${res:ICSharpCode.CodeAnalysis.ProjectOptions.AddRemoveRuleAssembly}";
this.changeRuleAssembliesButton.UseVisualStyleBackColor = true;
this.changeRuleAssembliesButton.Click += new System.EventHandler(this.ChangeRuleAssembliesButtonClick);
//
// AnalysisProjectOptions
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.changeRuleAssembliesButton);
this.Controls.Add(this.ruleTreeView);
this.Controls.Add(this.enableCheckBox);
this.Controls.Add(panel1);
this.Name = "AnalysisProjectOptions";
this.Size = new System.Drawing.Size(395, 244);
splitContainer1.Panel1.ResumeLayout(false);
splitContainer1.Panel2.ResumeLayout(false);
splitContainer1.ResumeLayout(false);
panel1.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
private System.Windows.Forms.Button changeRuleAssembliesButton;
private System.Windows.Forms.Label warningOrErrorLabel;
private System.Windows.Forms.TreeView ruleTreeView;
private System.Windows.Forms.Label ruleLabel;
private System.Windows.Forms.CheckBox enableCheckBox;
}
}

450
src/AddIns/Analysis/CodeAnalysis/Src/old_AnalysisProjectOptions.cs

@ -1,450 +0,0 @@ @@ -1,450 +0,0 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.CodeAnalysis
{
public partial class old_AnalysisProjectOptions
{
Dictionary<string, RuleTreeNode> rules = new Dictionary<string, RuleTreeNode>();
public old_AnalysisProjectOptions()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
enableCheckBox.Text = StringParser.Parse(enableCheckBox.Text);
ruleLabel.Text = StringParser.Parse(ruleLabel.Text);
warningOrErrorLabel.Text = StringParser.Parse(warningOrErrorLabel.Text);
changeRuleAssembliesButton.Text = StringParser.Parse(changeRuleAssembliesButton.Text);
ruleLabel.SizeChanged += delegate { ruleTreeView.Invalidate(); };
}
bool initSuccess;
protected override void OnVisibleChanged(EventArgs e)
{
base.OnVisibleChanged(e);
if (ruleTreeView.Nodes.Count == 0 && this.Visible) {
ReloadRuleList();
}
}
void ReloadRuleList()
{
ruleTreeView.Nodes.Clear();
FxCopWrapper.GetRuleList(GetRuleAssemblyList(true), Callback);
if (ruleTreeView.Nodes.Count == 0) {
ruleTreeView.Nodes.Add(StringParser.Parse("${res:ICSharpCode.CodeAnalysis.ProjectOptions.LoadingRules}"));
}
}
void Callback(List<FxCopCategory> ruleList)
{
if (WorkbenchSingleton.InvokeRequired) {
WorkbenchSingleton.SafeThreadAsyncCall((Action<List<FxCopCategory>>)Callback, ruleList);
} else {
ruleTreeView.Nodes.Clear();
rules.Clear();
if (ruleList == null || ruleList.Count == 0) {
ruleTreeView.Nodes.Add(new TreeNode(StringParser.Parse("${res:ICSharpCode.CodeAnalysis.ProjectOptions.CannotFindFxCop}")));
ruleTreeView.Nodes.Add(new TreeNode(StringParser.Parse("${res:ICSharpCode.CodeAnalysis.ProjectOptions.SpecifyFxCopPath}")));
} else {
foreach (FxCopCategory cat in ruleList) {
CategoryTreeNode catNode = new CategoryTreeNode(cat);
ruleTreeView.Nodes.Add(catNode);
foreach (RuleTreeNode ruleNode in catNode.Nodes) {
rules[ruleNode.Identifier] = ruleNode;
}
}
initSuccess = true;
ReadRuleString();
}
}
}
#region TreeView drawing
class CategoryTreeNode : TreeNode
{
internal FxCopCategory category;
public CategoryTreeNode(FxCopCategory category)
{
this.category = category;
this.Text = category.DisplayName;
foreach (FxCopRule rule in category.Rules) {
this.Nodes.Add(new RuleTreeNode(rule));
}
}
internal int ErrorState {
get {
bool allWarn = true;
bool allErr = true;
foreach (RuleTreeNode tn in Nodes) {
if (tn.isError)
allWarn = false;
else
allErr = false;
}
if (allErr)
return 1;
else if (allWarn)
return 0;
else
return -1;
}
}
}
class RuleTreeNode : TreeNode
{
internal FxCopRule rule;
internal bool isError;
public RuleTreeNode(FxCopRule rule)
{
this.rule = rule;
this.Text = rule.CheckId + " : " + rule.DisplayName;
}
public string Identifier {
get {
return rule.CategoryName + "#" + rule.CheckId;
}
}
}
void RuleTreeViewDrawNode(object sender, DrawTreeNodeEventArgs e)
{
if (e.Bounds.X < 5) return;
int state;
if (e.Node is CategoryTreeNode) {
state = (e.Node as CategoryTreeNode).ErrorState;
} else if (e.Node is RuleTreeNode) {
state = (e.Node as RuleTreeNode).isError ? 1 : 0;
} else {
e.DrawDefault = true;
return;
}
e.DrawDefault = false;
if ((e.State & TreeNodeStates.Selected) == TreeNodeStates.Selected) {
e.Graphics.DrawString(e.Node.Text, ruleTreeView.Font, SystemBrushes.HighlightText, e.Bounds.Location);
} else {
e.Graphics.DrawString(e.Node.Text, ruleTreeView.Font, SystemBrushes.WindowText, e.Bounds.Location);
}
e.Graphics.DrawLine(SystemPens.WindowFrame, ruleLabel.Width, e.Bounds.Top, ruleLabel.Width, e.Bounds.Bottom);
if (state == 0) {
// Warning
e.Graphics.DrawIcon(SystemIcons.Warning, new Rectangle(ruleLabel.Width + 4, e.Bounds.Y, 16, 16));
e.Graphics.DrawString(ResourceService.GetString("Global.WarningText"), ruleTreeView.Font, SystemBrushes.WindowText, ruleLabel.Width + 24, e.Bounds.Y);
} else if (state == 1) {
// Error
e.Graphics.DrawIcon(SystemIcons.Error, new Rectangle(ruleLabel.Width + 4, e.Bounds.Y, 16, 16));
e.Graphics.DrawString(ResourceService.GetString("Global.ErrorText"), ruleTreeView.Font, SystemBrushes.WindowText, ruleLabel.Width + 24, e.Bounds.Y);
} else {
// Mixed
e.Graphics.DrawString(StringParser.Parse("${res:ICSharpCode.CodeAnalysis.ProjectOptions.WarningErrorMixed}"),
ruleTreeView.Font, SystemBrushes.WindowText, ruleLabel.Width + 24, e.Bounds.Y);
}
}
#endregion
#region Rule String Property
string CreateRuleString()
{
StringBuilder b = new StringBuilder();
foreach (TreeNode category in ruleTreeView.Nodes) {
foreach (RuleTreeNode rule in category.Nodes) {
if (!rule.Checked || rule.isError) {
if (b.Length > 0)
b.Append(';');
if (rule.Checked)
b.Append('+');
else
b.Append('-');
if (rule.isError)
b.Append('!');
b.Append(rule.Identifier);
}
}
}
return b.ToString();
}
void ReadRuleString()
{
userCheck = false;
foreach (TreeNode cat in ruleTreeView.Nodes) {
foreach (RuleTreeNode rtn in cat.Nodes) {
rtn.Checked = true;
rtn.isError = false;
}
}
foreach (string rule2 in ruleString.Split(';')) {
string rule = rule2;
if (rule.Length == 0) continue;
bool active = true;
bool error = false;
if (rule.StartsWith("-")) {
active = false;
rule = rule.Substring(1);
} else if (rule.StartsWith("+")) {
rule = rule.Substring(1);
}
if (rule.StartsWith("!")) {
error = true;
rule = rule.Substring(1);
}
RuleTreeNode ruleNode;
if (rules.TryGetValue(rule, out ruleNode)) {
ruleNode.Checked = active;
ruleNode.isError = error;
}
}
foreach (TreeNode cat in ruleTreeView.Nodes) {
bool noneChecked = true;
foreach (RuleTreeNode rtn in cat.Nodes) {
if (rtn.Checked) {
noneChecked = false;
break;
}
}
cat.Checked = !noneChecked;
}
ruleTreeView.Invalidate();
userCheck = true;
}
string ruleString = "";
public string RuleString {
get {
if (initSuccess)
return CreateRuleString();
else
return ruleString;
}
set {
ruleString = value;
if (initSuccess) {
ReadRuleString();
}
}
}
#endregion
#region Rule Assemblies Property
string ruleAssemblies;
const string DefaultRuleAssemblies = @"$(FxCopDir)\rules";
public string RuleAssemblies {
get {
return ruleAssemblies;
}
set {
if (string.IsNullOrEmpty(value)) {
value = DefaultRuleAssemblies;
}
if (ruleAssemblies != value) {
ruleAssemblies = value;
if (initSuccess) {
OnOptionChanged(EventArgs.Empty);
ReloadRuleList();
}
}
}
}
#endregion
#region ConfigurationGuiBinding
public CheckBox EnableCheckBox {
get {
return enableCheckBox;
}
}
public ConfigurationGuiBinding CreateBinding()
{
return new ConfigBinding(this);
}
class ConfigBinding : ConfigurationGuiBinding
{
readonly old_AnalysisProjectOptions po;
public ConfigBinding(old_AnalysisProjectOptions po)
{
this.po = po;
this.TreatPropertyValueAsLiteral = false;
po.OptionChanged += delegate {
Helper.IsDirty = true;
};
}
public override void Load()
{
po.RuleString = Get("");
po.RuleAssemblies = Helper.GetProperty("CodeAnalysisRuleAssemblies", "", false);
}
public override bool Save()
{
Set(po.RuleString);
Helper.SetProperty("CodeAnalysisRuleAssemblies",
(po.RuleAssemblies == DefaultRuleAssemblies) ? "" : po.RuleAssemblies,
false,
Location);
return true;
}
}
#endregion
public event EventHandler OptionChanged;
protected virtual void OnOptionChanged(EventArgs e)
{
if (OptionChanged != null) {
OptionChanged(this, e);
}
}
void RuleTreeViewMouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && e.X > ruleLabel.Width) {
TreeNode node = ruleTreeView.GetNodeAt(20, e.Y);
if (node != null) {
if (node is RuleTreeNode) {
((RuleTreeNode)node).isError = !((RuleTreeNode)node).isError;
} else if (node is CategoryTreeNode) {
if ((node as CategoryTreeNode).ErrorState == 0) {
foreach (RuleTreeNode rtn in node.Nodes) {
rtn.isError = true;
}
} else {
foreach (RuleTreeNode rtn in node.Nodes) {
rtn.isError = false;
}
}
}
ruleTreeView.Invalidate();
OnOptionChanged(EventArgs.Empty);
}
}
}
bool userCheck;
void RuleTreeViewAfterCheck(object sender, TreeViewEventArgs e)
{
if (userCheck) {
if (e.Node is CategoryTreeNode) {
userCheck = false;
foreach (TreeNode subNode in e.Node.Nodes) {
subNode.Checked = e.Node.Checked;
}
userCheck = true;
} else if (e.Node is RuleTreeNode) {
userCheck = false;
bool anyChecked = false;
foreach (TreeNode sibling in e.Node.Parent.Nodes) {
if (sibling.Checked)
anyChecked = true;
}
e.Node.Parent.Checked = anyChecked;
userCheck = true;
}
OnOptionChanged(EventArgs.Empty);
}
}
string[] GetRuleAssemblyList(bool replacePath)
{
List<string> list = new List<string>();
string fxCopPath = FxCopWrapper.FindFxCopPath();
foreach (string dir in ruleAssemblies.Split(';')) {
if (string.Equals(dir, "$(FxCopDir)\\rules", StringComparison.OrdinalIgnoreCase))
continue;
if (string.Equals(dir, "$(FxCopDir)/rules", StringComparison.OrdinalIgnoreCase))
continue;
if (replacePath && !string.IsNullOrEmpty(fxCopPath)) {
list.Add(Regex.Replace(dir, @"\$\(FxCopDir\)", fxCopPath, RegexOptions.CultureInvariant | RegexOptions.IgnoreCase));
} else {
list.Add(dir);
}
}
return list.ToArray();
}
void ChangeRuleAssembliesButtonClick(object sender, EventArgs e)
{
using (Form frm = new Form()) {
frm.Text = changeRuleAssembliesButton.Text;
StringListEditor ed = new StringListEditor();
ed.Dock = DockStyle.Fill;
ed.ManualOrder = false;
ed.BrowseForDirectory = true;
ed.AutoAddAfterBrowse = true;
ed.TitleText = StringParser.Parse("${res:ICSharpCode.CodeAnalysis.ProjectOptions.ChooseRuleAssemblyDirectory}");
ed.LoadList(GetRuleAssemblyList(false));
FlowLayoutPanel p = new FlowLayoutPanel();
p.Dock = DockStyle.Bottom;
p.FlowDirection = FlowDirection.RightToLeft;
Button btn = new Button();
p.Height = btn.Height + 8;
btn.DialogResult = DialogResult.Cancel;
btn.Text = ResourceService.GetString("Global.CancelButtonText");
frm.CancelButton = btn;
p.Controls.Add(btn);
btn = new Button();
btn.DialogResult = DialogResult.OK;
btn.Text = ResourceService.GetString("Global.OKButtonText");
frm.AcceptButton = btn;
p.Controls.Add(btn);
frm.Controls.Add(ed);
frm.Controls.Add(p);
frm.FormBorderStyle = FormBorderStyle.FixedDialog;
frm.MaximizeBox = false;
frm.MinimizeBox = false;
frm.ClientSize = new Size(400, 300);
frm.StartPosition = FormStartPosition.CenterParent;
if (frm.ShowDialog(FindForm()) == DialogResult.OK) {
StringBuilder b = new StringBuilder(DefaultRuleAssemblies);
foreach (string asm in ed.GetList()) {
b.Append(';');
b.Append(asm);
}
bool oldInitSuccess = initSuccess;
initSuccess = true;
try {
this.RuleAssemblies = b.ToString();
} finally {
initSuccess = oldInitSuccess;
}
}
}
}
}
}

32
src/AddIns/Analysis/CodeAnalysis/Src/old_AnalysisProjectOptionsPanel.cs

@ -1,32 +0,0 @@ @@ -1,32 +0,0 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Windows.Forms;
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.CodeAnalysis
{
public class AnalysisProjectOptionsPanel : AbstractXmlFormsProjectOptionPanel
{
public override void LoadPanelContents()
{
InitializeHelper();
old_AnalysisProjectOptions po = new old_AnalysisProjectOptions();
po.Dock = DockStyle.Fill;
Controls.Add(po);
ChooseStorageLocationButton btn;
btn = helper.BindBoolean(po.EnableCheckBox, "RunCodeAnalysis", false).CreateLocationButton(po.EnableCheckBox);
ConfigurationGuiBinding binding = po.CreateBinding();
binding.RegisterLocationButton(btn);
helper.AddBinding("CodeAnalysisRules", binding);
Control ctl = helper.CreateConfigurationSelector();
ctl.Dock = DockStyle.Top;
Controls.Add(ctl);
}
}
}

3
src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.addin

@ -49,7 +49,7 @@ @@ -49,7 +49,7 @@
</Path>
<Path name = "/SharpDevelop/Dialogs/OptionsDialog/ToolsOptions">
<OptionPanel id = "CodeCoverageOptionsPanel1"
<OptionPanel id = "CodeCoverageOptionsPanel"
label = "${res:ICSharpCode.UnitTesting.CodeCoverage}"
insertafter = "CodeAnalysisOptionPanel"
class = "ICSharpCode.CodeCoverage.CodeCoverageOptionsPanel"/>
@ -109,7 +109,6 @@ @@ -109,7 +109,6 @@
<OptionPanel id = "CodeCoverage"
label = "${res:ICSharpCode.UnitTesting.CodeCoverage}"
class = "ICSharpCode.CodeCoverage.CodeCoverageProjectOptionsPanel"/>
</Path>
<Path name = "/SharpDevelop/Workbench/MainMenu/Edit/Format">

11
src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj

@ -65,8 +65,8 @@ @@ -65,8 +65,8 @@
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Src\CodeCoverageMethodElement.cs" />
<Compile Include="Src\CodeCoverageOptionsPanelXaml.xaml.cs">
<DependentUpon>CodeCoverageOptionsPanelXaml.xaml</DependentUpon>
<Compile Include="Src\CodeCoverageOptionsPanel.xaml.cs">
<DependentUpon>CodeCoverageOptionsPanel.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Src\CodeCoverageProjectOptionsPanel.xaml.cs">
@ -100,13 +100,13 @@ @@ -100,13 +100,13 @@
<Compile Include="Src\OpenCoverApplication.cs" />
<Compile Include="Src\OpenCoverSettings.cs" />
<Compile Include="Src\OpenCoverSettingsFactory.cs" />
<Compile Include="Src\ProjectCodeCoverageResultsFileName.cs" />
<Compile Include="Src\RunAllTestsWithCodeCoverageCommand.cs" />
<Compile Include="Src\SequencePointListViewSorter.cs" />
<Compile Include="Src\SolutionCodeCoverageResults.cs" />
<Compile Include="Src\ToggleCodeCoverageCommand.cs" />
<Compile Include="Src\CodeCoverageHighlighter.cs" />
<Compile Include="Src\CodeCoverageOptions.cs" />
<Compile Include="Src\old_CodeCoverageOptionsPanel.cs" />
<EmbeddedResource Include="Resources\old_CodeCoverageOptionsPanel.xfrm" />
<Compile Include="Src\CodeCoverageDisplayItem.cs" />
<Compile Include="Src\ColorPickerComboBox.cs" />
<Compile Include="Src\CodeCoverageService.cs" />
@ -158,6 +158,7 @@ @@ -158,6 +158,7 @@
<ProjectReference Include="..\..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj">
<Project>{8035765F-D51F-4A0C-A746-2FD100E19419}</Project>
<Name>ICSharpCode.SharpDevelop.Widgets</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\UnitTesting\UnitTesting.csproj">
<Project>{1F261725-6318-4434-A1B1-6C70CE4CD324}</Project>
@ -171,7 +172,7 @@ @@ -171,7 +172,7 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Page Include="Src\CodeCoverageOptionsPanelXaml.xaml" />
<Page Include="Src\CodeCoverageOptionsPanel.xaml" />
<Page Include="Src\CodeCoverageProjectOptionsPanel.xaml" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />

106
src/AddIns/Analysis/CodeCoverage/Project/Resources/old_CodeCoverageOptionsPanel.xfrm

@ -1,106 +0,0 @@ @@ -1,106 +0,0 @@
<Components version="1.0">
<System.Windows.Forms.UserControl>
<Name value="CodeCoverageOptionsPanel" />
<ClientSize value="{Width=351, Height=281}" />
<Controls>
<System.Windows.Forms.GroupBox>
<Name value="codeCoverageColoursGroupBox" />
<Location value="10, 13" />
<UseCompatibleTextRendering value="True" />
<Text value="${res:ICSharpCode.CodeCoverage.OptionsPanel.CodeCoverageColoursGroupBoxText}" />
<Size value="333, 159" />
<Anchor value="Top, Left, Right" />
<TabIndex value="1" />
<Controls>
<ICSharpCode.CodeCoverage.ColorPickerComboBox>
<Name value="backgroundColorPickerComboBox" />
<TabIndex value="6" />
<DrawMode value="OwnerDrawFixed" />
<Location value="177, 91" />
<Anchor value="Top, Left, Right" />
<MinimumSize value="116, 21" />
<Size value="116, 21" />
<FormattingEnabled value="True" />
<DropDownStyle value="DropDownList" />
<SelectedColor value="Color [Black]" />
</ICSharpCode.CodeCoverage.ColorPickerComboBox>
<ICSharpCode.CodeCoverage.ColorPickerComboBox>
<Name value="foregroundColorPickerComboBox" />
<TabIndex value="3" />
<DrawMode value="OwnerDrawFixed" />
<Location value="179, 44" />
<Anchor value="Top, Left, Right" />
<Size value="116, 21" />
<MinimumSize value="116, 21" />
<FormattingEnabled value="True" />
<DropDownStyle value="DropDownList" />
<SelectedColor value="Color [Black]" />
</ICSharpCode.CodeCoverage.ColorPickerComboBox>
<System.Windows.Forms.Label>
<Name value="sampleTextLabel" />
<Location value="6, 117" />
<UseCompatibleTextRendering value="True" />
<Text value="${res:ICSharpCode.CodeCoverage.OptionsPanel.SampleText}" />
<Size value="321, 39" />
<TextAlign value="MiddleCenter" />
<Anchor value="Top, Bottom, Left, Right" />
<TabIndex value="8" />
</System.Windows.Forms.Label>
<System.Windows.Forms.ListBox>
<Name value="displayItemsListBox" />
<TabIndex value="1" />
<Location value="6, 44" />
<Size value="164, 69" />
<FormattingEnabled value="True" />
</System.Windows.Forms.ListBox>
<System.Windows.Forms.Label>
<Name value="displayItemsLabel" />
<Location value="6, 29" />
<UseCompatibleTextRendering value="True" />
<Text value="${res:ICSharpCode.CodeCoverage.OptionsPanel.DisplayItemsLabel}" />
<Size value="107, 21" />
<TabIndex value="0" />
</System.Windows.Forms.Label>
<System.Windows.Forms.Button>
<Name value="backgroundCustomColourButton" />
<Location value="299, 91" />
<UseCompatibleTextRendering value="True" />
<Text value="..." />
<UseVisualStyleBackColor value="True" />
<Size value="28, 22" />
<Anchor value="Top, Right" />
<TabIndex value="7" />
</System.Windows.Forms.Button>
<System.Windows.Forms.Label>
<Name value="itemBackgroundColourLabel" />
<Location value="176, 73" />
<UseCompatibleTextRendering value="True" />
<Text value="${res:ICSharpCode.CodeCoverage.OptionsPanel.ItemBackgroundLabel}" />
<Size value="151, 21" />
<Anchor value="Top, Left, Right" />
<TabIndex value="5" />
</System.Windows.Forms.Label>
<System.Windows.Forms.Button>
<Name value="foregroundCustomColourButton" />
<Location value="299, 44" />
<UseCompatibleTextRendering value="True" />
<Text value="..." />
<UseVisualStyleBackColor value="True" />
<Size value="28, 22" />
<Anchor value="Top, Right" />
<TabIndex value="4" />
</System.Windows.Forms.Button>
<System.Windows.Forms.Label>
<Name value="itemForegroundColourLabel" />
<Location value="176, 29" />
<UseCompatibleTextRendering value="True" />
<Text value="${res:ICSharpCode.CodeCoverage.OptionsPanel.ItemForegroundLabel}" />
<Size value="151, 22" />
<Anchor value="Top, Left, Right" />
<TabIndex value="2" />
</System.Windows.Forms.Label>
</Controls>
</System.Windows.Forms.GroupBox>
</Controls>
</System.Windows.Forms.UserControl>
</Components>

15
src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageControl.cs

@ -318,7 +318,9 @@ namespace ICSharpCode.CodeCoverage @@ -318,7 +318,9 @@ namespace ICSharpCode.CodeCoverage
void OpenFile(string fileName, int line, int column)
{
if (fileName != textEditorFileName) {
textEditor.Load(fileName);
if (!TryLoadFileIntoTextEditor(fileName)) {
return;
}
textEditor.SyntaxHighlighting = GetSyntaxHighlighting(fileName);
}
textEditor.ScrollToEnd();
@ -327,6 +329,17 @@ namespace ICSharpCode.CodeCoverage @@ -327,6 +329,17 @@ namespace ICSharpCode.CodeCoverage
CodeCoverageService.ShowCodeCoverage(new AvalonEditTextEditorAdapter(textEditor), fileName);
}
bool TryLoadFileIntoTextEditor(string fileName)
{
if (!File.Exists(fileName)) {
textEditor.Text = String.Format("File does not exist '{0}'.", fileName);
return false;
}
textEditor.Load(fileName);
return true;
}
IHighlightingDefinition GetSyntaxHighlighting(string fileName)
{
return HighlightingManager.Instance.GetDefinitionByExtension(Path.GetExtension(fileName));

32
src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanelXaml.xaml → src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanel.xaml

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
<GroupBox
Header="{core:Localize ICSharpCode.CodeCoverage.OptionsPanel.CodeCoverageColoursGroupBoxText}">
<Grid >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
@ -21,50 +21,50 @@ @@ -21,50 +21,50 @@
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition Width="30"></ColumnDefinition>
<ColumnDefinition Width="1.25*"></ColumnDefinition>
<ColumnDefinition Width="0.75*"></ColumnDefinition>
<ColumnDefinition Width="40"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label
Content="{core:Localize ICSharpCode.CodeCoverage.OptionsPanel.DisplayItemsLabel}"></Label>
<Label
Grid.Column="2"
Grid.Row="1"
Grid.Column="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Content="{core:Localize ICSharpCode.CodeCoverage.OptionsPanel.ItemForegroundLabel}"></Label>
<gui:ColorPickerButton
Grid.Row="1" Grid.Column="3" VerticalAlignment="Center"
Value="{Binding ForeGroundColor}"
Grid.Row="1" Grid.Column="2" VerticalAlignment="Center"
Value="{Binding ForeGroundColor}" Width="30"
Text="...">
</gui:ColorPickerButton>
<Label
Grid.Row="2"
Grid.Column="2"
Grid.Row="3"
Grid.Column="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Content="{core:Localize ICSharpCode.CodeCoverage.OptionsPanel.ItemBackgroundLabel}"></Label>
<gui:ColorPickerButton
Grid.Row="3" Grid.Column="3" VerticalAlignment="Center"
Value="{Binding BackGroundColor}"
Grid.Row="3" Grid.Column="2" VerticalAlignment="Center"
Value="{Binding BackGroundColor}" Width="30"
Text="...">
</gui:ColorPickerButton>
<ListView x:Name="displayItemsListBox"
Grid.Row="1" Grid.ColumnSpan="2" Grid.RowSpan="3"
Grid.Row="1" Grid.RowSpan="3"
ItemsSource="{Binding DisplayItems}"
SelectedIndex="0"
SelectedItem="{Binding DisplayItem}"
SelectedIndex="0"
IsSynchronizedWithCurrentItem="True"></ListView>
<TextBlock
Grid.Row="6"
Grid.ColumnSpan="3"
Grid.ColumnSpan="2"
Text="{core:Localize ICSharpCode.CodeCoverage.OptionsPanel.SampleText}"
TextAlignment="Center"
FontSize="15"

0
src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanelXaml.xaml.cs → src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanel.xaml.cs

2
src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageResults.cs

@ -91,7 +91,7 @@ namespace ICSharpCode.CodeCoverage @@ -91,7 +91,7 @@ namespace ICSharpCode.CodeCoverage
var methods = reader
.Elements("Classes")
.Elements("Class")
.Where(c => c.Element("FullName").Value.StartsWith(className, StringComparison.Ordinal))
.Where(c => c.Element("FullName").Value.Equals(className, StringComparison.Ordinal))
.Elements("Methods")
.Elements("Method");
foreach (XElement method in methods) {

10
src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageService.cs

@ -5,6 +5,7 @@ using ICSharpCode.SharpDevelop.Editor; @@ -5,6 +5,7 @@ using ICSharpCode.SharpDevelop.Editor;
using System;
using System.Collections.Generic;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.CodeCoverage
{
@ -20,6 +21,7 @@ namespace ICSharpCode.CodeCoverage @@ -20,6 +21,7 @@ namespace ICSharpCode.CodeCoverage
static CodeCoverageService()
{
WorkbenchSingleton.Workbench.ViewOpened += ViewOpened;
ProjectService.SolutionLoaded += SolutionLoaded;
}
/// <summary>
@ -143,5 +145,13 @@ namespace ICSharpCode.CodeCoverage @@ -143,5 +145,13 @@ namespace ICSharpCode.CodeCoverage
return results.Count > 0;
}
}
static void SolutionLoaded(object sender, SolutionEventArgs e)
{
var solutionCodeCoverageResults = new SolutionCodeCoverageResults(e.Solution);
foreach (CodeCoverageResults results in solutionCodeCoverageResults.GetCodeCoverageResultsForAllProjects()) {
ShowResults(results);
}
}
}
}

2
src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageTestRunner.cs

@ -35,7 +35,7 @@ namespace ICSharpCode.CodeCoverage @@ -35,7 +35,7 @@ namespace ICSharpCode.CodeCoverage
return fileSystem.FileExists(CodeCoverageResultsFileName);
}
public CodeCoverageResults ReadCodeCoverageResults()
public CodeCoverageResults ReadCodeCoverageResults()
{
TextReader reader = fileSystem.CreateTextReader(CodeCoverageResultsFileName);
return new CodeCoverageResults(reader);

13
src/AddIns/Analysis/CodeCoverage/Project/Src/OpenCoverApplication.cs

@ -65,18 +65,7 @@ namespace ICSharpCode.CodeCoverage @@ -65,18 +65,7 @@ namespace ICSharpCode.CodeCoverage
}
public string CodeCoverageResultsFileName {
get { return GetCodeCoverageResultsFileName(); }
}
string GetCodeCoverageResultsFileName()
{
string outputDirectory = GetOutputDirectory(nunitConsoleApp.Project);
return Path.Combine(outputDirectory, "coverage.xml");
}
string GetOutputDirectory(IProject project)
{
return Path.Combine(project.Directory, "OpenCover");
get { return new ProjectCodeCoverageResultsFileName(nunitConsoleApp.Project).FileName; }
}
public ProcessStartInfo GetProcessStartInfo()

30
src/AddIns/Analysis/CodeCoverage/Project/Src/ProjectCodeCoverageResultsFileName.cs

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
// 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.IO;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.CodeCoverage
{
public class ProjectCodeCoverageResultsFileName
{
public ProjectCodeCoverageResultsFileName(IProject project)
{
FileName = GetCodeCoverageResultsFileName(project);
}
public string FileName { get; private set; }
string GetCodeCoverageResultsFileName(IProject project)
{
string outputDirectory = GetOutputDirectory(project);
return Path.Combine(outputDirectory, "coverage.xml");
}
string GetOutputDirectory(IProject project)
{
return Path.Combine(project.Directory, "OpenCover");
}
}
}

48
src/AddIns/Analysis/CodeCoverage/Project/Src/SolutionCodeCoverageResults.cs

@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.IO;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.CodeCoverage
{
public class SolutionCodeCoverageResults
{
Solution solution;
IFileSystem fileSystem;
public SolutionCodeCoverageResults(Solution solution)
: this(solution, new FileSystem())
{
}
public SolutionCodeCoverageResults(Solution solution, IFileSystem fileSystem)
{
this.solution = solution;
this.fileSystem = fileSystem;
}
public IEnumerable<CodeCoverageResults> GetCodeCoverageResultsForAllProjects()
{
foreach (IProject project in solution.Projects) {
CodeCoverageResults results = GetCodeCoverageResultsForProject(project);
if (results != null) {
yield return results;
}
}
}
CodeCoverageResults GetCodeCoverageResultsForProject(IProject project)
{
var fileName = new ProjectCodeCoverageResultsFileName(project);
if (fileSystem.FileExists(fileName.FileName)) {
TextReader reader = fileSystem.CreateTextReader(fileName.FileName);
return new CodeCoverageResults(reader);
}
return null;
}
}
}

112
src/AddIns/Analysis/CodeCoverage/Project/Src/old_CodeCoverageOptionsPanel.cs

@ -1,112 +0,0 @@ @@ -1,112 +0,0 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
using System;
using System.Drawing;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.CodeCoverage
{
public class old_CodeCoverageOptionsPanel : XmlFormsOptionPanel
{
static readonly string foregroundCustomColourButtonName = "foregroundCustomColourButton";
static readonly string backgroundCustomColourButtonName = "backgroundCustomColourButton";
static readonly string foregroundColourComboBoxName = "foregroundColorPickerComboBox";
static readonly string backgroundColourComboBoxName = "backgroundColorPickerComboBox";
static readonly string displayItemsListBoxName = "displayItemsListBox";
static readonly string sampleTextLabelName = "sampleTextLabel";
ColorPickerComboBox foregroundColorPickerComboBox;
ColorPickerComboBox backgroundColorPickerComboBox;
ListBox displayItemsListBox;
Label sampleTextLabel;
public override void LoadPanelContents()
{
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("ICSharpCode.CodeCoverage.Resources.CodeCoverageOptionsPanel.xfrm"));
ControlDictionary[foregroundCustomColourButtonName].Click += ForegroundCustomColourButtonClick;
ControlDictionary[backgroundCustomColourButtonName].Click += BackgroundCustomColourButtonClick;
foregroundColorPickerComboBox = (ColorPickerComboBox)ControlDictionary[foregroundColourComboBoxName];
foregroundColorPickerComboBox.SelectedIndexChanged += ForegroundColorPickerComboBoxSelectedIndexChanged;
backgroundColorPickerComboBox = (ColorPickerComboBox)ControlDictionary[backgroundColourComboBoxName];
backgroundColorPickerComboBox.SelectedIndexChanged += BackgroundColorPickerComboBoxSelectedIndexChanged;
sampleTextLabel = (Label)ControlDictionary[sampleTextLabelName];
displayItemsListBox = (ListBox)ControlDictionary[displayItemsListBoxName];
displayItemsListBox.Items.Add(new CodeCoverageDisplayItem(StringParser.Parse("${res:ICSharpCode.CodeCoverage.CodeCovered}"), CodeCoverageOptions.VisitedColorProperty, CodeCoverageOptions.VisitedColor, CodeCoverageOptions.VisitedForeColorProperty, CodeCoverageOptions.VisitedForeColor));
displayItemsListBox.Items.Add(new CodeCoverageDisplayItem(StringParser.Parse("${res:ICSharpCode.CodeCoverage.CodeNotCovered}"), CodeCoverageOptions.NotVisitedColorProperty, CodeCoverageOptions.NotVisitedColor, CodeCoverageOptions.NotVisitedForeColorProperty, CodeCoverageOptions.NotVisitedForeColor));
displayItemsListBox.SelectedIndexChanged += DisplayItemsListBoxSelectedIndexChanged;
displayItemsListBox.SelectedIndex = 0;
}
public override bool StorePanelContents()
{
bool codeCoverageColorsChanged = false;
foreach (CodeCoverageDisplayItem item in displayItemsListBox.Items) {
CodeCoverageOptions.Properties.Set<Color>(item.ForeColorPropertyName, item.ForeColor);
CodeCoverageOptions.Properties.Set<Color>(item.BackColorPropertyName, item.BackColor);
if (item.HasChanged) {
codeCoverageColorsChanged = true;
}
}
if (codeCoverageColorsChanged) {
CodeCoverageService.RefreshCodeCoverageHighlights();
}
return true;
}
void ForegroundCustomColourButtonClick(object sender, EventArgs e)
{
SelectCustomColour(foregroundColorPickerComboBox);
}
void BackgroundCustomColourButtonClick(object sender, EventArgs e)
{
SelectCustomColour(backgroundColorPickerComboBox);
}
void SelectCustomColour(ColorPickerComboBox comboBox)
{
using (SharpDevelopColorDialog colorDialog = new SharpDevelopColorDialog()) {
colorDialog.FullOpen = true;
colorDialog.Color = comboBox.SelectedColor;
if (colorDialog.ShowDialog() == DialogResult.OK) {
comboBox.SelectedColor = colorDialog.Color;
}
}
}
void DisplayItemsListBoxSelectedIndexChanged(object sender, EventArgs e)
{
CodeCoverageDisplayItem item = (CodeCoverageDisplayItem)displayItemsListBox.SelectedItem;
sampleTextLabel.BackColor = item.BackColor;
sampleTextLabel.ForeColor = item.ForeColor;
foregroundColorPickerComboBox.SelectedColor = item.ForeColor;
backgroundColorPickerComboBox.SelectedColor = item.BackColor;
}
void ForegroundColorPickerComboBoxSelectedIndexChanged(object sender, EventArgs e)
{
CodeCoverageDisplayItem item = (CodeCoverageDisplayItem)displayItemsListBox.SelectedItem;
sampleTextLabel.ForeColor = foregroundColorPickerComboBox.SelectedColor;
item.ForeColor = foregroundColorPickerComboBox.SelectedColor;
}
void BackgroundColorPickerComboBoxSelectedIndexChanged(object sender, EventArgs e)
{
CodeCoverageDisplayItem item = (CodeCoverageDisplayItem)displayItemsListBox.SelectedItem;
sampleTextLabel.BackColor = backgroundColorPickerComboBox.SelectedColor;
item.BackColor = backgroundColorPickerComboBox.SelectedColor;
}
}
}

5
src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj

@ -38,6 +38,9 @@ @@ -38,6 +38,9 @@
<Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="Rhino.Mocks">
<HintPath>..\..\..\..\Libraries\RhinoMocks\Rhino.Mocks.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Windows.Forms" />
@ -56,6 +59,7 @@ @@ -56,6 +59,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="AssemblyInfo.cs" />
<Compile Include="Coverage\TwoClassNamesMatchingAtStartTests.cs" />
<Compile Include="Coverage\CodeCoverageMethodElementTests.cs" />
<Compile Include="Coverage\CodeCoverageNamespaceTestFixture.cs" />
<Compile Include="Coverage\CodeCoveragePropertyCollectionWithGetterAndSetterTestFixture.cs" />
@ -75,6 +79,7 @@ @@ -75,6 +79,7 @@
<Compile Include="Coverage\RemoveTaskMarkerTests.cs" />
<Compile Include="Coverage\SequencePointTests.cs" />
<Compile Include="Coverage\SimilarRootNamespaceTestFixture.cs" />
<Compile Include="Coverage\SolutionCodeCoverageResultsTests.cs" />
<Compile Include="Gui\DisplayItemTestFixture.cs" />
<Compile Include="Gui\PropertiesInCodeCoverageTreeView.cs" />
<Compile Include="Gui\TreeViewSortingTestFixture.cs" />

89
src/AddIns/Analysis/CodeCoverage/Test/Coverage/SolutionCodeCoverageResultsTests.cs

@ -0,0 +1,89 @@ @@ -0,0 +1,89 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using ICSharpCode.CodeCoverage.Tests.Utils;
using ICSharpCode.SharpDevelop.Project;
using NUnit.Framework;
using Rhino.Mocks;
using UnitTesting.Tests.Utils;
namespace ICSharpCode.CodeCoverage.Tests.Coverage
{
[TestFixture]
public class SolutionCodeCoverageResultsTests
{
SolutionCodeCoverageResults solutionCodeCoverageResults;
Solution solution;
IFileSystem fakeFileSystem;
void CreateSolutionCodeCoverageResults()
{
solution = new Solution(new MockProjectChangeWatcher());
fakeFileSystem = MockRepository.GenerateStub<IFileSystem>();
solutionCodeCoverageResults = new SolutionCodeCoverageResults(solution, fakeFileSystem);
}
IEnumerable<CodeCoverageResults> GetCodeCoverageResultsForAllProjects()
{
return solutionCodeCoverageResults.GetCodeCoverageResultsForAllProjects();
}
void AddProject(string fileName)
{
var project = new MockCSharpProject(solution, Path.GetFileNameWithoutExtension(fileName));
project.FileName = fileName;
solution.Folders.Add(project);
}
void AddCodeCoverageFile(string fileName)
{
string coverageXml = "<CodeCoverage></CodeCoverage>";
AddCodeCoverageFile(fileName, coverageXml);
}
void AddCodeCoverageFile(string fileName, string coverageXml)
{
var stringReader = new StringReader(coverageXml);
fakeFileSystem.Stub(fs => fs.FileExists(fileName)).Return(true);
fakeFileSystem.Stub(fs => fs.CreateTextReader(fileName)).Return(stringReader);
}
[Test]
public void GetCodeCoverageResultsForAllProjects_NoProjects_ReturnsNoResults()
{
CreateSolutionCodeCoverageResults();
List<CodeCoverageResults> results = GetCodeCoverageResultsForAllProjects().ToList();
Assert.AreEqual(0, results.Count);
}
[Test]
public void GetCodeCoverageResultsForAllProjects_OneProject_ReturnsOneCodeCoverageResult()
{
CreateSolutionCodeCoverageResults();
AddProject(@"d:\Projects\MyProject\MyProject.csproj");
AddCodeCoverageFile(@"d:\Projects\MyProject\OpenCover\coverage.xml");
List<CodeCoverageResults> results = GetCodeCoverageResultsForAllProjects().ToList();
Assert.AreEqual(1, results.Count);
}
[Test]
public void GetCodeCoverageResultsForAllProjects_OneProjectInSolutionWithoutCodeCoverageResultsFile_ReturnsNoResults()
{
CreateSolutionCodeCoverageResults();
AddProject(@"d:\Projects\MyProject\MyProject.csproj");
List<CodeCoverageResults> results = GetCodeCoverageResultsForAllProjects().ToList();
Assert.AreEqual(0, results.Count);
}
}
}

89
src/AddIns/Analysis/CodeCoverage/Test/Coverage/TwoClassNamesMatchingAtStartTests.cs

@ -0,0 +1,89 @@ @@ -0,0 +1,89 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Linq;
using NUnit.Framework;
namespace ICSharpCode.CodeCoverage.Tests.Coverage
{
/// <summary>
/// Code coverage results when two classes have similar names that match
/// at the start:
///
/// FooResult
/// FooResultParser
/// </summary>
[TestFixture]
public class TwoClassNamesMatchingAtStartTests : CodeCoverageResultsTestsBase
{
[TestFixtureSetUp]
public void SetUpFixture()
{
string xml =
"<CoverageSession xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n" +
" <Modules>\r\n" +
" <Module hash=\"44-54-B6-13-97-49-45-F8-6A-74-9E-49-0C-77-87-C6-9C-54-47-7A\">\r\n" +
" <FullName>C:\\Projects\\Test\\Foo\\bin\\Foo.DLL</FullName>\r\n" +
" <ModuleName>Foo.Tests</ModuleName>\r\n" +
" <Files>\r\n" +
" <File uid=\"1\" fullPath=\"c:\\Projects\\Foo\\FooResults.cs\" />\r\n" +
" <File uid=\"2\" fullPath=\"c:\\Projects\\Foo\\FooResultsParser.cs\" />\r\n" +
" </Files>\r\n" +
" <Classes>\r\n" +
" <Class>\r\n" +
" <FullName>Foo.Results</FullName>\r\n" +
" <Methods>\r\n" +
" <Method visited=\"true\" cyclomaticComplexity=\"1\" sequenceCoverage=\"100\" branchCoverage=\"100\" isConstructor=\"false\" isStatic=\"false\" isGetter=\"false\" isSetter=\"false\">\r\n" +
" <MetadataToken>100663297</MetadataToken>\r\n" +
" <Name>System.String Foo.Results::GetResult()</Name>\r\n" +
" <FileRef uid=\"2\" />\r\n" +
" <SequencePoints>\r\n" +
" <SequencePoint vc=\"1\" sl=\"20\" sc=\"3\" el=\"20\" ec=\"4\" />\r\n" +
" </SequencePoints>\r\n" +
" </Method>\r\n" +
" </Methods>\r\n" +
" </Class>\r\n" +
" <Class>\r\n" +
" <FullName>Foo.ResultsParser</FullName>\r\n" +
" <Methods>\r\n" +
" <Method visited=\"true\" cyclomaticComplexity=\"1\" sequenceCoverage=\"100\" branchCoverage=\"100\" isConstructor=\"false\" isStatic=\"false\" isGetter=\"false\" isSetter=\"false\">\r\n" +
" <MetadataToken>100663297</MetadataToken>\r\n" +
" <Name>System.Void Foo.ResultsParser::Parse()</Name>\r\n" +
" <FileRef uid=\"2\" />\r\n" +
" <SequencePoints>\r\n" +
" <SequencePoint vc=\"1\" sl=\"20\" sc=\"3\" el=\"20\" ec=\"4\" />\r\n" +
" </SequencePoints>\r\n" +
" </Method>\r\n" +
" </Methods>\r\n" +
" </Class>\r\n" +
" </Classes>\r\n" +
" </Module>\r\n" +
" </Modules>\r\n" +
"</CoverageSession>";
base.CreateCodeCoverageResults(xml);
}
[Test]
public void ResultsClass_Methods_HasOneMethodCalledResults()
{
List<CodeCoverageMethod> methods =
FirstModule.Methods.Where(m => m.ClassName == "Results").ToList();
Assert.AreEqual("GetResult", methods[0].Name);
Assert.AreEqual(1, methods.Count);
}
[Test]
public void ResultsParserClass_Methods_HasOneMethodCalledParse()
{
List<CodeCoverageMethod> methods =
FirstModule.Methods.Where(m => m.ClassName == "ResultsParser").ToList();
Assert.AreEqual("Parse", methods[0].Name);
Assert.AreEqual(1, methods.Count);
}
}
}

2
src/AddIns/Analysis/CodeCoverage/Test/Gui/TreeViewAfterSelectTestFixture.cs

@ -33,7 +33,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Gui @@ -33,7 +33,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Gui
public void NonCodeCoverageNodeNotInitialised()
{
DerivedCodeCoverageTreeView treeView = new DerivedCodeCoverageTreeView();
DerivedExtTreeNode node = new DerivedExtTreeNode();
ExtTreeNode node = new ExtTreeNode();
treeView.CallOnAfterSelect(node);
Assert.IsFalse(node.IsInitialized);
}

19
src/AddIns/Analysis/CodeCoverage/Test/Utils/DerivedCodeCoverageTreeView.cs

@ -20,19 +20,6 @@ namespace ICSharpCode.CodeCoverage.Tests.Utils @@ -20,19 +20,6 @@ namespace ICSharpCode.CodeCoverage.Tests.Utils
}
}
/// <summary>
/// Derived ExtTreeNode class so we can check the IsInitialized
/// property.
/// </summary>
public class DerivedExtTreeNode : ExtTreeNode
{
public bool IsInitialized {
get {
return base.isInitialized;
}
}
}
/// <summary>
/// Derived CodeCoverageTreeNode class so we can check the IsInitialized
/// property.
@ -43,11 +30,5 @@ namespace ICSharpCode.CodeCoverage.Tests.Utils @@ -43,11 +30,5 @@ namespace ICSharpCode.CodeCoverage.Tests.Utils
: base(name, index)
{
}
public bool IsInitialized {
get {
return base.isInitialized;
}
}
}
}

43
src/AddIns/Analysis/SourceAnalysis/Resources/old_AnalysisIdeOptionPanel.xfrm

@ -1,43 +0,0 @@ @@ -1,43 +0,0 @@
<Components version="1.0">
<System.Windows.Forms.UserControl>
<Name value="AnalysisIdeOptionPanel" />
<ClientSize value="{Width=348, Height=301}" />
<Controls>
<System.Windows.Forms.Button>
<Name value="ModifyStyleCopSettingsButton" />
<Location value="77, 169" />
<Text value="Modify Master StyleCop Settings" />
<UseVisualStyleBackColor value="True" />
<Size value="187, 23" />
<TabIndex value="1" />
</System.Windows.Forms.Button>
<System.Windows.Forms.GroupBox>
<Name value="groupBox1" />
<Location value="3, 3" />
<Text value="StyleCop Path" />
<Size value="342, 117" />
<Anchor value="Top, Left, Right" />
<TabIndex value="0" />
<Controls>
<System.Windows.Forms.Button>
<Name value="FindStyleCopPathButton" />
<Location value="92, 81" />
<Text value="Find StyleCop path" />
<UseVisualStyleBackColor value="True" />
<Size value="150, 23" />
<Anchor value="Top" />
<TabIndex value="1" />
</System.Windows.Forms.Button>
<System.Windows.Forms.Label>
<Name value="statusLabel" />
<Location value="6, 17" />
<Text value="(showing current FxCop path)" />
<Size value="330, 61" />
<Anchor value="Top, Left, Right" />
<TabIndex value="0" />
</System.Windows.Forms.Label>
</Controls>
</System.Windows.Forms.GroupBox>
</Controls>
</System.Windows.Forms.UserControl>
</Components>

11
src/AddIns/Analysis/SourceAnalysis/SourceAnalysis.csproj

@ -74,18 +74,8 @@ @@ -74,18 +74,8 @@
<DependentUpon>AnalysisOptionsPanel.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Src\old_AnalysisProjectOptionsPanel.cs" />
<Compile Include="Src\old_AnalysisProjectOptions.Designer.cs">
<DependentUpon>old_AnalysisProjectOptions.cs</DependentUpon>
</Compile>
<Compile Include="Src\old_AnalysisProjectOptions.cs" />
<EmbeddedResource Include="Src\old_AnalysisProjectOptions.resx">
<DependentUpon>old_AnalysisProjectOptions.cs</DependentUpon>
</EmbeddedResource>
<Compile Include="Src\StyleCopWrapper.cs" />
<Compile Include="Src\CheckCurrentProjectCommand.cs" />
<Compile Include="Src\old_AnalysisIdeOptionsPanel.cs" />
<EmbeddedResource Include="Resources\old_AnalysisIdeOptionPanel.xfrm" />
</ItemGroup>
<ItemGroup>
<Folder Include="Resources" />
@ -107,6 +97,7 @@ @@ -107,6 +97,7 @@
<ProjectReference Include="..\..\..\Main\ICSharpCode.Core.Presentation\ICSharpCode.Core.Presentation.csproj">
<Project>{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}</Project>
<Name>ICSharpCode.Core.Presentation</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj">
<Project>{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}</Project>

13
src/AddIns/Analysis/SourceAnalysis/Src/AnalysisIdeOptionsPanel.xaml.cs

@ -20,6 +20,8 @@ using System.Windows.Media; @@ -20,6 +20,8 @@ using System.Windows.Media;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
using ICSharpCode.SharpDevelop.Project;
using Microsoft.Win32;
namespace ICSharpCode.SourceAnalysis
{
@ -49,7 +51,7 @@ namespace ICSharpCode.SourceAnalysis @@ -49,7 +51,7 @@ namespace ICSharpCode.SourceAnalysis
EnableModifyStyleCopSettings = true;
}
}
public bool EnableModifyStyleCopSettings {
get { return enableModifyStyleCopSettings; }
@ -61,15 +63,18 @@ namespace ICSharpCode.SourceAnalysis @@ -61,15 +63,18 @@ namespace ICSharpCode.SourceAnalysis
private void FindStyleCopPath_Click(object sender, System.Windows.RoutedEventArgs e)
{
string filter = StringParser.Parse("StyleCop|*" + StyleCopWrapper.STYLE_COP_FILE + "|${res:SharpDevelop.FileFilter.AllFiles}|*.*");
string path = OptionsHelper.OpenFile(filter);
if (!String.IsNullOrEmpty(path)) {
OpenFileDialog dlg = new OpenFileDialog();
dlg.DefaultExt = "dll";
dlg.Filter = StringParser.Parse("StyleCop|*" + StyleCopWrapper.STYLE_COP_FILE + "|${res:SharpDevelop.FileFilter.AllFiles}|*.*");
if (dlg.ShowDialog() == true) {
string path = dlg.FileName;
if (StyleCopWrapper.IsStyleCopPath(path)) {
StyleCopPath = path;
} else {
MessageService.ShowError(string.Format("Directory does not contain StyleCop (*{0}).", StyleCopWrapper.STYLE_COP_FILE));
}
}
ShowStatus();
}

6
src/AddIns/Analysis/SourceAnalysis/Src/AnalysisOptionsPanel.xaml.cs

@ -44,16 +44,14 @@ namespace ICSharpCode.SourceAnalysis @@ -44,16 +44,14 @@ namespace ICSharpCode.SourceAnalysis
if (String.IsNullOrEmpty(SourceAnalysisOverrideSettingsFile.Value)) {
SourceAnalysisOverrideSettingsFile.Value = StyleCopWrapper.GetMasterSettingsFile();
SourceAnalysisOverrideSettingsFile.Location = PropertyStorageLocations.Base;
IsDirty = false;
}
}
void BrowseButton_Click(object sender, RoutedEventArgs e)
{
var fn = OptionsHelper.OpenFile(String.Empty);
if (!String.IsNullOrEmpty(fn)) {
settingsFileTextBox.Text = fn;
}
BrowseForFile(SourceAnalysisOverrideSettingsFile, "");
}

86
src/AddIns/Analysis/SourceAnalysis/Src/old_AnalysisIdeOptionsPanel.cs

@ -1,86 +0,0 @@ @@ -1,86 +0,0 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
using System;
using System.Diagnostics;
using System.IO;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.SourceAnalysis
{
/// <summary>
/// Option panel to choose the StyleCop path from.
/// </summary>
public class old_AnalysisIdeOptionsPanel : XmlFormsOptionPanel
{
public override void LoadPanelContents()
{
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("ICSharpCode.SourceAnalysis.Resources.old_AnalysisIdeOptionPanel.xfrm"));
ShowStatus();
Get<Button>("FindStyleCopPath").Click += FindStyleCopPathClick;
Get<Button>("ModifyStyleCopSettings").Click += ModifyStyleCopSettingsClick;
}
void ShowStatus()
{
string path = StyleCopWrapper.FindStyleCopPath();
if (path == null) {
Get<Label>("status").Text = StringParser.Parse("StyleCop not found in the given path.");
Get<Button>("ModifyStyleCopSettings").Enabled = false;
} else {
Get<Label>("status").Text = StringParser.Parse("StyleCop was found in: ")
+ Environment.NewLine + path;
Get<Button>("ModifyStyleCopSettings").Enabled = true;
}
}
void FindStyleCopPathClick(object sender, EventArgs e)
{
using (OpenFileDialog dlg = new OpenFileDialog()) {
dlg.DefaultExt = "dll";
dlg.Filter = StringParser.Parse("StyleCop|*" + StyleCopWrapper.STYLE_COP_FILE + "|${res:SharpDevelop.FileFilter.AllFiles}|*.*");
if (dlg.ShowDialog() == DialogResult.OK) {
string path = dlg.FileName;
if (StyleCopWrapper.IsStyleCopPath(path)) {
StyleCopPath = path;
} else {
MessageService.ShowError(string.Format("Directory does not contain StyleCop (*{0}).", StyleCopWrapper.STYLE_COP_FILE));
}
}
}
ShowStatus();
}
void ModifyStyleCopSettingsClick(object sender, EventArgs e)
{
var executable = Path.Combine(Path.GetDirectoryName(StyleCopWrapper.FindStyleCopPath()), "StyleCopSettingsEditor.exe");
var parameters = "\"" + StyleCopWrapper.GetMasterSettingsFile() + "\"";
if (!File.Exists(executable)) {
LoggingService.Debug("StyleCopSettingsEditor.exe: " + executable);
MessageService.ShowWarning("Unable to find the StyleCop Settings editor. Please specify the StyleCop location in Tools Options.");
return;
}
using(Process p = Process.Start("\"" + executable + "\"", parameters))
{
// No need to wait for the settings dialog to close - we can leave it open.
}
}
public static string StyleCopPath {
get {
return PropertyService.Get("SourceAnalysis.StyleCopPath");
}
set {
PropertyService.Set("SourceAnalysis.StyleCopPath", value);
}
}
}
}

104
src/AddIns/Analysis/SourceAnalysis/Src/old_AnalysisProjectOptions.Designer.cs generated

@ -1,104 +0,0 @@ @@ -1,104 +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)
namespace ICSharpCode.SourceAnalysis
{
partial class AnalysisProjectOptions : System.Windows.Forms.UserControl
{
/// <summary>
/// Designer variable used to keep track of non-visual components.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Disposes resources used by the control.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing) {
if (components != null) {
components.Dispose();
}
}
base.Dispose(disposing);
}
/// <summary>
/// This method is required for Windows Forms designer support.
/// Do not change the method contents inside the source code editor. The Forms designer might
/// not be able to load this method if it was changed manually.
/// </summary>
private void InitializeComponent()
{
this.enableCheckBox = new System.Windows.Forms.CheckBox();
this.modifyStyleCopSettingsButton = new System.Windows.Forms.Button();
this.browseButton = new System.Windows.Forms.Button();
this.settingsFileTextBox = new System.Windows.Forms.TextBox();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.SuspendLayout();
//
// enableCheckBox
//
this.enableCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.enableCheckBox.Location = new System.Drawing.Point(15, 4);
this.enableCheckBox.Name = "enableCheckBox";
this.enableCheckBox.Size = new System.Drawing.Size(376, 24);
this.enableCheckBox.TabIndex = 0;
this.enableCheckBox.Text = "Run source analysis when compiling";
this.enableCheckBox.UseVisualStyleBackColor = true;
//
// modifyStyleCopSettingsButton
//
this.modifyStyleCopSettingsButton.Location = new System.Drawing.Point(15, 60);
this.modifyStyleCopSettingsButton.Name = "modifyStyleCopSettingsButton";
this.modifyStyleCopSettingsButton.Size = new System.Drawing.Size(150, 23);
this.modifyStyleCopSettingsButton.TabIndex = 2;
this.modifyStyleCopSettingsButton.Text = "Modify StyleCop Settings";
this.modifyStyleCopSettingsButton.UseVisualStyleBackColor = true;
//
// browseButton
//
this.browseButton.Location = new System.Drawing.Point(349, 31);
this.browseButton.Name = "browseButton";
this.browseButton.Size = new System.Drawing.Size(42, 23);
this.browseButton.TabIndex = 3;
this.browseButton.Text = "...";
this.browseButton.UseVisualStyleBackColor = true;
this.browseButton.Click += new System.EventHandler(this.BrowseButtonClick);
//
// settingsFileTextBox
//
this.settingsFileTextBox.Location = new System.Drawing.Point(15, 34);
this.settingsFileTextBox.Name = "settingsFileTextBox";
this.settingsFileTextBox.Size = new System.Drawing.Size(328, 20);
this.settingsFileTextBox.TabIndex = 4;
//
// openFileDialog1
//
this.openFileDialog1.DefaultExt = "SourceAnalysis";
this.openFileDialog1.FileName = "openFileDialog1";
this.openFileDialog1.Filter = "SourceAnalysis files|*.SourceAnalysis|All files|*.*";
this.openFileDialog1.Title = "Select settings file";
//
// AnalysisProjectOptions
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.settingsFileTextBox);
this.Controls.Add(this.browseButton);
this.Controls.Add(this.modifyStyleCopSettingsButton);
this.Controls.Add(this.enableCheckBox);
this.Name = "AnalysisProjectOptions";
this.Size = new System.Drawing.Size(395, 244);
this.ResumeLayout(false);
this.PerformLayout();
}
private System.Windows.Forms.OpenFileDialog openFileDialog1;
private System.Windows.Forms.Button modifyStyleCopSettingsButton;
private System.Windows.Forms.Button browseButton;
private System.Windows.Forms.TextBox settingsFileTextBox;
private System.Windows.Forms.CheckBox enableCheckBox;
}
}

98
src/AddIns/Analysis/SourceAnalysis/Src/old_AnalysisProjectOptions.cs

@ -1,98 +0,0 @@ @@ -1,98 +0,0 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SourceAnalysis
{
public partial class AnalysisProjectOptions
{
public AnalysisProjectOptions()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
enableCheckBox.Text = StringParser.Parse(enableCheckBox.Text);
}
#region ConfigurationGuiBinding
public CheckBox EnableCheckBox {
get {
return enableCheckBox;
}
}
public TextBox SettingsFileTextBox {
get {
return settingsFileTextBox;
}
}
public System.Windows.Forms.Button BrowseButton {
get { return browseButton; }
}
public System.Windows.Forms.Button ModifyStyleCopSettingsButton {
get { return modifyStyleCopSettingsButton; }
}
public ConfigurationGuiBinding CreateBinding()
{
return new ConfigBinding(this);
}
class ConfigBinding : ConfigurationGuiBinding
{
readonly AnalysisProjectOptions po;
public ConfigBinding(AnalysisProjectOptions po)
{
this.po = po;
this.TreatPropertyValueAsLiteral = false;
po.OptionChanged += delegate {
Helper.IsDirty = true;
};
}
public override void Load()
{
}
public override bool Save()
{
return true;
}
}
#endregion
public event EventHandler OptionChanged;
protected virtual void OnOptionChanged(EventArgs e)
{
if (OptionChanged != null) {
OptionChanged(this, e);
}
}
void BrowseButtonClick(object sender, EventArgs e)
{
if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
settingsFileTextBox.Text = openFileDialog1.FileName;
}
}
}
}

123
src/AddIns/Analysis/SourceAnalysis/Src/old_AnalysisProjectOptions.resx

@ -1,123 +0,0 @@ @@ -1,123 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

130
src/AddIns/Analysis/SourceAnalysis/Src/old_AnalysisProjectOptionsPanel.cs

@ -1,130 +0,0 @@ @@ -1,130 +0,0 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Diagnostics;
using System.Windows.Forms;
using System.IO;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SourceAnalysis {
public class old_AnalysisProjectOptionsPanel : AbstractXmlFormsProjectOptionPanel {
public override void LoadPanelContents() {
InitializeHelper();
var masterSettingsFile = helper.GetProperty<string>("SourceAnalysisOverrideSettingsFile", "", true);
if (masterSettingsFile.Length == 0) {
helper.SetProperty<string>("SourceAnalysisOverrideSettingsFile",
StyleCopWrapper.GetMasterSettingsFile(),
true,
PropertyStorageLocations.Base);
}
AnalysisProjectOptions po = new AnalysisProjectOptions();
po.Dock = DockStyle.Fill;
Controls.Add(po);
ChooseStorageLocationButton btnEnable;
ChooseStorageLocationButton btnFileLocation;
btnEnable = helper.BindBoolean(po.EnableCheckBox, "RunSourceAnalysis", false).CreateLocationButton(po.EnableCheckBox);
btnFileLocation = helper.BindString(po.SettingsFileTextBox, "SourceAnalysisOverrideSettingsFile", TextBoxEditMode.EditRawProperty).CreateLocationButton(po.SettingsFileTextBox);
ConfigurationGuiBinding binding = po.CreateBinding();
binding.RegisterLocationButton(btnEnable);
binding.RegisterLocationButton(btnFileLocation);
helper.AddConfigurationSelector(this);
po.ModifyStyleCopSettingsButton.Click += ModifyStyleCopSettingsClick;
}
void ModifyStyleCopSettingsClick(object sender, EventArgs e) {
var settingsFile = helper.GetProperty<string>("SourceAnalysisOverrideSettingsFile", "", true);
if (settingsFile == StyleCopWrapper.GetMasterSettingsFile()) {
if (ConfirmSwitchFromMaster()) {
settingsFile = CopyFromMaster();
}
}
if (!System.IO.File.Exists(settingsFile)) {
if (ConfirmReplaceMissingFile()) {
settingsFile = CopyFromMaster();
}
else {
MessageService.ShowWarning("No settings file found to modify.");
return;
}
}
string styleCopPath = StyleCopWrapper.FindStyleCopPath();
string executable;
if (styleCopPath != null)
executable = Path.Combine(Path.GetDirectoryName(styleCopPath), "StyleCopSettingsEditor.exe");
else
executable = null;
string parameters = "\"" + settingsFile + "\"";
if (!File.Exists(executable)) {
LoggingService.Debug("StyleCopSettingsEditor.exe: " + executable);
MessageService.ShowWarning("Unable to find the StyleCop Settings editor. Please specify the StyleCop location in Tools Options.");
return;
}
using(Process p = Process.Start("\"" + executable + "\"", parameters)) {
// No need to wait for the settings dialog to close - we can leave it open.
}
}
private bool ConfirmReplaceMissingFile() {
var result = MessageBox.Show("A settings file is not present. Would you like to copy the master into the " +
"project folder?",
"Missing Settings File",
MessageBoxButtons.YesNo,
MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button1
);
if (result == DialogResult.Yes) {
return true;
} else {
return false;
}
}
private bool ConfirmSwitchFromMaster()
{
var result = MessageBox.Show("You are currently using the master settings file. Do you want to make a "
+ "copy in the project folder instead?",
"Using Master Settings File",
MessageBoxButtons.YesNo,
MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button1
);
if (result == DialogResult.Yes)
{
return true;
}
else
{
return false;
}
}
private string CopyFromMaster() {
var newSettingsFile = helper.Project.Directory + "\\Settings.SourceAnalysis";
System.IO.File.Copy(
StyleCopWrapper.GetMasterSettingsFile(),
newSettingsFile,
true
);
helper.SetProperty<string>("SourceAnalysisOverrideSettingsFile",
newSettingsFile,
true,
PropertyStorageLocations.Base
);
return newSettingsFile;
}
}
}

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

@ -149,6 +149,7 @@ @@ -149,6 +149,7 @@
<ProjectReference Include="..\..\..\..\..\Main\ICSharpCode.Core.Presentation\ICSharpCode.Core.Presentation.csproj">
<Project>{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}</Project>
<Name>ICSharpCode.Core.Presentation</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\NRefactoryToBooConverter\Project\NRefactoryToBooConverter.csproj">
<Project>{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}</Project>

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

@ -82,29 +82,18 @@ @@ -82,29 +82,18 @@
<OptionPanel id = "Application"
label = "${res:Dialog.ProjectOptions.ApplicationSettings}"
class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.ApplicationSettings"/>
<OptionPanel id = "ReferencePaths"
label = "${res:Dialog.ProjectOptions.ReferencePaths}"
class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.ReferencePaths"/>
<OptionPanel id = "Signing"
label = "${res:Dialog.ProjectOptions.Signing}"
class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.Signing"/>
<!--<OptionPanel id = "Signing1"
label = "${res:Dialog.ProjectOptions.Signing}"
class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.SigningXaml"/>-->
<OptionPanel id = "BuildEvents"
label = "${res:Dialog.ProjectOptions.BuildEvents}"
class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.BuildEvents"/>
<OptionPanel id = "BuildOptions1"
<OptionPanel id = "BuildOptions"
label = "${res:Dialog.ProjectOptions.BuildOptions}"
class = "CSharpBinding.OptionPanels.BuildOptions"/>
<OptionPanel id = "DebugOptions"
label = "${res:Dialog.ProjectOptions.DebugOptions}"
class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.DebugOptions"/>

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

@ -109,7 +109,6 @@ @@ -109,7 +109,6 @@
</Compile>
<Compile Include="Src\Parser\CSharpFullParseInformation.cs" />
<Compile Include="Src\Parser\CSharpSymbolSearch.cs" />
<Compile Include="Src\OptionPanels\HexValidator.cs" />
<Compile Include="Src\Parser\Parser.cs" />
<Compile Include="Src\Project\VBNetToCSharpConvertVisitorWithMyFormsSupport.cs" />
<Compile Include="Src\Project\CSharpMyNamespaceBuilder.cs" />
@ -172,6 +171,7 @@ @@ -172,6 +171,7 @@
<ProjectReference Include="..\..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj">
<Project>{8035765F-D51F-4A0C-A746-2FD100E19419}</Project>
<Name>ICSharpCode.SharpDevelop.Widgets</Name>
<Private>False</Private>
</ProjectReference>
</ItemGroup>
<ItemGroup>

255
src/AddIns/BackendBindings/CSharpBinding/Project/Src/OptionPanels/BuildOptions.xaml

@ -10,10 +10,6 @@ @@ -10,10 +10,6 @@
xmlns:local="clr-namespace:CSharpBinding.OptionPanels"
xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets">
<optionpanels:ProjectOptionPanel.Resources>
<optionpanels:StorageLocationConverter
x:Key="converter" />
</optionpanels:ProjectOptionPanel.Resources>
<ScrollViewer
VerticalScrollBarVisibility="Auto">
@ -77,8 +73,10 @@ @@ -77,8 +73,10 @@
Content="{core:Localize Dialog.ProjectOptions.BuildOptions.NoCorlib}"></CheckBox>
</Grid>
</GroupBox>
<GroupBox
Header="{core:Localize Dialog.ProjectOptions.Build.Output}">
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
@ -94,250 +92,27 @@ @@ -94,250 +92,27 @@
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="50"></ColumnDefinition>
</Grid.ColumnDefinitions>
<optionpanels:BuildOutput x:Name="buildOutput" Grid.ColumnSpan="3">
</optionpanels:BuildOutput>
<Label Grid.ColumnSpan="2" Content="{core:Localize Dialog.ProjectOptions.Build.OutputPath}"></Label>
<optionpanels:StorageLocationPicker Grid.Row="1" DockPanel.Dock="Left"
Location="{Binding OutputPath.Location}"/>
<TextBox x:Name="outputPathTextBox" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2"
Text="{Binding OutputPath.Value, UpdateSourceTrigger=PropertyChanged}"></TextBox>
<Button Grid.Row="1" Grid.Column="3" Margin="3,0,3,0"
VerticalAlignment="Center"
Content="..."
Command="{Binding ChangeOutputPath}"></Button>
<optionpanels:StorageLocationPicker Grid.Row="2" DockPanel.Dock="Left" Location="{Binding DocumentationFile.Location}"/>
<CheckBox x:Name="xmlDocumentationCheckBox" Grid.Row="2" Grid.Column="1"
VerticalAlignment="Center"
Margin="3,0,3,0"
IsChecked="{Binding DocumentFileIsChecked}"
Content="{core:Localize Dialog.ProjectOptions.Build.XmlDocumentationFile}"></CheckBox>
<TextBox x:Name="xmlDocumentationTextBox" Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2"
IsEnabled="{Binding DocumentFileIsChecked}"
Text="{Binding DocumentationFile.Value, UpdateSourceTrigger=PropertyChanged}"></TextBox>
<optionpanels:StorageLocationPicker Grid.Row="3" DockPanel.Dock="Left" Location="{Binding DebugType.Location}" />
<Label Grid.Row="3" Grid.Column="1" Margin="3,0,3,0"
HorizontalAlignment="Right"
Content="{core:Localize Dialog.ProjectOptions.Build.DebugInfo}"></Label>
<ComboBox Grid.Row="3" Grid.Column="2" Width="150"
VerticalAlignment="Center"
HorizontalAlignment="Left"
SelectedValue="{Binding Path=DebugType.Value}"
sd:EnumBinding.EnumType="{x:Type project:DebugSymbolType}"></ComboBox>
<Label Grid.Row="4" Grid.Column="1" Margin="3,0,3,0"
HorizontalAlignment="Right"
Content="{core:Localize Dialog.ProjectOptions.Build.TargetFramework}"></Label>
<StackPanel Orientation="Horizontal" Grid.Row="4" Grid.Column="2" Grid.ColumnSpan="2">
<ComboBox x:Name="targetFrameworkComboBox" Width="200" Margin="0,0,3,0"
VerticalAlignment="Center"
IsEnabled="False"></ComboBox>
<Button Margin="3,0,3,0" VerticalAlignment="Center"
Content="Change"
Command="{Binding UpdateProjectCommand}"
Style="{x:Static core:GlobalStyles.ButtonStyle}"></Button>
</StackPanel>
<GroupBox Grid.Row="5" Grid.ColumnSpan="4" Margin="5,10,0,0"
Header="{core:Localize Dialog.ProjectOptions.Build.Advanced}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition MinWidth="120"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition Width="50"></ColumnDefinition>
</Grid.ColumnDefinitions>
<optionpanels:StorageLocationPicker Grid.Row="1" VerticalAlignment="Center">
<optionpanels:StorageLocationPicker.Location>
<MultiBinding Converter="{StaticResource converter}">
<Binding Path="RegisterForComInterop.Location" />
<Binding Path="GenerateSerializationAssemblies.Location" />
<Binding Path="PlatformTarget.Location" />
<Binding Path="FileAlignment.Location" />
<Binding Path="BaseAddress.Location" />
</MultiBinding>
</optionpanels:StorageLocationPicker.Location>
</optionpanels:StorageLocationPicker>
<!--x:Name="registerCOMInteropCheckBox"-->
<CheckBox Grid.Column="2"
IsChecked="{Binding RegisterForComInterop.Value}"
Content="{core:Localize Dialog.ProjectOptions.Build.RegisterForCOM}"></CheckBox>
<Label Grid.Row="1" Grid.Column="1"
HorizontalAlignment="Right"
Content="{core:Localize Dialog.ProjectOptions.Build.GenerateSerializationAssembly}"></Label>
<!--x:Name="generateSerializationAssemblyComboBox"-->
<ComboBox Grid.Row="1" Grid.Column="2"
VerticalAlignment="Center"
ItemsSource="{Binding Path=DataContext.SerializationInfo}"
SelectedValue="{Binding Path=GenerateSerializationAssemblies.Value}"
DisplayMemberPath="DisplayValue"
SelectedValuePath="Key"></ComboBox>
<Label Grid.Row="2" Grid.Column="1" HorizontalAlignment="Right"
Content="{core:Localize Dialog.ProjectOptions.Build.TargetCPU}"></Label>
<!--x:Name="targetCpuComboBox"-->
<ComboBox Grid.Row="2" Grid.Column="2" VerticalAlignment="Center"
ItemsSource="{Binding Path=DataContext.TargetCPU}"
SelectedValue="{Binding Path=PlatformTarget.Value}"
DisplayMemberPath="DisplayValue"
SelectedValuePath="Key"></ComboBox>
<Label Grid.Row="3" Grid.Column="1" HorizontalAlignment="Right"
Content="{core:Localize Dialog.ProjectOptions.Build.FileAlignment}"></Label>
<!--x:Name="fileAlignmentComboBox"-->
<ComboBox Grid.Row="3" Grid.Column="2" VerticalAlignment="Center"
ItemsSource="{Binding Path=DataContext.FileAlign}"
SelectedValue="{Binding Path=FileAlignment.Value}"
DisplayMemberPath="DisplayValue"
SelectedValuePath="Key"></ComboBox>
<Label Grid.Row="4" Grid.Column="1" HorizontalAlignment="Right"
Content="{core:Localize Dialog.ProjectOptions.Build.DLLBaseAddress}"></Label>
<!-- Hex binding -->
<!--x:Name="dllBaseAddressTextBox"-->
<TextBox Grid.Row="4" Grid.Column="2">
<TextBox.Text>
<Binding Path="BaseAddress.Value" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:HexValidator />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
<!-- location multibinding -->
<Label Grid.Row="6" Grid.ColumnSpan="2"
Content="{core:Localize Dialog.ProjectOptions.Build.BaseIntermediateOutputPath}"></Label>
<optionpanels:StorageLocationPicker Grid.Row="7"
Location="{Binding BaseIntermediateOutputPath.Location}"
DockPanel.Dock="Left" />
<TextBox x:Name="baseIntermediateOutputPathTextBox" Grid.Row="7" Grid.Column="1" Grid.ColumnSpan="3"
Text="{Binding BaseIntermediateOutputPath.Value, UpdateSourceTrigger=PropertyChanged}"></TextBox>
<Button Grid.Row="7" Grid.Column="4" Margin="3,0,3,0"
Content="..."
VerticalAlignment="Center"
Command="{Binding BaseIntermediateOutputPathCommand}"></Button>
<Label Grid.Row="8" Grid.ColumnSpan="2" Content="{core:Localize Dialog.ProjectOptions.Build.IntermediateOutputPath}"></Label>
<optionpanels:StorageLocationPicker Grid.Row="9" DockPanel.Dock="Left"
Location="{Binding IntermediateOutputPath.Location}"/>
<TextBox x:Name="intermediateOutputPathTextBox" Grid.Row="9" Grid.Column="1" Grid.ColumnSpan="3"
Text="{Binding IntermediateOutputPath.Value, UpdateSourceTrigger=PropertyChanged}"></TextBox>
<Button Grid.Row="9" Grid.Column="4" Margin="3,0,3,0"
Content="..."
VerticalAlignment="Center"
Command="{Binding IntermediateOutputPathCommand}"></Button>
</Grid>
<GroupBox Grid.Row="5" Grid.ColumnSpan="4" Margin="5,10,0,0" Header="{core:Localize Dialog.ProjectOptions.Build.Advanced}">
<optionpanels:BuildAdvanced x:Name="buildAdvanced">
</optionpanels:BuildAdvanced>
</GroupBox>
</Grid>
</GroupBox>
<GroupBox Margin="0,8,0,0"
Header="{core:Localize Dialog.ProjectOptions.Build.ErrorsAndWarnings}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Label Grid.Column="1" Content="{core:Localize Dialog.ProjectOptions.Build.WarningLevel}"></Label>
<!--x:Name="warningLevelComboBox"-->
<ComboBox Grid.Column="2" Width="40" VerticalAlignment="Center" HorizontalAlignment="Left"
ItemsSource="{Binding Path=DataContext.WarnLevel}"
SelectedValue="{Binding Path=WarningLevel.Value}"
DisplayMemberPath="DisplayValue"
SelectedValuePath="Key"
SelectedIndex="4"></ComboBox>
<optionpanels:StorageLocationPicker Grid.Row="1" Location="{Binding NoWarn.Location}" DockPanel.Dock="Left" />
<Label Grid.Row="1" Grid.Column="1"
Content="{core:Localize Dialog.ProjectOptions.Build.SuppressWarnings}"></Label>
<!--x:Name="suppressWarningsTextBox"-->
<TextBox Grid.Row="1" Grid.Column="2"
Text="{Binding NoWarn.Value, UpdateSourceTrigger=PropertyChanged}"></TextBox>
</Grid>
<GroupBox Margin="0,8,0,0" Header="{core:Localize Dialog.ProjectOptions.Build.ErrorsAndWarnings}">
<optionpanels:ErrorsAndWarnings x:Name="errorsAndWarnings">
</optionpanels:ErrorsAndWarnings>
</GroupBox>
<GroupBox Margin="0,8,0,0"
Header="{core:Localize Dialog.ProjectOptions.Build.TreatWarningsAsErrors}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<optionpanels:StorageLocationPicker Grid.Row="1" Location="{Binding TreatWarningsAsErrors.Location}">
</optionpanels:StorageLocationPicker>
<RadioButton x:Name="noneRadioButton" Grid.Column="1" VerticalAlignment="Center" Margin="3,0,3,0"
Content="{core:Localize Dialog.ProjectOptions.Build.TreatWarningsAsErrors.None}"></RadioButton>
<RadioButton x:Name="specificWarningsRadioButton" Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" Margin="3,0,3,0"
Content="{core:Localize Dialog.ProjectOptions.Build.TreatWarningsAsErrors.Specific}"></RadioButton>
<TextBox x:Name="specificWarningsTextBox" Grid.Row="1" Grid.Column="2" VerticalAlignment="Center"
Margin="3,0,3,0"
IsEnabled="{Binding ElementName=specificWarningsRadioButton, Path=IsChecked}"
Text="{Binding WarningsAsErrors.Value, UpdateSourceTrigger=PropertyChanged}"></TextBox>
<RadioButton x:Name="allRadioButton" Grid.Row="2" Grid.Column="1"
Margin="3,0,3,0"
VerticalAlignment="Center"
Content="{core:Localize Dialog.ProjectOptions.Build.TreatWarningsAsErrors.All}"></RadioButton>
</Grid>
<GroupBox Margin="0,8,0,0" Header="{core:Localize Dialog.ProjectOptions.Build.ErrorsAndWarnings}">
<optionpanels:TreatErrorsAndWarnings x:Name="treatErrorsAndWarnings">
</optionpanels:TreatErrorsAndWarnings>
</GroupBox>
</StackPanel>
</ScrollViewer>
</optionpanels:ProjectOptionPanel>

355
src/AddIns/BackendBindings/CSharpBinding/Project/Src/OptionPanels/BuildOptions.xaml.cs

@ -7,9 +7,10 @@ @@ -7,9 +7,10 @@
*/
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using Gui.Dialogs.OptionPanels.ProjectOptions;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
using ICSharpCode.SharpDevelop.Project;
@ -19,73 +20,18 @@ using ICSharpCode.SharpDevelop.Widgets; @@ -19,73 +20,18 @@ using ICSharpCode.SharpDevelop.Widgets;
namespace CSharpBinding.OptionPanels
{
/// <summary>
/// Interaction logic for BuildOptionsXaml.xaml
/// Interaction logic for BuildOptions.xaml
/// </summary>
/// SYST
public partial class BuildOptions : ProjectOptionPanel
{
private List<KeyItemPair> serializationInfo;
private List<KeyItemPair> targetCPU;
private List<KeyItemPair> fileAlignment;
private List<KeyItemPair> warnLevel;
private System.Windows.Input.ICommand updateProjectCommand;
private System.Windows.Input.ICommand changeOutputPath;
private System.Windows.Input.ICommand baseIntermediateOutputPathCommand;
private System.Windows.Input.ICommand intermediateOutputPathCommand;
private MSBuildBasedProject project;
public BuildOptions()
{
InitializeComponent();
this.serializationInfo = new List<KeyItemPair>();
this.serializationInfo.Add (new KeyItemPair("Off",StringParser.Parse("${res:Dialog.ProjectOptions.Build.Off}")));
this.serializationInfo.Add (new KeyItemPair("On",StringParser.Parse("${res:Dialog.ProjectOptions.Build.On}")));
this.serializationInfo.Add (new KeyItemPair("Auto",StringParser.Parse( "${res:Dialog.ProjectOptions.Build.Auto}")));
this.SerializationInfo = this.serializationInfo;
this.targetCPU = new List<KeyItemPair>();
this.targetCPU.Add(new KeyItemPair( "AnyCPU",StringParser.Parse("${res:Dialog.ProjectOptions.Build.TargetCPU.Any}")));
this.targetCPU.Add(new KeyItemPair( "x86",StringParser.Parse("${res:Dialog.ProjectOptions.Build.TargetCPU.x86}")));
this.targetCPU.Add(new KeyItemPair( "x64",StringParser.Parse("${res:Dialog.ProjectOptions.Build.TargetCPU.x64}")));
this.targetCPU.Add(new KeyItemPair( "Itanium",StringParser.Parse("${res:Dialog.ProjectOptions.Build.TargetCPU.Itanium}")));
this.TargetCPU = targetCPU;
fileAlignment = new List<KeyItemPair>();
fileAlignment.Add( new KeyItemPair("512", "512"));
fileAlignment.Add( new KeyItemPair("1024", "1024"));
fileAlignment.Add(new KeyItemPair("2048", "2048"));
fileAlignment.Add(new KeyItemPair("4096", "4096"));
fileAlignment.Add(new KeyItemPair("8192", "8192"));
FileAlign = fileAlignment;
this.warnLevel = new List<KeyItemPair>();
this.warnLevel.Add(new KeyItemPair("0","0"));
this.warnLevel.Add(new KeyItemPair("1","1"));
this.warnLevel.Add(new KeyItemPair("2","2"));
this.warnLevel.Add(new KeyItemPair("3","3"));
this.warnLevel.Add(new KeyItemPair("4","4"));
this.WarnLevel = warnLevel;
this.DataContext = this;
}
private void Initialize()
{
this.UpdateProjectCommand = new RelayCommand(UpdateProjectExecute);
this.ChangeOutputPath = new RelayCommand(ChangeOutputPathExecute);
UpdateTargetFrameworkCombo();
if (DocumentationFile.Value.Length > 0) {
documentFileIsChecked = true;
}
XmlDocHelper();
this.BaseIntermediateOutputPathCommand = new RelayCommand(BaseIntermediateOutputPathExecute);
this.IntermediateOutputPathCommand = new RelayCommand(IntermediateOutputPathExecute);
SetTreatWarningAsErrorRadioButtons();
}
#region properties
@ -94,14 +40,17 @@ namespace CSharpBinding.OptionPanels @@ -94,14 +40,17 @@ namespace CSharpBinding.OptionPanels
TextBoxEditMode.EditRawProperty,PropertyStorageLocations.ConfigurationSpecific); }
}
public ProjectProperty<bool> Optimize {
get { return GetProperty("Optimize", false, PropertyStorageLocations.ConfigurationSpecific); }
}
public ProjectProperty<bool> AllowUnsafeBlocks {
get { return GetProperty("AllowUnsafeBlocks", false); }
}
public ProjectProperty<bool> CheckForOverflowUnderflow {
get { return GetProperty("CheckForOverflowUnderflow", false, PropertyStorageLocations.ConfigurationSpecific); }
}
@ -110,297 +59,21 @@ namespace CSharpBinding.OptionPanels @@ -110,297 +59,21 @@ namespace CSharpBinding.OptionPanels
get { return GetProperty("NoStdLib", false); }
}
public ProjectProperty<string> OutputPath {
get {return GetProperty("OutputPath", "", TextBoxEditMode.EditRawProperty); }
}
public ProjectProperty<string> DocumentationFile {
get {return GetProperty("DocumentationFile", "", TextBoxEditMode.EditRawProperty);}
}
public ProjectProperty<DebugSymbolType> DebugType {
get {return GetProperty("DebugType",ICSharpCode.SharpDevelop.Project.DebugSymbolType.Full ); }
}
// used in multibinding
public ProjectProperty<bool> RegisterForComInterop {
get {return GetProperty("RegisterForComInterop", false, PropertyStorageLocations.PlatformSpecific ); }
}
public ProjectProperty<string> GenerateSerializationAssemblies {
get {return GetProperty("GenerateSerializationAssemblies","Auto",
TextBoxEditMode.EditEvaluatedProperty, PropertyStorageLocations.PlatformSpecific ); }
}
public ProjectProperty<string> PlatformTarget {
get {return GetProperty("PlatformTarget","AnyCPU",
TextBoxEditMode.EditEvaluatedProperty, PropertyStorageLocations.PlatformSpecific ); }
}
public ProjectProperty<string> FileAlignment {
get {return GetProperty("FileAlignment","4096",
TextBoxEditMode.EditEvaluatedProperty, PropertyStorageLocations.PlatformSpecific ); }
}
public ProjectProperty<string> BaseAddress {
get {return GetProperty("BaseAddress","0x400000",
TextBoxEditMode.EditEvaluatedProperty,PropertyStorageLocations.PlatformSpecific ); }
}
public ProjectProperty<string> BaseIntermediateOutputPath {
get {return GetProperty("BaseIntermediateOutputPath",@"obj\",
TextBoxEditMode.EditRawProperty,PropertyStorageLocations.ConfigurationSpecific ); }
}
public ProjectProperty<string> IntermediateOutputPath {
get {return GetProperty("IntermediateOutputPath",@"obj\$(Configuration)\",TextBoxEditMode.EditRawProperty ); }
}
public ProjectProperty<string> WarningLevel {
get {return GetProperty("WarningLevel","4",TextBoxEditMode.EditEvaluatedProperty ); }
}
public ProjectProperty<string> NoWarn {
get {return GetProperty("NoWarn","",TextBoxEditMode.EditRawProperty ); }
}
public ProjectProperty<string> WarningsAsErrors {
get {return GetProperty("WarningsAsErrors","",TextBoxEditMode.EditRawProperty ); }
}
public ProjectProperty<bool> TreatWarningsAsErrors {
get {return GetProperty("TreatWarningsAsErrors", false); }
}
#endregion
#region overrides
protected override void Load(MSBuildBasedProject project, string configuration, string platform)
{
base.Load(project, configuration, platform);
this.project = project;
this.Initialize();
}
protected override bool Save(MSBuildBasedProject project, string configuration, string platform)
{
SaveTreatWarningAsErrorRadioButtons();
return base.Save(project, configuration, platform);
}
#endregion
#region Documentation File
private bool documentFileIsChecked;
public bool DocumentFileIsChecked {
get { return documentFileIsChecked; }
set { documentFileIsChecked = value;
XmlDocHelper();
base.RaisePropertyChanged(() => DocumentFileIsChecked);
}
}
private void XmlDocHelper()
{
if (DocumentFileIsChecked) {
this.xmlDocumentationTextBox.Text = MSBuildInternals.Escape(
Path.ChangeExtension(ICSharpCode.Core.FileUtility.GetRelativePath(project.Directory, project.OutputAssemblyFullPath),
".xml"));
} else {
this.xmlDocumentationTextBox.Text = string.Empty;
}
}
#endregion
#region Command Update Project
public System.Windows.Input.ICommand UpdateProjectCommand {
get { return updateProjectCommand; }
set { updateProjectCommand = value;
base.RaisePropertyChanged(() =>this.UpdateProjectCommand);
}
}
private void UpdateProjectExecute ()
{
UpgradeViewContent.Show(project.ParentSolution).Select(project as IUpgradableProject);
this.UpdateTargetFrameworkCombo();
}
private void UpdateTargetFrameworkCombo()
{
TargetFramework fx = ((IUpgradableProject)project).CurrentTargetFramework;
if (fx != null) {
targetFrameworkComboBox.Items.Add(fx.DisplayName);
targetFrameworkComboBox.SelectedIndex = 0;
}
}
#endregion
#region ChangeOutputPathCommand
public System.Windows.Input.ICommand ChangeOutputPath
{
get {return this.changeOutputPath;}
set {this.changeOutputPath = value;
base.RaisePropertyChanged(() => this.ChangeOutputPath);
}
}
private void ChangeOutputPathExecute()
{
OutputPath.Value = OptionsHelper.BrowseForFolder("${res:Dialog.Options.PrjOptions.Configuration.FolderBrowserDescription}",
base.BaseDirectory,base.BaseDirectory,
outputPathTextBox.Text,TextBoxEditMode.EditRawProperty);
base.RaisePropertyChanged(()=> OutputPath);
}
#endregion
#region SerializationInfo
public List<KeyItemPair> SerializationInfo {
get {return this.serializationInfo;}
set {this.serializationInfo = value;
base.RaisePropertyChanged(() => SerializationInfo);
}
}
#endregion
#region TargetCPU
public List<KeyItemPair> TargetCPU {
get { return targetCPU; }
set { targetCPU = value;
base.RaisePropertyChanged(() => TargetCPU);
}
}
#endregion
#region FileAlignment
public List<KeyItemPair> FileAlign {
get { return fileAlignment; }
set { fileAlignment = value;
base.RaisePropertyChanged(() => FileAlign);
}
}
#endregion
#region BaseIntermediateOutputPath
public System.Windows.Input.ICommand BaseIntermediateOutputPathCommand {
get{return this.baseIntermediateOutputPathCommand;}
set {this.baseIntermediateOutputPathCommand = value;
base.RaisePropertyChanged(() => BaseIntermediateOutputPathCommand);}
}
private void BaseIntermediateOutputPathExecute ()
{
BaseIntermediateOutputPath.Value = OptionsHelper.BrowseForFolder("${res:Dialog.Options.PrjOptions.Configuration.FolderBrowserDescription}",
base.BaseDirectory,base.BaseDirectory,
this.baseIntermediateOutputPathTextBox.Text,TextBoxEditMode.EditRawProperty);
base.RaisePropertyChanged(()=> BaseIntermediateOutputPath);
}
#endregion
#region IntermediateOutputPath
public System.Windows.Input.ICommand IntermediateOutputPathCommand {
get{return this.intermediateOutputPathCommand;}
set {this.intermediateOutputPathCommand = value;
base.RaisePropertyChanged(() => IntermediateOutputPathCommand);}
}
#region overrides
private void IntermediateOutputPathExecute ()
protected override void Initialize()
{
IntermediateOutputPath.Value = OptionsHelper.BrowseForFolder("${res:Dialog.Options.PrjOptions.Configuration.FolderBrowserDescription}",
base.BaseDirectory,base.BaseDirectory,
this.intermediateOutputPathTextBox.Text,TextBoxEditMode.EditRawProperty);
base.RaisePropertyChanged(()=> IntermediateOutputPath);
base.Initialize();
buildOutput.Initialize(this);
this.buildAdvanced.Initialize(this);
this.errorsAndWarnings.Initialize(this);
this.treatErrorsAndWarnings.Initialize(this);
}
#endregion
#region WarningLevel
public List<KeyItemPair> WarnLevel {
get { return warnLevel; }
set { warnLevel = value;
base.RaisePropertyChanged(() => WarnLevel);
}
}
#endregion
#region SpecificWarnings TreatWarningsAsErrors
private void SetTreatWarningAsErrorRadioButtons()
{
if (this.TreatWarningsAsErrors.Value) {
this.allRadioButton.IsChecked = true;
} else {
if (WarningsAsErrors.Value.Length > 0) {
this.specificWarningsRadioButton.IsChecked = true;
} else {
this.noneRadioButton.IsChecked = true;
}
}
this.noneRadioButton.Checked += ErrorButton_Checked;
this.allRadioButton.Checked += ErrorButton_Checked;
this.specificWarningsRadioButton.Checked += ErrorButton_Checked;
}
private void SaveTreatWarningAsErrorRadioButtons()
{
if ((bool)this.noneRadioButton.IsChecked){
this.specificWarningsTextBox.Text = string.Empty;
}
if ((bool)this.allRadioButton.IsChecked) {
this.TreatWarningsAsErrors.Value = true;
} else {
this.TreatWarningsAsErrors.Value = false;
}
this.noneRadioButton.Checked -= ErrorButton_Checked;
this.allRadioButton.Checked -= ErrorButton_Checked;
this.specificWarningsRadioButton.Checked -= ErrorButton_Checked;
}
void ErrorButton_Checked(object sender, System.Windows.RoutedEventArgs e)
{
IsDirty = true;
}
#endregion
}
}

3
src/AddIns/BackendBindings/CppBinding/CppBinding/CppBinding.addin

@ -14,8 +14,7 @@ @@ -14,8 +14,7 @@
</Manifest>
<Path path = "/SharpDevelop/BackendBindings/ProjectOptions/C++">
<OptionPanel id = "Application1"
<OptionPanel id = "Application"
label = "${res:Dialog.ProjectOptions.ApplicationSettings}"
class = "ICSharpCode.CppBinding.Project.ApplicationOptions" />

142
src/AddIns/BackendBindings/CppBinding/CppBinding/Project/ApplicationOptions.cs

@ -1,10 +1,6 @@ @@ -1,10 +1,6 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 01.04.2012
* Time: 17:16
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.IO;
@ -31,57 +27,19 @@ namespace ICSharpCode.CppBinding.Project @@ -31,57 +27,19 @@ namespace ICSharpCode.CppBinding.Project
private const string iconsfilter = "${res:SharpDevelop.FileFilter.Icons}|*.ico|${res:SharpDevelop.FileFilter.AllFiles}|*.*";
private const string manifestFilter = "${res:Dialog.ProjectOptions.ApplicationSettings.Manifest.ManifestFiles}|*.manifest|${res:SharpDevelop.FileFilter.AllFiles}|*.*";
private const string win32filter = "Win32 Resource files|*.res|${res:SharpDevelop.FileFilter.AllFiles}|*.*";
MSBuildBasedProject project;
public ApplicationOptions()
{
InitializeComponent();
this.DataContext = this;
}
#region Initialize
private void Initialize()
{
foreach (var c in GetPossibleStartupObjects(project)) {
startupObjectComboBox.Items.Add(c.FullName);
}
//this.outputTypeComboBox.SelectedValue = OutputType.Value.ToString();
SetOutputTypeCombo();
FillManifestCombo();
// embedding manifests requires the project to target MSBuild 3.5 or higher
project_MinimumSolutionVersionChanged(null, null);
// re-evluate if the project has the minimum version whenever this options page gets visible
// because the "convert project" button on the compiling tab page might have updated the MSBuild version.
project.MinimumSolutionVersionChanged += project_MinimumSolutionVersionChanged;
projectFolderTextBox.Text = project.Directory;
projectFileTextBox.Text = Path.GetFileName(project.FileName);
//OptionBinding
RefreshStartupObjectEnabled(this, EventArgs.Empty);
RefreshOutputNameTextBox(this, null);
//SetApplicationIcon();
this.applicationIconTextBox.Text = GetApplicationIconPathFromResourceScripts();
ApplicationIconTextBox_TextChanged(this,null);
IsDirty = false;
this.applicationIconTextBox.TextChanged += ApplicationIconTextBox_TextChanged;
this.startupObjectComboBox.SelectionChanged += (s,e) => {IsDirty = true;};
this.outputTypeComboBox.SelectionChanged += OutputTypeComboBox_SelectionChanged;
}
void SetOutputTypeCombo()
{
MSBuildItemDefinitionGroup group = new MSBuildItemDefinitionGroup(project, project.ActiveConfiguration, project.ActivePlatform);
MSBuildItemDefinitionGroup group = new MSBuildItemDefinitionGroup(base.Project, base.Project.ActiveConfiguration, base.Project.ActivePlatform);
string subsystem = group.GetElementMetadata("Link", "SubSystem");
string configurationType = project.GetEvaluatedProperty("ConfigurationType");
string configurationType = base.Project.GetEvaluatedProperty("ConfigurationType");
OutputType validOutputType = ConfigurationTypeToOutputType(configurationType, subsystem);
this.outputTypeComboBox.SelectedIndex = Array.IndexOf((OutputType[])Enum.GetValues(typeof(OutputType)), validOutputType);
}
@ -91,7 +49,7 @@ namespace ICSharpCode.CppBinding.Project @@ -91,7 +49,7 @@ namespace ICSharpCode.CppBinding.Project
{
applicationManifestComboBox.Items.Add(StringParser.Parse("${res:Dialog.ProjectOptions.ApplicationSettings.Manifest.EmbedDefault}"));
applicationManifestComboBox.Items.Add(StringParser.Parse("${res:Dialog.ProjectOptions.ApplicationSettings.Manifest.DoNotEmbedManifest}"));
foreach (string fileName in Directory.GetFiles(project.Directory, "*.manifest")) {
foreach (string fileName in Directory.GetFiles(base.Project.Directory, "*.manifest")) {
applicationManifestComboBox.Items.Add(Path.GetFileName(fileName));
}
applicationManifestComboBox.Items.Add(StringParser.Parse("<${res:Global.CreateButtonText}...>"));
@ -103,12 +61,10 @@ namespace ICSharpCode.CppBinding.Project @@ -103,12 +61,10 @@ namespace ICSharpCode.CppBinding.Project
void project_MinimumSolutionVersionChanged(object sender, EventArgs e)
{
// embedding manifests requires the project to target MSBuild 3.5 or higher
applicationManifestComboBox.IsEnabled = project.MinimumSolutionVersion >= Solution.SolutionVersionVS2008;
applicationManifestComboBox.IsEnabled = base.Project.MinimumSolutionVersion >= Solution.SolutionVersionVS2008;
}
#endregion
#region Properties
public ProjectProperty<string> AssemblyName {
@ -149,13 +105,48 @@ namespace ICSharpCode.CppBinding.Project @@ -149,13 +105,48 @@ namespace ICSharpCode.CppBinding.Project
#region overrides
protected override void Load(MSBuildBasedProject project, string configuration, string platform)
protected override void Initialize()
{
base.Load(project, configuration, platform);
this.project = project;
Initialize();
base.Initialize();
foreach (var c in GetPossibleStartupObjects(base.Project)) {
startupObjectComboBox.Items.Add(c.FullName);
}
SetOutputTypeCombo();
FillManifestCombo();
// embedding manifests requires the project to target MSBuild 3.5 or higher
project_MinimumSolutionVersionChanged(null, null);
// re-evluate if the project has the minimum version whenever this options page gets visible
// because the "convert project" button on the compiling tab page might have updated the MSBuild version.
base.Project.MinimumSolutionVersionChanged += project_MinimumSolutionVersionChanged;
this.projectInformation.ProjectFolder = base.BaseDirectory;
this.projectInformation.ProjectFile = Path.GetFileName(base.Project.FileName);
//OptionBinding
RefreshStartupObjectEnabled(this, EventArgs.Empty);
RefreshOutputNameTextBox(this, null);
//SetApplicationIcon();
this.applicationIconTextBox.Text = GetApplicationIconPathFromResourceScripts();
ApplicationIconTextBox_TextChanged(this,null);
this.applicationIconTextBox.TextChanged += ApplicationIconTextBox_TextChanged;
this.startupObjectComboBox.SelectionChanged += (s,e) => {IsDirty = true;};
this.outputTypeComboBox.SelectionChanged += OutputTypeComboBox_SelectionChanged;
IsDirty = false;
}
public override void Dispose()
{
base.Project.MinimumSolutionVersionChanged -= project_MinimumSolutionVersionChanged;
base.Dispose();
}
protected override bool Save(MSBuildBasedProject project, string configuration, string platform)
{
@ -180,8 +171,8 @@ namespace ICSharpCode.CppBinding.Project @@ -180,8 +171,8 @@ namespace ICSharpCode.CppBinding.Project
OutputType outputType = values[this.outputTypeComboBox.SelectedIndex];
string subsystem = OutputTypeToSubsystem(outputType);
MSBuildItemDefinitionGroup group = new MSBuildItemDefinitionGroup(project,
project.ActiveConfiguration, project.ActivePlatform);
MSBuildItemDefinitionGroup group = new MSBuildItemDefinitionGroup(base.Project,
base.Project.ActiveConfiguration, base.Project.ActivePlatform);
group.SetElementMetadata("Link", "SubSystem", subsystem);
return OutputTypeToConfigurationType(outputType);
@ -252,7 +243,7 @@ namespace ICSharpCode.CppBinding.Project @@ -252,7 +243,7 @@ namespace ICSharpCode.CppBinding.Project
{
if (this.outputTypeComboBox.SelectedValue != null) {
var enmType = (OutputType) Enum.Parse(typeof(OutputType),this.outputTypeComboBox.SelectedValue.ToString());
this.outputNameTextBox.Text = this.assemblyNameTextBox.Text + CompilableProject.GetExtension(enmType);
this.projectInformation.OutputTypeName = this.assemblyNameTextBox.Text + CompilableProject.GetExtension(enmType);
}
}
@ -292,7 +283,7 @@ namespace ICSharpCode.CppBinding.Project @@ -292,7 +283,7 @@ namespace ICSharpCode.CppBinding.Project
string GetApplicationIconPathFromResourceScripts() {
foundIconEntry = null;
iconResourceScriptPath = null;
IEnumerable <ProjectItem> resourceScripts = project.Items.Where(
IEnumerable <ProjectItem> resourceScripts =base.Project .Items.Where(
item => item is FileProjectItem && ((FileProjectItem)item).BuildAction == "ResourceCompile");
// search in all resource scripts, but due to limitation in resource compiler, only one of them can contain icons
@ -326,7 +317,7 @@ namespace ICSharpCode.CppBinding.Project @@ -326,7 +317,7 @@ namespace ICSharpCode.CppBinding.Project
}
else
{
iconResourceScriptPath = AddResourceScriptToProject(project, DEFAULT_RC_NAME);
iconResourceScriptPath = AddResourceScriptToProject(base.Project, DEFAULT_RC_NAME);
rc = new ResourceScript();
newIconId = DEFAULT_ICON_ID;
}
@ -346,20 +337,16 @@ namespace ICSharpCode.CppBinding.Project @@ -346,20 +337,16 @@ namespace ICSharpCode.CppBinding.Project
void ApplicationIconButton_Click(object sender, RoutedEventArgs e)
{
string fileName = OptionsHelper.OpenFile(iconsfilter);
if (!String.IsNullOrEmpty(fileName))
{
this.applicationIconTextBox.Text = fileName;
}
BrowseForFile(ApplicationIcon, iconsfilter);
}
void ApplicationIconTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (project != null) {
if (base.Project != null) {
if(FileUtility.IsValidPath(this.applicationIconTextBox.Text))
{
string appIconPath = Path.Combine(project.Directory, this.applicationIconTextBox.Text);
string appIconPath = Path.Combine(base.Project.Directory, this.applicationIconTextBox.Text);
Console.WriteLine(appIconPath);
var b = File.Exists(appIconPath);
if (File.Exists(appIconPath)) {
@ -388,7 +375,6 @@ namespace ICSharpCode.CppBinding.Project @@ -388,7 +375,6 @@ namespace ICSharpCode.CppBinding.Project
}
}
}
}
#endregion
@ -402,22 +388,18 @@ namespace ICSharpCode.CppBinding.Project @@ -402,22 +388,18 @@ namespace ICSharpCode.CppBinding.Project
} else if (applicationManifestComboBox.SelectedIndex == applicationManifestComboBox.Items.Count - 1) {
BrowseForManifest();
}
IsDirty = true;
}
void BrowseForManifest()
{
applicationManifestComboBox.SelectedIndex = -1;
var fileName = OptionsHelper.OpenFile(manifestFilter);
if (!String.IsNullOrEmpty(fileName)) {
this.applicationManifestComboBox.Items.Insert(0,fileName);
this.applicationManifestComboBox.SelectedIndex = 0;
}
BrowseForFile(ApplicationManifest, manifestFilter);
}
void CreateManifest()
{
string manifestFile = Path.Combine(project.Directory, "app.manifest");
string manifestFile = Path.Combine(base.Project.Directory, "app.manifest");
if (!File.Exists(manifestFile)) {
string defaultManifest;
using (Stream stream = typeof(ApplicationSettings).Assembly.GetManifestResourceStream("Resources.DefaultManifest.manifest")) {
@ -432,10 +414,10 @@ namespace ICSharpCode.CppBinding.Project @@ -432,10 +414,10 @@ namespace ICSharpCode.CppBinding.Project
FileService.FireFileCreated(manifestFile, false);
}
if (!project.IsFileInProject(manifestFile)) {
FileProjectItem newItem = new FileProjectItem(project, ItemType.None);
if (!base.Project.IsFileInProject(manifestFile)) {
FileProjectItem newItem = new FileProjectItem(base.Project, ItemType.None);
newItem.Include = "app.manifest";
ProjectService.AddProjectItem(project, newItem);
ProjectService.AddProjectItem(base.Project, newItem);
ProjectBrowserPad.RefreshViewAsync();
}

6
src/AddIns/BackendBindings/CppBinding/CppBinding/Project/ApplicationOptions.xaml

@ -97,12 +97,14 @@ @@ -97,12 +97,14 @@
<optionpanels:StorageLocationPicker Location="{Binding PreBuildEvent.Location}" DockPanel.Dock="Left" />
<ComboBox x:Name="applicationManifestComboBox" VerticalAlignment="Center" Width="200"
IsEditable="True"
SelectionChanged="ApplicationManifestComboBox_SelectionChanged" ></ComboBox>
</widgets:StackPanelWithSpacing>
<GroupBox Grid.Row="9" Grid.ColumnSpan="3" Margin="0,5,0,0"
Header="{core:Localize Dialog.ProjectOptions.ApplicationSettings.ProjectInformation}">
<Grid Margin="15,0,0,0" >
<optionpanels:ProjectInformation x:Name="projectInformation"></optionpanels:ProjectInformation>
<!--<Grid Margin="15,0,0,0" >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
@ -127,7 +129,7 @@ @@ -127,7 +129,7 @@
<TextBox x:Name="outputNameTextBox" VerticalAlignment="Center"
Grid.Row="2" Grid.Column="1"></TextBox>
</Grid>
</Grid>-->
</GroupBox>
</Grid>
</ScrollViewer>

56
src/AddIns/BackendBindings/CppBinding/CppBinding/Project/LinkerOptions.xaml.cs

@ -23,37 +23,13 @@ namespace ICSharpCode.CppBinding.Project @@ -23,37 +23,13 @@ namespace ICSharpCode.CppBinding.Project
public partial class LinkerOptions : ProjectOptionPanel
{
private const string metaElement ="Link";
private MSBuildBasedProject project;
public LinkerOptions()
{
this.HeaderVisibility = Visibility.Collapsed;
InitializeComponent();
}
private void Initialize()
{
var msDefGroup = new MSBuildItemDefinitionGroup(project, project.ActiveConfiguration, project.ActivePlatform);
this.additionalLibsTextBox.Text = GetElementMetaData(msDefGroup,"AdditionalDependencies");
this.addModuleTextBox.Text = GetElementMetaData(msDefGroup,"AddModuleNamesToAssembly");
this.resourceFileTextBox.Text = GetElementMetaData(msDefGroup,"EmbedManagedResourceFile");
this.additionalOptionsTextBox.Text = GetElementMetaData(msDefGroup,"AdditionalOptions");
string def = GetElementMetaData(msDefGroup,"GenerateDebugInformation");
bool check;
if (bool.TryParse(def, out check))
{
this.CheckBoxChecked = check;
this.debugInfoCheckBox.IsChecked = check;
}
IsDirty = false;
}
#region Properties
@ -78,17 +54,27 @@ namespace ICSharpCode.CppBinding.Project @@ -78,17 +54,27 @@ namespace ICSharpCode.CppBinding.Project
#region Save/Load
public override void OnApplyTemplate()
protected override void Initialize()
{
base.OnApplyTemplate();
HideHeader();
}
protected override void Load(MSBuildBasedProject project, string configuration, string platform)
{
base.Load(project, configuration, platform);
this.project = project;
Initialize();
var msDefGroup = new MSBuildItemDefinitionGroup(base.Project, base.Project.ActiveConfiguration, base.Project.ActivePlatform);
this.additionalLibsTextBox.Text = GetElementMetaData(msDefGroup,"AdditionalDependencies");
this.addModuleTextBox.Text = GetElementMetaData(msDefGroup,"AddModuleNamesToAssembly");
this.resourceFileTextBox.Text = GetElementMetaData(msDefGroup,"EmbedManagedResourceFile");
this.additionalOptionsTextBox.Text = GetElementMetaData(msDefGroup,"AdditionalOptions");
string def = GetElementMetaData(msDefGroup,"GenerateDebugInformation");
bool check;
if (bool.TryParse(def, out check))
{
this.CheckBoxChecked = check;
this.debugInfoCheckBox.IsChecked = check;
}
IsDirty = false;
}
protected override bool Save(MSBuildBasedProject project, string configuration, string platform)

54
src/AddIns/BackendBindings/CppBinding/CppBinding/Project/PreprocessorOptions.xaml.cs

@ -22,35 +22,14 @@ namespace ICSharpCode.CppBinding.Project @@ -22,35 +22,14 @@ namespace ICSharpCode.CppBinding.Project
public partial class PreprocessorOptions : ProjectOptionPanel
{
private const string metaElement ="ClCompile";
private MSBuildBasedProject project;
public PreprocessorOptions()
{
InitializeComponent();
this.HeaderVisibility = Visibility.Collapsed;
}
private void Initialize()
{
MSBuildItemDefinitionGroup group = new MSBuildItemDefinitionGroup(project,
project.ActiveConfiguration, project.ActivePlatform);
this.defineTextBox.Text = GetElementMetaData(group,"PreprocessorDefinitions");
this.undefineTextBox.Text = GetElementMetaData(group,"UndefinePreprocessorDefinitions" );
string defs = GetElementMetaData(group,"UndefineAllPreprocessorDefinitions");
bool check;
if (bool.TryParse(defs, out check))
{
this.CheckBoxChecked = check;
this.undefineAllCheckBox.IsChecked = check;
}
IsDirty = false;
}
#region Properties
public ProjectProperty<string> IncludePath {
@ -71,21 +50,29 @@ namespace ICSharpCode.CppBinding.Project @@ -71,21 +50,29 @@ namespace ICSharpCode.CppBinding.Project
#endregion
#region overrides
public override void OnApplyTemplate()
protected override void Initialize()
{
base.OnApplyTemplate();
HideHeader();
}
protected override void Load(MSBuildBasedProject project, string configuration, string platform)
{
base.Load(project, configuration, platform);
this.project = project;
Initialize();
MSBuildItemDefinitionGroup group = new MSBuildItemDefinitionGroup(base.Project,
base.Project.ActiveConfiguration, base.Project.ActivePlatform);
this.defineTextBox.Text = GetElementMetaData(group,"PreprocessorDefinitions");
this.undefineTextBox.Text = GetElementMetaData(group,"UndefinePreprocessorDefinitions" );
string defs = GetElementMetaData(group,"UndefineAllPreprocessorDefinitions");
bool check;
if (bool.TryParse(defs, out check))
{
this.CheckBoxChecked = check;
this.undefineAllCheckBox.IsChecked = check;
}
IsDirty = false;
}
protected override bool Save(MSBuildBasedProject project, string configuration, string platform)
{
MSBuildItemDefinitionGroup group = new MSBuildItemDefinitionGroup(project,
@ -103,6 +90,7 @@ namespace ICSharpCode.CppBinding.Project @@ -103,6 +90,7 @@ namespace ICSharpCode.CppBinding.Project
return base.Save(project, configuration, platform);
}
#endregion
#region MSBuildItemDefinitionGroup Set-Get

12
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonOptionsPanel.xaml.cs

@ -7,7 +7,9 @@ using System.Windows.Input; @@ -7,7 +7,9 @@ using System.Windows.Input;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Widgets;
using Microsoft.Win32;
using SDCore = ICSharpCode.Core;
namespace ICSharpCode.PythonBinding
@ -44,10 +46,12 @@ namespace ICSharpCode.PythonBinding @@ -44,10 +46,12 @@ namespace ICSharpCode.PythonBinding
void Browse()
{
string str = OptionsHelper.OpenFile ("${res:SharpDevelop.FileFilter.ExecutableFiles}|*.exe");
if (String.IsNullOrEmpty(str))
return;
PythonFileName = str;
OpenFileDialog dlg = new OpenFileDialog();
dlg.DefaultExt = "exe";
dlg.Filter = Core.StringParser.Parse("${res:SharpDevelop.FileFilter.ExecutableFiles}|*.exe");
if (dlg.ShowDialog() == true) {
PythonFileName = dlg.FileName;
}
}
public override bool SaveOptions()

381
src/AddIns/BackendBindings/VBNetBinding/Project/Resources/BuildOptions.xfrm

@ -1,381 +0,0 @@ @@ -1,381 +0,0 @@
<Components version="1.0">
<System.Windows.Forms.UserControl>
<Name value="XmlUserControl1" />
<ClientSize value="{Width=527, Height=715}" />
<AutoScroll value="True" />
<Controls>
<System.Windows.Forms.GroupBox>
<Name value="generalGroupBox" />
<Location value="3, 3" />
<Text value="${res:Dialog.ProjectOptions.BuildOptions.General}" />
<Size value="521, 152" />
<Anchor value="Top, Left, Right" />
<TabIndex value="0" />
<Controls>
<System.Windows.Forms.ComboBox>
<Name value="optionInferComboBox" />
<TabIndex value="8" />
<Location value="394, 125" />
<Size value="121, 21" />
<FormattingEnabled value="True" />
<DropDownStyle value="DropDownList" />
</System.Windows.Forms.ComboBox>
<System.Windows.Forms.ComboBox>
<Name value="optionCompareComboBox" />
<TabIndex value="7" />
<Location value="267, 125" />
<Size value="121, 21" />
<FormattingEnabled value="True" />
<DropDownStyle value="DropDownList" />
</System.Windows.Forms.ComboBox>
<System.Windows.Forms.ComboBox>
<Name value="optionStrictComboBox" />
<TabIndex value="6" />
<Location value="140, 125" />
<Size value="121, 21" />
<FormattingEnabled value="True" />
<DropDownStyle value="DropDownList" />
</System.Windows.Forms.ComboBox>
<System.Windows.Forms.ComboBox>
<Name value="optionExplicitComboBox" />
<TabIndex value="5" />
<Location value="13, 125" />
<Size value="121, 21" />
<FormattingEnabled value="True" />
<DropDownStyle value="DropDownList" />
</System.Windows.Forms.ComboBox>
<System.Windows.Forms.Label>
<Name value="label10" />
<Location value="6, 111" />
<Text value="${res:Dialog.ProjectOptions.BuildOptions.VBOptionsDefaultValues}" />
<Size value="218, 23" />
<TabIndex value="4" />
</System.Windows.Forms.Label>
<System.Windows.Forms.CheckBox>
<Name value="removeOverflowCheckBox" />
<Location value="12, 84" />
<Text value="${res:Dialog.ProjectOptions.BuildOptions.RemoveOverflowChecks}" />
<TabIndex value="3" />
<Size value="502, 24" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.Label>
<Name value="label1" />
<Location value="6, 17" />
<Text value="${res:Dialog.ProjectOptions.BuildOptions.ConditionalSymbols}" />
<Size value="470, 16" />
<TextAlign value="BottomLeft" />
<Anchor value="Top, Left, Right" />
<TabIndex value="0" />
</System.Windows.Forms.Label>
<System.Windows.Forms.TextBox>
<Name value="conditionalSymbolsTextBox" />
<TabIndex value="1" />
<Location value="13, 36" />
<Anchor value="Top, Left, Right" />
<Size value="502, 20" />
</System.Windows.Forms.TextBox>
<System.Windows.Forms.CheckBox>
<Name value="optimizeCodeCheckBox" />
<AccessibleRole value="None" />
<Location value="13, 64" />
<Text value="${res:Dialog.ProjectOptions.BuildOptions.OptimizeCode}" />
<TabIndex value="2" />
<Size value="502, 24" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
</Controls>
</System.Windows.Forms.GroupBox>
<System.Windows.Forms.GroupBox>
<Name value="groupBox3" />
<Location value="3, 161" />
<Text value="${res:Dialog.ProjectOptions.Build.Output}" />
<Size value="521, 363" />
<Anchor value="Top, Left, Right" />
<TabIndex value="1" />
<Controls>
<System.Windows.Forms.Button>
<Name value="projectUpdateButton" />
<Location value="291, 113" />
<Text value="Change" />
<UseVisualStyleBackColor value="True" />
<Size value="179, 23" />
<TabIndex value="10" />
</System.Windows.Forms.Button>
<System.Windows.Forms.GroupBox>
<Name value="advancedOutputGroupBox" />
<Location value="6, 142" />
<Text value="${res:Dialog.ProjectOptions.Build.Advanced}" />
<Size value="505, 215" />
<Anchor value="Top, Bottom, Left, Right" />
<TabIndex value="9" />
<Controls>
<System.Windows.Forms.Panel>
<Name value="platformSpecificOptionsPanel" />
<Location value="7, 17" />
<TabIndex value="7" />
<Size value="492, 106" />
<Anchor value="Top, Left, Right" />
<Controls>
<System.Windows.Forms.Label>
<Name value="label2" />
<Location value="3, 27" />
<Text value="${res:Dialog.ProjectOptions.Build.GenerateSerializationAssembly}" />
<Size value="181, 20" />
<TextAlign value="MiddleRight" />
<TabIndex value="1" />
</System.Windows.Forms.Label>
<System.Windows.Forms.ComboBox>
<Name value="targetCpuComboBox" />
<TabIndex value="4" />
<Location value="190, 55" />
<Size value="171, 21" />
<FormattingEnabled value="True" />
<DropDownStyle value="DropDownList" />
</System.Windows.Forms.ComboBox>
<System.Windows.Forms.ComboBox>
<Name value="generateSerializationAssemblyComboBox" />
<TabIndex value="2" />
<Location value="190, 28" />
<Size value="171, 21" />
<FormattingEnabled value="True" />
<DropDownStyle value="DropDownList" />
</System.Windows.Forms.ComboBox>
<System.Windows.Forms.Label>
<Name value="label9" />
<Location value="3, 53" />
<Text value="${res:Dialog.ProjectOptions.Build.TargetCPU}" />
<Size value="181, 23" />
<TextAlign value="MiddleRight" />
<TabIndex value="3" />
</System.Windows.Forms.Label>
<System.Windows.Forms.CheckBox>
<Name value="registerCOMInteropCheckBox" />
<Location value="172, 2" />
<Text value="${res:Dialog.ProjectOptions.Build.RegisterForCOM}" />
<TabIndex value="0" />
<Size value="320, 20" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.TextBox>
<Name value="dllBaseAddressTextBox" />
<TabIndex value="6" />
<Location value="190, 80" />
<Size value="171, 20" />
</System.Windows.Forms.TextBox>
<System.Windows.Forms.Label>
<Name value="label8" />
<Location value="4, 80" />
<Text value="${res:Dialog.ProjectOptions.Build.DLLBaseAddress}" />
<Size value="180, 23" />
<TextAlign value="MiddleRight" />
<TabIndex value="5" />
</System.Windows.Forms.Label>
</Controls>
</System.Windows.Forms.Panel>
<System.Windows.Forms.Label>
<Name value="baseIntermediateOutputPathLabel" />
<Location value="6, 129" />
<UseCompatibleTextRendering value="True" />
<Text value="${res:Dialog.ProjectOptions.Build.BaseIntermediateOutputPath}" />
<Size value="480, 16" />
<TextAlign value="BottomLeft" />
<Anchor value="Top, Left, Right" />
<TabIndex value="0" />
</System.Windows.Forms.Label>
<System.Windows.Forms.TextBox>
<Name value="baseIntermediateOutputPathTextBox" />
<TabIndex value="1" />
<Location value="7, 148" />
<Anchor value="Top, Left, Right" />
<Size value="429, 20" />
</System.Windows.Forms.TextBox>
<System.Windows.Forms.Button>
<Name value="baseIntermediateOutputPathBrowseButton" />
<Location value="447, 148" />
<UseCompatibleTextRendering value="True" />
<Text value="..." />
<Size value="40, 21" />
<Anchor value="Top, Right" />
<TabIndex value="2" />
</System.Windows.Forms.Button>
<System.Windows.Forms.Label>
<Name value="intermediateOutputPathLabel" />
<Location value="6, 172" />
<UseCompatibleTextRendering value="True" />
<Text value="${res:Dialog.ProjectOptions.Build.IntermediateOutputPath}" />
<Size value="480, 16" />
<TextAlign value="BottomLeft" />
<Anchor value="Top, Left, Right" />
<TabIndex value="0" />
</System.Windows.Forms.Label>
<System.Windows.Forms.TextBox>
<Name value="intermediateOutputPathTextBox" />
<TabIndex value="1" />
<Location value="6, 188" />
<Anchor value="Top, Left, Right" />
<Size value="429, 20" />
</System.Windows.Forms.TextBox>
<System.Windows.Forms.Button>
<Name value="intermediateOutputPathBrowseButton" />
<Location value="446, 187" />
<UseCompatibleTextRendering value="True" />
<Text value="..." />
<Size value="40, 21" />
<Anchor value="Top, Right" />
<TabIndex value="2" />
</System.Windows.Forms.Button>
</Controls>
</System.Windows.Forms.GroupBox>
<System.Windows.Forms.ComboBox>
<Name value="targetFrameworkComboBox" />
<TabIndex value="8" />
<Location value="164, 115" />
<Size value="121, 21" />
<FormattingEnabled value="True" />
<DropDownStyle value="DropDownList" />
</System.Windows.Forms.ComboBox>
<System.Windows.Forms.Label>
<Name value="targetFrameworkLabel" />
<Location value="13, 115" />
<Text value="${res:Dialog.ProjectOptions.Build.TargetFramework}" />
<Size value="150, 20" />
<TabIndex value="7" />
</System.Windows.Forms.Label>
<System.Windows.Forms.ComboBox>
<Name value="debugInfoComboBox" />
<TabIndex value="6" />
<Location value="164, 88" />
<Size value="121, 21" />
<FormattingEnabled value="True" />
<DropDownStyle value="DropDownList" />
</System.Windows.Forms.ComboBox>
<System.Windows.Forms.Label>
<Name value="debugInfoLabel" />
<Location value="13, 88" />
<Text value="${res:Dialog.ProjectOptions.Build.DebugInfo}" />
<Size value="145, 23" />
<TextAlign value="MiddleRight" />
<TabIndex value="5" />
</System.Windows.Forms.Label>
<System.Windows.Forms.CheckBox>
<Name value="xmlDocumentationCheckBox" />
<Location value="13, 63" />
<Text value="${res:Dialog.ProjectOptions.Build.XmlDocumentationFile}" />
<TabIndex value="3" />
<Size value="151, 20" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.TextBox>
<Name value="xmlDocumentationTextBox" />
<TabIndex value="4" />
<Location value="164, 62" />
<Anchor value="Top, Left, Right" />
<Size value="351, 20" />
</System.Windows.Forms.TextBox>
<System.Windows.Forms.Label>
<Name value="label5" />
<Location value="6, 17" />
<Text value="${res:Dialog.ProjectOptions.Build.OutputPath}" />
<Size value="505, 16" />
<TextAlign value="BottomLeft" />
<Anchor value="Top, Left, Right" />
<TabIndex value="0" />
</System.Windows.Forms.Label>
<System.Windows.Forms.TextBox>
<Name value="outputPathTextBox" />
<TabIndex value="1" />
<Location value="13, 36" />
<Anchor value="Top, Left, Right" />
<Size value="457, 20" />
</System.Windows.Forms.TextBox>
<System.Windows.Forms.Button>
<Name value="outputPathBrowseButton" />
<Location value="475, 36" />
<Text value="..." />
<Size value="40, 21" />
<Anchor value="Top, Right" />
<TabIndex value="2" />
</System.Windows.Forms.Button>
</Controls>
</System.Windows.Forms.GroupBox>
<System.Windows.Forms.GroupBox>
<Name value="treatWarningsAsErrorsGroupBox" />
<Location value="3, 612" />
<Text value="${res:Dialog.ProjectOptions.Build.TreatWarningsAsErrors}" />
<Size value="521, 100" />
<Anchor value="Top, Left, Right" />
<TabIndex value="3" />
<Controls>
<System.Windows.Forms.TextBox>
<Name value="specificWarningsTextBox" />
<TabIndex value="2" />
<Location value="136, 44" />
<Anchor value="Top, Left, Right" />
<Size value="377, 20" />
</System.Windows.Forms.TextBox>
<System.Windows.Forms.RadioButton>
<Name value="allRadioButton" />
<Location value="8, 68" />
<Text value="${res:Dialog.ProjectOptions.Build.TreatWarningsAsErrors.All}" />
<Size value="128, 24" />
<TabIndex value="3" />
</System.Windows.Forms.RadioButton>
<System.Windows.Forms.RadioButton>
<Name value="specificWarningsRadioButton" />
<Location value="8, 44" />
<Text value="${res:Dialog.ProjectOptions.Build.TreatWarningsAsErrors.Specific}" />
<Size value="128, 24" />
<TabIndex value="1" />
</System.Windows.Forms.RadioButton>
<System.Windows.Forms.RadioButton>
<Name value="noneRadioButton" />
<Location value="8, 20" />
<Text value="${res:Dialog.ProjectOptions.Build.TreatWarningsAsErrors.None}" />
<Size value="128, 24" />
<TabIndex value="0" />
</System.Windows.Forms.RadioButton>
</Controls>
</System.Windows.Forms.GroupBox>
<System.Windows.Forms.GroupBox>
<Name value="warningsGroupBox" />
<Location value="3, 526" />
<Text value="${res:Dialog.ProjectOptions.Build.ErrorsAndWarnings}" />
<Size value="521, 80" />
<Anchor value="Top, Left, Right" />
<TabIndex value="2" />
<Controls>
<System.Windows.Forms.TextBox>
<Name value="suppressWarningsTextBox" />
<TabIndex value="3" />
<Location value="164, 44" />
<Anchor value="Top, Left, Right" />
<Size value="349, 20" />
</System.Windows.Forms.TextBox>
<System.Windows.Forms.Label>
<Name value="label4" />
<Location value="4, 44" />
<Text value="${res:Dialog.ProjectOptions.Build.SuppressWarnings}" />
<Size value="154, 23" />
<TextAlign value="MiddleRight" />
<TabIndex value="2" />
</System.Windows.Forms.Label>
<System.Windows.Forms.ComboBox>
<Name value="warningLevelComboBox" />
<TabIndex value="1" />
<Location value="164, 20" />
<Size value="60, 21" />
<FormattingEnabled value="True" />
<DropDownStyle value="DropDownList" />
</System.Windows.Forms.ComboBox>
<System.Windows.Forms.Label>
<Name value="label3" />
<Location value="4, 20" />
<Text value="${res:Dialog.ProjectOptions.Build.WarningLevel}" />
<Size value="154, 23" />
<TextAlign value="MiddleRight" />
<TabIndex value="0" />
</System.Windows.Forms.Label>
</Controls>
</System.Windows.Forms.GroupBox>
</Controls>
</System.Windows.Forms.UserControl>
</Components>

62
src/AddIns/BackendBindings/VBNetBinding/Project/Resources/old_ProjectImports.xfrm

@ -1,62 +0,0 @@ @@ -1,62 +0,0 @@
<Components version="1.0">
<System.Windows.Forms.UserControl>
<Name value="XmlUserControl1" />
<ClientSize value="{Width=497, Height=386}" />
<AutoScroll value="True" />
<Controls>
<System.Windows.Forms.GroupBox>
<Name value="generalGroupBox" />
<Location value="{X=3,Y=3}" />
<Text value="${res:Dialog.ProjectOptions.ProjectImports.Title}" />
<Size value="{Width=491, Height=374}" />
<TabIndex value="0" />
<Anchor value="Top, Bottom, Left, Right" />
<Controls>
<System.Windows.Forms.Label>
<Name value="label1" />
<Location value="{X=230,Y=21}" />
<Text value="${res:Dialog.ProjectOptions.ProjectImports.Namespace}" />
<Size value="{Width=255, Height=15}" />
<TabIndex value="4" />
<Anchor value="Top, Right" />
</System.Windows.Forms.Label>
<System.Windows.Forms.ComboBox>
<Name value="namespacesComboBox" />
<Sorted value="True" />
<TabIndex value="3" />
<Anchor value="Top, Right" />
<Size value="{Width=255, Height=21}" />
<FormattingEnabled value="True" />
<Location value="{X=230,Y=46}" />
</System.Windows.Forms.ComboBox>
<System.Windows.Forms.Button>
<Name value="addImportButton" />
<Location value="{X=230,Y=73}" />
<Text value="${res:Dialog.ProjectOptions.ProjectImports.AddImport}" />
<Size value="{Width=153, Height=23}" />
<Anchor value="Top, Right" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<TabIndex value="2" />
</System.Windows.Forms.Button>
<System.Windows.Forms.Button>
<Name value="removeImportButton" />
<Location value="{X=230,Y=102}" />
<Text value="${res:Dialog.ProjectOptions.ProjectImports.RemoveImport}" />
<Size value="{Width=153, Height=23}" />
<Anchor value="Top, Right" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<TabIndex value="1" />
</System.Windows.Forms.Button>
<System.Windows.Forms.ListBox>
<Name value="importsListBox" />
<TabIndex value="0" />
<Anchor value="Top, Bottom, Left, Right" />
<Size value="{Width=208, Height=342}" />
<FormattingEnabled value="True" />
<Location value="{X=16,Y=20}" />
</System.Windows.Forms.ListBox>
</Controls>
</System.Windows.Forms.GroupBox>
</Controls>
</System.Windows.Forms.UserControl>
</Components>

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

@ -631,6 +631,8 @@ namespace ICSharpCode.VBNetBinding @@ -631,6 +631,8 @@ namespace ICSharpCode.VBNetBinding
if (isMultiLineLambda && (currentToken.Kind == Tokens.Function || currentToken.Kind == Tokens.Sub)) {
lambdaNesting++;
int endColumn = currentToken.Location.Column;
if (prevToken.Kind == Tokens.Iterator || prevToken.Kind == Tokens.Async)
endColumn = prevToken.Location.Column;
int startColumn = DocumentUtilitites.GetWhitespaceAfter(editor.Document, editor.Document.GetLine(lastVisualLine).Offset).Length;
if (startColumn < endColumn)
Indent(editor, indentation, new string(' ', endColumn - startColumn - 1));

62
src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/BuildOptions.cs

@ -1,62 +0,0 @@ @@ -1,62 +0,0 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
using ICSharpCode.SharpDevelop.Project;
using StringPair = System.Collections.Generic.KeyValuePair<System.String, System.String>;
namespace ICSharpCode.VBNetBinding.OptionPanels
{
public class BuildOptions : AbstractBuildOptions
{
public override void LoadPanelContents()
{
SetupFromXmlResource("BuildOptions.xfrm");
InitializeHelper();
ConfigurationGuiBinding b;
b = helper.BindString("conditionalSymbolsTextBox", "DefineConstants", TextBoxEditMode.EditRawProperty);
b.DefaultLocation = PropertyStorageLocations.ConfigurationSpecific;
b.CreateLocationButton("conditionalSymbolsTextBox");
b = helper.BindBoolean("optimizeCodeCheckBox", "Optimize", false);
b.DefaultLocation = PropertyStorageLocations.ConfigurationSpecific;
b.CreateLocationButton("optimizeCodeCheckBox");
b = helper.BindBoolean("removeOverflowCheckBox", "RemoveIntegerChecks", false);
b.CreateLocationButton("removeOverflowCheckBox");
ChooseStorageLocationButton locationButton;
b = helper.BindStringEnum("optionExplicitComboBox", "OptionExplicit", "On",
new StringPair("Off", "Explicit Off"),
new StringPair("On", "Explicit On"));
locationButton = b.CreateLocationButton("optionExplicitComboBox");
b = helper.BindStringEnum("optionStrictComboBox", "OptionStrict", "Off",
new StringPair("Off", "Strict Off"),
new StringPair("On", "Strict On"));
b.RegisterLocationButton(locationButton);
b = helper.BindStringEnum("optionCompareComboBox", "OptionCompare", "Binary",
new StringPair("Binary", "Compare Binary"),
new StringPair("Text", "Compare Text"));
b.RegisterLocationButton(locationButton);
b = helper.BindStringEnum("optionInferComboBox", "OptionInfer", "Off",
new StringPair("Off", "Infer Off"),
new StringPair("On", "Infer On"));
b.RegisterLocationButton(locationButton);
InitBaseIntermediateOutputPath();
InitIntermediateOutputPath();
InitOutputPath();
InitXmlDoc();
InitTargetFramework();
InitDebugInfo();
InitAdvanced();
InitWarnings();
helper.AddConfigurationSelector(this);
}
}
}

150
src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/BuildOptions.xaml

@ -0,0 +1,150 @@ @@ -0,0 +1,150 @@
<optionpanels:ProjectOptionPanel
x:Class="ICSharpCode.VBNetBinding.OptionPanels.BuildOptions"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:gui="clr-namespace:ICSharpCode.SharpDevelop.Gui;assembly=ICSharpCode.SharpDevelop"
xmlns:project="clr-namespace:ICSharpCode.SharpDevelop.Project;assembly=ICSharpCode.SharpDevelop"
xmlns:optionpanels="clr-namespace:ICSharpCode.SharpDevelop.Gui.OptionPanels;assembly=ICSharpCode.SharpDevelop"
xmlns:core="http://icsharpcode.net/sharpdevelop/core"
xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets">
<optionpanels:ProjectOptionPanel.Resources>
<optionpanels:StorageLocationConverter x:Key="locationConverter"></optionpanels:StorageLocationConverter>
<optionpanels:StringToBoolConverter x:Key="strToBool"></optionpanels:StringToBoolConverter>
</optionpanels:ProjectOptionPanel.Resources>
<ScrollViewer>
<StackPanel>
<GroupBox Header="{core:Localize Dialog.ProjectOptions.BuildOptions.General}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto" ></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.ColumnSpan="3" VerticalAlignment="Center"
Content="{core:Localize Dialog.ProjectOptions.BuildOptions.ConditionalSymbols}"></Label>
<optionpanels:StorageLocationPicker Grid.Row="1" Margin="0,8,0,8"
Location="{Binding DefineConstants.Location}" />
<TextBox x:Name="conditionalSymbolsTextBox" VerticalAlignment="Center"
Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2"
Text="{Binding DefineConstants.Value, UpdateSourceTrigger=PropertyChanged}">
</TextBox>
<optionpanels:StorageLocationPicker Grid.Row="2" Margin="0,3,0,0" Location="{Binding Optimize.Location}" />
<CheckBox x:Name="optimizeCodeCheckBox" VerticalAlignment="Center"
Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2"
Content="{core:Localize Dialog.ProjectOptions.BuildOptions.OptimizeCode}"
IsChecked="{Binding Optimize.Value,Converter={StaticResource strToBool}}">
</CheckBox>
<optionpanels:StorageLocationPicker Grid.Row="3" Margin="0,3,0,0" Location="{Binding RemoveIntegerChecks.Location}" />
<CheckBox x:Name="removeOverflowCheckBox"
Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="2" VerticalAlignment="Center"
Content="{core:Localize Dialog.ProjectOptions.BuildOptions.RemoveOverflowChecks}"
IsChecked="{Binding RemoveIntegerChecks.Value,Converter={StaticResource strToBool}}">
</CheckBox>
<optionpanels:StorageLocationPicker Grid.Row="5" Margin="0,3,0,0" VerticalAlignment="Center" >
<optionpanels:StorageLocationPicker.Location>
<MultiBinding
Converter="{StaticResource locationConverter}">
<Binding Path="OptionExplicit.Location" />
<Binding Path="OptionStrict.Location" />
<Binding Path="OptionCompare.Location" />
<Binding Path="OptionInfer.Location" />
</MultiBinding>
</optionpanels:StorageLocationPicker.Location>
</optionpanels:StorageLocationPicker>
<widgets:StackPanelWithSpacing Grid.Row="5" Grid.Column="1"
Orientation="Horizontal" SpaceBetweenItems="8">
<ComboBox
VerticalAlignment="Center"
ItemsSource="{Binding OptionExplicitItems}"
SelectedValue="{Binding Path=OptionExplicit.Value}"
DisplayMemberPath="DisplayValue"
SelectedValuePath="Key">
</ComboBox>
<ComboBox
VerticalAlignment="Center"
ItemsSource="{Binding OptionStrictItems}"
SelectedValue="{Binding Path=OptionStrict.Value}"
DisplayMemberPath="DisplayValue"
SelectedValuePath="Key"
></ComboBox>
<!--<ComboBox Grid.Row="1" Grid.Column="2"
VerticalAlignment="Center"
ItemsSource="{Binding Path=DataContext.SerializationInfo}"
SelectedValue="{Binding Path=GenerateSerializationAssemblies.Value}"
DisplayMemberPath="DisplayValue"
SelectedValuePath="Key"></ComboBox>-->
<ComboBox
VerticalAlignment="Center"
ItemsSource="{Binding OptionCompareItems}"
SelectedValue="{Binding Path=OptionCompare.Value}"
DisplayMemberPath="DisplayValue"
SelectedValuePath="Key">
</ComboBox>
<ComboBox VerticalAlignment="Center"
ItemsSource="{Binding OptionInferItems}"
SelectedValue="{Binding Path=OptionInfer.Value}"
DisplayMemberPath="DisplayValue"
SelectedValuePath="Key">
</ComboBox>
</widgets:StackPanelWithSpacing>
</Grid>
</GroupBox>
<GroupBox Header="{core:Localize Dialog.ProjectOptions.Build.Output}">
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="50"></ColumnDefinition>
</Grid.ColumnDefinitions>
<optionpanels:BuildOutput x:Name="buildOutput" Grid.ColumnSpan="3">
</optionpanels:BuildOutput>
<GroupBox Grid.Row="5" Grid.ColumnSpan="4" Margin="5,10,0,0" Header="{core:Localize Dialog.ProjectOptions.Build.Advanced}">
<optionpanels:BuildAdvanced x:Name="buildAdvanced">
</optionpanels:BuildAdvanced>
</GroupBox>
</Grid>
</GroupBox>
<GroupBox Margin="0,8,0,0" Header="{core:Localize Dialog.ProjectOptions.Build.TreatWarningsAsErrors}">
<optionpanels:ErrorsAndWarnings x:Name="errorsAndWarnings">
</optionpanels:ErrorsAndWarnings>
</GroupBox>
<GroupBox Margin="0,8,0,0" Header="{core:Localize Dialog.ProjectOptions.Build.ErrorsAndWarnings}">
<optionpanels:TreatErrorsAndWarnings x:Name="treatErrorsAndWarnings">
</optionpanels:TreatErrorsAndWarnings>
</GroupBox>
</StackPanel>
</ScrollViewer>
</optionpanels:ProjectOptionPanel>

135
src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/BuildOptions.xaml.cs

@ -0,0 +1,135 @@ @@ -0,0 +1,135 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 06.08.2012
* Time: 19:43
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.VBNetBinding.OptionPanels
{
/// <summary>
/// Interaction logic for BuildOptionsXaml.xaml
/// </summary>
public partial class BuildOptions : ProjectOptionPanel
{
public BuildOptions()
{
InitializeComponent();
DataContext = this;
optionExplicitItems = new List<KeyItemPair>();
optionExplicitItems.Add(new KeyItemPair("Off","Explicit Off"));
optionExplicitItems.Add(new KeyItemPair("On","Explicit On"));
OptionExplicitItems = optionExplicitItems;
optionStrictItems = new List<KeyItemPair>();
optionStrictItems.Add(new KeyItemPair("Off", "Strict Off"));
optionStrictItems.Add(new KeyItemPair("On", "Strict On"));
OptionStrictItems = optionStrictItems;
optionCompareItems = new List<KeyItemPair>();
optionCompareItems.Add(new KeyItemPair("Binary", "Compare Binary"));
optionCompareItems.Add(new KeyItemPair("Text", "Compare Text"));
OptionCompareItems = optionCompareItems;
optionInferItems = new List<KeyItemPair>();
optionInferItems.Add(new KeyItemPair("Off", "Infer Off"));
optionInferItems.Add(new KeyItemPair("On", "Infer On"));
OptionInferItems = optionInferItems;
}
public ProjectProperty<string> DefineConstants {
get { return GetProperty("DefineConstants", "", TextBoxEditMode.EditRawProperty); }
}
public ProjectProperty<bool> Optimize {
get { return GetProperty("Optimize", false, PropertyStorageLocations.ConfigurationSpecific); }
}
public ProjectProperty<string> RemoveIntegerChecks {
get { return GetProperty("RemoveIntegerChecks", "", TextBoxEditMode.EditRawProperty); }
}
public ProjectProperty<string> OptionExplicit {
get {return GetProperty("OptionExplicit", "", TextBoxEditMode.EditRawProperty); }
}
public ProjectProperty<string> OptionStrict {
get { return GetProperty("OptionStrict", "Off", TextBoxEditMode.EditRawProperty); }
}
public ProjectProperty<string> OptionCompare {
get { return GetProperty("OptionCompare", "Binary", TextBoxEditMode.EditRawProperty); }
}
public ProjectProperty<string> OptionInfer {
get { return GetProperty("OptionInfer", "Off", TextBoxEditMode.EditRawProperty); }
}
#region OptionItems
List<KeyItemPair> optionExplicitItems;
public List<KeyItemPair> OptionExplicitItems {
get { return optionExplicitItems; }
set { optionExplicitItems = value;
base.RaisePropertyChanged(() => OptionExplicitItems);
}
}
List<KeyItemPair> optionStrictItems;
public List<KeyItemPair> OptionStrictItems {
get { return optionStrictItems; }
set { optionStrictItems = value;
base.RaisePropertyChanged(() => OptionStrictItems);
}
}
private List<KeyItemPair> optionCompareItems;
public List<KeyItemPair> OptionCompareItems {
get { return optionCompareItems; }
set { optionCompareItems = value;
base.RaisePropertyChanged(() => OptionCompareItems);
}
}
List<KeyItemPair> optionInferItems;
public List<KeyItemPair> OptionInferItems {
get { return optionInferItems; }
set { optionInferItems = value;
base.RaisePropertyChanged(()=>OptionInferItems);
}
}
#endregion
#region overrides
protected override void Initialize()
{
base.Initialize();
buildOutput.Initialize(this);
this.buildAdvanced.Initialize(this);
this.errorsAndWarnings.Initialize(this);
this.treatErrorsAndWarnings.Initialize(this);
}
#endregion
}
}

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

Loading…
Cancel
Save