Browse Source

Merge branch 'master' into Debugger

newNRvisualizers
David Srbecký 13 years ago
parent
commit
dc58692d04
  1. 542
      SharpDevelop.sln
  2. 38
      data/resources/StringResources.de.resx
  3. 57
      data/resources/StringResources.fr.resx
  4. 37
      data/resources/StringResources.it.resx
  5. 75
      data/resources/StringResources.nl.resx
  6. 58
      data/resources/StringResources.resx
  7. 3191
      data/resources/StringResources.tr.resx
  8. BIN
      data/templates/packages/Modernizr.1.7.nupkg
  9. BIN
      data/templates/packages/Modernizr.2.5.3.nupkg
  10. BIN
      data/templates/packages/jQuery.1.6.1.nupkg
  11. BIN
      data/templates/packages/jQuery.1.7.2.nupkg
  12. 2
      data/templates/project/CSharp/ConsoleProject.xpt
  13. 2
      data/templates/project/CSharp/FormsProject.xpt
  14. 8
      data/templates/project/CSharp/MvcRazorProject.xpt
  15. 8
      data/templates/project/CSharp/MvcWebProject.xpt
  16. 2
      data/templates/project/CSharp/NotifyIcon.xpt
  17. 27
      data/templates/project/CSharp/PortableAssemblyInfo.cs
  18. 58
      data/templates/project/CSharp/PortableLibrary.xpt
  19. 2
      data/templates/project/CSharp/Service.xpt
  20. 2
      data/templates/project/CSharp/WPFApplication.xpt
  21. 2
      data/templates/project/CSharp/WPFNavigationApplication.xpt
  22. 20
      data/templates/project/ComplexExample.xpt.test
  23. 2
      data/templates/project/VB/ConsoleProject.xpt
  24. 2
      data/templates/project/VB/FormsProject.xpt
  25. 8
      data/templates/project/VB/MvcRazorProject.xpt
  26. 8
      data/templates/project/VB/MvcWebProject.xpt
  27. 2
      data/templates/project/VB/NotifyIcon.xpt
  28. 2
      data/templates/project/VB/Service.xpt
  29. 2
      data/templates/project/VB/WPFApplication.xpt
  30. 2
      data/templates/project/VB/WPFNavigationApplication.xpt
  31. 69
      samples/MSTest/MSTest.SharpDevelop.Tests/MSTest.SharpDevelop.Tests.csproj
  32. 338
      samples/MSTest/MSTest.SharpDevelop.Tests/MSTestFrameworkTests.cs
  33. 184
      samples/MSTest/MSTest.SharpDevelop.Tests/MSTestResultsTests.cs
  34. 31
      samples/MSTest/MSTest.SharpDevelop.Tests/Properties/AssemblyInfo.cs
  35. 24
      samples/MSTest/MSTest.SharpDevelop.sln
  36. 103
      samples/MSTest/MSTest.SharpDevelop/MSTest.SharpDevelop.csproj
  37. 30
      samples/MSTest/MSTest.SharpDevelop/MSTest.addin
  38. 46
      samples/MSTest/MSTest.SharpDevelop/MSTestApplication.cs
  39. 37
      samples/MSTest/MSTest.SharpDevelop/MSTestApplicationCommandLine.cs
  40. 134
      samples/MSTest/MSTest.SharpDevelop/MSTestDebugger.cs
  41. 109
      samples/MSTest/MSTest.SharpDevelop/MSTestFramework.cs
  42. 26
      samples/MSTest/MSTest.SharpDevelop/MSTestOptions.cs
  43. 32
      samples/MSTest/MSTest.SharpDevelop/MSTestOptionsPanel.xaml
  44. 64
      samples/MSTest/MSTest.SharpDevelop/MSTestOptionsPanel.xaml.cs
  45. 31
      samples/MSTest/MSTest.SharpDevelop/MSTestQualifiedClassName.cs
  46. 93
      samples/MSTest/MSTest.SharpDevelop/MSTestResult.cs
  47. 91
      samples/MSTest/MSTest.SharpDevelop/MSTestResults.cs
  48. 27
      samples/MSTest/MSTest.SharpDevelop/MSTestResultsFileName.cs
  49. 138
      samples/MSTest/MSTest.SharpDevelop/MSTestRunner.cs
  50. 28
      samples/MSTest/MSTest.SharpDevelop/ProjectItemExtensions.cs
  51. 31
      samples/MSTest/MSTest.SharpDevelop/Properties/AssemblyInfo.cs
  52. 4
      src/AddIns/Analysis/CodeCoverage/Test/Testing/CodeCoverageTestRunnerTests.cs
  53. 4
      src/AddIns/Analysis/CodeCoverage/Test/Testing/PartCoverApplicationTests.cs
  54. 10
      src/AddIns/Analysis/UnitTesting/Src/NUnitConsoleApplication.cs
  55. 29
      src/AddIns/Analysis/UnitTesting/Test/Frameworks/NUnitConsoleCommandLineTests.cs
  56. 2
      src/AddIns/Analysis/UnitTesting/Test/Frameworks/NUnitConsoleProcessStartInfoTestFixture.cs
  57. 2
      src/AddIns/Analysis/UnitTesting/Test/Tree/RunNUnitTestsForMethodTestFixture.cs
  58. 4
      src/AddIns/Analysis/UnitTesting/Test/Tree/RunNUnitTestsWithDebuggerTestFixture.cs
  59. 2
      src/AddIns/Analysis/UnitTesting/Test/Tree/RunTestInPadCommandTestFixture.cs
  60. 4
      src/AddIns/Analysis/UnitTesting/Test/Tree/RunTestWithDebuggerCommandTestFixture.cs
  61. 1
      src/AddIns/Analysis/UnitTesting/Test/Utils/MockCSharpProject.cs
  62. 2
      src/AddIns/Analysis/UnitTesting/UnitTesting.csproj
  63. 1
      src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj
  64. 77
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/ViewInBrowser.cs
  65. 87
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/CSharpProject.cs
  66. 2
      src/AddIns/BackendBindings/CSharpBinding/Tests/MockTextEditor.cs
  67. 2
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonComponentWalker.cs
  68. 4
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonResolverContext.cs
  69. 108
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/LoadFormWithButtonFollowedByTimerTestFixture.cs
  70. 1
      src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj
  71. 48
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs
  72. 2
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/ProjectImports.cs
  73. 40
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/VBNetProject.cs
  74. 47
      src/AddIns/BackendBindings/VBNetBinding/Test/FormattingStrategy/EndSubTests.cs
  75. 48
      src/AddIns/BackendBindings/VBNetBinding/Test/FormattingStrategy/IndentationTests.cs
  76. 2
      src/AddIns/BackendBindings/VBNetBinding/Test/MockTextEditor.cs
  77. 2
      src/AddIns/BackendBindings/XamlBinding/XamlBinding.Tests/MockTextEditor.cs
  78. 2
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/CompletionDataHelper.cs
  79. 10
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCompilationUnit.cs
  80. 21
      src/AddIns/Debugger/Debugger.AddIn/Options/DebuggingOptions.cs
  81. 14
      src/AddIns/Debugger/Debugger.AddIn/Options/DebuggingOptionsPanel.xaml.cs
  82. 10
      src/AddIns/Debugger/Debugger.AddIn/Options/DebuggingSymbolsPanel.cs
  83. 4
      src/AddIns/Debugger/Debugger.AddIn/Options/DebuggingSymbolsPanel.resx
  84. 7
      src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPad.cs
  85. 10
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/SharpTreeNodeAdapter.cs
  86. 4
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/TreeNode.cs
  87. 9
      src/AddIns/Debugger/Debugger.Core/IDStringProvider.cs
  88. 2
      src/AddIns/Debugger/Debugger.Core/ManagedCallback.cs
  89. 7
      src/AddIns/Debugger/Debugger.Core/MetaData/DebugMethodInfo.cs
  90. 24
      src/AddIns/Debugger/Debugger.Core/Process.cs
  91. 5
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj
  92. 16
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditSyntaxHighlighterAdapter.cs
  93. 3
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditViewContent.cs
  94. 38
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ChangeMarkerMargin.cs
  95. 45
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
  96. 29
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs
  97. 22
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Commands/FoldingCommands.cs
  98. 92
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CustomizableHighlightingColorizer.cs
  99. 10
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CustomizedHighlightingColor.cs
  100. 6
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/DefaultChangeWatcher.cs
  101. Some files were not shown because too many files have changed in this diff Show More

542
SharpDevelop.sln

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

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.2.0.8634-beta
# SharpDevelop 4.2.0.8783
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{256F5C28-532C-44C0-8AB8-D8EC5E492E01}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
@ -1099,6 +1099,546 @@ Global @@ -1099,6 +1099,546 @@ Global
{062B7E01-AF3D-430D-BE33-17FF3EF4F647}.Release|Win32.ActiveCfg = Release|x86
{062B7E01-AF3D-430D-BE33-17FF3EF4F647}.Release|x86.Build.0 = Release|x86
{062B7E01-AF3D-430D-BE33-17FF3EF4F647}.Release|x86.ActiveCfg = Release|x86
{3DF4060F-5EE0-41CF-8096-F27355FD5511}.Debug|Win32.Build.0 = Debug|Any CPU
{3DF4060F-5EE0-41CF-8096-F27355FD5511}.Debug|Win32.ActiveCfg = Debug|Any CPU
{3DF4060F-5EE0-41CF-8096-F27355FD5511}.Debug|x86.Build.0 = Debug|Any CPU
{3DF4060F-5EE0-41CF-8096-F27355FD5511}.Debug|x86.ActiveCfg = Debug|Any CPU
{3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|Win32.Build.0 = Release|Any CPU
{3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|Win32.ActiveCfg = Release|Any CPU
{3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|x86.Build.0 = Release|Any CPU
{3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|x86.ActiveCfg = Release|Any CPU
{CE498514-D12D-4B6E-AE0E-FEC29BD43748}.Debug|Win32.Build.0 = Debug|Any CPU
{CE498514-D12D-4B6E-AE0E-FEC29BD43748}.Debug|Win32.ActiveCfg = Debug|Any CPU
{CE498514-D12D-4B6E-AE0E-FEC29BD43748}.Debug|x86.Build.0 = Debug|Any CPU
{CE498514-D12D-4B6E-AE0E-FEC29BD43748}.Debug|x86.ActiveCfg = Debug|Any CPU
{CE498514-D12D-4B6E-AE0E-FEC29BD43748}.Release|Win32.Build.0 = Release|Any CPU
{CE498514-D12D-4B6E-AE0E-FEC29BD43748}.Release|Win32.ActiveCfg = Release|Any CPU
{CE498514-D12D-4B6E-AE0E-FEC29BD43748}.Release|x86.Build.0 = Release|Any CPU
{CE498514-D12D-4B6E-AE0E-FEC29BD43748}.Release|x86.ActiveCfg = Release|Any CPU
{08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Debug|Win32.Build.0 = Debug|Any CPU
{08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Debug|Win32.ActiveCfg = Debug|Any CPU
{08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Debug|x86.Build.0 = Debug|Any CPU
{08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Debug|x86.ActiveCfg = Debug|Any CPU
{08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Release|Win32.Build.0 = Release|Any CPU
{08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Release|Win32.ActiveCfg = Release|Any CPU
{08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Release|x86.Build.0 = Release|Any CPU
{08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Release|x86.ActiveCfg = Release|Any CPU
{3EAA45A9-735C-4AC7-A799-947B93EA449D}.Debug|Win32.Build.0 = Debug|Any CPU
{3EAA45A9-735C-4AC7-A799-947B93EA449D}.Debug|Win32.ActiveCfg = Debug|Any CPU
{3EAA45A9-735C-4AC7-A799-947B93EA449D}.Debug|x86.Build.0 = Debug|Any CPU
{3EAA45A9-735C-4AC7-A799-947B93EA449D}.Debug|x86.ActiveCfg = Debug|Any CPU
{3EAA45A9-735C-4AC7-A799-947B93EA449D}.Release|Win32.Build.0 = Release|Any CPU
{3EAA45A9-735C-4AC7-A799-947B93EA449D}.Release|Win32.ActiveCfg = Release|Any CPU
{3EAA45A9-735C-4AC7-A799-947B93EA449D}.Release|x86.Build.0 = Release|Any CPU
{3EAA45A9-735C-4AC7-A799-947B93EA449D}.Release|x86.ActiveCfg = Release|Any CPU
{1F261725-6318-4434-A1B1-6C70CE4CD324}.Debug|Win32.Build.0 = Debug|Any CPU
{1F261725-6318-4434-A1B1-6C70CE4CD324}.Debug|Win32.ActiveCfg = Debug|Any CPU
{1F261725-6318-4434-A1B1-6C70CE4CD324}.Debug|x86.Build.0 = Debug|Any CPU
{1F261725-6318-4434-A1B1-6C70CE4CD324}.Debug|x86.ActiveCfg = Debug|Any CPU
{1F261725-6318-4434-A1B1-6C70CE4CD324}.Release|Win32.Build.0 = Release|Any CPU
{1F261725-6318-4434-A1B1-6C70CE4CD324}.Release|Win32.ActiveCfg = Release|Any CPU
{1F261725-6318-4434-A1B1-6C70CE4CD324}.Release|x86.Build.0 = Release|Any CPU
{1F261725-6318-4434-A1B1-6C70CE4CD324}.Release|x86.ActiveCfg = Release|Any CPU
{88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Debug|Win32.Build.0 = Debug|Any CPU
{88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Debug|Win32.ActiveCfg = Debug|Any CPU
{88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Debug|x86.Build.0 = Debug|Any CPU
{88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Debug|x86.ActiveCfg = Debug|Any CPU
{88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Release|Win32.Build.0 = Release|Any CPU
{88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Release|Win32.ActiveCfg = Release|Any CPU
{88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Release|x86.Build.0 = Release|Any CPU
{88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Release|x86.ActiveCfg = Release|Any CPU
{78CC29AC-CC79-4355-B1F2-97936DF198AC}.Debug|Win32.Build.0 = Debug|Any CPU
{78CC29AC-CC79-4355-B1F2-97936DF198AC}.Debug|Win32.ActiveCfg = Debug|Any CPU
{78CC29AC-CC79-4355-B1F2-97936DF198AC}.Debug|x86.Build.0 = Debug|Any CPU
{78CC29AC-CC79-4355-B1F2-97936DF198AC}.Debug|x86.ActiveCfg = Debug|Any CPU
{78CC29AC-CC79-4355-B1F2-97936DF198AC}.Release|Win32.Build.0 = Release|Any CPU
{78CC29AC-CC79-4355-B1F2-97936DF198AC}.Release|Win32.ActiveCfg = Release|Any CPU
{78CC29AC-CC79-4355-B1F2-97936DF198AC}.Release|x86.Build.0 = Release|Any CPU
{78CC29AC-CC79-4355-B1F2-97936DF198AC}.Release|x86.ActiveCfg = Release|Any CPU
{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Debug|Win32.Build.0 = Debug|Any CPU
{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Debug|Win32.ActiveCfg = Debug|Any CPU
{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Debug|x86.Build.0 = Debug|Any CPU
{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Debug|x86.ActiveCfg = Debug|Any CPU
{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Release|Win32.Build.0 = Release|Any CPU
{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Release|Win32.ActiveCfg = Release|Any CPU
{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Release|x86.Build.0 = Release|Any CPU
{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Release|x86.ActiveCfg = Release|Any CPU
{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Debug|Win32.Build.0 = Debug|Any CPU
{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Debug|Win32.ActiveCfg = Debug|Any CPU
{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Debug|x86.Build.0 = Debug|Any CPU
{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Debug|x86.ActiveCfg = Debug|Any CPU
{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Release|Win32.Build.0 = Release|Any CPU
{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Release|Win32.ActiveCfg = Release|Any CPU
{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Release|x86.Build.0 = Release|Any CPU
{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Release|x86.ActiveCfg = Release|Any CPU
{DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Debug|Win32.Build.0 = Debug|Any CPU
{DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Debug|Win32.ActiveCfg = Debug|Any CPU
{DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Debug|x86.Build.0 = Debug|Any CPU
{DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Debug|x86.ActiveCfg = Debug|Any CPU
{DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Release|Win32.Build.0 = Release|Any CPU
{DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Release|Win32.ActiveCfg = Release|Any CPU
{DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Release|x86.Build.0 = Release|Any CPU
{DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Release|x86.ActiveCfg = Release|Any CPU
{DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD}.Debug|Win32.Build.0 = Debug|Any CPU
{DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD}.Debug|Win32.ActiveCfg = Debug|Any CPU
{DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD}.Debug|x86.Build.0 = Debug|Any CPU
{DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD}.Debug|x86.ActiveCfg = Debug|Any CPU
{DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD}.Release|Win32.Build.0 = Release|Any CPU
{DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD}.Release|Win32.ActiveCfg = Release|Any CPU
{DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD}.Release|x86.Build.0 = Release|Any CPU
{DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD}.Release|x86.ActiveCfg = Release|Any CPU
{E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Debug|Win32.Build.0 = Debug|Any CPU
{E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Debug|Win32.ActiveCfg = Debug|Any CPU
{E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Debug|x86.Build.0 = Debug|Any CPU
{E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Debug|x86.ActiveCfg = Debug|Any CPU
{E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Release|Win32.Build.0 = Release|Any CPU
{E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Release|Win32.ActiveCfg = Release|Any CPU
{E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Release|x86.Build.0 = Release|Any CPU
{E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Release|x86.ActiveCfg = Release|Any CPU
{CBC6C247-747B-4908-B09A-4D2E0F640B6B}.Debug|Win32.Build.0 = Debug|Any CPU
{CBC6C247-747B-4908-B09A-4D2E0F640B6B}.Debug|Win32.ActiveCfg = Debug|Any CPU
{CBC6C247-747B-4908-B09A-4D2E0F640B6B}.Debug|x86.Build.0 = Debug|Any CPU
{CBC6C247-747B-4908-B09A-4D2E0F640B6B}.Debug|x86.ActiveCfg = Debug|Any CPU
{CBC6C247-747B-4908-B09A-4D2E0F640B6B}.Release|Win32.Build.0 = Release|Any CPU
{CBC6C247-747B-4908-B09A-4D2E0F640B6B}.Release|Win32.ActiveCfg = Release|Any CPU
{CBC6C247-747B-4908-B09A-4D2E0F640B6B}.Release|x86.Build.0 = Release|Any CPU
{CBC6C247-747B-4908-B09A-4D2E0F640B6B}.Release|x86.ActiveCfg = Release|Any CPU
{0162E499-42D0-409B-AA25-EED21F75336B}.Debug|Win32.Build.0 = Debug|Any CPU
{0162E499-42D0-409B-AA25-EED21F75336B}.Debug|Win32.ActiveCfg = Debug|Any CPU
{0162E499-42D0-409B-AA25-EED21F75336B}.Debug|x86.Build.0 = Debug|Any CPU
{0162E499-42D0-409B-AA25-EED21F75336B}.Debug|x86.ActiveCfg = Debug|Any CPU
{0162E499-42D0-409B-AA25-EED21F75336B}.Release|Win32.Build.0 = Release|Any CPU
{0162E499-42D0-409B-AA25-EED21F75336B}.Release|Win32.ActiveCfg = Release|Any CPU
{0162E499-42D0-409B-AA25-EED21F75336B}.Release|x86.Build.0 = Release|Any CPU
{0162E499-42D0-409B-AA25-EED21F75336B}.Release|x86.ActiveCfg = Release|Any CPU
{DCA2703D-250A-463E-A68A-07ED105AE6BD}.Debug|Win32.Build.0 = Debug|Any CPU
{DCA2703D-250A-463E-A68A-07ED105AE6BD}.Debug|Win32.ActiveCfg = Debug|Any CPU
{DCA2703D-250A-463E-A68A-07ED105AE6BD}.Debug|x86.Build.0 = Debug|Any CPU
{DCA2703D-250A-463E-A68A-07ED105AE6BD}.Debug|x86.ActiveCfg = Debug|Any CPU
{DCA2703D-250A-463E-A68A-07ED105AE6BD}.Release|Win32.Build.0 = Release|Any CPU
{DCA2703D-250A-463E-A68A-07ED105AE6BD}.Release|Win32.ActiveCfg = Release|Any CPU
{DCA2703D-250A-463E-A68A-07ED105AE6BD}.Release|x86.Build.0 = Release|Any CPU
{DCA2703D-250A-463E-A68A-07ED105AE6BD}.Release|x86.ActiveCfg = Release|Any CPU
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}.Debug|Win32.Build.0 = Debug|Any CPU
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}.Debug|Win32.ActiveCfg = Debug|Any CPU
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}.Debug|x86.Build.0 = Debug|Any CPU
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}.Debug|x86.ActiveCfg = Debug|Any CPU
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}.Release|Win32.Build.0 = Release|Any CPU
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}.Release|Win32.ActiveCfg = Release|Any CPU
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}.Release|x86.Build.0 = Release|Any CPU
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}.Release|x86.ActiveCfg = Release|Any CPU
{08F772A1-F0BE-433E-8B37-F6522953DB05}.Debug|Win32.Build.0 = Debug|Any CPU
{08F772A1-F0BE-433E-8B37-F6522953DB05}.Debug|Win32.ActiveCfg = Debug|Any CPU
{08F772A1-F0BE-433E-8B37-F6522953DB05}.Debug|x86.Build.0 = Debug|Any CPU
{08F772A1-F0BE-433E-8B37-F6522953DB05}.Debug|x86.ActiveCfg = Debug|Any CPU
{08F772A1-F0BE-433E-8B37-F6522953DB05}.Release|Win32.Build.0 = Release|Any CPU
{08F772A1-F0BE-433E-8B37-F6522953DB05}.Release|Win32.ActiveCfg = Release|Any CPU
{08F772A1-F0BE-433E-8B37-F6522953DB05}.Release|x86.Build.0 = Release|Any CPU
{08F772A1-F0BE-433E-8B37-F6522953DB05}.Release|x86.ActiveCfg = Release|Any CPU
{5A1354DF-4989-4BB4-BC6B-D627C2E9FA13}.Debug|Win32.Build.0 = Debug|Any CPU
{5A1354DF-4989-4BB4-BC6B-D627C2E9FA13}.Debug|Win32.ActiveCfg = Debug|Any CPU
{5A1354DF-4989-4BB4-BC6B-D627C2E9FA13}.Debug|x86.Build.0 = Debug|Any CPU
{5A1354DF-4989-4BB4-BC6B-D627C2E9FA13}.Debug|x86.ActiveCfg = Debug|Any CPU
{5A1354DF-4989-4BB4-BC6B-D627C2E9FA13}.Release|Win32.Build.0 = Release|Any CPU
{5A1354DF-4989-4BB4-BC6B-D627C2E9FA13}.Release|Win32.ActiveCfg = Release|Any CPU
{5A1354DF-4989-4BB4-BC6B-D627C2E9FA13}.Release|x86.Build.0 = Release|Any CPU
{5A1354DF-4989-4BB4-BC6B-D627C2E9FA13}.Release|x86.ActiveCfg = Release|Any CPU
{0991423A-DBF6-4C89-B365-A1DF1EB32E42}.Debug|Win32.Build.0 = Debug|Any CPU
{0991423A-DBF6-4C89-B365-A1DF1EB32E42}.Debug|Win32.ActiveCfg = Debug|Any CPU
{0991423A-DBF6-4C89-B365-A1DF1EB32E42}.Debug|x86.Build.0 = Debug|Any CPU
{0991423A-DBF6-4C89-B365-A1DF1EB32E42}.Debug|x86.ActiveCfg = Debug|Any CPU
{0991423A-DBF6-4C89-B365-A1DF1EB32E42}.Release|Win32.Build.0 = Release|Any CPU
{0991423A-DBF6-4C89-B365-A1DF1EB32E42}.Release|Win32.ActiveCfg = Release|Any CPU
{0991423A-DBF6-4C89-B365-A1DF1EB32E42}.Release|x86.Build.0 = Release|Any CPU
{0991423A-DBF6-4C89-B365-A1DF1EB32E42}.Release|x86.ActiveCfg = Release|Any CPU
{A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Debug|Win32.Build.0 = Debug|Any CPU
{A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Debug|Win32.ActiveCfg = Debug|Any CPU
{A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Debug|x86.Build.0 = Debug|Any CPU
{A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Debug|x86.ActiveCfg = Debug|Any CPU
{A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Release|Win32.Build.0 = Release|Any CPU
{A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Release|Win32.ActiveCfg = Release|Any CPU
{A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Release|x86.Build.0 = Release|Any CPU
{A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Release|x86.ActiveCfg = Release|Any CPU
{B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Debug|Win32.Build.0 = Debug|Any CPU
{B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Debug|Win32.ActiveCfg = Debug|Any CPU
{B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Debug|x86.Build.0 = Debug|Any CPU
{B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Debug|x86.ActiveCfg = Debug|Any CPU
{B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Release|Win32.Build.0 = Release|Any CPU
{B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Release|Win32.ActiveCfg = Release|Any CPU
{B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Release|x86.Build.0 = Release|Any CPU
{B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Release|x86.ActiveCfg = Release|Any CPU
{BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Debug|Win32.Build.0 = Debug|Any CPU
{BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Debug|Win32.ActiveCfg = Debug|Any CPU
{BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Debug|x86.Build.0 = Debug|Any CPU
{BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Debug|x86.ActiveCfg = Debug|Any CPU
{BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Release|Win32.Build.0 = Release|Any CPU
{BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Release|Win32.ActiveCfg = Release|Any CPU
{BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Release|x86.Build.0 = Release|Any CPU
{BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Release|x86.ActiveCfg = Release|Any CPU
{5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Debug|Win32.Build.0 = Debug|Any CPU
{5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Debug|Win32.ActiveCfg = Debug|Any CPU
{5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Debug|x86.Build.0 = Debug|Any CPU
{5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Debug|x86.ActiveCfg = Debug|Any CPU
{5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Release|Win32.Build.0 = Release|Any CPU
{5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Release|Win32.ActiveCfg = Release|Any CPU
{5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Release|x86.Build.0 = Release|Any CPU
{5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Release|x86.ActiveCfg = Release|Any CPU
{EEF5E054-4192-4A57-8FBF-E860D808A51D}.Debug|Win32.Build.0 = Debug|Any CPU
{EEF5E054-4192-4A57-8FBF-E860D808A51D}.Debug|Win32.ActiveCfg = Debug|Any CPU
{EEF5E054-4192-4A57-8FBF-E860D808A51D}.Debug|x86.Build.0 = Debug|Any CPU
{EEF5E054-4192-4A57-8FBF-E860D808A51D}.Debug|x86.ActiveCfg = Debug|Any CPU
{EEF5E054-4192-4A57-8FBF-E860D808A51D}.Release|Win32.Build.0 = Release|Any CPU
{EEF5E054-4192-4A57-8FBF-E860D808A51D}.Release|Win32.ActiveCfg = Release|Any CPU
{EEF5E054-4192-4A57-8FBF-E860D808A51D}.Release|x86.Build.0 = Release|Any CPU
{EEF5E054-4192-4A57-8FBF-E860D808A51D}.Release|x86.ActiveCfg = Release|Any CPU
{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Debug|Win32.Build.0 = Debug|Any CPU
{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Debug|Win32.ActiveCfg = Debug|Any CPU
{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Debug|x86.Build.0 = Debug|Any CPU
{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Debug|x86.ActiveCfg = Debug|Any CPU
{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Release|Win32.Build.0 = Release|Any CPU
{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Release|Win32.ActiveCfg = Release|Any CPU
{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Release|x86.Build.0 = Release|Any CPU
{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Release|x86.ActiveCfg = Release|Any CPU
{0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Debug|Win32.Build.0 = Debug|Any CPU
{0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Debug|Win32.ActiveCfg = Debug|Any CPU
{0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Debug|x86.Build.0 = Debug|Any CPU
{0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Debug|x86.ActiveCfg = Debug|Any CPU
{0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Release|Win32.Build.0 = Release|Any CPU
{0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Release|Win32.ActiveCfg = Release|Any CPU
{0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Release|x86.Build.0 = Release|Any CPU
{0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Release|x86.ActiveCfg = Release|Any CPU
{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Debug|Win32.Build.0 = Debug|Any CPU
{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Debug|Win32.ActiveCfg = Debug|Any CPU
{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Debug|x86.Build.0 = Debug|Any CPU
{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Debug|x86.ActiveCfg = Debug|Any CPU
{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Release|Win32.Build.0 = Release|Any CPU
{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Release|Win32.ActiveCfg = Release|Any CPU
{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Release|x86.Build.0 = Release|Any CPU
{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Release|x86.ActiveCfg = Release|Any CPU
{461606BD-E824-4D0A-8CBA-01810B1F5E02}.Debug|Win32.Build.0 = Debug|Any CPU
{461606BD-E824-4D0A-8CBA-01810B1F5E02}.Debug|Win32.ActiveCfg = Debug|Any CPU
{461606BD-E824-4D0A-8CBA-01810B1F5E02}.Debug|x86.Build.0 = Debug|Any CPU
{461606BD-E824-4D0A-8CBA-01810B1F5E02}.Debug|x86.ActiveCfg = Debug|Any CPU
{461606BD-E824-4D0A-8CBA-01810B1F5E02}.Release|Win32.Build.0 = Release|Any CPU
{461606BD-E824-4D0A-8CBA-01810B1F5E02}.Release|Win32.ActiveCfg = Release|Any CPU
{461606BD-E824-4D0A-8CBA-01810B1F5E02}.Release|x86.Build.0 = Release|Any CPU
{461606BD-E824-4D0A-8CBA-01810B1F5E02}.Release|x86.ActiveCfg = Release|Any CPU
{64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Debug|Win32.Build.0 = Debug|Any CPU
{64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Debug|Win32.ActiveCfg = Debug|Any CPU
{64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Debug|x86.Build.0 = Debug|Any CPU
{64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Debug|x86.ActiveCfg = Debug|Any CPU
{64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Release|Win32.Build.0 = Release|Any CPU
{64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Release|Win32.ActiveCfg = Release|Any CPU
{64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Release|x86.Build.0 = Release|Any CPU
{64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Release|x86.ActiveCfg = Release|Any CPU
{5EEB99CF-EA2B-4733-80A6-CE9192D68170}.Debug|Win32.Build.0 = Debug|Any CPU
{5EEB99CF-EA2B-4733-80A6-CE9192D68170}.Debug|Win32.ActiveCfg = Debug|Any CPU
{5EEB99CF-EA2B-4733-80A6-CE9192D68170}.Debug|x86.Build.0 = Debug|Any CPU
{5EEB99CF-EA2B-4733-80A6-CE9192D68170}.Debug|x86.ActiveCfg = Debug|Any CPU
{5EEB99CF-EA2B-4733-80A6-CE9192D68170}.Release|Win32.Build.0 = Release|Any CPU
{5EEB99CF-EA2B-4733-80A6-CE9192D68170}.Release|Win32.ActiveCfg = Release|Any CPU
{5EEB99CF-EA2B-4733-80A6-CE9192D68170}.Release|x86.Build.0 = Release|Any CPU
{5EEB99CF-EA2B-4733-80A6-CE9192D68170}.Release|x86.ActiveCfg = Release|Any CPU
{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Debug|Win32.Build.0 = Debug|Any CPU
{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Debug|Win32.ActiveCfg = Debug|Any CPU
{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Debug|x86.Build.0 = Debug|Any CPU
{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Debug|x86.ActiveCfg = Debug|Any CPU
{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Release|Win32.Build.0 = Release|Any CPU
{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Release|Win32.ActiveCfg = Release|Any CPU
{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Release|x86.Build.0 = Release|Any CPU
{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Release|x86.ActiveCfg = Release|Any CPU
{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Debug|Win32.Build.0 = Debug|Any CPU
{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Debug|Win32.ActiveCfg = Debug|Any CPU
{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Debug|x86.Build.0 = Debug|Any CPU
{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Debug|x86.ActiveCfg = Debug|Any CPU
{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Release|Win32.Build.0 = Release|Any CPU
{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Release|Win32.ActiveCfg = Release|Any CPU
{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Release|x86.Build.0 = Release|Any CPU
{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Release|x86.ActiveCfg = Release|Any CPU
{F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Debug|Win32.Build.0 = Debug|Any CPU
{F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Debug|Win32.ActiveCfg = Debug|Any CPU
{F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Debug|x86.Build.0 = Debug|Any CPU
{F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Debug|x86.ActiveCfg = Debug|Any CPU
{F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Release|Win32.Build.0 = Release|Any CPU
{F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Release|Win32.ActiveCfg = Release|Any CPU
{F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Release|x86.Build.0 = Release|Any CPU
{F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Release|x86.ActiveCfg = Release|Any CPU
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Debug|Win32.Build.0 = Debug|Any CPU
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Debug|Win32.ActiveCfg = Debug|Any CPU
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Debug|x86.Build.0 = Debug|Any CPU
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Debug|x86.ActiveCfg = Debug|Any CPU
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Release|Win32.Build.0 = Release|Any CPU
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Release|Win32.ActiveCfg = Release|Any CPU
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Release|x86.Build.0 = Release|Any CPU
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Release|x86.ActiveCfg = Release|Any CPU
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Debug|Win32.Build.0 = Debug|Any CPU
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Debug|Win32.ActiveCfg = Debug|Any CPU
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Debug|x86.Build.0 = Debug|Any CPU
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Debug|x86.ActiveCfg = Debug|Any CPU
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Release|Win32.Build.0 = Release|Any CPU
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Release|Win32.ActiveCfg = Release|Any CPU
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Release|x86.Build.0 = Release|Any CPU
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Release|x86.ActiveCfg = Release|Any CPU
{3CA90546-3B4C-4663-9445-C4E9371750A7}.Debug|x86.Build.0 = Debug|Any CPU
{3CA90546-3B4C-4663-9445-C4E9371750A7}.Debug|x86.ActiveCfg = Debug|Any CPU
{3CA90546-3B4C-4663-9445-C4E9371750A7}.Release|x86.Build.0 = Release|Any CPU
{3CA90546-3B4C-4663-9445-C4E9371750A7}.Release|x86.ActiveCfg = Release|Any CPU
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Debug|Win32.Build.0 = Debug|Any CPU
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Debug|Win32.ActiveCfg = Debug|Any CPU
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Debug|x86.Build.0 = Debug|Any CPU
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Debug|x86.ActiveCfg = Debug|Any CPU
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Release|Win32.Build.0 = Release|Any CPU
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Release|Win32.ActiveCfg = Release|Any CPU
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Release|x86.Build.0 = Release|Any CPU
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Release|x86.ActiveCfg = Release|Any CPU
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|Win32.Build.0 = Debug|Any CPU
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|Win32.ActiveCfg = Debug|Any CPU
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|x86.Build.0 = Debug|Any CPU
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|x86.ActiveCfg = Debug|Any CPU
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Release|Win32.Build.0 = Release|Any CPU
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Release|Win32.ActiveCfg = Release|Any CPU
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Release|x86.Build.0 = Release|Any CPU
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Release|x86.ActiveCfg = Release|Any CPU
{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Debug|Win32.Build.0 = Debug|Any CPU
{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Debug|Win32.ActiveCfg = Debug|Any CPU
{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Debug|x86.Build.0 = Debug|Any CPU
{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Debug|x86.ActiveCfg = Debug|Any CPU
{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Release|Win32.Build.0 = Release|Any CPU
{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Release|Win32.ActiveCfg = Release|Any CPU
{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Release|x86.Build.0 = Release|Any CPU
{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Release|x86.ActiveCfg = Release|Any CPU
{BF38FB72-B380-4196-AF8C-95749D726C61}.Debug|Win32.Build.0 = Debug|Any CPU
{BF38FB72-B380-4196-AF8C-95749D726C61}.Debug|Win32.ActiveCfg = Debug|Any CPU
{BF38FB72-B380-4196-AF8C-95749D726C61}.Debug|x86.Build.0 = Debug|Any CPU
{BF38FB72-B380-4196-AF8C-95749D726C61}.Debug|x86.ActiveCfg = Debug|Any CPU
{BF38FB72-B380-4196-AF8C-95749D726C61}.Release|Win32.Build.0 = Release|Any CPU
{BF38FB72-B380-4196-AF8C-95749D726C61}.Release|Win32.ActiveCfg = Release|Any CPU
{BF38FB72-B380-4196-AF8C-95749D726C61}.Release|x86.Build.0 = Release|Any CPU
{BF38FB72-B380-4196-AF8C-95749D726C61}.Release|x86.ActiveCfg = Release|Any CPU
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Debug|Win32.Build.0 = Debug|Any CPU
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Debug|Win32.ActiveCfg = Debug|Any CPU
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Debug|x86.Build.0 = Debug|Any CPU
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Debug|x86.ActiveCfg = Debug|Any CPU
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Release|Win32.Build.0 = Release|Any CPU
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Release|Win32.ActiveCfg = Release|Any CPU
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Release|x86.Build.0 = Release|Any CPU
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Release|x86.ActiveCfg = Release|Any CPU
{E1B288A2-08EE-4318-8BBB-8AB72C69E33E}.Debug|Win32.Build.0 = Debug|Any CPU
{E1B288A2-08EE-4318-8BBB-8AB72C69E33E}.Debug|Win32.ActiveCfg = Debug|Any CPU
{E1B288A2-08EE-4318-8BBB-8AB72C69E33E}.Debug|x86.Build.0 = Debug|Any CPU
{E1B288A2-08EE-4318-8BBB-8AB72C69E33E}.Debug|x86.ActiveCfg = Debug|Any CPU
{E1B288A2-08EE-4318-8BBB-8AB72C69E33E}.Release|Win32.Build.0 = Release|Any CPU
{E1B288A2-08EE-4318-8BBB-8AB72C69E33E}.Release|Win32.ActiveCfg = Release|Any CPU
{E1B288A2-08EE-4318-8BBB-8AB72C69E33E}.Release|x86.Build.0 = Release|Any CPU
{E1B288A2-08EE-4318-8BBB-8AB72C69E33E}.Release|x86.ActiveCfg = Release|Any CPU
{8D732610-8FC6-43BA-94C9-7126FD7FE361}.Debug|Win32.Build.0 = Debug|Any CPU
{8D732610-8FC6-43BA-94C9-7126FD7FE361}.Debug|Win32.ActiveCfg = Debug|Any CPU
{8D732610-8FC6-43BA-94C9-7126FD7FE361}.Debug|x86.Build.0 = Debug|Any CPU
{8D732610-8FC6-43BA-94C9-7126FD7FE361}.Debug|x86.ActiveCfg = Debug|Any CPU
{8D732610-8FC6-43BA-94C9-7126FD7FE361}.Release|Win32.Build.0 = Release|Any CPU
{8D732610-8FC6-43BA-94C9-7126FD7FE361}.Release|Win32.ActiveCfg = Release|Any CPU
{8D732610-8FC6-43BA-94C9-7126FD7FE361}.Release|x86.Build.0 = Release|Any CPU
{8D732610-8FC6-43BA-94C9-7126FD7FE361}.Release|x86.ActiveCfg = Release|Any CPU
{D332F2D1-2CF1-43B7-903C-844BD5211A7E}.Debug|Win32.Build.0 = Debug|Any CPU
{D332F2D1-2CF1-43B7-903C-844BD5211A7E}.Debug|Win32.ActiveCfg = Debug|Any CPU
{D332F2D1-2CF1-43B7-903C-844BD5211A7E}.Debug|x86.Build.0 = Debug|Any CPU
{D332F2D1-2CF1-43B7-903C-844BD5211A7E}.Debug|x86.ActiveCfg = Debug|Any CPU
{D332F2D1-2CF1-43B7-903C-844BD5211A7E}.Release|Win32.Build.0 = Release|Any CPU
{D332F2D1-2CF1-43B7-903C-844BD5211A7E}.Release|Win32.ActiveCfg = Release|Any CPU
{D332F2D1-2CF1-43B7-903C-844BD5211A7E}.Release|x86.Build.0 = Release|Any CPU
{D332F2D1-2CF1-43B7-903C-844BD5211A7E}.Release|x86.ActiveCfg = Release|Any CPU
{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}.Debug|Win32.Build.0 = Debug|Any CPU
{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}.Debug|Win32.ActiveCfg = Debug|Any CPU
{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}.Debug|x86.Build.0 = Debug|Any CPU
{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}.Debug|x86.ActiveCfg = Debug|Any CPU
{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}.Release|Win32.Build.0 = Release|Any CPU
{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}.Release|Win32.ActiveCfg = Release|Any CPU
{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}.Release|x86.Build.0 = Release|Any CPU
{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}.Release|x86.ActiveCfg = Release|Any CPU
{4AC2D5F1-F671-480C-A075-6BF62B3721B2}.Debug|Win32.Build.0 = Debug|Any CPU
{4AC2D5F1-F671-480C-A075-6BF62B3721B2}.Debug|Win32.ActiveCfg = Debug|Any CPU
{4AC2D5F1-F671-480C-A075-6BF62B3721B2}.Debug|x86.Build.0 = Debug|Any CPU
{4AC2D5F1-F671-480C-A075-6BF62B3721B2}.Debug|x86.ActiveCfg = Debug|Any CPU
{4AC2D5F1-F671-480C-A075-6BF62B3721B2}.Release|Win32.Build.0 = Release|Any CPU
{4AC2D5F1-F671-480C-A075-6BF62B3721B2}.Release|Win32.ActiveCfg = Release|Any CPU
{4AC2D5F1-F671-480C-A075-6BF62B3721B2}.Release|x86.Build.0 = Release|Any CPU
{4AC2D5F1-F671-480C-A075-6BF62B3721B2}.Release|x86.ActiveCfg = Release|Any CPU
{70966F84-74C9-4067-A379-0C674A929233}.Debug|Win32.Build.0 = Debug|Any CPU
{70966F84-74C9-4067-A379-0C674A929233}.Debug|Win32.ActiveCfg = Debug|Any CPU
{70966F84-74C9-4067-A379-0C674A929233}.Debug|x86.Build.0 = Debug|Any CPU
{70966F84-74C9-4067-A379-0C674A929233}.Debug|x86.ActiveCfg = Debug|Any CPU
{70966F84-74C9-4067-A379-0C674A929233}.Release|Win32.Build.0 = Release|Any CPU
{70966F84-74C9-4067-A379-0C674A929233}.Release|Win32.ActiveCfg = Release|Any CPU
{70966F84-74C9-4067-A379-0C674A929233}.Release|x86.Build.0 = Release|Any CPU
{70966F84-74C9-4067-A379-0C674A929233}.Release|x86.ActiveCfg = Release|Any CPU
{FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}.Debug|Win32.Build.0 = Debug|Any CPU
{FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}.Debug|Win32.ActiveCfg = Debug|Any CPU
{FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}.Debug|x86.Build.0 = Debug|Any CPU
{FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}.Debug|x86.ActiveCfg = Debug|Any CPU
{FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}.Release|Win32.Build.0 = Release|Any CPU
{FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}.Release|Win32.ActiveCfg = Release|Any CPU
{FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}.Release|x86.Build.0 = Release|Any CPU
{FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}.Release|x86.ActiveCfg = Release|Any CPU
{72FFB35A-C9E2-4A31-B4FA-E3E3E28DED5F}.Debug|Win32.Build.0 = Debug|Any CPU
{72FFB35A-C9E2-4A31-B4FA-E3E3E28DED5F}.Debug|Win32.ActiveCfg = Debug|Any CPU
{72FFB35A-C9E2-4A31-B4FA-E3E3E28DED5F}.Debug|x86.Build.0 = Debug|Any CPU
{72FFB35A-C9E2-4A31-B4FA-E3E3E28DED5F}.Debug|x86.ActiveCfg = Debug|Any CPU
{72FFB35A-C9E2-4A31-B4FA-E3E3E28DED5F}.Release|Win32.Build.0 = Release|Any CPU
{72FFB35A-C9E2-4A31-B4FA-E3E3E28DED5F}.Release|Win32.ActiveCfg = Release|Any CPU
{72FFB35A-C9E2-4A31-B4FA-E3E3E28DED5F}.Release|x86.Build.0 = Release|Any CPU
{72FFB35A-C9E2-4A31-B4FA-E3E3E28DED5F}.Release|x86.ActiveCfg = Release|Any CPU
{BDA49550-5ED1-4C6B-B648-657B2CACD8E0}.Debug|Win32.Build.0 = Debug|Any CPU
{BDA49550-5ED1-4C6B-B648-657B2CACD8E0}.Debug|Win32.ActiveCfg = Debug|Any CPU
{BDA49550-5ED1-4C6B-B648-657B2CACD8E0}.Debug|x86.Build.0 = Debug|Any CPU
{BDA49550-5ED1-4C6B-B648-657B2CACD8E0}.Debug|x86.ActiveCfg = Debug|Any CPU
{BDA49550-5ED1-4C6B-B648-657B2CACD8E0}.Release|Win32.Build.0 = Release|Any CPU
{BDA49550-5ED1-4C6B-B648-657B2CACD8E0}.Release|Win32.ActiveCfg = Release|Any CPU
{BDA49550-5ED1-4C6B-B648-657B2CACD8E0}.Release|x86.Build.0 = Release|Any CPU
{BDA49550-5ED1-4C6B-B648-657B2CACD8E0}.Release|x86.ActiveCfg = Release|Any CPU
{D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}.Debug|Win32.Build.0 = Debug|Any CPU
{D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}.Debug|Win32.ActiveCfg = Debug|Any CPU
{D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}.Debug|x86.Build.0 = Debug|Any CPU
{D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}.Debug|x86.ActiveCfg = Debug|Any CPU
{D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}.Release|Win32.Build.0 = Release|Any CPU
{D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}.Release|Win32.ActiveCfg = Release|Any CPU
{D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}.Release|x86.Build.0 = Release|Any CPU
{D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}.Release|x86.ActiveCfg = Release|Any CPU
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|Win32.Build.0 = Debug|Any CPU
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|Win32.ActiveCfg = Debug|Any CPU
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|x86.Build.0 = Debug|Any CPU
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|x86.ActiveCfg = Debug|Any CPU
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|Win32.Build.0 = Release|Any CPU
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|Win32.ActiveCfg = Release|Any CPU
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|x86.Build.0 = Release|Any CPU
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|x86.ActiveCfg = Release|Any CPU
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Debug|Win32.Build.0 = Debug|Any CPU
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Debug|Win32.ActiveCfg = Debug|Any CPU
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Debug|x86.Build.0 = Debug|Any CPU
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Debug|x86.ActiveCfg = Debug|Any CPU
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Release|Win32.Build.0 = Release|Any CPU
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Release|Win32.ActiveCfg = Release|Any CPU
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Release|x86.Build.0 = Release|Any CPU
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Release|x86.ActiveCfg = Release|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Win32.Build.0 = Debug|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Win32.ActiveCfg = Debug|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.Build.0 = Debug|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.ActiveCfg = Debug|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Win32.Build.0 = Release|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Win32.ActiveCfg = Release|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.Build.0 = Release|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.ActiveCfg = Release|Any CPU
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Debug|Win32.Build.0 = Debug|Any CPU
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Debug|Win32.ActiveCfg = Debug|Any CPU
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Debug|x86.Build.0 = Debug|Any CPU
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Debug|x86.ActiveCfg = Debug|Any CPU
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Release|Win32.Build.0 = Release|Any CPU
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Release|Win32.ActiveCfg = Release|Any CPU
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Release|x86.Build.0 = Release|Any CPU
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Release|x86.ActiveCfg = Release|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Debug|Win32.Build.0 = Debug|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Debug|Win32.ActiveCfg = Debug|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Debug|x86.Build.0 = Debug|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Debug|x86.ActiveCfg = Debug|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Release|Win32.Build.0 = Release|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Release|Win32.ActiveCfg = Release|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Release|x86.Build.0 = Release|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Release|x86.ActiveCfg = Release|Any CPU
{B22522AA-B5BF-4A58-AC6D-D4B45805521F}.Debug|Win32.Build.0 = Debug|Any CPU
{B22522AA-B5BF-4A58-AC6D-D4B45805521F}.Debug|Win32.ActiveCfg = Debug|Any CPU
{B22522AA-B5BF-4A58-AC6D-D4B45805521F}.Debug|x86.Build.0 = Debug|Any CPU
{B22522AA-B5BF-4A58-AC6D-D4B45805521F}.Debug|x86.ActiveCfg = Debug|Any CPU
{B22522AA-B5BF-4A58-AC6D-D4B45805521F}.Release|Win32.Build.0 = Release|Any CPU
{B22522AA-B5BF-4A58-AC6D-D4B45805521F}.Release|Win32.ActiveCfg = Release|Any CPU
{B22522AA-B5BF-4A58-AC6D-D4B45805521F}.Release|x86.Build.0 = Release|Any CPU
{B22522AA-B5BF-4A58-AC6D-D4B45805521F}.Release|x86.ActiveCfg = Release|Any CPU
{1152B71B-3C05-4598-B20D-823B5D40559E}.Debug|Win32.Build.0 = Debug|Any CPU
{1152B71B-3C05-4598-B20D-823B5D40559E}.Debug|Win32.ActiveCfg = Debug|Any CPU
{1152B71B-3C05-4598-B20D-823B5D40559E}.Debug|x86.Build.0 = Debug|Any CPU
{1152B71B-3C05-4598-B20D-823B5D40559E}.Debug|x86.ActiveCfg = Debug|Any CPU
{1152B71B-3C05-4598-B20D-823B5D40559E}.Release|Win32.Build.0 = Release|Any CPU
{1152B71B-3C05-4598-B20D-823B5D40559E}.Release|Win32.ActiveCfg = Release|Any CPU
{1152B71B-3C05-4598-B20D-823B5D40559E}.Release|x86.Build.0 = Release|Any CPU
{1152B71B-3C05-4598-B20D-823B5D40559E}.Release|x86.ActiveCfg = Release|Any CPU
{8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|Win32.Build.0 = Debug|Any CPU
{8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|Win32.ActiveCfg = Debug|Any CPU
{8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|x86.Build.0 = Debug|Any CPU
{8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|x86.ActiveCfg = Debug|Any CPU
{8035765F-D51F-4A0C-A746-2FD100E19419}.Release|Win32.Build.0 = Release|Any CPU
{8035765F-D51F-4A0C-A746-2FD100E19419}.Release|Win32.ActiveCfg = Release|Any CPU
{8035765F-D51F-4A0C-A746-2FD100E19419}.Release|x86.Build.0 = Release|Any CPU
{8035765F-D51F-4A0C-A746-2FD100E19419}.Release|x86.ActiveCfg = Release|Any CPU
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|Win32.Build.0 = Debug|Any CPU
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|Win32.ActiveCfg = Debug|Any CPU
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|x86.Build.0 = Debug|Any CPU
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|x86.ActiveCfg = Debug|Any CPU
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|Win32.Build.0 = Release|Any CPU
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|Win32.ActiveCfg = Release|Any CPU
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|x86.Build.0 = Release|Any CPU
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|x86.ActiveCfg = Release|Any CPU
{80318B5F-A25D-45AB-8A95-EF31D2370A4C}.Debug|Win32.Build.0 = Debug|Any CPU
{80318B5F-A25D-45AB-8A95-EF31D2370A4C}.Debug|Win32.ActiveCfg = Debug|Any CPU
{80318B5F-A25D-45AB-8A95-EF31D2370A4C}.Debug|x86.Build.0 = Debug|Any CPU
{80318B5F-A25D-45AB-8A95-EF31D2370A4C}.Debug|x86.ActiveCfg = Debug|Any CPU
{80318B5F-A25D-45AB-8A95-EF31D2370A4C}.Release|Win32.Build.0 = Release|Any CPU
{80318B5F-A25D-45AB-8A95-EF31D2370A4C}.Release|Win32.ActiveCfg = Release|Any CPU
{80318B5F-A25D-45AB-8A95-EF31D2370A4C}.Release|x86.Build.0 = Release|Any CPU
{80318B5F-A25D-45AB-8A95-EF31D2370A4C}.Release|x86.ActiveCfg = Release|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|Win32.Build.0 = Debug|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|Win32.ActiveCfg = Debug|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|x86.Build.0 = Debug|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|x86.ActiveCfg = Debug|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|Win32.Build.0 = Release|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|Win32.ActiveCfg = Release|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|x86.Build.0 = Release|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|x86.ActiveCfg = Release|Any CPU
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|Win32.Build.0 = Debug|Any CPU
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|Win32.ActiveCfg = Debug|Any CPU
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|x86.Build.0 = Debug|Any CPU
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|x86.ActiveCfg = Debug|Any CPU
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|Win32.Build.0 = Release|Any CPU
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|Win32.ActiveCfg = Release|Any CPU
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|x86.Build.0 = Release|Any CPU
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|x86.ActiveCfg = Release|Any CPU
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|Win32.Build.0 = Debug|Any CPU
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|Win32.ActiveCfg = Debug|Any CPU
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|x86.Build.0 = Debug|Any CPU
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|x86.ActiveCfg = Debug|Any CPU
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|Win32.Build.0 = Release|Any CPU
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|Win32.ActiveCfg = Release|Any CPU
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|x86.Build.0 = Release|Any CPU
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|x86.ActiveCfg = Release|Any CPU
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Win32.Build.0 = Debug|Any CPU
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Win32.ActiveCfg = Debug|Any CPU
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|x86.Build.0 = Debug|Any CPU
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|x86.ActiveCfg = Debug|Any CPU
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Win32.Build.0 = Release|Any CPU
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Win32.ActiveCfg = Release|Any CPU
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|x86.Build.0 = Release|Any CPU
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|x86.ActiveCfg = Release|Any CPU
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Debug|Win32.Build.0 = Debug|Any CPU
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Debug|Win32.ActiveCfg = Debug|Any CPU
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Debug|x86.Build.0 = Debug|Any CPU
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Debug|x86.ActiveCfg = Debug|Any CPU
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|Win32.Build.0 = Debug|Any CPU
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|Win32.ActiveCfg = Debug|Any CPU
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|x86.Build.0 = Debug|Any CPU
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|x86.ActiveCfg = Debug|Any CPU
{4980B743-B32F-4aba-AABD-45E2CAD3568D}.Debug|Win32.Build.0 = Debug|Any CPU
{4980B743-B32F-4aba-AABD-45E2CAD3568D}.Debug|Win32.ActiveCfg = Debug|Any CPU
{4980B743-B32F-4aba-AABD-45E2CAD3568D}.Debug|x86.Build.0 = Debug|Any CPU
{4980B743-B32F-4aba-AABD-45E2CAD3568D}.Debug|x86.ActiveCfg = Debug|Any CPU
{4980B743-B32F-4aba-AABD-45E2CAD3568D}.Release|Win32.Build.0 = Debug|Any CPU
{4980B743-B32F-4aba-AABD-45E2CAD3568D}.Release|Win32.ActiveCfg = Debug|Any CPU
{4980B743-B32F-4aba-AABD-45E2CAD3568D}.Release|x86.Build.0 = Debug|Any CPU
{4980B743-B32F-4aba-AABD-45E2CAD3568D}.Release|x86.ActiveCfg = Debug|Any CPU
{7DB80259-24D4-46C3-A024-53FF1987733D}.Debug|Win32.Build.0 = Debug|Any CPU
{7DB80259-24D4-46C3-A024-53FF1987733D}.Debug|Win32.ActiveCfg = Debug|Any CPU
{7DB80259-24D4-46C3-A024-53FF1987733D}.Debug|x86.Build.0 = Debug|Any CPU
{7DB80259-24D4-46C3-A024-53FF1987733D}.Debug|x86.ActiveCfg = Debug|Any CPU
{7DB80259-24D4-46C3-A024-53FF1987733D}.Release|Win32.Build.0 = Release|Any CPU
{7DB80259-24D4-46C3-A024-53FF1987733D}.Release|Win32.ActiveCfg = Release|Any CPU
{7DB80259-24D4-46C3-A024-53FF1987733D}.Release|x86.Build.0 = Release|Any CPU
{7DB80259-24D4-46C3-A024-53FF1987733D}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

38
data/resources/StringResources.de.resx

@ -1498,6 +1498,12 @@ Beispiele: "120", "MainClass", "Main.cs, 120".</value> @@ -1498,6 +1498,12 @@ Beispiele: "120", "MainClass", "Main.cs, 120".</value>
<data name="Dialog.HighlightingEditor.ColorDlg.Italic" xml:space="preserve">
<value>Kursiv</value>
</data>
<data name="Dialog.HighlightingEditor.Export" xml:space="preserve">
<value>Hervorhebungsfarben exportieren</value>
</data>
<data name="Dialog.HighlightingEditor.Import" xml:space="preserve">
<value>Hervorhebungsfarben importieren</value>
</data>
<data name="Dialog.HighlightingEditor.Properties.Value" xml:space="preserve">
<value>Wert</value>
</data>
@ -2181,11 +2187,14 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value> @@ -2181,11 +2187,14 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value>
<value>Deaktiviert</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.MarkersGroupBox" xml:space="preserve">
<value>Markierungen und Liniale</value>
<value>Markierungen</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.PanelName" xml:space="preserve">
<value>Markierungen und Liniale</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.RulersGroupBox" xml:space="preserve">
<value>Lineale</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.ShowHiddenDefinitionsCheckBox" xml:space="preserve">
<value>Verdeckte Definitionen anzeigen (nur geschweifte Klammern)</value>
</data>
@ -4033,6 +4042,12 @@ Grund: Der Wert zu dem zurückgesetzt werden soll ist ungültig weil sich eine a @@ -4033,6 +4042,12 @@ Grund: Der Wert zu dem zurückgesetzt werden soll ist ungültig weil sich eine a
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.PublicKeyToken.Description" xml:space="preserve">
<value>Das öffentliche Schlüsseltoken der Assembly</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.ReferenceOutputAssembly" xml:space="preserve">
<value>Assembly referenzieren</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.ReferenceOutputAssembly.Description" xml:space="preserve">
<value>Wenn auf false gesetzt, gibt diese Referenz nur eine Build-Reihenfolgenabhängigkeit an und fügt keine Assembly-Referenz zum Projekt hinzu.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.SpecificVersion" xml:space="preserve">
<value>Festgelegte Version</value>
</data>
@ -4979,6 +4994,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4979,6 +4994,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.LocalVariables.CopyToClipboard" xml:space="preserve">
<value>Kopiere Wert in Zwischenablage</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.NameColumn" xml:space="preserve">
<value>Name</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.NonPublicMembers" xml:space="preserve">
<value>Nicht-öffentliche Mitglieder</value>
</data>
@ -5000,6 +5018,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5000,6 +5018,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.LocalVariables.StaticMembers" xml:space="preserve">
<value>Statische Mitglieder</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.TypeColumn" xml:space="preserve">
<value>Typ</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.ValueColumn" xml:space="preserve">
<value>Wert</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad" xml:space="preserve">
<value>Speicher</value>
</data>
@ -5375,6 +5399,15 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5375,6 +5399,15 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="OpenFileTabEventHandler.FileContainingFolderInExplorer" xml:space="preserve">
<value>Öffne beinhaltenden Ordner im Explorer</value>
</data>
<data name="OpenFileTabEventHandler.OpenCommandPromptHere" xml:space="preserve">
<value>Kommandozeile hier öffnen</value>
</data>
<data name="PortableLibrary.ChooseTargetFrameworks" xml:space="preserve">
<value>Ziel-Frameworks wählen</value>
</data>
<data name="PortableLibrary.CouldNotFindTools" xml:space="preserve">
<value>Konnte die Portable Class Library Tools nicht finden.</value>
</data>
<data name="ProjectBrowser.Toolbar.CollapseAll" xml:space="preserve">
<value>Alle Knoten einklappen</value>
</data>
@ -5510,6 +5543,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5510,6 +5543,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ProjectComponent.ContextMenu.RunProject" xml:space="preserve">
<value>Projekt sta&amp;rten</value>
</data>
<data name="ProjectComponent.ContextMenu.RunProjectWithoutDebugger" xml:space="preserve">
<value>Projekt ohne Debugger starten</value>
</data>
<data name="ProjectComponent.ContextMenu.SetAsStartupProject" xml:space="preserve">
<value>Als St&amp;artprojekt festlegen</value>
</data>

57
data/resources/StringResources.fr.resx

@ -1862,6 +1862,9 @@ Voulez-vous ajouter le nouveau fichier au projet ${CurrentProjectName}?</value> @@ -1862,6 +1862,9 @@ Voulez-vous ajouter le nouveau fichier au projet ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping" xml:space="preserve">
<value>Pas-à-pas en cours</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping.DecompileCodeWithoutSymbols" xml:space="preserve">
<value>Décompiler le code sans symboles</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping.EnableJustMyCode" xml:space="preserve">
<value>Utiliser 'Seulement mon code' pour le pas-à-pas</value>
</data>
@ -3379,6 +3382,9 @@ Configurez le chemin vers NAnt dans les options de SharpDevelop.</value> @@ -3379,6 +3382,9 @@ Configurez le chemin vers NAnt dans les options de SharpDevelop.</value>
<data name="ICSharpCode.Refactoring.NoClassOrOverridableSymbolUnderCursorError" xml:space="preserve">
<value>L'élément sélectionné n'est ni une classe ni un membre surchargeable: aucun symbole dérivé n'est disponible.</value>
</data>
<data name="ICSharpCode.Refactoring.NoClassUnderCursorError" xml:space="preserve">
<value>Impossible de trouver la définition du type sous le curseur.</value>
</data>
<data name="ICSharpCode.RubyBinding.SendLineToRubyConsole" xml:space="preserve">
<value>Envoyer cette ligne vers la console Ruby</value>
</data>
@ -3774,6 +3780,9 @@ Toutes les modifications seront perdues.</value> @@ -3774,6 +3780,9 @@ Toutes les modifications seront perdues.</value>
<data name="ICSharpCode.SharpDevelop.FormDesigner.LoadErrorCheckSourceCodeForErrors" xml:space="preserve">
<value>Impossible de charger le concepteur. Vérifier les erreurs de syntaxe du code source et si toutes les références sont disponibles.</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.ReportFlushErrors" xml:space="preserve">
<value>Une ou plusieurs erreurs sont survenues en essayant de vider le contenu du concepteur. C'est peut-être une exception non gérée dans un composant tiers sur le formulaire ou le contrôle.</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.ToolboxProvider.CantLoadSidbarComponentLibraryWarning" xml:space="preserve">
<value>Ne peut charger la librairie contenant la barre de composants.
Les composants Windows Form ne seront pas accessibles, veuillez configurer manuellement la barre de composants (clic droit sur une catégorie de la barre de menu -&gt; Paramétrer la barre de menu).</value>
@ -3988,6 +3997,12 @@ Utilisez seulement des lettres, chiffres, espace, '.' ou '_'.</value> @@ -3988,6 +3997,12 @@ Utilisez seulement des lettres, chiffres, espace, '.' ou '_'.</value>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.Culture.Description" xml:space="preserve">
<value>La culture supportée par la référence</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.EmbedInteropTypes" xml:space="preserve">
<value>Embarquer les types interop</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.EmbedInteropTypes.Description" xml:space="preserve">
<value>Précise si les type d'interop COM définis dans l'assembly référencé sont embarqués dans l'assembly cible.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.LocalCopy" xml:space="preserve">
<value>Copie locale</value>
</data>
@ -4006,6 +4021,12 @@ Utilisez seulement des lettres, chiffres, espace, '.' ou '_'.</value> @@ -4006,6 +4021,12 @@ Utilisez seulement des lettres, chiffres, espace, '.' ou '_'.</value>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.PublicKeyToken.Description" xml:space="preserve">
<value>Le jeton de clé publique</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.ReferenceOutputAssembly" xml:space="preserve">
<value>Référencer l'assembly</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.ReferenceOutputAssembly.Description" xml:space="preserve">
<value>Si positionné à Faux, cette référence spécifie uniquement une dépendance dans l'ordre de la construction sans référencer l'assembly.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.SpecificVersion" xml:space="preserve">
<value>Version Spécifique</value>
</data>
@ -4051,6 +4072,9 @@ Utilisez seulement des lettres, chiffres, espace, '.' ou '_'.</value> @@ -4051,6 +4072,9 @@ Utilisez seulement des lettres, chiffres, espace, '.' ou '_'.</value>
<data name="ICSharpCode.SharpDevelop.LoadingFile" xml:space="preserve">
<value>Chargement de ${Filename}...</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.CloseSolution" xml:space="preserve">
<value>Fermer la solution</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.KeepOldSolution" xml:space="preserve">
<value>Laisser la solution précédente ouverte</value>
</data>
@ -4084,6 +4108,14 @@ Utilisez seulement des lettres, chiffres, espace, '.' ou '_'.</value> @@ -4084,6 +4108,14 @@ Utilisez seulement des lettres, chiffres, espace, '.' ou '_'.</value>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.Title" xml:space="preserve">
<value>Mettre à jour le projet</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpdateOnLoadDueToMissingMSBuild" xml:space="preserve">
<value>Le projet '${ProjectName}' cible MSBuild ${OldToolsVersion}, mais cette version n'est pas installée.
Voulez vous mettre à jour le projet vers MSBuild ${NewToolsVersion}?
Le projet ne sera pas ouvert sans cette mise à jour.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpdateToMSBuildButton" xml:space="preserve">
<value>Mettre à jour vers MSBuild ${NewToolsVersion}</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpgradeFromPreviousVersionDescription" xml:space="preserve">
<value>Cette solution a été créée par une précédente version de SharpDevelop.
La mettre à jour vous permet d'utiliser de nouveaux languages, ou les évolutions du framework.</value>
@ -4165,7 +4197,7 @@ Allez dans 'Outils/Options-&gt;Style Visuel pour changer l'ambiance actuelle.</v @@ -4165,7 +4197,7 @@ Allez dans 'Outils/Options-&gt;Style Visuel pour changer l'ambiance actuelle.</v
<value>Processus de travail {0} ASP.NET/IIS(Express) introuvable.</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.NoProjectUrlOrProgramAction" xml:space="preserve">
<value>Pas d'URL du projet spécifiée ou de programme externe. Vérifier le serveur web dans Propriétés du projet - Onglet debug.</value>
<value>Aucun programme externe ni URL spécifié. Vérifier le serveur web dans Propriétés du projet - onglet Web.</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.Port" xml:space="preserve">
<value>Port:</value>
@ -4783,7 +4815,7 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -4783,7 +4815,7 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<value>Vous ne pouvez pas changer pour une fonction sans symboles.</value>
</data>
<data name="MainWindow.Windows.Debug.CallStack.CannotSwitchWithoutSymbolsOrDecompiledCodeOptions" xml:space="preserve">
<value>Les options de décompilation du code doivent être activés pour aller vers une fonction sans symboles.</value>
<value>Impossible de basculer vers une méthode sans symboles de déboguage.Recompilez avec les symboles ou activer l'option de décompilation du code sans symboles.</value>
</data>
<data name="MainWindow.Windows.Debug.CallStack.ExternalMethods" xml:space="preserve">
<value>[Méthodes externes]</value>
@ -4941,6 +4973,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -4941,6 +4973,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="MainWindow.Windows.Debug.LocalVariables.CopyToClipboard" xml:space="preserve">
<value>Copier la valeur dans le presse-papier</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.NameColumn" xml:space="preserve">
<value>Nom</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.NonPublicMembers" xml:space="preserve">
<value>Membres non publics</value>
</data>
@ -4962,6 +4997,12 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -4962,6 +4997,12 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="MainWindow.Windows.Debug.LocalVariables.StaticMembers" xml:space="preserve">
<value>Membres statiques</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.TypeColumn" xml:space="preserve">
<value>Type</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.ValueColumn" xml:space="preserve">
<value>Valeur</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad" xml:space="preserve">
<value>Mémoire</value>
</data>
@ -5001,12 +5042,18 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5001,12 +5042,18 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="MainWindow.Windows.Debug.Modules.AddressColumn" xml:space="preserve">
<value>Adresse</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.DynamicModule" xml:space="preserve">
<value>(dynamique)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.HasNoSymbols" xml:space="preserve">
<value>Aucun symbole n'est chargé.</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.HasSymbols" xml:space="preserve">
<value>Symboles chargés.</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.InMemoryModule" xml:space="preserve">
<value>(en mémoire)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.OrderColumn" xml:space="preserve">
<value>Ordre</value>
</data>
@ -5331,6 +5378,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5331,6 +5378,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="OpenFileTabEventHandler.FileContainingFolderInExplorer" xml:space="preserve">
<value>Ouvrir le répertoire dans l'explorateur</value>
</data>
<data name="OpenFileTabEventHandler.OpenCommandPromptHere" xml:space="preserve">
<value>Ouvrir une invite de commande ici</value>
</data>
<data name="ProjectBrowser.Toolbar.CollapseAll" xml:space="preserve">
<value>Réduire tous les noeuds</value>
</data>
@ -5466,6 +5516,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5466,6 +5516,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="ProjectComponent.ContextMenu.RunProject" xml:space="preserve">
<value>Lance&amp;r projet</value>
</data>
<data name="ProjectComponent.ContextMenu.RunProjectWithoutDebugger" xml:space="preserve">
<value>Exécuter ce projet sans débogueur</value>
</data>
<data name="ProjectComponent.ContextMenu.SetAsStartupProject" xml:space="preserve">
<value>Définir comme projet de dém&amp;arrage</value>
</data>

37
data/resources/StringResources.it.resx

@ -1860,6 +1860,9 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value> @@ -1860,6 +1860,9 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping" xml:space="preserve">
<value>Stepping</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping.DecompileCodeWithoutSymbols" xml:space="preserve">
<value>Decompila codice senza simboli</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping.EnableJustMyCode" xml:space="preserve">
<value>Usa 'Just My Code' per debug passo-passo</value>
</data>
@ -3692,7 +3695,7 @@ ${File} @@ -3692,7 +3695,7 @@ ${File}
<value>Proprietà Griglia</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.GridOptionsPanel.HeightLabel" xml:space="preserve">
<value>A&amp;ltezza</value>
<value>&amp;Altezza</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.GridOptionsPanel.InPlaceEditCheckBox" xml:space="preserve">
<value>Abilita modifica in-linea dei ToolStrips</value>
@ -4011,6 +4014,9 @@ Sono ammesse solo lettere, numeri, spazi, '.' o '_'.</value> @@ -4011,6 +4014,9 @@ Sono ammesse solo lettere, numeri, spazi, '.' o '_'.</value>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.PublicKeyToken.Description" xml:space="preserve">
<value>Il token di chiave pubblica</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.ReferenceOutputAssembly" xml:space="preserve">
<value>Referenzia assembly</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.SpecificVersion" xml:space="preserve">
<value>Versione Specifica</value>
</data>
@ -4056,6 +4062,9 @@ Sono ammesse solo lettere, numeri, spazi, '.' o '_'.</value> @@ -4056,6 +4062,9 @@ Sono ammesse solo lettere, numeri, spazi, '.' o '_'.</value>
<data name="ICSharpCode.SharpDevelop.LoadingFile" xml:space="preserve">
<value>Caricamento ${Filename}...</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.CloseSolution" xml:space="preserve">
<value>Chiudi soluzione</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.KeepOldSolution" xml:space="preserve">
<value>Mantieni aperta la vecchia soluzione</value>
</data>
@ -4089,6 +4098,13 @@ Sono ammesse solo lettere, numeri, spazi, '.' o '_'.</value> @@ -4089,6 +4098,13 @@ Sono ammesse solo lettere, numeri, spazi, '.' o '_'.</value>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.Title" xml:space="preserve">
<value>Aggiorna Progetto</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpdateOnLoadDueToMissingMSBuild" xml:space="preserve">
<value>Il progetto '${ProjectName}' usa MSBuild ${OldToolsVersion}, ma questa versione non è installata.
Vuoi aggiornare il progetto a MSBuild ${NewToolsVersion}? Il progetto non può essere aperto senza essere aggiornato.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpdateToMSBuildButton" xml:space="preserve">
<value>Aggiorna a MSBuild ${NewToolsVersion}</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpgradeFromPreviousVersionDescription" xml:space="preserve">
<value>Questa soluzione è stata creata con una versione precedente di SharpDevelop. Potresti volerla aggiornare così da utilizzare le nuove funzionalità del linguaggio o del framework.</value>
</data>
@ -4169,7 +4185,7 @@ Vai a 'Opzioni-&gt;Stile visuale' e cambia l'attuale ambiente di linguaggio.</va @@ -4169,7 +4185,7 @@ Vai a 'Opzioni-&gt;Stile visuale' e cambia l'attuale ambiente di linguaggio.</va
<value>ASP.NET/IIS (Express) worker process ({0}) non trovato.</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.NoProjectUrlOrProgramAction" xml:space="preserve">
<value>Non è stato specificato nessun Url di Progetto o programma esterno. Controlla il web server su Proprietà Progetto - Debug.</value>
<value>Non è stato specificato nessun Url di Progetto o programma esterno. Controlla il web server sulla linguetta Proprietà Progetto - Web.</value>
</data>
<data name="ICSharpCode.WebProjectOptionsPanel.Port" xml:space="preserve">
<value>Porta server:</value>
@ -4788,7 +4804,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4788,7 +4804,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Non si può passare ad una funzione senza simboli di debug.</value>
</data>
<data name="MainWindow.Windows.Debug.CallStack.CannotSwitchWithoutSymbolsOrDecompiledCodeOptions" xml:space="preserve">
<value>Non puoi passare ad una funzione senza simboli senza attivare le opzioni di decompilazione del codice.</value>
<value>Non puoi passare ad una funzione senza simboli. Ricompila con i simboli o attiva "Decompila codice senza simboli" nelle opzioni.</value>
</data>
<data name="MainWindow.Windows.Debug.CallStack.ExternalMethods" xml:space="preserve">
<value>[Metodi esterni]</value>
@ -4946,6 +4962,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4946,6 +4962,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.LocalVariables.CopyToClipboard" xml:space="preserve">
<value>Copia il valore negli Appunti</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.NameColumn" xml:space="preserve">
<value>Nome</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.NonPublicMembers" xml:space="preserve">
<value>Membro Non-Pubblico</value>
</data>
@ -4967,6 +4986,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4967,6 +4986,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.LocalVariables.StaticMembers" xml:space="preserve">
<value>Membri statici</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.TypeColumn" xml:space="preserve">
<value>Tipo</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.ValueColumn" xml:space="preserve">
<value>Valore</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad" xml:space="preserve">
<value>Memoria</value>
</data>
@ -5006,12 +5031,18 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5006,12 +5031,18 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.Modules.AddressColumn" xml:space="preserve">
<value>Indirizzo</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.DynamicModule" xml:space="preserve">
<value>(dinamico)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.HasNoSymbols" xml:space="preserve">
<value>Nessun simbolo caricato.</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.HasSymbols" xml:space="preserve">
<value>Simboli caricati.</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.InMemoryModule" xml:space="preserve">
<value>(in memoria)</value>
</data>
<data name="MainWindow.Windows.Debug.Modules.OrderColumn" xml:space="preserve">
<value>Ordine</value>
</data>

75
data/resources/StringResources.nl.resx

@ -1501,6 +1501,12 @@ Voorbeelden: "120", "MainClass", "Main.cs, 120".</value> @@ -1501,6 +1501,12 @@ Voorbeelden: "120", "MainClass", "Main.cs, 120".</value>
<data name="Dialog.HighlightingEditor.ColorDlg.Italic" xml:space="preserve">
<value>Cursief</value>
</data>
<data name="Dialog.HighlightingEditor.Export" xml:space="preserve">
<value>Selectie kleuren expoorteren</value>
</data>
<data name="Dialog.HighlightingEditor.Import" xml:space="preserve">
<value>Selectie kleuren importeren</value>
</data>
<data name="Dialog.HighlightingEditor.Properties.Value" xml:space="preserve">
<value>Waarde</value>
</data>
@ -2184,11 +2190,14 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value> @@ -2184,11 +2190,14 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value>
<value>Geen</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.MarkersGroupBox" xml:space="preserve">
<value>Markeringen en Linealen</value>
<value>Markeringen</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.PanelName" xml:space="preserve">
<value>Markeringen en Linealen</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.RulersGroupBox" xml:space="preserve">
<value>Linealen</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.ShowHiddenDefinitionsCheckBox" xml:space="preserve">
<value>Toon &amp;verborgen definities(alleen haakjes)</value>
</data>
@ -2355,7 +2364,7 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value> @@ -2355,7 +2364,7 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value>
<value>32 bit Intel-compatibele processor</value>
</data>
<data name="Dialog.ProjectOptions.Build.TargetFramework" xml:space="preserve">
<value>Doel Framework:</value>
<value>Doel raamwerk:</value>
</data>
<data name="Dialog.ProjectOptions.Build.TreatWarningsAsErrors" xml:space="preserve">
<value>Behandel waarschuwingen als fouten</value>
@ -3046,7 +3055,7 @@ Er kan worden gekozen voor opslag van de instellingen in het .user bestand inpla @@ -3046,7 +3055,7 @@ Er kan worden gekozen voor opslag van de instellingen in het .user bestand inpla
<value>Bezig met Code Analyse...</value>
</data>
<data name="ICSharpCode.Build.UnknownTargetMonoFrameworkVersion" xml:space="preserve">
<value>Onbekend doel Mono Framework Versie:</value>
<value>Onbekend doel Mono Raamwerk Versie:</value>
</data>
<data name="ICSharpCode.CodeAnalysis" xml:space="preserve">
<value>Code Analyse</value>
@ -4023,6 +4032,12 @@ Alleen letters, getallen, spatie, '.' of '_' zijn toegestaan.</value> @@ -4023,6 +4032,12 @@ Alleen letters, getallen, spatie, '.' of '_' zijn toegestaan.</value>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.PublicKeyToken.Description" xml:space="preserve">
<value>De openbare sleutel token</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.ReferenceOutputAssembly" xml:space="preserve">
<value>Referentie assembly</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.ReferenceOutputAssembly.Description" xml:space="preserve">
<value>Indien false, specificeert deze referentie enkel een bouw-volgorde afhankelijkheid en heeft niet tot gevolg dat de assembly gerefereerd wordt.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.SpecificVersion" xml:space="preserve">
<value>Specifieke versie</value>
</data>
@ -4084,7 +4099,7 @@ Alleen letters, getallen, spatie, '.' of '_' zijn toegestaan.</value> @@ -4084,7 +4099,7 @@ Alleen letters, getallen, spatie, '.' of '_' zijn toegestaan.</value>
<value>Converteer geselecteerde &amp;projecten naar</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.ChangeTargetFrameworkLabel" xml:space="preserve">
<value>Wijzig doel framework</value>
<value>Wijzig doel Raamwerk:</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.ChangeVersionGroupBoxHeader" xml:space="preserve">
<value>Versie van geselecteerde projecten wijzigen</value>
@ -4099,7 +4114,7 @@ Alleen letters, getallen, spatie, '.' of '_' zijn toegestaan.</value> @@ -4099,7 +4114,7 @@ Alleen letters, getallen, spatie, '.' of '_' zijn toegestaan.</value>
<value>&lt;niet wijzigen&gt;</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.TargetFramework" xml:space="preserve">
<value>Doel framework</value>
<value>Doel Raamwerk</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.Title" xml:space="preserve">
<value>Project opwaarderen</value>
@ -4113,7 +4128,7 @@ Zonder opwaarderen kan het project niet geopend wordenh.</value> @@ -4113,7 +4128,7 @@ Zonder opwaarderen kan het project niet geopend wordenh.</value>
<value>Opwaarderen naar MSBuild ${NewToolsVersion}</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpgradeFromPreviousVersionDescription" xml:space="preserve">
<value>Deze oplossing werd met een vorige versie van SharpDevelop gemaakt. Door te upgraden kan gebruik gemaakt worden van nieuwe taal of framework mogelijkheden.</value>
<value>Deze oplossing werd met een eerdere versie van SharpDevelop gemaakt. Door te upgraden kan gebruik gemaakt worden van nieuwe taal- of raamwerk mogelijkheden.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Services.AmbienceService.AmbienceNotFoundError" xml:space="preserve">
<value>Momentele ambience niet gevonden.
@ -4421,7 +4436,7 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -4421,7 +4436,7 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<value>WiX localisatie bestanden</value>
</data>
<data name="ICSharpCode.WixBinding.WixNetFxExtensionTitle" xml:space="preserve">
<value>.NET Framework uitbreiding</value>
<value>.NET Raamwerk uitbreiding</value>
</data>
<data name="ICSharpCode.WixBinding.WixPackageFilesDiffControl.NoDiffFound" xml:space="preserve">
<value>Geen verschil gevonden.</value>
@ -4969,6 +4984,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -4969,6 +4984,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="MainWindow.Windows.Debug.LocalVariables.CopyToClipboard" xml:space="preserve">
<value>Kopieer waarde naar klembord</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.NameColumn" xml:space="preserve">
<value>Naam</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.NonPublicMembers" xml:space="preserve">
<value>Niet openbare leden</value>
</data>
@ -4990,6 +5008,12 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -4990,6 +5008,12 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="MainWindow.Windows.Debug.LocalVariables.StaticMembers" xml:space="preserve">
<value>Statische leden</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.TypeColumn" xml:space="preserve">
<value>Type</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.ValueColumn" xml:space="preserve">
<value>Waarde</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad" xml:space="preserve">
<value>Geheugen</value>
</data>
@ -5365,6 +5389,30 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5365,6 +5389,30 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="OpenFileTabEventHandler.FileContainingFolderInExplorer" xml:space="preserve">
<value>Open de document bevattende map in de Explorer</value>
</data>
<data name="OpenFileTabEventHandler.OpenCommandPromptHere" xml:space="preserve">
<value>Open hier de commando prompt</value>
</data>
<data name="PortableLibrary.ChooseTargetFrameworks" xml:space="preserve">
<value>Selecteer doel-raamwerken.</value>
</data>
<data name="PortableLibrary.CouldNotFindTools" xml:space="preserve">
<value>Kan Portable Klasse-bibliotheek gereedschap niet vinden.</value>
</data>
<data name="PortableLibrary.PortableSubset" xml:space="preserve">
<value>.NET Portable subset</value>
</data>
<data name="PortableLibrary.SelectAtLeastTwoFrameworks" xml:space="preserve">
<value>Er moeten tenminste twee raamwerken worden geselecteerd.</value>
</data>
<data name="PortableLibrary.SelectedProfile" xml:space="preserve">
<value>Gekozen profiel:</value>
</data>
<data name="PortableLibrary.SelectProfileDialog.Title" xml:space="preserve">
<value>Kies een Portable Bibliotheek profiel.</value>
</data>
<data name="PortableLibrary.ToolsInstallationHelp" xml:space="preserve">
<value>Om de portabele Klassebibliotheek gereedschappen te installeren zonder Visual Studio te installeren, sla het download bestand op (PortableLibraryTools.exe) op uw computer en voer de installatie uit via de commndoregel. Inclusief de /bouwmachine schakeling op de commandoregel.</value>
</data>
<data name="ProjectBrowser.Toolbar.CollapseAll" xml:space="preserve">
<value>Alle knooppunten invouwen</value>
</data>
@ -5500,6 +5548,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5500,6 +5548,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="ProjectComponent.ContextMenu.RunProject" xml:space="preserve">
<value>P&amp;roject starten</value>
</data>
<data name="ProjectComponent.ContextMenu.RunProjectWithoutDebugger" xml:space="preserve">
<value>Project uitvoeren zonder foutopsporing</value>
</data>
<data name="ProjectComponent.ContextMenu.SetAsStartupProject" xml:space="preserve">
<value>Als startproject instellen.</value>
</data>
@ -6618,6 +6669,12 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value> @@ -6618,6 +6669,12 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value>
<data name="Templates.Project.GtkSharpProject.Name" xml:space="preserve">
<value>Gtk# toepassing</value>
</data>
<data name="Templates.Project.PortableLibrary.Description" xml:space="preserve">
<value>Bibliotheek, bruikbaar bij Windows, Silverlight, Windows Phone en Xbox.</value>
</data>
<data name="Templates.Project.PortableLibrary.Name" xml:space="preserve">
<value>Portable Klassen-bibliotheek</value>
</data>
<data name="Templates.Project.SetupProject.Description" xml:space="preserve">
<value>Windows installatie project om een MSI installatie programma te maken.</value>
</data>
@ -6769,7 +6826,7 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value> @@ -6769,7 +6826,7 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value>
<value>Ontkoppel</value>
</data>
<data name="XML.MainMenu.DebugMenu.Error.BadAssembly" xml:space="preserve">
<value>Kan .NET Framework versie van het programma niet krijgen. Ga na of het programma een beheerde assembly is.</value>
<value>Kan .NET Raamwerk versie van het programma niet oproepen. Ga na of het programma een gemanagede assembly is.</value>
</data>
<data name="XML.MainMenu.DebugMenu.Error.CannotAttachToProcess" xml:space="preserve">
<value>Kan niet bij proces aanhaken.</value>
@ -6784,7 +6841,7 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value> @@ -6784,7 +6841,7 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value>
<value>Kan SharpDevelop foutopsporing niet starten omdat kernel foutopsporing is aangezet. Om de kernel foutopsporing uit te zetten, dient de schakeling "/debug" uit bestand Boot.ini verwijderd te worden en de computer opnieuw te worden opgestart.</value>
</data>
<data name="XML.MainMenu.DebugMenu.Error.Net10NotSupported" xml:space="preserve">
<value>Foutopsporing bij .NET Framework 1.0 programmas is niet ondersteund.</value>
<value>Foutopsporing bij .NET Raamwerk 1.0 programmas is niet ondersteund.</value>
</data>
<data name="XML.MainMenu.DebugMenu.Error.NotDebugging" xml:space="preserve">
<value>Kan actie niet uitvoeren omdat er geen foutopsporing van een proces plaatsvindt.</value>

58
data/resources/StringResources.resx

@ -1550,6 +1550,12 @@ Examples: "120", "MainClass", "Main.cs, 120".</value> @@ -1550,6 +1550,12 @@ Examples: "120", "MainClass", "Main.cs, 120".</value>
<data name="Dialog.HighlightingEditor.ColorDlg.Italic" xml:space="preserve">
<value>Italic</value>
</data>
<data name="Dialog.HighlightingEditor.Export" xml:space="preserve">
<value>Export highlighting colors</value>
</data>
<data name="Dialog.HighlightingEditor.Import" xml:space="preserve">
<value>Import highlighting colors</value>
</data>
<data name="Dialog.HighlightingEditor.Properties.Value" xml:space="preserve">
<value>Value</value>
</data>
@ -2256,11 +2262,14 @@ system. I don't think that it needs translation.</comment> @@ -2256,11 +2262,14 @@ system. I don't think that it needs translation.</comment>
<value>None</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.MarkersGroupBox" xml:space="preserve">
<value>Markers and Rulers</value>
<value>Markers</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.PanelName" xml:space="preserve">
<value>Markers and Rulers</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.RulersGroupBox" xml:space="preserve">
<value>Rulers</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.ShowHiddenDefinitionsCheckBox" xml:space="preserve">
<value>Show &amp;hidden definitions (brackets only)</value>
</data>
@ -5270,6 +5279,9 @@ Stop/terminate the debuggee.</comment> @@ -5270,6 +5279,9 @@ Stop/terminate the debuggee.</comment>
<value>Copy value to clipboard</value>
<comment>Item in variable's context menu</comment>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.NameColumn" xml:space="preserve">
<value>Name</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.NonPublicMembers" xml:space="preserve">
<value>Non-Public members</value>
</data>
@ -5297,6 +5309,12 @@ Shows the full callstack of the error.</comment> @@ -5297,6 +5309,12 @@ Shows the full callstack of the error.</comment>
<data name="MainWindow.Windows.Debug.LocalVariables.StaticMembers" xml:space="preserve">
<value>Static members</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.TypeColumn" xml:space="preserve">
<value>Type</value>
</data>
<data name="MainWindow.Windows.Debug.LocalVariables.ValueColumn" xml:space="preserve">
<value>Value</value>
</data>
<data name="MainWindow.Windows.Debug.MemoryPad" xml:space="preserve">
<value>Memory</value>
</data>
@ -5686,6 +5704,35 @@ Removed the end part of the original message ", reason '${Message}'" since this @@ -5686,6 +5704,35 @@ Removed the end part of the original message ", reason '${Message}'" since this
<value>Open containing folder in Explorer</value>
<comment>String for the editor tab context menu that will open the directory in which a documents file is contained in Windows Explorer.</comment>
</data>
<data name="OpenFileTabEventHandler.OpenCommandPromptHere" xml:space="preserve">
<value>Open command prompt here</value>
</data>
<data name="PortableLibrary.ChooseTargetFrameworks" xml:space="preserve">
<value>choose target frameworks</value>
<comment>Option in the "target framework" combobox in the "project upgrade" view that causes the "select portable profile" dialog to appear</comment>
</data>
<data name="PortableLibrary.CouldNotFindTools" xml:space="preserve">
<value>Could not find Portable Class Library Tools.</value>
</data>
<data name="PortableLibrary.PortableSubset" xml:space="preserve">
<value>.NET Portable Subset</value>
<comment>Name for the portable target framework, shown in Project Upgrade view</comment>
</data>
<data name="PortableLibrary.SelectAtLeastTwoFrameworks" xml:space="preserve">
<value>Two or more frameworks must be selected.</value>
<comment>Label shown when only 0 or 1 frameworks are selected</comment>
</data>
<data name="PortableLibrary.SelectedProfile" xml:space="preserve">
<value>Selected profile:</value>
<comment>Label that shows the selected portable library profile</comment>
</data>
<data name="PortableLibrary.SelectProfileDialog.Title" xml:space="preserve">
<value>Select Portable Library Profile</value>
<comment>Title of the dialog used to pick the target frameworks for a portable library project</comment>
</data>
<data name="PortableLibrary.ToolsInstallationHelp" xml:space="preserve">
<value>To install the Portable Class Library Tools without installing Visual Studio, save the download file (PortableLibraryTools.exe) on your computer, and run the installation program from a Command Prompt window. Include the /buildmachine switch on the command line.</value>
</data>
<data name="ProjectBrowser.Toolbar.CollapseAll" xml:space="preserve">
<value>Collapse all nodes</value>
</data>
@ -5830,6 +5877,9 @@ Removed the end part of the original message ", reason '${Message}'" since this @@ -5830,6 +5877,9 @@ Removed the end part of the original message ", reason '${Message}'" since this
<data name="ProjectComponent.ContextMenu.RunProject" xml:space="preserve">
<value>&amp;Run Project</value>
</data>
<data name="ProjectComponent.ContextMenu.RunProjectWithoutDebugger" xml:space="preserve">
<value>Run Project without Debugger</value>
</data>
<data name="ProjectComponent.ContextMenu.SetAsStartupProject" xml:space="preserve">
<value>Set as St&amp;artUp Project</value>
</data>
@ -6997,6 +7047,12 @@ The resources files have been renamed/moved accordingly.</value> @@ -6997,6 +7047,12 @@ The resources files have been renamed/moved accordingly.</value>
<value>Gtk# Application</value>
<comment>Name of Gtk# project template.</comment>
</data>
<data name="Templates.Project.PortableLibrary.Description" xml:space="preserve">
<value>Library that can be used on Windows, Silverlight, Windows Phone, and Xbox.</value>
</data>
<data name="Templates.Project.PortableLibrary.Name" xml:space="preserve">
<value>Portable Class Library</value>
</data>
<data name="Templates.Project.SetupProject.Description" xml:space="preserve">
<value>A windows installer project for creating a MSI installer.</value>
</data>

3191
data/resources/StringResources.tr.resx

File diff suppressed because it is too large Load Diff

BIN
data/templates/packages/Modernizr.1.7.nupkg

Binary file not shown.

BIN
data/templates/packages/Modernizr.2.5.3.nupkg

Binary file not shown.

BIN
data/templates/packages/jQuery.1.6.1.nupkg

Binary file not shown.

BIN
data/templates/packages/jQuery.1.7.2.nupkg

Binary file not shown.

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

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

8
data/templates/project/CSharp/MvcRazorProject.xpt

@ -273,8 +273,8 @@ Aliquam suscipit tellus vel nunc elementum fringilla.</p> @@ -273,8 +273,8 @@ Aliquam suscipit tellus vel nunc elementum fringilla.</p>
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css">
<script src="@Url.Content("~/Scripts/modernizer-1.7.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.6.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-2.5.3.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script>
</head>
<body>
<div id="page">
@ -300,8 +300,8 @@ Aliquam suscipit tellus vel nunc elementum fringilla.</p> @@ -300,8 +300,8 @@ Aliquam suscipit tellus vel nunc elementum fringilla.</p>
<File name="packages.config">
<![CDATA[<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="jQuery" version="1.6.1" />
<package id="Modernizr" version="1.7" />
<package id="jQuery" version="1.7.2" />
<package id="Modernizr" version="2.5.3" />
</packages>
]]>
</File>

8
data/templates/project/CSharp/MvcWebProject.xpt

@ -280,8 +280,8 @@ namespace ${StandardNamespace} @@ -280,8 +280,8 @@ namespace ${StandardNamespace}
<head runat="server">
<title><asp:ContentPlaceHolder id="Title" runat="server"/></title>
<link href="<%: Url.Content("~/Content/Site.css") %>" rel="stylesheet" type="text/css">
<script src="<%: Url.Content("~/Scripts/modernizer-1.7.min.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/jquery-1.6.1.min.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/modernizr-2.5.3.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/jquery-1.7.2.min.js") %>" type="text/javascript"></script>
</head>
<body>
<div id="page">
@ -307,8 +307,8 @@ namespace ${StandardNamespace} @@ -307,8 +307,8 @@ namespace ${StandardNamespace}
<File name="packages.config">
<![CDATA[<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="jQuery" version="1.6.1" />
<package id="Modernizr" version="1.7" />
<package id="jQuery" version="1.7.2" />
<package id="Modernizr" version="2.5.3" />
</packages>
]]>
</File>

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

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

27
data/templates/project/CSharp/PortableAssemblyInfo.cs

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
#region Using directives
using System;
using System.Reflection;
using System.Runtime.InteropServices;
#endregion
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("${ProjectName}")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("${ProjectName}")]
[assembly: AssemblyCopyright("Copyright ${DATE:yyyy}")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.*")]

58
data/templates/project/CSharp/PortableLibrary.xpt

@ -0,0 +1,58 @@ @@ -0,0 +1,58 @@
<?xml version="1.0"?>
<Template originator = "Daniel Grunwald" created = "05/17/2012">
<!-- Template Header -->
<TemplateConfiguration>
<Name>${res:Templates.Project.PortableLibrary.Name}</Name>
<Category>C#</Category>
<Icon>C#.Project.Library</Icon>
<Description>${res:Templates.Project.PortableLibrary.Description}</Description>
</TemplateConfiguration>
<!-- Actions -->
<Actions>
<Open filename = "MyClass.cs"/>
</Actions>
<!-- Template Content -->
<Project language="C#">
<PreCreateActions>
<RunCommand path="/SharpDevelop/BackendBindings/TemplateCommands/CheckPortableLibraryInstalled"/>
</PreCreateActions>
<PropertyGroup>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Profile1</TargetFrameworkProfile>
</PropertyGroup>
<PropertyGroup escapeValue="False">
<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
</PropertyGroup>
<ProjectItems />
<Imports clear="True">
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
</Imports>
<Files>
<File name="MyClass.cs"><![CDATA[${StandardHeader.C#}
using System;
using System.Collections.Generic;
namespace ${StandardNamespace}
{
/// <summary>
/// Description of MyClass.
/// </summary>
public class MyClass
{
}
}]]></File>
<File name="Properties\AssemblyInfo.cs" src="PortableAssemblyInfo.cs"/>
</Files>
</Project>
</Template>

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

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

20
data/templates/project/ComplexExample.xpt.test

@ -16,6 +16,8 @@ @@ -16,6 +16,8 @@
<!-- Actions -->
<Actions>
<Open filename = "Main.cs"/>
<!-- Runs a command from the AddIn Tree. ICommand.Owner will be the ProjectCreateInformation -->
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/PostCreationAction"/>
</Actions>
<!-- Template Content -->
@ -33,7 +35,17 @@ @@ -33,7 +35,17 @@
<!-- Solution folders can contain: nested solution folders and projects -->
<SolutionFolder name = "Nested Sub Folder"/>
<Project name = "VBNetProject" directory = "VBNetSubProject" language="VBNet">
<Project name = "VBNetProject" directory = "VBNetSubProject" language="VBNet" defaultPlatform="x86">
<!-- Actions that get executed before the project is created. ICommand.Owner will be the ProjectCreateInformation. -->
<PreCreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/CheckPortableLibraryInstalled"/>
</PreCreateActions>
<!-- Actions that get executed after the project was created. ICommand.Owner will be the IProject. -->
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/PostCreationAction"/>
</CreateActions>
<!-- add a PropertyGroup to the project to set MSBuild properties -->
<PropertyGroup>
<OutputType>WinExe</OutputType>
@ -123,11 +135,7 @@ End Class @@ -123,11 +135,7 @@ End Class
</Project>
</SolutionFolder>
<Project name = "${ProjectName}" directory = "." language = "C#">
<CreateActions>
<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/AddDotNet35ReferencesIfTargetFrameworkIs35"/>
</CreateActions>
<Project name = "${ProjectName}" directory = "." language = "C#" defaultPlatform="AnyCPU">
<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">
<Project language = "VBNet" defaultPlatform="x86">
<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">
<Project language="VBNet" defaultPlatform="x86">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>

8
data/templates/project/VB/MvcRazorProject.xpt

@ -265,8 +265,8 @@ Aliquam suscipit tellus vel nunc elementum fringilla.</p> @@ -265,8 +265,8 @@ Aliquam suscipit tellus vel nunc elementum fringilla.</p>
<head>
<title>@ViewData("Title")</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css">
<script src="@Url.Content("~/Scripts/modernizer-1.7.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.6.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-2.5.3.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script>
</head>
<body>
<div id="page">
@ -292,8 +292,8 @@ Aliquam suscipit tellus vel nunc elementum fringilla.</p> @@ -292,8 +292,8 @@ Aliquam suscipit tellus vel nunc elementum fringilla.</p>
<File name="packages.config">
<![CDATA[<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="jQuery" version="1.6.1" />
<package id="Modernizr" version="1.7" />
<package id="jQuery" version="1.7.2" />
<package id="Modernizr" version="2.5.3" />
</packages>
]]>
</File>

8
data/templates/project/VB/MvcWebProject.xpt

@ -272,8 +272,8 @@ End Class @@ -272,8 +272,8 @@ End Class
<head runat="server">
<title><asp:ContentPlaceHolder id="Title" runat="server"/></title>
<link href="<%: Url.Content("~/Content/Site.css") %>" rel="stylesheet" type="text/css">
<script src="<%: Url.Content("~/Scripts/modernizer-1.7.min.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/jquery-1.6.1.min.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/modernizr-2.5.3.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/jquery-1.7.2.min.js") %>" type="text/javascript"></script>
</head>
<body>
<div id="page">
@ -299,8 +299,8 @@ End Class @@ -299,8 +299,8 @@ End Class
<File name="packages.config">
<![CDATA[<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="jQuery" version="1.6.1" />
<package id="Modernizr" version="1.7" />
<package id="jQuery" version="1.7.2" />
<package id="Modernizr" version="2.5.3" />
</packages>
]]>
</File>

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

@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
<Open filename = "NotificationIcon.vb"/>
</Actions>
<Project language="VBNet">
<Project language="VBNet" defaultPlatform="x86">
<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">
<Project language="VBNet" defaultPlatform="x86">
<PropertyGroup>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>

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

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

69
samples/MSTest/MSTest.SharpDevelop.Tests/MSTest.SharpDevelop.Tests.csproj

@ -0,0 +1,69 @@ @@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<PropertyGroup>
<ProjectGuid>{51D56190-67B7-4A49-BA0A-24010460CCC6}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<OutputType>Library</OutputType>
<RootNamespace>MSTest.SharpDevelop.Tests</RootNamespace>
<AssemblyName>MSTest.SharpDevelop.Tests</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'x86' ">
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputPath>bin\Debug\</OutputPath>
<DebugSymbols>True</DebugSymbols>
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<OutputPath>bin\Release\</OutputPath>
<DebugSymbols>False</DebugSymbols>
<DebugType>None</DebugType>
<Optimize>True</Optimize>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Reference Include="ICSharpCode.Core">
<HintPath>..\..\..\bin\ICSharpCode.Core.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.SharpDevelop">
<HintPath>..\..\..\bin\ICSharpCode.SharpDevelop.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.SharpDevelop.Dom">
<HintPath>..\..\..\bin\ICSharpCode.SharpDevelop.Dom.dll</HintPath>
</Reference>
<Reference Include="nunit.framework">
<HintPath>..\..\..\src\Tools\NUnit\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="Rhino.Mocks">
<HintPath>..\..\..\src\Libraries\RhinoMocks\Rhino.Mocks.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="UnitTesting">
<HintPath>..\..\..\AddIns\Analysis\UnitTesting\UnitTesting.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="MSTestFrameworkTests.cs" />
<Compile Include="MSTestResultsTests.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MSTest.SharpDevelop\MSTest.SharpDevelop.csproj">
<Project>{8DF3A610-47F9-4448-B455-952BD57CB5CC}</Project>
<Name>MSTest.SharpDevelop</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>

338
samples/MSTest/MSTest.SharpDevelop.Tests/MSTestFrameworkTests.cs

@ -0,0 +1,338 @@ @@ -0,0 +1,338 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using ICSharpCode.MSTest;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.UnitTesting;
using NUnit.Framework;
using Rhino.Mocks;
namespace MSTest.SharpDevelop.Tests
{
[TestFixture]
public class MSTestFrameworkTests
{
MSTestFramework testFramework;
IProject fakeProject;
[SetUp]
public void Init()
{
testFramework = new MSTestFramework();
fakeProject = MockRepository.GenerateStub<IProject>();
fakeProject.Stub(p => p.SyncRoot).Return(fakeProject);
}
void AddReferencesToProject(params string[] referenceNames)
{
List<ProjectItem> projectItems = referenceNames
.Select(name => new ReferenceProjectItem(fakeProject, name) as ProjectItem)
.ToList();
AddItemsToProject(projectItems);
}
void AddItemsToProject(List<ProjectItem> projectItems)
{
fakeProject
.Stub(project => project.Items)
.Return(new ReadOnlyCollection<ProjectItem>(projectItems));
}
void AddFileAndReferenceToProject(string fileName, string reference)
{
var projectItems = new List<ProjectItem>();
projectItems.Add(new FileProjectItem(fakeProject, ItemType.Compile, fileName));
projectItems.Add(new ReferenceProjectItem(fakeProject, reference));
AddItemsToProject(projectItems);
}
void NoItemsInProject()
{
AddReferencesToProject();
}
IClass CreateClassWithoutAnyAttributes()
{
IClass fakeClass = MockRepository.GenerateStub<IClass>();
AddAttributesToClass(fakeClass, new List<IAttribute>());
return fakeClass;
}
void AddAttributesToClass(IClass fakeClass, List<IAttribute> attributes)
{
fakeClass.Stub(c => c.Attributes).Return(attributes);
}
IClass CreateClassWithAttributes(params string[] attributeNames)
{
IClass fakeClass = MockRepository.GenerateStub<IClass>();
List<IAttribute> attributes = CreateAttributes(attributeNames);
AddAttributesToClass(fakeClass, attributes);
return fakeClass;
}
List<IAttribute> CreateAttributes(params string[] attributeNames)
{
return attributeNames.Select(name => CreateAttribute(name)).ToList();
}
IAttribute CreateAttribute(string name)
{
IReturnType returnType = MockRepository.GenerateStub<IReturnType>();
returnType.Stub(t => t.FullyQualifiedName).Return(name);
IAttribute attribute = MockRepository.GenerateStub<IAttribute>();
attribute.Stub(a => a.AttributeType).Return(returnType);
return attribute;
}
void MakeClassAbstract(IClass fakeClass)
{
fakeClass.Stub(c => c.IsAbstract).Return(true);
}
IMethod CreateMethodWithoutAnyAttributes()
{
IMethod fakeMethod = MockRepository.GenerateStub<IMethod>();
AddAttributesToMethod(fakeMethod, new List<IAttribute>());
return fakeMethod;
}
IMethod CreateMethodWithAttributes(params string[] attributeNames)
{
IMethod fakeMethod = MockRepository.GenerateStub<IMethod>();
List<IAttribute> attributes = CreateAttributes(attributeNames);
AddAttributesToMethod(fakeMethod, attributes);
return fakeMethod;
}
void AddAttributesToMethod(IMethod method, List<IAttribute> attributes)
{
method.Stub(m => m.Attributes).Return(attributes);
}
List<TestMember> GetTestMembersFor(IClass fakeClass)
{
return testFramework.GetTestMembersFor(fakeClass).ToList();
}
void AddMethodsToClass(IClass fakeClass, List<IMethod> methods)
{
fakeClass.Stub(c => c.Methods).Return(methods);
}
[Test]
public void IsTestProject_NullProject_ReturnsFalse()
{
bool result = testFramework.IsTestProject(null);
Assert.IsFalse(result);
}
[Test]
public void IsTestProject_ProjectWithMSTestAssemblyReference_ReturnsTrue()
{
AddReferencesToProject("System", "Microsoft.VisualStudio.QualityTools.UnitTestFramework");
bool result = testFramework.IsTestProject(fakeProject);
Assert.IsTrue(result);
}
[Test]
public void IsTestProject_ProjectWithoutMSTestAssemblyReference_ReturnsFalse()
{
NoItemsInProject();
bool result = testFramework.IsTestProject(fakeProject);
Assert.IsFalse(result);
}
[Test]
public void IsTestProject_ProjectWithMSTestAssemblyReferenceInUpperCase_ReturnsTrue()
{
AddReferencesToProject("MICROSOFT.VISUALSTUDIO.QUALITYTOOLS.UNITTESTFRAMEWORK");
bool result = testFramework.IsTestProject(fakeProject);
Assert.IsTrue(result);
}
[Test]
public void IsTestProject_ProjectWithMSTestAssemblyReferenceAndFileProjectItem_ReturnsTrue()
{
AddFileAndReferenceToProject("test.cs", "Microsoft.VisualStudio.QualityTools.UnitTestFramework");
bool result = testFramework.IsTestProject(fakeProject);
Assert.IsTrue(result);
}
[Test]
public void IsTestProject_ProjectWithMSTestAssemblyReferenceUsingFullName_ReturnsTrue()
{
AddReferencesToProject("Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=2.5.3.9345, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77");
bool result = testFramework.IsTestProject(fakeProject);
Assert.IsTrue(result);
}
[Test]
public void IsTestClass_ClassHasNoAttributes_ReturnsFalse()
{
IClass fakeClass = CreateClassWithoutAnyAttributes();
bool result = testFramework.IsTestClass(fakeClass);
Assert.IsFalse(result);
}
[Test]
public void IsTestClass_ClassHasTestFixtureAttributeMissingAttributePart_ReturnsTrue()
{
IClass fakeClass = CreateClassWithAttributes("TestClass");
bool result = testFramework.IsTestClass(fakeClass);
Assert.IsTrue(result);
}
[Test]
public void IsTestClass_ClassHasTestClassAttributeAndIsAbstract_ReturnsFalse()
{
IClass fakeClass = CreateClassWithAttributes("TestClass");
MakeClassAbstract(fakeClass);
bool result = testFramework.IsTestClass(fakeClass);
Assert.IsFalse(result);
}
[Test]
public void IsTestClass_ClassHasTestClassAttributeIncludingAttributePart_ReturnsTrue()
{
IClass fakeClass = CreateClassWithAttributes("TestClassAttribute");
bool result = testFramework.IsTestClass(fakeClass);
Assert.IsTrue(result);
}
[Test]
public void IsTestClass_ClassHasFullyQualifiedMSTestClassAttribute_ReturnsTrue()
{
IClass fakeClass = CreateClassWithAttributes("Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute");
bool result = testFramework.IsTestClass(fakeClass);
Assert.IsTrue(result);
}
[Test]
public void IsTestClass_ClassIsNull_ReturnsFalse()
{
bool result = testFramework.IsTestClass(null);
Assert.IsFalse(result);
}
[Test]
public void IsTestMember_MethodHasNoAttributes_ReturnsFalse()
{
IMethod method = CreateMethodWithoutAnyAttributes();
bool result = testFramework.IsTestMember(method);
Assert.IsFalse(result);
}
[Test]
public void IsTestMember_MethodHasTestMethodAttributeWithoutAttributePart_ReturnsTrue()
{
IMethod method = CreateMethodWithAttributes("TestMethod");
bool result = testFramework.IsTestMember(method);
Assert.IsTrue(result);
}
[Test]
public void IsTestMember_MethodHasTestMethodAttributeAttribute_ReturnsTrue()
{
IMethod method = CreateMethodWithAttributes("TestMethodAttribute");
bool result = testFramework.IsTestMember(method);
Assert.IsTrue(result);
}
[Test]
public void IsTestMember_MethodHasFullyQualifiedMSTestTestMethodAttribute_ReturnsTrue()
{
IMethod method = CreateMethodWithAttributes("Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute");
bool result = testFramework.IsTestMember(method);
Assert.IsTrue(result);
}
[Test]
public void IsTestMember_MethodIsNull_ReturnsFalse()
{
bool result = testFramework.IsTestMember(null);
Assert.IsFalse(result);
}
[Test]
public void IsTestMember_MemberNotMethod_ReturnsFalse()
{
IMember member = MockRepository.GenerateStub<IMember>();
bool result = testFramework.IsTestMember(member);
Assert.IsFalse(result);
}
[Test]
public void GetTestMembersFor_ClassHasNoMethods_ReturnsFalse()
{
IClass fakeClass = CreateClassWithAttributes("TestClass");
AddMethodsToClass(fakeClass, new List<IMethod>());
List<TestMember> testMembers = GetTestMembersFor(fakeClass);
Assert.AreEqual(0, testMembers.Count);
}
[Test]
public void GetTestMembersFor_ClassHasTwoMethodsAndSecondOneIsTestMethod_ReturnsSecondTestMethodOnly()
{
IClass fakeClass = CreateClassWithAttributes("TestClass");
var methods = new List<IMethod>();
methods.Add(CreateMethodWithoutAnyAttributes());
IMethod testMethod = CreateMethodWithAttributes("TestMethod");
methods.Add(testMethod);
AddMethodsToClass(fakeClass, methods);
List<TestMember> testMembers = GetTestMembersFor(fakeClass);
Assert.AreEqual(1, testMembers.Count);
Assert.AreEqual(testMethod, testMembers[0].Member);
}
}
}

184
samples/MSTest/MSTest.SharpDevelop.Tests/MSTestResultsTests.cs

@ -0,0 +1,184 @@ @@ -0,0 +1,184 @@
// 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 System.Xml;
using ICSharpCode.MSTest;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.UnitTesting;
using NUnit.Framework;
namespace MSTest.SharpDevelop.Tests
{
[TestFixture]
public class MSTestResultsTests
{
MSTestResults testResults;
void CreateMSTestResults(string xml)
{
using (var reader = new XmlTextReader(new StringReader(xml))) {
testResults = new MSTestResults(reader);
}
}
void AssertTestResultsAreEqual(TestResult[] expectedResults)
{
List<string> expectedResultsAsString = ConvertToStrings(expectedResults);
List<string> actualResultsAsString = ConvertToStrings(testResults);
CollectionAssert.AreEqual(expectedResultsAsString, actualResultsAsString);
}
List<string> ConvertToStrings(IEnumerable<TestResult> results)
{
return results.Select(
result => String.Format(
"Name: {0}, Result: {1}, Message: '{2}', StackTrace: '{3}', StackPosition: {4}",
result.Name,
result.ResultType,
result.Message,
result.StackTrace,
result.StackTraceFilePosition))
.ToList();
}
[Test]
public void Results_OneClassWithTwoPassingTestMethods_ReturnsTwoResults()
{
CreateMSTestResults(oneClassWithTwoPassingTestMethods);
var expectedResults = new TestResult[] {
new TestResult("FooTest.UnitTest1.TestMethod1") {
ResultType = TestResultType.Success
},
new TestResult("FooTest.UnitTest1.TestMethod2") {
ResultType = TestResultType.Success
},
};
AssertTestResultsAreEqual(expectedResults);
}
string oneClassWithTwoPassingTestMethods =
@"<?xml version=""1.0"" encoding=""UTF-8""?>
<TestRun id=""13473da1-70ea-422c-86a5-3b5d04610561"" name=""FEYNMAN 2012-05-06 11:02:13"" runUser=""Feynman\Matt"" xmlns=""http://microsoft.com/schemas/VisualStudio/TeamTest/2010"">
<TestSettings name=""Local"" id=""1af0c4fe-35c7-49e5-b22a-40677255db56"">
<Description>These are default test settings for a local test run.</Description>
<Deployment runDeploymentRoot=""FEYNMAN 2012-05-06 11_02_13"">
<DeploymentItem filename=""T4Scaffolding.Test\ExampleScripts\"" />
</Deployment>
<Execution>
<TestTypeSpecific>
<UnitTestRunConfig testTypeId=""13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b"">
<AssemblyResolution>
<TestDirectory useLoadContext=""true"" />
</AssemblyResolution>
</UnitTestRunConfig>
<WebTestRunConfiguration testTypeId=""4e7599fa-5ecb-43e9-a887-cd63cf72d207"">
<Browser name=""Internet Explorer 7.0"">
<Headers>
<Header name=""User-Agent"" value=""Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"" />
<Header name=""Accept"" value=""*/*"" />
<Header name=""Accept-Language"" value=""{{$IEAcceptLanguage}}"" />
<Header name=""Accept-Encoding"" value=""GZIP"" />
</Headers>
</Browser>
</WebTestRunConfiguration>
</TestTypeSpecific>
<AgentRule name=""LocalMachineDefaultRole"">
</AgentRule>
</Execution>
</TestSettings>
<Times creation=""2012-05-06T11:02:13.0655060+01:00"" queuing=""2012-05-06T11:02:16.0845060+01:00"" start=""2012-05-06T11:02:16.4355060+01:00"" finish=""2012-05-06T11:02:17.8915060+01:00"" />
<ResultSummary outcome=""Completed"">
<Counters total=""2"" executed=""2"" passed=""2"" error=""0"" failed=""0"" timeout=""0"" aborted=""0"" inconclusive=""0"" passedButRunAborted=""0"" notRunnable=""0"" notExecuted=""0"" disconnected=""0"" warning=""0"" completed=""0"" inProgress=""0"" pending=""0"" />
</ResultSummary>
<TestDefinitions>
<UnitTest name=""TestMethod2"" storage=""d:\temp\test\mvcscaffolding_31fa7ea49b52\footest\bin\debug\footest.dll"" id=""760d70dc-fcd4-bd05-26dd-50b565053466"">
<Execution id=""4d09aff0-ba01-4c01-9c3c-dd6475e89ef2"" />
<TestMethod codeBase=""D:/projects/FooTest/bin/Debug/FooTest.DLL"" adapterTypeName=""Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapter, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" className=""FooTest.UnitTest1, FooTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"" name=""TestMethod2"" />
</UnitTest>
<UnitTest name=""TestMethod1"" storage=""d:\temp\test\mvcscaffolding_31fa7ea49b52\footest\bin\debug\footest.dll"" id=""752967dd-f45f-65ac-ca4a-dcd30f56a25a"">
<Execution id=""ba931d00-d381-43c3-b0f9-f4cf37015438"" />
<TestMethod codeBase=""D:/projects/FooTest/bin/Debug/FooTest.DLL"" adapterTypeName=""Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapter, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" className=""FooTest.UnitTest1, FooTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"" name=""TestMethod1"" />
</UnitTest>
</TestDefinitions>
<TestLists>
<TestList name=""Results Not in a List"" id=""8c84fa94-04c1-424b-9868-57a2d4851a1d"" />
<TestList name=""All Loaded Results"" id=""19431567-8539-422a-85d7-44ee4e166bda"" />
</TestLists>
<TestEntries>
<TestEntry testId=""752967dd-f45f-65ac-ca4a-dcd30f56a25a"" executionId=""ba931d00-d381-43c3-b0f9-f4cf37015438"" testListId=""8c84fa94-04c1-424b-9868-57a2d4851a1d"" />
<TestEntry testId=""760d70dc-fcd4-bd05-26dd-50b565053466"" executionId=""4d09aff0-ba01-4c01-9c3c-dd6475e89ef2"" testListId=""8c84fa94-04c1-424b-9868-57a2d4851a1d"" />
</TestEntries>
<Results>
<UnitTestResult executionId=""ba931d00-d381-43c3-b0f9-f4cf37015438"" testId=""752967dd-f45f-65ac-ca4a-dcd30f56a25a"" testName=""TestMethod1"" computerName=""FEYNMAN"" duration=""00:00:00.0501283"" startTime=""2012-05-06T11:02:16.5755060+01:00"" endTime=""2012-05-06T11:02:17.7465060+01:00"" testType=""13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b"" outcome=""Passed"" testListId=""8c84fa94-04c1-424b-9868-57a2d4851a1d"" relativeResultsDirectory=""ba931d00-d381-43c3-b0f9-f4cf37015438"">
</UnitTestResult>
<UnitTestResult executionId=""4d09aff0-ba01-4c01-9c3c-dd6475e89ef2"" testId=""760d70dc-fcd4-bd05-26dd-50b565053466"" testName=""TestMethod2"" computerName=""FEYNMAN"" duration=""00:00:00.0018331"" startTime=""2012-05-06T11:02:17.7655060+01:00"" endTime=""2012-05-06T11:02:17.7785060+01:00"" testType=""13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b"" outcome=""Passed"" testListId=""8c84fa94-04c1-424b-9868-57a2d4851a1d"" relativeResultsDirectory=""4d09aff0-ba01-4c01-9c3c-dd6475e89ef2"">
</UnitTestResult>
</Results>
</TestRun>";
[Test]
public void Results_OneTestMethodThrowsException_ReturnsOneErrorResultWithStackTrace()
{
CreateMSTestResults(oneTestMethodThrowsException);
var expectedResults = new TestResult[] {
new TestResult("FooTest.UnitTest1.TestMethod1") {
ResultType = TestResultType.Failure,
Message = "System.ApplicationException: asdfafds",
StackTrace = " at FooTest.UnitTest1.TestMethod1() in d:\\projects\\FooTest\\UnitTest1.cs:line 21\r\n",
StackTraceFilePosition = new FilePosition(@"d:\projects\FooTest\UnitTest1.cs", 21, 1)
}
};
AssertTestResultsAreEqual(expectedResults);
}
string oneTestMethodThrowsException =
@"<?xml version=""1.0"" encoding=""UTF-8""?>
<TestRun id=""7c0b0a20-13c6-4c28-b74c-e29c271f2ec4"" name=""FEYNMAN 2012-05-06 13:07:05"" runUser=""Feynman\Matt"" xmlns=""http://microsoft.com/schemas/VisualStudio/TeamTest/2010"">
<TestSettings name=""Default Test Settings"" id=""03cf0958-a7e3-4b25-b98b-435f01359ee1"">
<Execution>
<TestTypeSpecific />
<AgentRule name=""Execution Agents"">
</AgentRule>
</Execution>
<Deployment runDeploymentRoot=""FEYNMAN 2012-05-06 13_07_05"" />
</TestSettings>
<Times creation=""2012-05-06T13:07:05.9187060+01:00"" queuing=""2012-05-06T13:07:06.6519060+01:00"" start=""2012-05-06T13:07:06.8235060+01:00"" finish=""2012-05-06T13:07:08.0403060+01:00"" />
<ResultSummary outcome=""Failed"">
<Counters total=""1"" executed=""1"" passed=""0"" error=""0"" failed=""1"" timeout=""0"" aborted=""0"" inconclusive=""0"" passedButRunAborted=""0"" notRunnable=""0"" notExecuted=""0"" disconnected=""0"" warning=""0"" completed=""0"" inProgress=""0"" pending=""0"" />
</ResultSummary>
<TestDefinitions>
<UnitTest name=""TestMethod1"" storage=""d:\projects\footest\bin\debug\footest.dll"" id=""752967dd-f45f-65ac-ca4a-dcd30f56a25a"">
<Execution id=""c147e8ae-7ee7-4f28-9db3-a708e350c68d"" />
<TestMethod codeBase=""D:/projects/FooTest/bin/Debug/FooTest.DLL"" adapterTypeName=""Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapter, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" className=""FooTest.UnitTest1, FooTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"" name=""TestMethod1"" />
</UnitTest>
</TestDefinitions>
<TestLists>
<TestList name=""Results Not in a List"" id=""8c84fa94-04c1-424b-9868-57a2d4851a1d"" />
<TestList name=""All Loaded Results"" id=""19431567-8539-422a-85d7-44ee4e166bda"" />
</TestLists>
<TestEntries>
<TestEntry testId=""752967dd-f45f-65ac-ca4a-dcd30f56a25a"" executionId=""c147e8ae-7ee7-4f28-9db3-a708e350c68d"" testListId=""8c84fa94-04c1-424b-9868-57a2d4851a1d"" />
</TestEntries>
<Results>
<UnitTestResult executionId=""c147e8ae-7ee7-4f28-9db3-a708e350c68d"" testId=""752967dd-f45f-65ac-ca4a-dcd30f56a25a"" testName=""TestMethod1"" computerName=""FEYNMAN"" duration=""00:00:00.0404760"" startTime=""2012-05-06T13:07:06.9015060+01:00"" endTime=""2012-05-06T13:07:07.8375060+01:00"" testType=""13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b"" outcome=""Failed"" testListId=""8c84fa94-04c1-424b-9868-57a2d4851a1d"" relativeResultsDirectory=""c147e8ae-7ee7-4f28-9db3-a708e350c68d"">
<Output>
<ErrorInfo>
<Message>Test method FooTest.UnitTest1.TestMethod1 threw exception:
System.ApplicationException: asdfafds</Message>
<StackTrace> at FooTest.UnitTest1.TestMethod1() in d:\projects\FooTest\UnitTest1.cs:line 21
</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
</Results>
</TestRun>";
}
}

31
samples/MSTest/MSTest.SharpDevelop.Tests/Properties/AssemblyInfo.cs

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

24
samples/MSTest/MSTest.SharpDevelop.sln

@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.2.0.8749-Beta 2
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSTest.SharpDevelop", "MSTest.SharpDevelop\MSTest.SharpDevelop.csproj", "{8DF3A610-47F9-4448-B455-952BD57CB5CC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSTest.SharpDevelop.Tests", "MSTest.SharpDevelop.Tests\MSTest.SharpDevelop.Tests.csproj", "{51D56190-67B7-4A49-BA0A-24010460CCC6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8DF3A610-47F9-4448-B455-952BD57CB5CC}.Debug|x86.Build.0 = Debug|x86
{8DF3A610-47F9-4448-B455-952BD57CB5CC}.Debug|x86.ActiveCfg = Debug|x86
{8DF3A610-47F9-4448-B455-952BD57CB5CC}.Release|x86.Build.0 = Release|x86
{8DF3A610-47F9-4448-B455-952BD57CB5CC}.Release|x86.ActiveCfg = Release|x86
{51D56190-67B7-4A49-BA0A-24010460CCC6}.Debug|x86.Build.0 = Debug|x86
{51D56190-67B7-4A49-BA0A-24010460CCC6}.Debug|x86.ActiveCfg = Debug|x86
{51D56190-67B7-4A49-BA0A-24010460CCC6}.Release|x86.Build.0 = Release|x86
{51D56190-67B7-4A49-BA0A-24010460CCC6}.Release|x86.ActiveCfg = Release|x86
EndGlobalSection
EndGlobal

103
samples/MSTest/MSTest.SharpDevelop/MSTest.SharpDevelop.csproj

@ -0,0 +1,103 @@ @@ -0,0 +1,103 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<PropertyGroup>
<ProjectGuid>{8DF3A610-47F9-4448-B455-952BD57CB5CC}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<OutputType>Library</OutputType>
<RootNamespace>ICSharpCode.MSTest</RootNamespace>
<AssemblyName>MSTest.SharpDevelop</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
<OutputPath>..\..\..\AddIns\Samples\MSTest</OutputPath>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'x86' ">
<PlatformTarget>x86</PlatformTarget>
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
<BaseAddress>4194304</BaseAddress>
<FileAlignment>4096</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DebugSymbols>False</DebugSymbols>
<DebugType>None</DebugType>
<Optimize>True</Optimize>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Reference Include="ICSharpCode.Core">
<HintPath>..\..\..\bin\ICSharpCode.Core.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ICSharpCode.Core.Presentation">
<HintPath>..\..\..\bin\ICSharpCode.Core.Presentation.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ICSharpCode.SharpDevelop">
<HintPath>..\..\..\bin\ICSharpCode.SharpDevelop.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ICSharpCode.SharpDevelop.Dom">
<HintPath>..\..\..\bin\ICSharpCode.SharpDevelop.Dom.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ICSharpCode.SharpDevelop.Widgets">
<HintPath>..\..\..\bin\ICSharpCode.SharpDevelop.Widgets.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="UnitTesting">
<HintPath>..\..\..\AddIns\Analysis\UnitTesting\UnitTesting.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="MSTestApplication.cs" />
<Compile Include="MSTestApplicationCommandLine.cs" />
<Compile Include="MSTestDebugger.cs" />
<Compile Include="MSTestFramework.cs" />
<Compile Include="MSTestOptions.cs" />
<Compile Include="MSTestOptionsPanel.xaml.cs">
<DependentUpon>MSTestOptionsPanel.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="MSTestQualifiedClassName.cs" />
<Compile Include="MSTestResult.cs" />
<Compile Include="MSTestResults.cs" />
<Compile Include="MSTestResultsFileName.cs" />
<Compile Include="MSTestRunner.cs" />
<Compile Include="ProjectItemExtensions.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="MSTest.addin">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<Page Include="MSTestOptionsPanel.xaml" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>

30
samples/MSTest/MSTest.SharpDevelop/MSTest.addin

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
<AddIn
name="MSTest"
author="Matt Ward"
copyright="prj:///doc/copyright.txt"
description="MSTest support">
<Manifest>
<Identity name="ICSharpCode.MSTest"/>
</Manifest>
<Runtime>
<Import assembly=":ICSharpCode.SharpDevelop"/>
<Import assembly="$ICSharpCode.UnitTesting/UnitTesting.dll"/>
<Import assembly="MSTest.SharpDevelop.dll"/>
</Runtime>
<Path name="/SharpDevelop/UnitTesting/TestFrameworks">
<TestFramework
id="mstest"
class="ICSharpCode.MSTest.MSTestFramework"
supportedProjects=".csproj"/>
</Path>
<Path name="/SharpDevelop/Dialogs/OptionsDialog/ToolsOptions">
<OptionPanel
id="MSTestOptionsPanel"
label="MS Test"
class="ICSharpCode.MSTest.MSTestOptionsPanel"/>
</Path>
</AddIn>

46
samples/MSTest/MSTest.SharpDevelop/MSTestApplication.cs

@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
// 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 ICSharpCode.UnitTesting;
namespace ICSharpCode.MSTest
{
public class MSTestApplication
{
SelectedTests selectedTests;
string resultsFileName;
public MSTestApplication(SelectedTests selectedTests, string resultsFileName)
{
this.selectedTests = selectedTests;
this.resultsFileName = resultsFileName;
GetProcessStartInfo();
}
void GetProcessStartInfo()
{
ProcessStartInfo = new ProcessStartInfo(MSTestOptions.MSTestPath, GetCommandLine());
}
string GetCommandLine()
{
var commandLine = new MSTestApplicationCommandLine();
commandLine.AppendQuoted("testcontainer", selectedTests.Project.OutputAssemblyFullPath);
commandLine.AppendQuoted("resultsfile", resultsFileName);
commandLine.Append("detail", "errorstacktrace");
if (selectedTests.NamespaceFilter != null) {
commandLine.Append("test", selectedTests.NamespaceFilter);
} else if (selectedTests.Member != null) {
commandLine.Append("test", selectedTests.Member.FullyQualifiedName);
} else if (selectedTests.Class != null) {
commandLine.Append("test", selectedTests.Class.FullyQualifiedName);
}
return commandLine.ToString();
}
public ProcessStartInfo ProcessStartInfo { get; private set; }
}
}

37
samples/MSTest/MSTest.SharpDevelop/MSTestApplicationCommandLine.cs

@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
// 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.Text;
namespace ICSharpCode.MSTest
{
public class MSTestApplicationCommandLine
{
StringBuilder commandLine = new StringBuilder();
public MSTestApplicationCommandLine()
{
}
public void Append(string argument, string value)
{
AppendFormat("/{0}:{1} ", argument, value);
}
public void AppendQuoted(string argument, string value)
{
AppendFormat("/{0}:\"{1}\" ", argument, value);
}
void AppendFormat(string format, string argument, string value)
{
commandLine.AppendFormat(format, argument, value);
}
public override string ToString()
{
return commandLine.ToString();
}
}
}

134
samples/MSTest/MSTest.SharpDevelop/MSTestDebugger.cs

@ -0,0 +1,134 @@ @@ -0,0 +1,134 @@
// 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.IO;
using ICSharpCode.SharpDevelop.Debugging;
using ICSharpCode.UnitTesting;
namespace ICSharpCode.MSTest
{
public class MSTestDebugger : TestRunnerBase
{
IUnitTestDebuggerService debuggerService;
IUnitTestMessageService messageService;
IDebugger debugger;
string resultsFileName;
public MSTestDebugger()
: this(
new UnitTestDebuggerService(),
new UnitTestMessageService())
{
}
public MSTestDebugger(
IUnitTestDebuggerService debuggerService,
IUnitTestMessageService messageService)
{
this.debuggerService = debuggerService;
this.messageService = messageService;
this.debugger = debuggerService.CurrentDebugger;
}
public override void Start(SelectedTests selectedTests)
{
ProcessStartInfo startInfo = GetProcessStartInfo(selectedTests);
if (IsDebuggerRunning) {
if (CanStopDebugging()) {
debugger.Stop();
Start(startInfo);
}
} else {
Start(startInfo);
}
}
protected override ProcessStartInfo GetProcessStartInfo(SelectedTests selectedTests)
{
resultsFileName = new MSTestResultsFileName(selectedTests).FileName;
CreateDirectoryForResultsFile();
var mstestApplication = new MSTestApplication(selectedTests, resultsFileName);
return mstestApplication.ProcessStartInfo;
}
public bool IsDebuggerRunning {
get { return debuggerService.IsDebuggerLoaded && debugger.IsDebugging; }
}
bool CanStopDebugging()
{
string question = "${res:XML.MainMenu.RunMenu.Compile.StopDebuggingQuestion}";
string caption = "${res:XML.MainMenu.RunMenu.Compile.StopDebuggingTitle}";
return messageService.AskQuestion(question, caption);
}
void CreateDirectoryForResultsFile()
{
string path = Path.GetDirectoryName(resultsFileName);
if (!Directory.Exists(path)) {
Directory.CreateDirectory(path);
}
}
void Start(ProcessStartInfo startInfo)
{
StartDebugger(startInfo);
}
void StartDebugger(ProcessStartInfo startInfo)
{
LogCommandLine(startInfo);
bool running = false;
debugger.DebugStopped += DebugStopped;
try {
debugger.Start(startInfo);
running = true;
} finally {
if (!running) {
debugger.DebugStopped -= DebugStopped;
}
}
}
void DebugStopped(object source, EventArgs e)
{
debugger.DebugStopped -= DebugStopped;
if (File.Exists(resultsFileName)) {
var testResults = new MSTestResults(resultsFileName);
var workbench = new UnitTestWorkbench();
workbench.SafeThreadAsyncCall(() => UpdateTestResults(testResults));
} else {
messageService.ShowFormattedErrorMessage("Unable to find test results file: '{0}'.", resultsFileName);
OnAllTestsFinished(source, e);
}
}
void UpdateTestResults(MSTestResults testResults)
{
foreach (TestResult result in testResults) {
OnTestFinished(this, new TestFinishedEventArgs(result));
}
OnAllTestsFinished(this, new EventArgs());
}
public override void Stop()
{
if (debugger.IsDebugging) {
debugger.Stop();
}
}
public override void Dispose()
{
Stop();
try {
File.Delete(resultsFileName);
} catch { }
}
}
}

109
samples/MSTest/MSTest.SharpDevelop/MSTestFramework.cs

@ -0,0 +1,109 @@ @@ -0,0 +1,109 @@
// 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 ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.UnitTesting;
namespace ICSharpCode.MSTest
{
public class MSTestFramework : ITestFramework
{
public bool IsBuildNeededBeforeTestRun {
get { return true; }
}
public bool IsTestMember(IMember member)
{
var method = member as IMethod;
if (method == null)
return false;
return IsTestMethod(method);
}
bool IsTestMethod(IMethod method)
{
foreach (IAttribute attribute in method.Attributes) {
if (IsMSTestMethodAttribute(attribute)) {
return true;
}
}
return false;
}
bool IsMSTestMethodAttribute(IAttribute attribute)
{
return IsMSTestMethodAttribute(attribute.AttributeType.FullyQualifiedName);
}
bool IsMSTestMethodAttribute(string name)
{
return
name == "TestMethod" ||
name == "TestMethodAttribute" ||
name == "Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute";
}
public bool IsTestClass(IClass c)
{
if ((c == null) || (c.IsAbstract))
return false;
foreach (IAttribute attribute in c.Attributes) {
if (IsMSTestClassAttribute(attribute)) {
return true;
}
}
return false;
}
bool IsMSTestClassAttribute(IAttribute attribute)
{
return IsMSTestClassAttribute(attribute.AttributeType.FullyQualifiedName);
}
bool IsMSTestClassAttribute(string name)
{
return
name == "TestClass" ||
name == "TestClassAttribute" ||
name == "Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute";
}
public bool IsTestProject(IProject project)
{
if (project == null)
return false;
foreach (ProjectItem item in project.Items) {
if (item.IsMSTestAssemblyReference()) {
return true;
}
}
return false;
}
public IEnumerable<TestMember> GetTestMembersFor(IClass c)
{
return c.Methods
.Where(IsTestMethod)
.Select(method => new TestMember(method));
}
public ITestRunner CreateTestRunner()
{
return new MSTestRunner();
}
public ITestRunner CreateTestDebugger()
{
return new MSTestDebugger();
}
}
}

26
samples/MSTest/MSTest.SharpDevelop/MSTestOptions.cs

@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
// 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.Core;
namespace ICSharpCode.MSTest
{
public static class MSTestOptions
{
static Properties properties = PropertyService.Get("MSTestOptions", new Properties());
public static string MSTestPath {
get { return properties.Get<string>("MSTestPath", GetDefaultMSTestPath()); }
set { properties.Set("MSTestPath", value); }
}
static string GetDefaultMSTestPath()
{
return Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86),
@"Microsoft Visual Studio 10.0\Common7\IDE\mstest.exe");
}
}
}

32
samples/MSTest/MSTest.SharpDevelop/MSTestOptionsPanel.xaml

@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
<gui:OptionPanel
x:Class="ICSharpCode.MSTest.MSTestOptionsPanel"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:core="http://icsharpcode.net/sharpdevelop/core"
xmlns:sd="clr-namespace:ICSharpCode.SharpDevelop"
xmlns:gui="clr-namespace:ICSharpCode.SharpDevelop.Gui;assembly=ICSharpCode.SharpDevelop"
xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ICSharpCode.SharpDevelop.Gui.OptionPanels">
<StackPanel>
<GroupBox Header="MS Test">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Label Content="Path:"/>
<TextBox
Grid.Column="1"
Text="{Binding MSTestPath}"/>
<Button
Grid.Column="2"
Content="..."
Command="{Binding BrowseCommand}"
Padding="4, 0"
Margin="4,0"/>
</Grid>
</GroupBox>
</StackPanel>
</gui:OptionPanel>

64
samples/MSTest/MSTest.SharpDevelop/MSTestOptionsPanel.xaml.cs

@ -0,0 +1,64 @@ @@ -0,0 +1,64 @@
// 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.ComponentModel;
using System.Windows.Controls;
using System.Windows.Input;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Widgets;
using Microsoft.Win32;
namespace ICSharpCode.MSTest
{
public partial class MSTestOptionsPanel : OptionPanel, INotifyPropertyChanged
{
string msTestPath;
bool changed;
public MSTestOptionsPanel()
{
InitializeComponent();
BrowseCommand = new RelayCommand(Browse);
msTestPath = MSTestOptions.MSTestPath;
DataContext = this;
}
public ICommand BrowseCommand { get; private set; }
void Browse()
{
var dialog = new OpenFileDialog();
if (dialog.ShowDialog() ?? false) {
MSTestPath = dialog.FileName;
}
}
public string MSTestPath {
get { return msTestPath; }
set {
msTestPath = value;
changed = true;
OnPropertyChanged("MSTestPath");
}
}
public override bool SaveOptions()
{
if (changed) {
MSTestOptions.MSTestPath = msTestPath;
}
return true;
}
public event PropertyChangedEventHandler PropertyChanged;
void OnPropertyChanged(string name)
{
if (PropertyChanged != null) {
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
}
}

31
samples/MSTest/MSTest.SharpDevelop/MSTestQualifiedClassName.cs

@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
// 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;
namespace ICSharpCode.MSTest
{
public class MSTestQualifiedClassName
{
public MSTestQualifiedClassName(string qualifiedClassName)
{
ClassName = GetClassName(qualifiedClassName);
}
string GetClassName(string qualifiedClassName)
{
int index = qualifiedClassName.IndexOf(',');
if (index > 0) {
return qualifiedClassName.Substring(0, index);
}
return qualifiedClassName;
}
public string ClassName { get; private set; }
public string GetQualifiedMethodName(string methodName)
{
return String.Format("{0}.{1}", ClassName, methodName);
}
}
}

93
samples/MSTest/MSTest.SharpDevelop/MSTestResult.cs

@ -0,0 +1,93 @@ @@ -0,0 +1,93 @@
// 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.Dom;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.UnitTesting;
namespace ICSharpCode.MSTest
{
public class MSTestResult
{
public MSTestResult(string id)
{
this.Id = id;
}
public string Id { get; private set; }
public string Name { get; private set; }
public TestResultType ResultType { get; private set; }
public string StackTrace { get; set; }
public string Message { get; set; }
public void UpdateTestName(string qualifiedClassName, string methodName)
{
UpdateTestName(new MSTestQualifiedClassName(qualifiedClassName), methodName);
}
public void UpdateTestName(MSTestQualifiedClassName qualifiedClassName, string methodName)
{
this.Name = qualifiedClassName.GetQualifiedMethodName(methodName);
}
public void UpdateResult(string result)
{
if (result == "Passed") {
this.ResultType = TestResultType.Success;
} else if (result == "Failed") {
this.ResultType = TestResultType.Failure;
}
}
public bool IsError {
get { return ResultType == TestResultType.Failure; }
}
public TestResult ToTestResult()
{
return new TestResult(Name) {
ResultType = ResultType,
Message = GetMessage(),
StackTrace = StackTrace,
StackTraceFilePosition = GetStackTraceFilePosition()
};
}
string GetMessage()
{
if (String.IsNullOrEmpty(Message))
return String.Empty;
int index = Message.IndexOf('\n');
if (index > 0) {
return Message.Substring(index + 1);
}
return Message;
}
FilePosition GetStackTraceFilePosition()
{
if (!String.IsNullOrEmpty(StackTrace)) {
return ParseFilePositionFromStackTrace();
}
return FilePosition.Empty;
}
FilePosition ParseFilePositionFromStackTrace()
{
FileLineReference fileLineRef = OutputTextLineParser.GetNUnitOutputFileLineReference(StackTrace, true);
if (fileLineRef != null) {
return CreateFilePosition(fileLineRef);
}
return FilePosition.Empty;
}
FilePosition CreateFilePosition(FileLineReference fileLineRef)
{
string fileName = Path.GetFullPath(fileLineRef.FileName);
return new FilePosition(fileName, fileLineRef.Line, fileLineRef.Column + 1);
}
}
}

91
samples/MSTest/MSTest.SharpDevelop/MSTestResults.cs

@ -0,0 +1,91 @@ @@ -0,0 +1,91 @@
// 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.Xml;
using ICSharpCode.UnitTesting;
namespace ICSharpCode.MSTest
{
public class MSTestResults : List<TestResult>
{
Dictionary<string, MSTestResult> testDefinitions = new Dictionary<string, MSTestResult>();
public MSTestResults(string fileName)
: this(new XmlTextReader(fileName))
{
}
public MSTestResults(XmlTextReader reader)
{
ReadResults(reader);
}
void ReadResults(XmlTextReader reader)
{
while (reader.Read()) {
switch (reader.NodeType) {
case XmlNodeType.Element:
if (reader.Name == "UnitTest") {
ReadUnitTest(reader);
} else if (reader.Name == "UnitTestResult") {
ReadUnitTestResult(reader);
}
break;
}
}
}
void ReadUnitTest(XmlTextReader reader)
{
var testResult = new MSTestResult(reader.GetAttribute("id"));
testDefinitions.Add(testResult.Id, testResult);
if (reader.ReadToDescendant("TestMethod")) {
testResult.UpdateTestName(reader.GetAttribute("className"), reader.GetAttribute("name"));
}
}
void ReadUnitTestResult(XmlTextReader reader)
{
string testId = reader.GetAttribute("testId");
MSTestResult testResult = FindTestResult(testId);
if (testResult != null) {
testResult.UpdateResult(reader.GetAttribute("outcome"));
if (testResult.IsError) {
ReadErrorInformation(testResult, reader);
}
Add(testResult.ToTestResult());
}
}
void ReadErrorInformation(MSTestResult testResult, XmlTextReader reader)
{
while (reader.Read()) {
switch (reader.NodeType) {
case XmlNodeType.EndElement:
if (reader.Name == "UnitTestResult") {
return;
}
break;
case XmlNodeType.Element:
if (reader.Name == "Message") {
testResult.Message = reader.ReadElementContentAsString();
} else if (reader.Name == "StackTrace") {
testResult.StackTrace = reader.ReadElementContentAsString();
}
break;
}
}
}
MSTestResult FindTestResult(string testId)
{
MSTestResult testResult = null;
testDefinitions.TryGetValue(testId, out testResult);
return testResult;
}
}
}

27
samples/MSTest/MSTest.SharpDevelop/MSTestResultsFileName.cs

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
// 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.UnitTesting;
namespace ICSharpCode.MSTest
{
public class MSTestResultsFileName
{
public MSTestResultsFileName(SelectedTests selectedTests)
{
FileName = GetFileName(selectedTests);
}
public string FileName { get; private set; }
string GetFileName(SelectedTests selectedTests)
{
return Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
"Temp",
selectedTests.Project.Name + "-Results.trx");
}
}
}

138
samples/MSTest/MSTest.SharpDevelop/MSTestRunner.cs

@ -0,0 +1,138 @@ @@ -0,0 +1,138 @@
// 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.IO;
using ICSharpCode.SharpDevelop.Util;
using ICSharpCode.UnitTesting;
namespace ICSharpCode.MSTest
{
public class MSTestRunner : TestRunnerBase
{
IUnitTestProcessRunner processRunner;
IFileSystem fileSystem;
IUnitTestMessageService messageService;
string resultsFileName;
public MSTestRunner()
: this(new UnitTestProcessRunner(),
new UnitTestFileService(),
new UnitTestMessageService())
{
}
public MSTestRunner(
IUnitTestProcessRunner processRunner,
IFileSystem fileSystem,
IUnitTestMessageService messageService)
{
this.processRunner = processRunner;
this.fileSystem = fileSystem;
this.messageService = messageService;
processRunner.LogStandardOutputAndError = false;
processRunner.OutputLineReceived += OutputLineReceived;
processRunner.ErrorLineReceived += OutputLineReceived;
processRunner.ProcessExited += ProcessRunnerExited;
}
void ProcessRunnerExited(object source, EventArgs e)
{
// Read all tests.
if (FileExists(resultsFileName)) {
var testResults = new MSTestResults(resultsFileName);
var workbench = new UnitTestWorkbench();
workbench.SafeThreadAsyncCall(() => UpdateTestResults(testResults));
} else {
messageService.ShowFormattedErrorMessage("Unable to find test results file: '{0}'.", resultsFileName);
OnAllTestsFinished(source, e);
}
}
void UpdateTestResults(MSTestResults testResults)
{
foreach (TestResult result in testResults) {
OnTestFinished(this, new TestFinishedEventArgs(result));
}
OnAllTestsFinished(this, new EventArgs());
}
void OutputLineReceived(object source, LineReceivedEventArgs e)
{
OnMessageReceived(e.Line);
}
public override void Start(SelectedTests selectedTests)
{
ProcessStartInfo startInfo = GetProcessStartInfo(selectedTests);
TryDeleteResultsFile();
Start(startInfo);
}
protected override ProcessStartInfo GetProcessStartInfo(SelectedTests selectedTests)
{
resultsFileName = new MSTestResultsFileName(selectedTests).FileName;
CreateDirectoryForResultsFile();
var mstestApplication = new MSTestApplication(selectedTests, resultsFileName);
return mstestApplication.ProcessStartInfo;
}
void Start(ProcessStartInfo processStartInfo)
{
LogCommandLine(processStartInfo);
if (FileExists(processStartInfo.FileName)) {
processRunner.WorkingDirectory = processStartInfo.WorkingDirectory;
processRunner.Start(processStartInfo.FileName, processStartInfo.Arguments);
} else {
ShowApplicationDoesNotExistMessage(processStartInfo.FileName);
}
}
void CreateDirectoryForResultsFile()
{
string path = Path.GetDirectoryName(resultsFileName);
if (!Directory.Exists(path)) {
Directory.CreateDirectory(path);
}
}
bool FileExists(string fileName)
{
return fileSystem.FileExists(fileName);
}
void ShowApplicationDoesNotExistMessage(string fileName)
{
string resourceString = "${res:ICSharpCode.UnitTesting.TestRunnerNotFoundMessageFormat}";
messageService.ShowFormattedErrorMessage(resourceString, fileName);
}
public override void Stop()
{
processRunner.Kill();
}
public override void Dispose()
{
processRunner.ErrorLineReceived -= OutputLineReceived;
processRunner.OutputLineReceived -= OutputLineReceived;
processRunner.ProcessExited -= ProcessRunnerExited;
TryDeleteResultsFile();
}
void TryDeleteResultsFile()
{
try {
Console.WriteLine("Deleting results file: " + resultsFileName);
File.Delete(resultsFileName);
} catch (Exception ex) {
Console.WriteLine(ex.Message);
}
}
}
}

28
samples/MSTest/MSTest.SharpDevelop/ProjectItemExtensions.cs

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
// 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.Project;
namespace ICSharpCode.MSTest
{
public static class ProjectItemExtensions
{
public static bool IsMSTestAssemblyReference(this ProjectItem item)
{
var referenceItem = item as ReferenceProjectItem;
if (referenceItem == null)
return false;
return IsMSTestAssemblyReference(referenceItem);
}
public static bool IsMSTestAssemblyReference(this ReferenceProjectItem item)
{
return String.Equals(
item.ShortName,
"Microsoft.VisualStudio.QualityTools.UnitTestFramework",
StringComparison.OrdinalIgnoreCase);
}
}
}

31
samples/MSTest/MSTest.SharpDevelop/Properties/AssemblyInfo.cs

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

4
src/AddIns/Analysis/CodeCoverage/Test/Testing/CodeCoverageTestRunnerTests.cs

@ -118,7 +118,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing @@ -118,7 +118,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing
string expectedCommandLine =
"--target \"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " +
"--target-work-dir \"c:\\projects\\MyTests\\bin\\Debug\" " +
"--target-args \"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /results=\\\"d:\\temp\\results.txt\\\"\" " +
"--target-args \"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml /results=\\\"d:\\temp\\results.txt\\\"\" " +
"--output \"c:\\projects\\MyTests\\PartCover\\coverage.xml\" " +
"--include [MyTests]*";
@ -218,7 +218,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing @@ -218,7 +218,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing
"\"d:\\sharpdevelop\\bin\\Tools\\PartCover\\PartCover.exe\" " +
"--target \"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " +
"--target-work-dir \"c:\\projects\\MyTests\\bin\\Debug\" " +
"--target-args \"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\"\" " +
"--target-args \"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml\" " +
"--output \"c:\\projects\\MyTests\\PartCover\\coverage.xml\" " +
"--include [*]*";
}

4
src/AddIns/Analysis/CodeCoverage/Test/Testing/PartCoverApplicationTests.cs

@ -133,7 +133,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing @@ -133,7 +133,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing
string expectedCommandLine =
"--target \"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " +
"--target-work-dir \"c:\\projects\\MyTests\\bin\\Debug\" " +
"--target-args \"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\"\" " +
"--target-args \"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml\" " +
"--output \"c:\\projects\\MyTests\\PartCover\\coverage.xml\" " +
"--include [*]*";
@ -157,7 +157,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing @@ -157,7 +157,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing
string expectedCommandLine =
"--target \"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " +
"--target-work-dir \"c:\\projects\\MyTests\\bin\\Debug\" " +
"--target-args \"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\"\" " +
"--target-args \"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml\" " +
"--output \"c:\\projects\\MyTests\\PartCover\\coverage.xml\" " +
"--include [MyTests]* " +
"--include [MoreTests]* " +

10
src/AddIns/Analysis/UnitTesting/Src/NUnitConsoleCommandLine.cs → src/AddIns/Analysis/UnitTesting/Src/NUnitConsoleApplication.cs

@ -51,6 +51,7 @@ namespace ICSharpCode.UnitTesting @@ -51,6 +51,7 @@ namespace ICSharpCode.UnitTesting
NoDots = options.NoDots;
Labels = options.Labels;
ShadowCopy = !options.NoShadow;
NoXmlOutputFile = !options.CreateXmlOutputFile;
if (options.CreateXmlOutputFile) {
GenerateXmlOutputFileName();
@ -121,6 +122,11 @@ namespace ICSharpCode.UnitTesting @@ -121,6 +122,11 @@ namespace ICSharpCode.UnitTesting
/// </summary>
public string XmlOutputFile;
/// <summary>
/// Use /noxml.
/// </summary>
public bool NoXmlOutputFile = true;
/// <summary>
/// Fixture to test. Null = test all fixtures.
/// </summary>
@ -195,7 +201,9 @@ namespace ICSharpCode.UnitTesting @@ -195,7 +201,9 @@ namespace ICSharpCode.UnitTesting
b.Append(" /labels");
if (NoDots)
b.Append(" /nodots");
if (XmlOutputFile != null) {
if (NoXmlOutputFile) {
b.Append(" /noxml");
} else if (XmlOutputFile != null) {
b.Append(" /xml=\"");
b.Append(XmlOutputFile);
b.Append('"');

29
src/AddIns/Analysis/UnitTesting/Test/Frameworks/NUnitConsoleCommandLineTests.cs

@ -32,6 +32,7 @@ namespace UnitTesting.Tests.Frameworks @@ -32,6 +32,7 @@ namespace UnitTesting.Tests.Frameworks
NUnitConsoleApplication app = new NUnitConsoleApplication(selectedTests);
app.NoLogo = false;
app.ShadowCopy = true;
app.NoXmlOutputFile = false;
app.Results = @"C:\results.txt";
string expectedCommandLine = "\"C:\\Projects\\MyTests\\MyTests.dll\" /results=\"C:\\results.txt\"";
@ -45,6 +46,7 @@ namespace UnitTesting.Tests.Frameworks @@ -45,6 +46,7 @@ namespace UnitTesting.Tests.Frameworks
NUnitConsoleApplication app = new NUnitConsoleApplication(selectedTests);
app.NoLogo = true;
app.ShadowCopy = true;
app.NoXmlOutputFile = false;
string expectedCommandLine = "\"C:\\Projects\\MyTests\\MyTests.dll\" /nologo";
Assert.AreEqual(expectedCommandLine, app.GetArguments());
@ -57,6 +59,7 @@ namespace UnitTesting.Tests.Frameworks @@ -57,6 +59,7 @@ namespace UnitTesting.Tests.Frameworks
NUnitConsoleApplication app = new NUnitConsoleApplication(selectedTests);
app.NoLogo = false;
app.ShadowCopy = false;
app.NoXmlOutputFile = false;
string expectedCommandLine = "\"C:\\Projects\\MyTests\\MyTests.dll\" /noshadow";
Assert.AreEqual(expectedCommandLine, app.GetArguments());
@ -70,6 +73,7 @@ namespace UnitTesting.Tests.Frameworks @@ -70,6 +73,7 @@ namespace UnitTesting.Tests.Frameworks
app.NoLogo = false;
app.ShadowCopy = true;
app.NoThread = true;
app.NoXmlOutputFile = false;
string expectedCommandLine = "\"C:\\Projects\\MyTests\\MyTests.dll\" /nothread";
Assert.AreEqual(expectedCommandLine, app.GetArguments());
@ -83,6 +87,7 @@ namespace UnitTesting.Tests.Frameworks @@ -83,6 +87,7 @@ namespace UnitTesting.Tests.Frameworks
app.NoLogo = false;
app.ShadowCopy = true;
app.NoDots = true;
app.NoXmlOutputFile = false;
string expectedCommandLine = "\"C:\\Projects\\MyTests\\MyTests.dll\" /nodots";
Assert.AreEqual(expectedCommandLine, app.GetArguments());
@ -96,6 +101,7 @@ namespace UnitTesting.Tests.Frameworks @@ -96,6 +101,7 @@ namespace UnitTesting.Tests.Frameworks
app.NoLogo = false;
app.ShadowCopy = true;
app.Labels = true;
app.NoXmlOutputFile = false;
string expectedCommandLine = "\"C:\\Projects\\MyTests\\MyTests.dll\" /labels";
Assert.AreEqual(expectedCommandLine, app.GetArguments());
@ -109,6 +115,7 @@ namespace UnitTesting.Tests.Frameworks @@ -109,6 +115,7 @@ namespace UnitTesting.Tests.Frameworks
app.NoLogo = false;
app.ShadowCopy = true;
app.Fixture = "TestFixture";
app.NoXmlOutputFile = false;
string expectedCommandLine = "\"C:\\Projects\\MyTests\\MyTests.dll\" /run=\"TestFixture\"";
Assert.AreEqual(expectedCommandLine, app.GetArguments());
@ -122,6 +129,7 @@ namespace UnitTesting.Tests.Frameworks @@ -122,6 +129,7 @@ namespace UnitTesting.Tests.Frameworks
app.NoLogo = false;
app.ShadowCopy = true;
app.NamespaceFilter = "TestFixture";
app.NoXmlOutputFile = false;
string expectedCommandLine = "\"C:\\Projects\\MyTests\\MyTests.dll\" /run=\"TestFixture\"";
Assert.AreEqual(expectedCommandLine, app.GetArguments());
@ -135,11 +143,26 @@ namespace UnitTesting.Tests.Frameworks @@ -135,11 +143,26 @@ namespace UnitTesting.Tests.Frameworks
app.NoLogo = false;
app.ShadowCopy = true;
app.XmlOutputFile = @"C:\NUnit.xml";
app.NoXmlOutputFile = false;
string expectedCommandLine = "\"C:\\Projects\\MyTests\\MyTests.dll\" /xml=\"C:\\NUnit.xml\"";
Assert.AreEqual(expectedCommandLine, app.GetArguments());
}
[Test]
public void NoXmlWhenXmlOutputFileSpecified()
{
SelectedTests selectedTests = new SelectedTests(project);
NUnitConsoleApplication app = new NUnitConsoleApplication(selectedTests);
app.NoLogo = false;
app.ShadowCopy = true;
app.XmlOutputFile = @"C:\NUnit.xml";
app.NoXmlOutputFile = true;
string expectedCommandLine = "\"C:\\Projects\\MyTests\\MyTests.dll\" /noxml";
Assert.AreEqual(expectedCommandLine, app.GetArguments());
}
[Test]
public void TestMethod()
{
@ -149,6 +172,7 @@ namespace UnitTesting.Tests.Frameworks @@ -149,6 +172,7 @@ namespace UnitTesting.Tests.Frameworks
app.ShadowCopy = true;
app.Fixture = "TestFixture";
app.Test = "Test";
app.NoXmlOutputFile = false;
string expectedCommandLine = "\"C:\\Projects\\MyTests\\MyTests.dll\" /run=\"TestFixture.Test\"";
Assert.AreEqual(expectedCommandLine, app.GetArguments());
@ -163,6 +187,7 @@ namespace UnitTesting.Tests.Frameworks @@ -163,6 +187,7 @@ namespace UnitTesting.Tests.Frameworks
NUnitConsoleApplication app = new NUnitConsoleApplication(selectedTests);
app.NoLogo = false;
app.ShadowCopy = true;
app.NoXmlOutputFile = false;
string expectedCommandLine = "\"C:\\Projects\\MyTests\\MyTests.dll\" /run=\"TestFixture.Test\"";
Assert.AreEqual(expectedCommandLine, app.GetArguments());
@ -175,6 +200,7 @@ namespace UnitTesting.Tests.Frameworks @@ -175,6 +200,7 @@ namespace UnitTesting.Tests.Frameworks
NUnitConsoleApplication app = new NUnitConsoleApplication(selectedTests);
app.NoLogo = false;
app.ShadowCopy = true;
app.NoXmlOutputFile = false;
string expectedCommandLine = "\"C:\\Projects\\MyTests\\MyTests.dll\" /run=\"Project.MyTests\"";
Assert.AreEqual(expectedCommandLine, app.GetArguments());
@ -187,6 +213,7 @@ namespace UnitTesting.Tests.Frameworks @@ -187,6 +213,7 @@ namespace UnitTesting.Tests.Frameworks
NUnitConsoleApplication app = new NUnitConsoleApplication(selectedTests);
app.NoLogo = true;
app.ShadowCopy = true;
app.NoXmlOutputFile = false;
FileUtility.ApplicationRootPath = @"C:\SharpDevelop";
@ -211,6 +238,7 @@ namespace UnitTesting.Tests.Frameworks @@ -211,6 +238,7 @@ namespace UnitTesting.Tests.Frameworks
app.NoLogo = false;
app.ShadowCopy = true;
app.Results = @"C:\results.txt";
app.NoXmlOutputFile = false;
string expectedCommandLine =
"\"C:\\Projects\\MyTests\\MyTests.dll\" " +
@ -235,6 +263,7 @@ namespace UnitTesting.Tests.Frameworks @@ -235,6 +263,7 @@ namespace UnitTesting.Tests.Frameworks
NUnitConsoleApplication app = new NUnitConsoleApplication(selectedTests);
app.NoLogo = false;
app.ShadowCopy = true;
app.NoXmlOutputFile = false;
string expectedCommandLine = "\"C:\\Projects\\MyTests\\MyTests.dll\" " +
"/run=\"MyTests.TestFixture+InnerTest\"";

2
src/AddIns/Analysis/UnitTesting/Test/Frameworks/NUnitConsoleProcessStartInfoTestFixture.cs

@ -50,7 +50,7 @@ namespace UnitTesting.Tests.Frameworks @@ -50,7 +50,7 @@ namespace UnitTesting.Tests.Frameworks
public void CommandLineArgumentsAreNUnitConsoleExeCommandLineArguments()
{
string expectedCommandLine =
"\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\"";
"\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\" /noxml";
Assert.AreEqual(expectedCommandLine, info.Arguments);
}

2
src/AddIns/Analysis/UnitTesting/Test/Tree/RunNUnitTestsForMethodTestFixture.cs

@ -173,7 +173,7 @@ namespace UnitTesting.Tests.Tree @@ -173,7 +173,7 @@ namespace UnitTesting.Tests.Tree
StartNUnitTestRunner();
string expectedArgs =
"\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\" " +
"\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\" /noxml " +
"/results=\"c:\\temp\\tmp66.tmp\" " +
"/run=\"MyTests.MyTestClass.MyTestMethod\"";
Assert.AreEqual(expectedArgs, context.MockProcessRunner.CommandArgumentsPassedToStartMethod);

4
src/AddIns/Analysis/UnitTesting/Test/Tree/RunNUnitTestsWithDebuggerTestFixture.cs

@ -57,7 +57,7 @@ namespace UnitTesting.Tests.Tree @@ -57,7 +57,7 @@ namespace UnitTesting.Tests.Tree
StartTestDebugger();
string expectedArguments =
"\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\" " +
"/noshadow " +
"/noshadow /noxml " +
"/results=\"c:\\temp\\tmp66.tmp\" " +
"/run=\"MyTests.MyTestClass.MyTestMethod\"";
@ -167,7 +167,7 @@ namespace UnitTesting.Tests.Tree @@ -167,7 +167,7 @@ namespace UnitTesting.Tests.Tree
string commandLine = "\"C:\\SharpDevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " +
"\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\" " +
"/noshadow " +
"/noshadow /noxml " +
"/results=\"c:\\temp\\tmp66.tmp\" " +
"/run=\"MyTests.MyTestClass.MyTestMethod\"";
Assert.AreEqual(commandLine, message);

2
src/AddIns/Analysis/UnitTesting/Test/Tree/RunTestInPadCommandTestFixture.cs

@ -79,7 +79,7 @@ namespace UnitTesting.Tests.Tree @@ -79,7 +79,7 @@ namespace UnitTesting.Tests.Tree
{
runCommand.Run();
buildProject.FireBuildCompleteEvent();
string expectedArgs = "\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\"";
string expectedArgs = "\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\" /noxml";
Assert.AreEqual(expectedArgs, processRunner.CommandArgumentsPassedToStartMethod);
}

4
src/AddIns/Analysis/UnitTesting/Test/Tree/RunTestWithDebuggerCommandTestFixture.cs

@ -34,7 +34,7 @@ namespace UnitTesting.Tests.Tree @@ -34,7 +34,7 @@ namespace UnitTesting.Tests.Tree
public void DebuggerStartsUnitTestApplicationWithCorrectCommandLineArguments()
{
string expectedArguments =
"\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\"";
"\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\" /noxml";
string actualArguments = debuggerService.MockDebugger.ProcessStartInfo.Arguments;
Assert.AreEqual(expectedArguments, actualArguments);
@ -54,7 +54,7 @@ namespace UnitTesting.Tests.Tree @@ -54,7 +54,7 @@ namespace UnitTesting.Tests.Tree
{
string expectedText =
"\"D:\\SharpDevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " +
"\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\"\r\n";
"\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\" /noxml\r\n";
string actualText = context.UnitTestCategory.Text;
Assert.AreEqual(expectedText, actualText);

1
src/AddIns/Analysis/UnitTesting/Test/Utils/MockCSharpProject.cs

@ -21,6 +21,7 @@ namespace UnitTesting.Tests.Utils @@ -21,6 +21,7 @@ namespace UnitTesting.Tests.Utils
: base(new ProjectCreateInformation {
Solution = solution,
ProjectName = name,
Platform = "x86",
TargetFramework = TargetFramework.Net40Client,
OutputProjectFileName = "c:\\projects\\" + name + "\\" + name + ".csproj"
})

2
src/AddIns/Analysis/UnitTesting/UnitTesting.csproj

@ -126,7 +126,7 @@ @@ -126,7 +126,7 @@
<Compile Include="Src\TestTreeView.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Src\NUnitConsoleCommandLine.cs" />
<Compile Include="Src\NUnitConsoleApplication.cs" />
<Compile Include="Src\AbstractRunTestCommand.cs" />
<Compile Include="Configuration\AssemblyInfo.cs" />
<Compile Include="..\..\..\Main\GlobalAssemblyInfo.cs">

1
src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj

@ -231,7 +231,6 @@ @@ -231,7 +231,6 @@
<Compile Include="Src\SelectedMvcFolder.cs" />
<Compile Include="Src\SelectedMvcViewFolder.cs" />
<Compile Include="Src\SlideBehaviour.cs" />
<Compile Include="Src\ViewInBrowser.cs" />
<Compile Include="Src\ViewModelBase.cs" />
<Compile Include="Src\VisualStudioProjectExtension.cs" />
<Compile Include="Src\WebBehavior.cs" />

77
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/ViewInBrowser.cs

@ -1,77 +0,0 @@ @@ -1,77 +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.IO;
//using System.Linq;
//
//using ICSharpCode.Core;
//using ICSharpCode.SharpDevelop.Gui.OptionPanels;
//using ICSharpCode.SharpDevelop.Project;
//using ICSharpCode.SharpDevelop.Project.Commands;
//
//namespace ICSharpCode.AspNet.Mvc
//{
// public class ViewInBrowser : AbstractMenuCommand
// {
// public override void Run()
// {
// var node = ProjectBrowserPad.Instance.SelectedNode as FileNode;
// if (node == null) {
// return;
// }
//
// var project = ProjectService.CurrentProject as CompilableProject;
// if (project == null) {
// return;
// }
//
// if (!project.IsWebProject) {
// MessageService.ShowError("${res:ProjectComponent.ContextMenu.NotAWebProject}");
// return;
// }
//
// if (!WebProjectService.IsIISOrIISExpressInstalled) {
// MessageService.ShowError("${res:ICSharpCode.WebProjectOptionsPanel.IISNotFound}");
// return;
// }
//
// string fileName = node.FileName;
//
//// // set project options
//// project.StartAction = StartAction.StartURL;
//// string directoryName = Path.GetDirectoryName(project.FileName) + "\\";
//// project.StartUrl = fileName.Replace(directoryName, "/").Replace("\\", "/");
//
// // set web server options
// string projectName = project.Name;
// WebProjectOptions existingOptions = WebProjectsOptions.Instance.GetWebProjectOptions(projectName);
//
// var options = new WebProjectOptions {
// Data = new WebProjectDebugData {
// WebServer = WebProjectService.IsIISExpressInstalled ? WebServer.IISExpress : WebServer.IIS,
// Port = (existingOptions != null && existingOptions.Data != null) ? existingOptions.Data.Port : "8080", //TODO: port collision detection
// ProjectUrl = string.Format("{0}/{1}", WebBehavior.LocalHost, project.Name)
// },
// ProjectName = projectName
// };
//
// if (options.Data.WebServer == WebServer.IISExpress) {
// options.Data.ProjectUrl = string.Format(
// @"{0}:{1}/{2}", WebBehavior.LocalHost, options.Data.Port, projectName);
// }
//
// WebProjectsOptions.Instance.SetWebProjectOptions(projectName, options);
//
// // create virtual directory
// string error = WebProjectService.CreateVirtualDirectory(
// options.Data.WebServer,
// projectName,
// Path.GetDirectoryName(ProjectService.CurrentProject.FileName));
// LoggingService.Info(error ?? string.Empty);
//
// // RunProject
// new RunProject().Run();
// }
// }
//}

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

@ -46,8 +46,7 @@ namespace CSharpBinding @@ -46,8 +46,7 @@ namespace CSharpBinding
Init();
}
public const string DefaultTargetsFile = @"$(MSBuildBinPath)\Microsoft.CSharp.Targets";
public const string ExtendedTargetsFile = @"$(SharpDevelopBinPath)\SharpDevelop.Build.CSharp.targets";
public const string DefaultTargetsFile = @"$(MSBuildToolsPath)\Microsoft.CSharp.targets";
public CSharpProject(ProjectCreateInformation info)
: base(info)
@ -80,13 +79,35 @@ namespace CSharpBinding @@ -80,13 +79,35 @@ namespace CSharpBinding
}
}
protected override ProjectBehavior CreateDefaultBehavior()
{
return new CSharpProjectBehavior(this, base.CreateDefaultBehavior());
}
}
public class CSharpProjectBehavior : ProjectBehavior
{
public CSharpProjectBehavior(CSharpProject project, ProjectBehavior next = null)
: base(project, next)
{
}
public override ItemType GetDefaultItemType(string fileName)
{
if (string.Equals(Path.GetExtension(fileName), ".cs", StringComparison.OrdinalIgnoreCase))
return ItemType.Compile;
else
return base.GetDefaultItemType(fileName);
}
static readonly CompilerVersion msbuild20 = new CompilerVersion(new Version(2, 0), "C# 2.0");
static readonly CompilerVersion msbuild35 = new CompilerVersion(new Version(3, 5), "C# 3.0");
static readonly CompilerVersion msbuild40 = new CompilerVersion(new Version(4, 0), DotnetDetection.IsDotnet45Installed() ? "C# 5.0" : "C# 4.0");
public override CompilerVersion CurrentCompilerVersion {
get {
switch (MinimumSolutionVersion) {
switch (Project.MinimumSolutionVersion) {
case Solution.SolutionVersionVS2005:
return msbuild20;
case Solution.SolutionVersionVS2008:
@ -110,65 +131,5 @@ namespace CSharpBinding @@ -110,65 +131,5 @@ namespace CSharpBinding
versions.Add(msbuild40);
return versions;
}
/*
protected override void AddOrRemoveExtensions()
{
// Test if SharpDevelop-Build extensions are required
bool needExtensions = false;
foreach (var p in GetAllProperties("TargetFrameworkVersion")) {
if (p.IsImported == false) {
if (p.Value.StartsWith("CF")) {
needExtensions = true;
}
}
}
foreach (Microsoft.Build.BuildEngine.Import import in MSBuildProject.Imports) {
if (needExtensions) {
if (DefaultTargetsFile.Equals(import.ProjectPath, StringComparison.OrdinalIgnoreCase)) {
//import.ProjectPath = extendedTargets;
MSBuildInternals.SetImportProjectPath(this, import, ExtendedTargetsFile);
// Workaround for SD2-1490. It would be better if the project browser could refresh itself
// when necessary.
ProjectBrowserPad.Instance.ProjectBrowserControl.RefreshView();
break;
}
} else {
if (ExtendedTargetsFile.Equals(import.ProjectPath, StringComparison.OrdinalIgnoreCase)) {
//import.ProjectPath = defaultTargets;
MSBuildInternals.SetImportProjectPath(this, import, DefaultTargetsFile);
// Workaround for SD2-1490. It would be better if the project browser could refresh itself
// when necessary.
ProjectBrowserPad.Instance.ProjectBrowserControl.RefreshView();
break;
}
}
}
}
*/
protected override ProjectBehavior CreateDefaultBehavior()
{
return new CSharpProjectBehavior(this, base.CreateDefaultBehavior());
}
}
public class CSharpProjectBehavior : ProjectBehavior
{
public CSharpProjectBehavior(CSharpProject project, ProjectBehavior next = null)
: base(project, next)
{
}
public override ItemType GetDefaultItemType(string fileName)
{
if (string.Equals(Path.GetExtension(fileName), ".cs", StringComparison.OrdinalIgnoreCase))
return ItemType.Compile;
else
return base.GetDefaultItemType(fileName);
}
}
}

2
src/AddIns/BackendBindings/CSharpBinding/Tests/MockTextEditor.cs

@ -31,7 +31,7 @@ namespace CSharpBinding.Tests @@ -31,7 +31,7 @@ namespace CSharpBinding.Tests
pc = new DefaultProjectContent();
pc.ReferencedContents.Add(AssemblyParserService.DefaultProjectContentRegistry.Mscorlib);
this.TextEditor.TextArea.TextView.Services.AddService(typeof(ISyntaxHighlighter), new AvalonEditSyntaxHighlighterAdapter(this.TextEditor));
// this.TextEditor.TextArea.TextView.Services.AddService(typeof(ISyntaxHighlighter), new AvalonEditSyntaxHighlighterAdapter(this.TextEditor));
this.TextEditor.SyntaxHighlighting = HighlightingManager.Instance.GetDefinition("C#");
}

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

@ -165,7 +165,7 @@ namespace ICSharpCode.PythonBinding @@ -165,7 +165,7 @@ namespace ICSharpCode.PythonBinding
MemberExpression eventExpression = node.Left as MemberExpression;
string eventName = eventExpression.Name.ToString();
PythonControlFieldExpression field = PythonControlFieldExpression.Create(eventExpression);
fieldExpression = PythonControlFieldExpression.Create(eventExpression);
MemberExpression eventHandlerExpression = node.Right as MemberExpression;
string eventHandlerName = eventHandlerExpression.Name.ToString();

4
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonResolverContext.cs

@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
using System;
using System.Collections;
using System.Collections.Generic;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.PythonBinding
@ -118,7 +120,7 @@ namespace ICSharpCode.PythonBinding @@ -118,7 +120,7 @@ namespace ICSharpCode.PythonBinding
public bool PartialNamespaceExistsInProjectReferences(string name)
{
foreach (IProjectContent referencedContent in projectContent.ReferencedContents) {
foreach (IProjectContent referencedContent in projectContent.ThreadSafeGetReferencedContents()) {
if (PartialNamespaceExists(referencedContent, name)) {
return true;
}

108
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/LoadFormWithButtonFollowedByTimerTestFixture.cs

@ -0,0 +1,108 @@ @@ -0,0 +1,108 @@
// 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.ComponentModel;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting.Tests.Utils;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
namespace PythonBinding.Tests.Designer
{
/// <summary>
/// Fix ArgumentNullException when form has a button followed by a timer and the
/// first timer statement is the setting of the event handler.
/// </summary>
[TestFixture]
public class LoadFormWithButtonFollowedByTimerTestFixture : LoadFormTestFixtureBase
{
MockPropertyDescriptor mockTickPropertyDescriptor;
public override string PythonCode {
get {
return
"import System.Drawing\r\n" +
"import System.Windows.Forms\r\n" +
"\r\n" +
"from System.Drawing import *\r\n" +
"from System.Windows.Forms import *\r\n" +
"\r\n" +
"class MainForm(Form):\r\n" +
" def __init__(self):\r\n" +
" self.InitializeComponent()\r\n" +
"\r\n" +
" def InitializeComponent(self):\r\n" +
" self._components = System.ComponentModel.Container()\r\n" +
" self._button1 = System.Windows.Forms.Button()\r\n" +
" self._timer1 = System.Windows.Forms.Timer(self._components)\r\n" +
" self.SuspendLayout()\r\n" +
" # \r\n" +
" # button1\r\n" +
" # \r\n" +
" self._button1.Location = System.Drawing.Point(37, 29)\r\n" +
" self._button1.Name = \"button1\"\r\n" +
" self._button1.Size = System.Drawing.Size(75, 23)\r\n" +
" self._button1.TabIndex = 0\r\n" +
" self._button1.Text = \"button1\"\r\n" +
" self._button1.UseVisualStyleBackColor = True\r\n" +
" # \r\n" +
" # timer1\r\n" +
" # \r\n" +
" self._timer1.Tick += self.Timer1Tick\r\n" +
" # \r\n" +
" # MainForm\r\n" +
" # \r\n" +
" self.ClientSize = System.Drawing.Size(284, 264)\r\n" +
" self.Controls.Add(self._button1)\r\n" +
" self.Name = \"MainForm\"\r\n" +
" self.Text = \"PyWinTest\"\r\n" +
" self.ResumeLayout(False)\r\n" +
"\r\n" +
"\r\n" +
" def Timer1Tick(self, sender, e):\r\n" +
" pass";
}
}
public override void BeforeSetUpFixture()
{
mockTickPropertyDescriptor = new MockPropertyDescriptor("Tick", null, false);
ComponentCreator.SetEventPropertyDescriptor(mockTickPropertyDescriptor);
}
[Test]
public void EventDescriptorUsedToGetEventProperty()
{
Assert.IsNotNull(ComponentCreator.EventDescriptorPassedToGetEventProperty);
}
[Test]
public void EventDescriptorNameUsedToGetEventPropertyIsTick()
{
Assert.AreEqual("Tick", ComponentCreator.EventDescriptorPassedToGetEventProperty.Name);
}
[Test]
public void GetPropertyValueSetForTimer()
{
string value = mockTickPropertyDescriptor.GetValue(null) as String;
Assert.AreEqual("Timer1Tick", value);
}
[Test]
public void GetComponentUsedWhenSettingTickHandler()
{
IComponent expectedComponent = ComponentCreator.GetComponent("timer1");
object component = mockTickPropertyDescriptor.GetSetValueComponent();
Assert.AreEqual(expectedComponent, component);
}
}
}

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

@ -265,6 +265,7 @@ @@ -265,6 +265,7 @@
<Compile Include="Designer\LoadFontTestFixture.cs" />
<Compile Include="Designer\LoadFormTestFixtureBase.cs" />
<Compile Include="Designer\LoadFormWithBooleanPropertiesSetTestFixture.cs" />
<Compile Include="Designer\LoadFormWithButtonFollowedByTimerTestFixture.cs" />
<Compile Include="Designer\LoadFormWithSysPathAppendStatementTestFixture.cs" />
<Compile Include="Designer\LoadInheritedProtectedPanelFormTestFixture.cs" />
<Compile Include="Designer\LoadInheritedPublicPanelFormTestFixture.cs" />

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

@ -143,7 +143,7 @@ namespace ICSharpCode.VBNetBinding @@ -143,7 +143,7 @@ namespace ICSharpCode.VBNetBinding
InsertDocumentationComments(editor, lineNr, cursorOffset);
}
if (ch == '\n' && lineAboveText != null) {
if (ch == '\n' && lineAbove != null) {
if (LanguageUtils.IsInsideDocumentationComment(editor, lineAbove, lineAbove.EndOffset)) {
editor.Document.Insert(cursorOffset, "''' ");
return;
@ -410,7 +410,7 @@ namespace ICSharpCode.VBNetBinding @@ -410,7 +410,7 @@ namespace ICSharpCode.VBNetBinding
while ((currentToken = lexer.NextToken()).Kind != Tokens.EOF) {
if (prevToken == null)
prevToken = currentToken;
if (IsBlockStart(lexer, currentToken, prevToken)) {
if (IsBlockStart(lexer, currentToken, prevToken) && !IsAutomaticPropertyWithDefaultValue(lexer, currentToken, prevToken)) {
if ((tokens.Count > 0 && tokens.Peek().Kind != Tokens.Interface) || IsDeclaration(currentToken.Kind))
tokens.Push(currentToken);
}
@ -438,6 +438,30 @@ namespace ICSharpCode.VBNetBinding @@ -438,6 +438,30 @@ namespace ICSharpCode.VBNetBinding
return false;
}
static bool IsAutomaticPropertyWithDefaultValue(ILexer lexer, Token currentToken, Token prevToken)
{
if (currentToken.Kind != Tokens.Property)
return false;
lexer.StartPeek();
int parenthesesNesting = 0;
// look for parameter list, = or EOL
Token t;
while ((t = lexer.Peek()).Kind != Tokens.EOF) {
if (t.Kind == Tokens.OpenParenthesis)
parenthesesNesting++;
if (t.Kind == Tokens.CloseParenthesis)
parenthesesNesting--;
if (parenthesesNesting == 0 && t.Kind == Tokens.Assign)
return true;
if (t.Kind == Tokens.EOL)
return false;
}
return false;
}
static Token GetClosestMissing(List<Token> missingEnds, VBStatement statement, ITextEditor editor, int lineNr)
{
Token closest = null;
@ -612,7 +636,7 @@ namespace ICSharpCode.VBNetBinding @@ -612,7 +636,7 @@ namespace ICSharpCode.VBNetBinding
Indent(editor, indentation, new string(' ', endColumn - startColumn - 1));
}
if (!inInterface && !isMustOverride && !isDeclare && !isDelegate) {
if (!inInterface && !isMustOverride && !isDeclare && !isDelegate && !IsAutomaticPropertyWithDefaultValue(lexer, currentToken, prevToken)) {
Indent(editor, indentation);
if (currentToken.Kind == Tokens.Select)
@ -808,22 +832,14 @@ namespace ICSharpCode.VBNetBinding @@ -808,22 +832,14 @@ namespace ICSharpCode.VBNetBinding
internal static bool IsBlockEnd(Token current, Token prev)
{
if (current.Kind == Tokens.Next) {
if (prev.Kind == Tokens.Resume)
return false;
else
return true;
}
if (current.Kind == Tokens.Next)
return prev.Kind == Tokens.EOL || prev.Kind == Tokens.Colon;
if (current.Kind == Tokens.Loop)
return true;
return prev.Kind == Tokens.EOL || prev.Kind == Tokens.Colon;
if (blockTokens.Contains(current.Kind)) {
if (prev.Kind == Tokens.End)
return true;
else
return false;
}
if (blockTokens.Contains(current.Kind))
return prev.Kind == Tokens.End;
return IsSpecialCase(current, prev);
}

2
src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/ProjectImports.cs

@ -35,7 +35,7 @@ namespace ICSharpCode.VBNetBinding.OptionPanels @@ -35,7 +35,7 @@ namespace ICSharpCode.VBNetBinding.OptionPanels
}
IProjectContent projectContent = ParserService.GetProjectContent(project);
foreach(IProjectContent refProjectContent in projectContent.ReferencedContents) {
foreach(IProjectContent refProjectContent in projectContent.ThreadSafeGetReferencedContents()) {
AddNamespaces(refProjectContent);
}

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

@ -49,8 +49,7 @@ namespace ICSharpCode.VBNetBinding @@ -49,8 +49,7 @@ namespace ICSharpCode.VBNetBinding
InitVB();
}
public const string DefaultTargetsFile = @"$(MSBuildBinPath)\Microsoft.VisualBasic.Targets";
public const string ExtendedTargetsFile = @"$(SharpDevelopBinPath)\SharpDevelop.Build.VisualBasic.targets";
public const string DefaultTargetsFile = @"$(MSBuildToolsPath)\Microsoft.VisualBasic.targets";
public VBNetProject(ProjectCreateInformation info)
: base(info)
@ -108,43 +107,6 @@ namespace ICSharpCode.VBNetBinding @@ -108,43 +107,6 @@ namespace ICSharpCode.VBNetBinding
}
}
/*
protected override void AddOrRemoveExtensions()
{
// Test if SharpDevelop-Build extensions are required
bool needExtensions = false;
foreach (var p in GetAllProperties("TargetFrameworkVersion")) {
if (p.IsImported == false) {
if (p.Value.StartsWith("CF")) {
needExtensions = true;
}
}
}
foreach (Microsoft.Build.BuildEngine.Import import in MSBuildProject.Imports) {
if (needExtensions) {
if (DefaultTargetsFile.Equals(import.ProjectPath, StringComparison.OrdinalIgnoreCase)) {
//import.ProjectPath = extendedTargets;
MSBuildInternals.SetImportProjectPath(this, import, ExtendedTargetsFile);
// Workaround for SD2-1490. It would be better if the project browser could refresh itself
// when necessary.
ProjectBrowserPad.Instance.ProjectBrowserControl.RefreshView();
break;
}
} else {
if (ExtendedTargetsFile.Equals(import.ProjectPath, StringComparison.OrdinalIgnoreCase)) {
//import.ProjectPath = defaultTargets;
MSBuildInternals.SetImportProjectPath(this, import, DefaultTargetsFile);
// Workaround for SD2-1490. It would be better if the project browser could refresh itself
// when necessary.
ProjectBrowserPad.Instance.ProjectBrowserControl.RefreshView();
break;
}
}
}
}*/
public Nullable<bool> OptionInfer {
get { return GetValue("OptionInfer", false); }
}

47
src/AddIns/BackendBindings/VBNetBinding/Test/FormattingStrategy/EndSubTests.cs

@ -173,5 +173,52 @@ namespace ICSharpCode.VBNetBinding.Tests @@ -173,5 +173,52 @@ namespace ICSharpCode.VBNetBinding.Tests
RunTest(code, cursorOffset, expectedCode, expectedOffset, '\n');
}
[Test]
public void AutomaticPropertyWithInitializer()
{
string code = "Public Class Foo\r\n" +
"\tPublic Property Bar As Boolean = True\r\n" +
"\r\n" + // This extra new line is required. This is the new line just entered by the user.
"End Class";
string bar = "= True\r\n";
int cursorOffset = code.IndexOf(bar) + bar.Length;
string expectedCode = "Public Class Foo\r\n" +
"\tPublic Property Bar As Boolean = True\r\n" +
"\t\r\n" +
"End Class";
int expectedOffset = ("Public Class Foo\r\n" +
"\tPublic Property Bar As Boolean = True\r\n" +
"\t").Length;
RunTest(code, cursorOffset, expectedCode, expectedOffset, '\n');
}
[Test]
public void StandardProperty()
{
string code = "Public Class Foo\r\n" +
"\tPublic Property Bar As Boolean\r\n" +
"\r\n" + // This extra new line is required. This is the new line just entered by the user.
"End Class";
string bar = "As Boolean\r\n";
int cursorOffset = code.IndexOf(bar) + bar.Length;
string expectedCode = "Public Class Foo\r\n" +
"\tPublic Property Bar As Boolean\r\n" +
"\t\t\r\n" +
"\tEnd Property\r\n" +
"End Class";
int expectedOffset = ("Public Class Foo\r\n" +
"\tPublic Property Bar As Boolean\r\n" +
"\t\t").Length;
RunTest(code, cursorOffset, expectedCode, expectedOffset, '\n');
}
}
}

48
src/AddIns/BackendBindings/VBNetBinding/Test/FormattingStrategy/IndentationTests.cs

@ -524,6 +524,54 @@ End Module"; @@ -524,6 +524,54 @@ End Module";
RunFormatTest(code, expected);
}
[Test]
public void ForNextOneLine()
{
string expected = @"Module Core
Sub Main
Dim a = 1
For i = 0 To 10 : Console.WriteLine(i) : Next
Dim b = 2
End Sub
End Module";
string code = @"Module Core
Sub Main
Dim a = 1
For i = 0 To 10 : Console.WriteLine(i) : Next
Dim b = 2
End Sub
End Module";
RunFormatTest(code, expected);
}
[Test]
public void RandomNext()
{
string expected = @"Module Core
Public Function GetRandomNumber( _
Optional ByVal Low As Integer = 1, _
Optional ByVal High As Integer = 100) As Integer
' Returns a random number,
' between the optional Low and High parameters
Return objRandom.Next(Low, High + 1)
End Function
End Module";
string code = @"Module Core
Public Function GetRandomNumber( _
Optional ByVal Low As Integer = 1, _
Optional ByVal High As Integer = 100) As Integer
' Returns a random number,
' between the optional Low and High parameters
Return objRandom.Next(Low, High + 1)
End Function
End Module";
RunFormatTest(code, expected);
}
void RunFormatTest(string code, string expectedCode)
{
AvalonEditTextEditorAdapter editor = new AvalonEditTextEditorAdapter(new TextEditor());

2
src/AddIns/BackendBindings/VBNetBinding/Test/MockTextEditor.cs

@ -49,7 +49,7 @@ namespace ICSharpCode.VBNetBinding.Tests @@ -49,7 +49,7 @@ namespace ICSharpCode.VBNetBinding.Tests
}
}
this.TextEditor.TextArea.TextView.Services.AddService(typeof(ISyntaxHighlighter), new AvalonEditSyntaxHighlighterAdapter(this.TextEditor));
// this.TextEditor.TextArea.TextView.Services.AddService(typeof(ISyntaxHighlighter), new AvalonEditSyntaxHighlighterAdapter(this.TextEditor));
this.TextEditor.SyntaxHighlighting = HighlightingManager.Instance.GetDefinition("VBNet");
new VBNetLanguageBinding().Attach(this);

2
src/AddIns/BackendBindings/XamlBinding/XamlBinding.Tests/MockTextEditor.cs

@ -51,7 +51,7 @@ namespace ICSharpCode.XamlBinding.Tests @@ -51,7 +51,7 @@ namespace ICSharpCode.XamlBinding.Tests
}
}
this.TextEditor.TextArea.TextView.Services.AddService(typeof(ISyntaxHighlighter), new AvalonEditSyntaxHighlighterAdapter(this.TextEditor));
// this.TextEditor.TextArea.TextView.Services.AddService(typeof(ISyntaxHighlighter), new AvalonEditSyntaxHighlighterAdapter(this.TextEditor));
this.TextEditor.SyntaxHighlighting = HighlightingManager.Instance.GetDefinition("XML");
new XamlLanguageBinding().Attach(this);

2
src/AddIns/BackendBindings/XamlBinding/XamlBinding/CompletionDataHelper.cs

@ -311,7 +311,7 @@ namespace ICSharpCode.XamlBinding @@ -311,7 +311,7 @@ namespace ICSharpCode.XamlBinding
{
List<XmlnsCompletionItem> list = new List<XmlnsCompletionItem>();
foreach (IProjectContent content in projectContent.ReferencedContents) {
foreach (IProjectContent content in projectContent.ThreadSafeGetReferencedContents()) {
foreach (IAttribute att in content.GetAssemblyAttributes()) {
if (att.PositionalArguments.Count == 2
&& att.AttributeType.FullyQualifiedName == "System.Windows.Markup.XmlnsDefinitionAttribute") {

10
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCompilationUnit.cs

@ -2,10 +2,12 @@ @@ -2,10 +2,12 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Linq;
using ICSharpCode.SharpDevelop.Dom;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.XamlBinding
{
@ -81,7 +83,7 @@ namespace ICSharpCode.XamlBinding @@ -81,7 +83,7 @@ namespace ICSharpCode.XamlBinding
IReturnType type = FindTypeInAssembly(pc, xmlNamespace, className);
if (type != null)
return type;
foreach (IProjectContent p in pc.ReferencedContents) {
foreach (IProjectContent p in pc.ThreadSafeGetReferencedContents()) {
type = FindTypeInAssembly(p, xmlNamespace, className);
if (type != null)
return type;
@ -117,7 +119,7 @@ namespace ICSharpCode.XamlBinding @@ -117,7 +119,7 @@ namespace ICSharpCode.XamlBinding
else {
var list = new List<ICompletionEntry>();
AddNamespaceMembersInAssembly(pc, xmlNamespace, list);
foreach (IProjectContent p in pc.ReferencedContents) {
foreach (IProjectContent p in pc.ThreadSafeGetReferencedContents()) {
AddNamespaceMembersInAssembly(p, xmlNamespace, list);
}
return list.OfType<IClass>();

21
src/AddIns/Debugger/Debugger.AddIn/Options/DebuggingOptions.cs

@ -40,5 +40,26 @@ namespace ICSharpCode.SharpDevelop.Services @@ -40,5 +40,26 @@ namespace ICSharpCode.SharpDevelop.Services
// Properties for the DebuggeeExceptionForm
public FormWindowState DebuggeeExceptionWindowState { get; set; }
/// <summary>
/// Used to update status of some debugger properties while debugger is running.
/// </summary>
internal static void ResetStatus(Action<Process> resetStatus)
{
Process proc = WindowsDebugger.CurrentProcess;
// debug session is running
if (proc != null) {
bool wasPausedNow = false;
// if it is not paused, break execution
if (!proc.IsPaused) {
proc.Break();
wasPausedNow = true;
}
resetStatus(proc);
// continue if it was not paused before
if (wasPausedNow)
proc.AsyncContinue();
}
}
}
}

14
src/AddIns/Debugger/Debugger.AddIn/Options/DebuggingOptionsPanel.xaml.cs

@ -50,19 +50,7 @@ namespace Debugger.AddIn.Options @@ -50,19 +50,7 @@ namespace Debugger.AddIn.Options
public override bool SaveOptions()
{
bool result = base.SaveOptions();
Process proc = WindowsDebugger.CurrentProcess;
// debug session is running
if (proc != null) {
bool wasPausedNow = false;
// if it is not paused, break execution
if (!proc.IsPaused) {
proc.Break();
wasPausedNow = true;
}
proc.Debugger.ResetJustMyCodeStatus();
// continue if it was not paused before
if (wasPausedNow) proc.AsyncContinue();
}
DebuggingOptions.ResetStatus(proc => proc.Debugger.ResetJustMyCodeStatus());
return result;
}
}

10
src/AddIns/Debugger/Debugger.AddIn/Options/DebuggingSymbolsPanel.cs

@ -30,11 +30,11 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -30,11 +30,11 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
public override bool StorePanelContents()
{
DebuggingOptions.Instance.SymbolsSearchPaths = pathList.GetList();
Process proc = WindowsDebugger.CurrentProcess;
if (proc != null) {
proc.Debugger.ReloadModuleSymbols();
proc.Debugger.ResetJustMyCodeStatus();
}
DebuggingOptions.ResetStatus(
proc => {
proc.Debugger.ReloadModuleSymbols();
proc.Debugger.ResetJustMyCodeStatus();
});
return true;
}
}

4
src/AddIns/Debugger/Debugger.AddIn/Options/DebuggingSymbolsPanel.resx

@ -112,9 +112,9 @@ @@ -112,9 +112,9 @@
<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>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.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>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

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

@ -46,12 +46,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -46,12 +46,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
this.tree.ShowRoot = false;
this.tree.View = (GridView)res["variableGridView"];
this.tree.ContextMenu = MenuService.CreateContextMenu(this, "/SharpDevelop/Pads/WatchPad/ContextMenu");
this.tree.KeyUp += delegate(object sender, KeyEventArgs e) {
if (e.Key == Key.Delete) {
RemoveWatchCommand cmd = new RemoveWatchCommand { Owner = this };
cmd.Run();
}
};
this.tree.MouseDoubleClick += delegate(object sender, MouseButtonEventArgs e) {
if (this.tree.SelectedItem == null) {
AddWatchCommand cmd = new AddWatchCommand { Owner = this };
@ -103,6 +97,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -103,6 +97,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
} catch (GetValueException e) {
node = new TreeNode("Icons.16x16.Error", name, e.Message, string.Empty, null);
}
node.CanDelete = true;
node.CanSetName = true;
node.PropertyChanged += (s, e) => { if (e.PropertyName == "Name") WindowsDebugger.RefreshPads(); };
return node.ToSharpTreeNode();

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

@ -35,6 +35,16 @@ namespace Debugger.AddIn.Pads.Controls @@ -35,6 +35,16 @@ namespace Debugger.AddIn.Pads.Controls
get { return this.Node.GetChildren != null; }
}
public override bool CanDelete()
{
return this.Node.CanDelete;
}
public override void Delete()
{
Parent.Children.Remove(this);
}
protected override void LoadChildren()
{
if (this.Node.GetChildren != null) {

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

@ -25,7 +25,9 @@ namespace Debugger.AddIn.TreeModel @@ -25,7 +25,9 @@ namespace Debugger.AddIn.TreeModel
string name;
string value;
string type;
public bool CanDelete { get; set; }
public IImage Image {
get {
OnPropertyRead("Image");

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

@ -5,6 +5,7 @@ using System; @@ -5,6 +5,7 @@ using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using Debugger.MetaData;
namespace Debugger
{
@ -42,7 +43,11 @@ namespace Debugger @@ -42,7 +43,11 @@ namespace Debugger
MethodInfo mr = (MethodInfo)member;
if (mr.IsGenericMethod) {
b.Append("``");
b.Append(mr.GetGenericArguments().Length);
// DebugMethodInfo does not implement GetGenericArguments
if (mr is DebugMethodInfo)
b.Append(((DebugMethodInfo)mr).GenericParameterCount);
else
b.Append(mr.GetGenericArguments().Length);
}
parameters = mr.GetParameters();
if (mr.Name == "op_Implicit" || mr.Name == "op_Explicit") {
@ -73,7 +78,7 @@ namespace Debugger @@ -73,7 +78,7 @@ namespace Debugger
return;
}
if (type.IsGenericType) {
AppendTypeNameWithArguments(b, type.GetElementType(), type.GetGenericArguments());
AppendTypeNameWithArguments(b, type, type.GetGenericArguments());
} else if (type.HasElementType) {
AppendTypeName(b, type.GetElementType());
if (type.IsArray) {

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

@ -447,7 +447,7 @@ namespace Debugger @@ -447,7 +447,7 @@ namespace Debugger
public void ExitThread(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread)
{
Thread thread = process.TryGetThread(pThread);
Thread thread = process.GetThread(pThread);
// ICorDebugThread is still not dead and can be used for some operations
if (thread != null) {

7
src/AddIns/Debugger/Debugger.Core/MetaData/DebugMethodInfo.cs

@ -185,6 +185,13 @@ namespace Debugger.MetaData @@ -185,6 +185,13 @@ namespace Debugger.MetaData
get { return this.MethodDefSig.GenericParameterCount > 0; }
}
/// <summary>
/// Gets the number of generic parameters on this method.
/// </summary>
public int GenericParameterCount {
get { return this.MethodDefSig.GenericParameterCount; }
}
/// <inheritdoc/>
public override RuntimeMethodHandle MethodHandle {
get { throw new NotSupportedException(); }

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

@ -191,7 +191,8 @@ namespace Debugger @@ -191,7 +191,8 @@ namespace Debugger
throw new DebuggerException("Eval not found for given ICorDebugEval");
}
public Module GetModule(string filename) {
public Module GetModule(string filename)
{
foreach(Module module in this.Modules) {
if (module.Name == filename) {
return module;
@ -200,7 +201,8 @@ namespace Debugger @@ -200,7 +201,8 @@ namespace Debugger
throw new DebuggerException("Module \"" + filename + "\" is not in collection");
}
internal Module GetModule(ICorDebugModule corModule) {
internal Module GetModule(ICorDebugModule corModule)
{
foreach(Module module in this.Modules) {
if (module.CorModule == corModule) {
return module;
@ -209,22 +211,18 @@ namespace Debugger @@ -209,22 +211,18 @@ namespace Debugger
throw new DebuggerException("Module is not in collection");
}
internal Thread GetThread(ICorDebugThread corThread) {
foreach(Thread thread in this.Threads) {
if (thread.CorThread == corThread) {
return thread;
}
}
throw new DebuggerException("Thread is not in collection");
}
internal Thread TryGetThread(ICorDebugThread corThread) {
internal Thread GetThread(ICorDebugThread corThread)
{
foreach(Thread thread in this.Threads) {
if (thread.CorThread == corThread) {
return thread;
}
}
return null;
// Sometimes, the thread is not reported for some unkown reason
TraceMessage("Thread not found in collection");
Thread newThread = new Thread(this, corThread);
this.threads.Add(newThread);
return newThread;
}
/// <summary> Read the specified amount of memory at the given memory address </summary>

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

@ -64,6 +64,9 @@ @@ -64,6 +64,9 @@
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Xaml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
@ -72,6 +75,7 @@ @@ -72,6 +75,7 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Src\AvalonEditSyntaxHighlighterAdapter.cs" />
<Compile Include="Src\DocumentSequence.cs" />
<Compile Include="Src\Snippets\CodeSnippetComparer.cs" />
<Compile Include="Src\Utils.cs" />
@ -241,7 +245,6 @@ @@ -241,7 +245,6 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\MyersDiff" />
<Folder Include="Src\HiddenDefinition" />
</ItemGroup>
</Project>

16
src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditSyntaxHighlighterAdapter.cs → src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditSyntaxHighlighterAdapter.cs

@ -3,12 +3,15 @@ @@ -3,12 +3,15 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows;
using ICSharpCode.AvalonEdit;
using ICSharpCode.AvalonEdit.Highlighting;
using ICSharpCode.SharpDevelop.Editor;
namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit
namespace ICSharpCode.AvalonEdit.AddIn
{
public class AvalonEditSyntaxHighlighterAdapter : ISyntaxHighlighter
{
@ -35,5 +38,16 @@ namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit @@ -35,5 +38,16 @@ namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit
return Enumerable.Empty<string>();
}
}
public HighlightingColor GetNamedColor(string name)
{
TextEditor editor = textEditor.GetService(typeof(TextEditor)) as TextEditor;
if (editor == null)
return null;
var highlighting = editor.SyntaxHighlighting;
if (highlighting == null)
return null;
return CustomizableHighlightingColorizer.CustomizeColor(name, CustomizedHighlightingColor.FetchCustomizations(highlighting.Name));
}
}
}

3
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditViewContent.cs

@ -275,7 +275,8 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -275,7 +275,8 @@ namespace ICSharpCode.AvalonEdit.AddIn
{
if (trackedFeature != null)
trackedFeature.EndTracking();
this.PrimaryFile.IsDirtyChanged -= PrimaryFile_IsDirtyChanged;
if (PrimaryFile != null)
this.PrimaryFile.IsDirtyChanged -= PrimaryFile_IsDirtyChanged;
base.Dispose();
BookmarksDetach();
codeEditor.Dispose();

38
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ChangeMarkerMargin.cs

@ -39,11 +39,39 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -39,11 +39,39 @@ namespace ICSharpCode.AvalonEdit.AddIn
{
if (!disposed) {
changeWatcher.ChangeOccurred -= ChangeOccurred;
changeWatcher.Dispose();
disposed = true;
}
}
#region Brushes
public static readonly DependencyProperty AddedLineBrushProperty =
DependencyProperty.Register("AddedLineBrush", typeof(Brush), typeof(ChangeMarkerMargin),
new FrameworkPropertyMetadata(Brushes.LightGreen));
public Brush AddedLineBrush {
get { return (Brush)GetValue(AddedLineBrushProperty); }
set { SetValue(AddedLineBrushProperty, value); }
}
public static readonly DependencyProperty ChangedLineBrushProperty =
DependencyProperty.Register("ChangedLineBrush", typeof(Brush), typeof(ChangeMarkerMargin),
new FrameworkPropertyMetadata(Brushes.LightBlue));
public Brush ChangedLineBrush {
get { return (Brush)GetValue(ChangedLineBrushProperty); }
set { SetValue(ChangedLineBrushProperty, value); }
}
public static readonly DependencyProperty UnsavedLineBrushProperty =
DependencyProperty.Register("UnsavedLineBrush", typeof(Brush), typeof(ChangeMarkerMargin),
new FrameworkPropertyMetadata(Brushes.Yellow));
public Brush UnsavedLineBrush {
get { return (Brush)GetValue(UnsavedLineBrushProperty); }
set { SetValue(UnsavedLineBrushProperty, value); }
}
#endregion
protected override void OnRender(DrawingContext drawingContext)
{
Size renderSize = this.RenderSize;
@ -53,7 +81,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -53,7 +81,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
var zeroLineInfo = changeWatcher.GetChange(0);
foreach (VisualLine line in textView.VisualLines) {
Rect rect = new Rect(0, line.VisualTop - textView.ScrollOffset.Y, 5, line.Height);
Rect rect = new Rect(0, line.VisualTop - textView.ScrollOffset.Y - 1, 5, line.Height + 2);
LineChangeInfo info = changeWatcher.GetChange(line.FirstDocumentLine.LineNumber);
@ -65,14 +93,14 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -65,14 +93,14 @@ namespace ICSharpCode.AvalonEdit.AddIn
case ChangeType.None:
break;
case ChangeType.Added:
drawingContext.DrawRectangle(Brushes.LightGreen, null, rect);
drawingContext.DrawRectangle(AddedLineBrush, null, rect);
break;
case ChangeType.Deleted:
case ChangeType.Modified:
drawingContext.DrawRectangle(Brushes.LightBlue, null, rect);
drawingContext.DrawRectangle(ChangedLineBrush, null, rect);
break;
case ChangeType.Unsaved:
drawingContext.DrawRectangle(Brushes.Yellow, null, rect);
drawingContext.DrawRectangle(UnsavedLineBrush, null, rect);
break;
default:
throw new Exception("Invalid value for ChangeType");

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

@ -33,20 +33,11 @@ using ICSharpCode.SharpDevelop.Widgets.MyersDiff; @@ -33,20 +33,11 @@ using ICSharpCode.SharpDevelop.Widgets.MyersDiff;
namespace ICSharpCode.AvalonEdit.AddIn
{
public interface ICodeEditor
{
TextDocument Document { get; }
void Redraw(ISegment segment, DispatcherPriority priority);
event EventHandler DocumentChanged;
}
/// <summary>
/// Integrates AvalonEdit with SharpDevelop.
/// Also provides support for Split-View (showing two AvalonEdit instances using the same TextDocument)
/// </summary>
public class CodeEditor : Grid, IDisposable, ICodeEditor
public class CodeEditor : Grid, IDisposable
{
const string contextMenuPath = "/SharpDevelop/ViewContent/AvalonEdit/ContextMenu";
@ -153,9 +144,9 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -153,9 +144,9 @@ namespace ICSharpCode.AvalonEdit.AddIn
ParserService.ParseInformationUpdated += ParserServiceParseInformationUpdated;
this.FlowDirection = FlowDirection.LeftToRight; // code editing is always left-to-right
this.document = new TextDocument();
this.CommandBindings.Add(new CommandBinding(SharpDevelopRoutedCommands.SplitView, OnSplitView));
textMarkerService = new TextMarkerService(this);
textMarkerService = new TextMarkerService(document);
iconBarManager = new IconBarManager();
if (CodeEditorOptions.Instance.EnableChangeMarkerMargin) {
changeWatcher = new DefaultChangeWatcher();
@ -165,9 +156,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -165,9 +156,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
Debug.Assert(primaryTextEditorAdapter != null);
activeTextEditor = primaryTextEditor;
this.Document = primaryTextEditor.Document;
primaryTextEditor.SetBinding(TextEditor.DocumentProperty, new Binding("Document") { Source = this });
this.ColumnDefinitions.Add(new ColumnDefinition());
this.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
this.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star), MinHeight = minRowHeight });
@ -189,6 +177,8 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -189,6 +177,8 @@ namespace ICSharpCode.AvalonEdit.AddIn
primaryTextEditor.UpdateCustomizedHighlighting();
if (secondaryTextEditor != null)
secondaryTextEditor.UpdateCustomizedHighlighting();
foreach (var bookmark in BookmarkManager.GetBookmarks(fileName).OfType<SDMarkerBookmark>())
bookmark.SetMarker();
}
/// <summary>
@ -199,6 +189,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -199,6 +189,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
CodeEditorView codeEditorView = new CodeEditorView();
CodeEditorAdapter adapter = new CodeEditorAdapter(this, codeEditorView);
codeEditorView.Adapter = adapter;
codeEditorView.Document = document;
TextView textView = codeEditorView.TextArea.TextView;
textView.Services.AddService(typeof(ITextEditor), adapter);
textView.Services.AddService(typeof(CodeEditor), this);
@ -313,11 +304,29 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -313,11 +304,29 @@ namespace ICSharpCode.AvalonEdit.AddIn
NewLineConsistencyCheck.StartConsistencyCheck(this);
}
bool documentFirstLoad = true;
bool clearUndoStackOnSwitch = true;
/// <summary>
/// Gets/Sets whether to clear the undo stack when reloading the document.
/// The default is true.
/// http://community.sharpdevelop.net/forums/t/15816.aspx
/// </summary>
public bool ClearUndoStackOnSwitch {
get { return clearUndoStackOnSwitch; }
set { clearUndoStackOnSwitch = value; }
}
void ReloadDocument(TextDocument document, string newContent)
{
var diff = new MyersDiffAlgorithm(new StringSequence(document.Text), new StringSequence(newContent));
document.Replace(0, document.TextLength, newContent, diff.GetEdits().ToOffsetChangeMap());
document.UndoStack.ClearAll();
if (this.ClearUndoStackOnSwitch || documentFirstLoad)
document.UndoStack.ClearAll();
if (documentFirstLoad)
documentFirstLoad = false;
}
public event EventHandler LoadedFileContent;
@ -340,8 +349,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -340,8 +349,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
secondaryTextEditorAdapter = (CodeEditorAdapter)secondaryTextEditor.TextArea.GetService(typeof(ITextEditor));
Debug.Assert(primaryTextEditorAdapter != null);
secondaryTextEditor.SetBinding(TextEditor.DocumentProperty,
new Binding(TextEditor.DocumentProperty.Name) { Source = primaryTextEditor });
secondaryTextEditor.SetBinding(TextEditor.IsReadOnlyProperty,
new Binding(TextEditor.IsReadOnlyProperty.Name) { Source = primaryTextEditor });
secondaryTextEditor.SyntaxHighlighting = primaryTextEditor.SyntaxHighlighting;
@ -610,6 +617,8 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -610,6 +617,8 @@ namespace ICSharpCode.AvalonEdit.AddIn
if (errorPainter != null)
errorPainter.Dispose();
if (changeWatcher != null)
changeWatcher.Dispose();
this.Document = null;
DisposeTextEditor(primaryTextEditor);
if (secondaryTextEditor != null)

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

@ -14,6 +14,7 @@ using System.Windows.Controls; @@ -14,6 +14,7 @@ using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Threading;
using ICSharpCode.AvalonEdit.AddIn.Options;
@ -24,6 +25,7 @@ using ICSharpCode.AvalonEdit.Folding; @@ -24,6 +25,7 @@ using ICSharpCode.AvalonEdit.Folding;
using ICSharpCode.AvalonEdit.Highlighting;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Bookmarks;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.AvalonEdit;
@ -87,13 +89,17 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -87,13 +89,17 @@ namespace ICSharpCode.AvalonEdit.AddIn
protected override void OnOptionChanged(PropertyChangedEventArgs e)
{
base.OnOptionChanged(e);
if (e.PropertyName == "HighlightBrackets")
HighlightBrackets(null, e);
else if (e.PropertyName == "EnableFolding")
UpdateParseInformationForFolding();
else if (e.PropertyName == "HighlightSymbol") {
if (this.caretReferencesRenderer != null)
this.caretReferencesRenderer.ClearHighlight();
switch (e.PropertyName) {
case "HighlightBrackets":
HighlightBrackets(null, e);
break;
case "EnableFolding":
UpdateParseInformationForFolding();
break;
case "HighlightSymbol":
if (this.caretReferencesRenderer != null)
this.caretReferencesRenderer.ClearHighlight();
break;
}
}
@ -540,18 +546,13 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -540,18 +546,13 @@ namespace ICSharpCode.AvalonEdit.AddIn
string language = this.SyntaxHighlighting != null ? this.SyntaxHighlighting.Name : null;
CustomizableHighlightingColorizer.ApplyCustomizationsToDefaultElements(this, FetchCustomizations(language));
BracketHighlightRenderer.ApplyCustomizationsToRendering(this.bracketRenderer, FetchCustomizations(language));
HighlightingOptions.ApplyToFolding(this, FetchCustomizations(language));
HighlightingOptions.ApplyToRendering(this, FetchCustomizations(language));
this.TextArea.TextView.Redraw(); // manually redraw if default elements didn't change but customized highlightings did
}
static IEnumerable<CustomizedHighlightingColor> FetchCustomizations(string languageName)
{
// Access CustomizedHighlightingColor.ActiveColors within enumerator so that always the latest version is used.
// Using CustomizedHighlightingColor.ActiveColors.Where(...) would not work correctly!
foreach (CustomizedHighlightingColor color in CustomizedHighlightingColor.ActiveColors) {
if (color.Language == null || color.Language == languageName)
yield return color;
}
return CustomizedHighlightingColor.FetchCustomizations(languageName);
}
}
}

22
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Commands/FoldingCommands.cs

@ -16,14 +16,14 @@ namespace ICSharpCode.AvalonEdit.AddIn.Commands @@ -16,14 +16,14 @@ namespace ICSharpCode.AvalonEdit.AddIn.Commands
{
ITextEditorProvider provider = WorkbenchSingleton.Workbench.ActiveViewContent as ITextEditorProvider;
ITextEditor editor = provider.TextEditor;
ParserFoldingStrategy strategy = editor.GetService(typeof(ParserFoldingStrategy)) as ParserFoldingStrategy;
FoldingManager foldingManager = editor.GetService(typeof(FoldingManager)) as FoldingManager;
if (strategy != null) {
if (foldingManager != null) {
// look for folding on this line:
FoldingSection folding = strategy.FoldingManager.GetNextFolding(editor.Document.PositionToOffset(editor.Caret.Line, 1));
FoldingSection folding = foldingManager.GetNextFolding(editor.Document.PositionToOffset(editor.Caret.Line, 1));
if (folding == null || editor.Document.GetLineForOffset(folding.StartOffset).LineNumber != editor.Caret.Line) {
// no folding found on current line: find innermost folding containing the caret
folding = strategy.FoldingManager.GetFoldingsContaining(editor.Caret.Offset).LastOrDefault();
folding = foldingManager.GetFoldingsContaining(editor.Caret.Offset).LastOrDefault();
}
if (folding != null) {
folding.IsFolded = !folding.IsFolded;
@ -38,17 +38,17 @@ namespace ICSharpCode.AvalonEdit.AddIn.Commands @@ -38,17 +38,17 @@ namespace ICSharpCode.AvalonEdit.AddIn.Commands
{
ITextEditorProvider provider = WorkbenchSingleton.Workbench.ActiveViewContent as ITextEditorProvider;
ITextEditor editor = provider.TextEditor;
ParserFoldingStrategy strategy = editor.GetService(typeof(ParserFoldingStrategy)) as ParserFoldingStrategy;
FoldingManager foldingManager = editor.GetService(typeof(FoldingManager)) as FoldingManager;
if (strategy != null) {
if (foldingManager != null) {
bool doFold = true;
foreach (FoldingSection fm in strategy.FoldingManager.AllFoldings) {
foreach (FoldingSection fm in foldingManager.AllFoldings) {
if (fm.IsFolded) {
doFold = false;
break;
}
}
foreach (FoldingSection fm in strategy.FoldingManager.AllFoldings) {
foreach (FoldingSection fm in foldingManager.AllFoldings) {
fm.IsFolded = doFold;
}
}
@ -61,10 +61,10 @@ namespace ICSharpCode.AvalonEdit.AddIn.Commands @@ -61,10 +61,10 @@ namespace ICSharpCode.AvalonEdit.AddIn.Commands
{
ITextEditorProvider provider = WorkbenchSingleton.Workbench.ActiveViewContent as ITextEditorProvider;
ITextEditor editor = provider.TextEditor;
ParserFoldingStrategy strategy = editor.GetService(typeof(ParserFoldingStrategy)) as ParserFoldingStrategy;
FoldingManager foldingManager = editor.GetService(typeof(FoldingManager)) as FoldingManager;
if (strategy != null) {
foreach (FoldingSection fm in strategy.FoldingManager.AllFoldings) {
if (foldingManager != null) {
foreach (FoldingSection fm in foldingManager.AllFoldings) {
fm.IsFolded = ParserFoldingStrategy.IsDefinition(fm);
}
}

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

@ -12,6 +12,9 @@ using ICSharpCode.AvalonEdit.Document; @@ -12,6 +12,9 @@ using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Editing;
using ICSharpCode.AvalonEdit.Highlighting;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.SharpDevelop.Bookmarks;
using ICSharpCode.SharpDevelop.Debugging;
using ICSharpCode.SharpDevelop.Project.Commands;
namespace ICSharpCode.AvalonEdit.AddIn
{
@ -24,6 +27,10 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -24,6 +27,10 @@ namespace ICSharpCode.AvalonEdit.AddIn
public const string SelectedText = "Selected text";
public const string NonPrintableCharacters = "Non-printable characters";
public const string LineNumbers = "Line numbers";
public const string LinkText = "Link text";
public const string BreakpointMarker = "Breakpoint";
public const string InstructionPointerMarker = "Current statement";
public const string ColumnRuler = "Column ruler";
public static void ApplyCustomizationsToDefaultElements(TextEditor textEditor, IEnumerable<CustomizedHighlightingColor> customizations)
{
@ -34,6 +41,9 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -34,6 +41,9 @@ namespace ICSharpCode.AvalonEdit.AddIn
textEditor.TextArea.ClearValue(TextArea.SelectionBrushProperty);
textEditor.TextArea.ClearValue(TextArea.SelectionForegroundProperty);
textEditor.TextArea.TextView.ClearValue(TextView.NonPrintableCharacterBrushProperty);
textEditor.TextArea.TextView.ClearValue(TextView.LinkTextForegroundBrushProperty);
textEditor.TextArea.TextView.ClearValue(TextView.LinkTextBackgroundBrushProperty);
textEditor.TextArea.TextView.ClearValue(TextView.ColumnRulerPenProperty);
// 'assigned' flags are used so that the first matching customization wins.
// This is necessary because more specific customizations come first in the list
@ -42,6 +52,9 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -42,6 +52,9 @@ namespace ICSharpCode.AvalonEdit.AddIn
bool assignedSelectedText = false;
bool assignedNonPrintableCharacter = false;
bool assignedLineNumbers = false;
bool assignedLinkText = false;
bool assignedColumnRulerColor = false;
foreach (CustomizedHighlightingColor color in customizations) {
switch (color.Name) {
case DefaultTextAndBackground:
@ -88,6 +101,22 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -88,6 +101,22 @@ namespace ICSharpCode.AvalonEdit.AddIn
if (color.Foreground != null)
textEditor.LineNumbersForeground = CreateFrozenBrush(color.Foreground.Value);
break;
case LinkText:
if (assignedLinkText)
continue;
assignedLinkText = true;
if (color.Foreground != null)
textEditor.TextArea.TextView.LinkTextForegroundBrush = CreateFrozenBrush(color.Foreground.Value);
if (color.Background != null)
textEditor.TextArea.TextView.LinkTextBackgroundBrush = CreateFrozenBrush(color.Background.Value);
break;
case ColumnRuler:
if (assignedColumnRulerColor)
continue;
assignedColumnRulerColor = true;
if (color.Foreground != null)
textEditor.TextArea.TextView.ColumnRulerPen = CreateFrozenPen(color.Foreground.Value);
break;
}
}
}
@ -132,36 +161,42 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -132,36 +161,42 @@ namespace ICSharpCode.AvalonEdit.AddIn
{
HighlightedLine line = baseHighlighter.HighlightLine(lineNumber);
foreach (HighlightedSection section in line.Sections) {
section.Color = CustomizeColor(section.Color);
section.Color = CustomizeColor(section.Color, customizations);
}
return line;
}
HighlightingColor CustomizeColor(HighlightingColor color)
{
if (color == null || color.Name == null)
return color;
foreach (CustomizedHighlightingColor customization in customizations) {
if (customization.Name == color.Name) {
return new HighlightingColor {
Name = color.Name,
Background = CreateBrush(customization.Background),
Foreground = CreateBrush(customization.Foreground),
FontWeight = customization.Bold ? FontWeights.Bold : FontWeights.Normal,
FontStyle = customization.Italic ? FontStyles.Italic : FontStyles.Normal
};
}
}
}
internal static HighlightingColor CustomizeColor(HighlightingColor color, IEnumerable<CustomizedHighlightingColor> customizations)
{
if (color == null || color.Name == null)
return color;
return CustomizeColor(color.Name, customizations) ?? color;
}
internal static HighlightingColor CustomizeColor(string name, IEnumerable<CustomizedHighlightingColor> customizations)
{
foreach (CustomizedHighlightingColor customization in customizations) {
if (customization.Name == name) {
return new HighlightingColor {
Name = name,
Background = CreateBrush(customization.Background),
Foreground = CreateBrush(customization.Foreground),
FontWeight = customization.Bold ? FontWeights.Bold : FontWeights.Normal,
FontStyle = customization.Italic ? FontStyles.Italic : FontStyles.Normal
};
}
}
static HighlightingBrush CreateBrush(Color? color)
{
if (color == null)
return null;
else
return new CustomizedBrush(color.Value);
}
return null;
}
static HighlightingBrush CreateBrush(Color? color)
{
if (color == null)
return null;
else
return new CustomizedBrush(color.Value);
}
sealed class CustomizedBrush : HighlightingBrush
@ -190,5 +225,12 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -190,5 +225,12 @@ namespace ICSharpCode.AvalonEdit.AddIn
brush.Freeze();
return brush;
}
static Pen CreateFrozenPen(Color color)
{
Pen pen = new Pen(CreateFrozenBrush(color), 1);
pen.Freeze();
return pen;
}
}
}

10
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CustomizedHighlightingColor.cs

@ -63,6 +63,16 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -63,6 +63,16 @@ namespace ICSharpCode.AvalonEdit.AddIn
}
}
public static IEnumerable<CustomizedHighlightingColor> FetchCustomizations(string languageName)
{
// Access CustomizedHighlightingColor.ActiveColors within enumerator so that always the latest version is used.
// Using CustomizedHighlightingColor.ActiveColors.Where(...) would not work correctly!
foreach (CustomizedHighlightingColor color in CustomizedHighlightingColor.ActiveColors) {
if (color.Language == null || color.Language == languageName)
yield return color;
}
}
/// <summary>
/// Occurs when the set of customized highlighting colors was changed.
/// </summary>

6
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/DefaultChangeWatcher.cs

@ -197,8 +197,10 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -197,8 +197,10 @@ namespace ICSharpCode.AvalonEdit.AddIn
if (!disposed) {
if (watcher != null)
watcher.Dispose();
this.textDocument.LineTrackers.Remove(this);
this.textDocument.UndoStack.PropertyChanged -= UndoStackPropertyChanged;
if (this.textDocument != null) {
this.textDocument.LineTrackers.Remove(this);
this.textDocument.UndoStack.PropertyChanged -= UndoStackPropertyChanged;
}
disposed = true;
}
}

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

Loading…
Cancel
Save