diff --git a/SharpDevelop.Tests.sln b/SharpDevelop.Tests.sln
index 40e0e7cb51..c9ea3c0c5b 100644
--- a/SharpDevelop.Tests.sln
+++ b/SharpDevelop.Tests.sln
@@ -1,69 +1,69 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
-# SharpDevelop 4.0.0.6797
+# SharpDevelop 4.0.0.6842
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{256F5C28-532C-44C0-8AB8-D8EC5E492E01}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.BuildWorker35", "src\Main\ICSharpCode.SharpDevelop.BuildWorker35\ICSharpCode.SharpDevelop.BuildWorker35.csproj", "{B5F54272-49F0-40DB-845A-8D837875D3BA}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartUp", "src\Main\StartUp\Project\StartUp.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.BuildWorker", "src\Main\ICSharpCode.SharpDevelop.BuildWorker\ICSharpCode.SharpDevelop.BuildWorker.csproj", "{C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Widgets", "src\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj", "{8035765F-D51F-4A0C-A746-2FD100E19419}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom.Tests", "src\Main\ICSharpCode.SharpDevelop.Dom\Tests\ICSharpCode.SharpDevelop.Dom.Tests\ICSharpCode.SharpDevelop.Dom.Tests.csproj", "{7DB80259-24D4-46C3-A024-53FF1987733D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "src\Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Tests", "src\Main\Base\Test\ICSharpCode.SharpDevelop.Tests.csproj", "{4980B743-B32F-4aba-AABD-45E2CAD3568D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Sda", "src\Main\ICSharpCode.SharpDevelop.Sda\ICSharpCode.SharpDevelop.Sda.csproj", "{80318B5F-A25D-45AB-8A95-EF31D2370A4C}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.Tests", "src\Main\Core\Test\ICSharpCode.Core.Tests.csproj", "{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom", "src\Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj", "{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "src\Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.Presentation", "src\Main\ICSharpCode.Core.Presentation\ICSharpCode.Core.Presentation.csproj", "{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.WinForms", "src\Main\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj", "{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.WinForms", "src\Main\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj", "{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.Presentation", "src\Main\ICSharpCode.Core.Presentation\ICSharpCode.Core.Presentation.csproj", "{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom", "src\Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj", "{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "src\Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.Tests", "src\Main\Core\Test\ICSharpCode.Core.Tests.csproj", "{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Sda", "src\Main\ICSharpCode.SharpDevelop.Sda\ICSharpCode.SharpDevelop.Sda.csproj", "{80318B5F-A25D-45AB-8A95-EF31D2370A4C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Tests", "src\Main\Base\Test\ICSharpCode.SharpDevelop.Tests.csproj", "{4980B743-B32F-4aba-AABD-45E2CAD3568D}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "src\Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom.Tests", "src\Main\ICSharpCode.SharpDevelop.Dom\Tests\ICSharpCode.SharpDevelop.Dom.Tests\ICSharpCode.SharpDevelop.Dom.Tests.csproj", "{7DB80259-24D4-46C3-A024-53FF1987733D}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Widgets", "src\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj", "{8035765F-D51F-4A0C-A746-2FD100E19419}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.BuildWorker", "src\Main\ICSharpCode.SharpDevelop.BuildWorker\ICSharpCode.SharpDevelop.BuildWorker.csproj", "{C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartUp", "src\Main\StartUp\Project\StartUp.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.BuildWorker35", "src\Main\ICSharpCode.SharpDevelop.BuildWorker35\ICSharpCode.SharpDevelop.BuildWorker35.csproj", "{B5F54272-49F0-40DB-845A-8D837875D3BA}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
@@ -72,45 +72,45 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit.Tests", "src\Libraries\AvalonEdit\ICSharpCode.AvalonEdit.Tests\ICSharpCode.AvalonEdit.Tests.csproj", "{6222A3A1-83CE-47A3-A4E4-A018F82D44D8}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TreeView", "src\Libraries\SharpTreeView\ICSharpCode.TreeView\ICSharpCode.TreeView.csproj", "{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NRefactory", "NRefactory", "{E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}"
- ProjectSection(SolutionItems) = postProject
- EndProjectSection
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aga.Controls", "src\Libraries\TreeViewAdv\Aga.Controls\Aga.Controls.csproj", "{E73BB233-D88B-44A7-A98F-D71EE158381D}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryTests", "src\Libraries\NRefactory\Test\NRefactoryTests.csproj", "{870115DD-960A-4406-A6B9-600BCDC36A03}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Build.Tasks", "src\Libraries\ICSharpCode.Build.Tasks\Project\ICSharpCode.Build.Tasks.csproj", "{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryASTGenerator", "src\Libraries\NRefactory\NRefactoryASTGenerator\NRefactoryASTGenerator.csproj", "{B22522AA-B5BF-4A58-AC6D-D4B45805521F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit", "src\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj", "{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonDock", "src\Libraries\AvalonDock\AvalonDock\AvalonDock.csproj", "{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NRefactory", "NRefactory", "{E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}"
+ ProjectSection(SolutionItems) = postProject
+ EndProjectSection
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactory", "src\Libraries\NRefactory\Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonDock", "src\Libraries\AvalonDock\AvalonDock\AvalonDock.csproj", "{2FF700C2-A38A-48BD-A637-8CAFD4FE6237}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit", "src\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj", "{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryASTGenerator", "src\Libraries\NRefactory\NRefactoryASTGenerator\NRefactoryASTGenerator.csproj", "{B22522AA-B5BF-4A58-AC6D-D4B45805521F}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Build.Tasks", "src\Libraries\ICSharpCode.Build.Tasks\Project\ICSharpCode.Build.Tasks.csproj", "{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryTests", "src\Libraries\NRefactory\Test\NRefactoryTests.csproj", "{870115DD-960A-4406-A6B9-600BCDC36A03}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aga.Controls", "src\Libraries\TreeViewAdv\Aga.Controls\Aga.Controls.csproj", "{E73BB233-D88B-44A7-A98F-D71EE158381D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TreeView", "src\Libraries\SharpTreeView\ICSharpCode.TreeView\ICSharpCode.TreeView.csproj", "{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit.Tests", "src\Libraries\AvalonEdit\ICSharpCode.AvalonEdit.Tests\ICSharpCode.AvalonEdit.Tests.csproj", "{6222A3A1-83CE-47A3-A4E4-A018F82D44D8}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
@@ -119,244 +119,239 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{393278
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Version Control", "Version Control", "{F208FF4F-E5D8-41D5-A7C7-B463976F156E}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analysis", "Analysis", "{F355E45F-F54F-4B42-8916-9A633A392789}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitAddIn", "src\AddIns\VersionControl\GitAddIn\GitAddIn.csproj", "{83F15BA7-8478-4664-81BB-A82F146D88B3}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeQualityAnalysis", "src\AddIns\Analysis\CodeQuality\CodeQualityAnalysis.csproj", "{76DD1CC0-0D86-44A1-9BD6-D91F79807BC3}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SubversionAddIn", "src\AddIns\VersionControl\SubversionAddIn\SubversionAddIn.csproj", "{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting.Tests", "src\AddIns\Analysis\UnitTesting\Test\UnitTesting.Tests.csproj", "{44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Reports", "Reports", "{8789D7FF-B36C-4187-B57D-55ED64623272}"
- ProjectSection(SolutionItems) = postProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SourceAnalysis", "src\AddIns\Analysis\SourceAnalysis\SourceAnalysis.csproj", "{CE498514-D12D-4B6E-AE0E-FEC29BD43748}"
+ ProjectSection(ProjectDependencies) = postProject
+ {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Addin.Test", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Addin\Test\ICSharpCode.Reports.Addin.Test.csproj", "{2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeCoverage", "src\AddIns\Analysis\CodeCoverage\Project\CodeCoverage.csproj", "{08CE9972-283B-44F4-82FA-966F7DFA6B7A}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Addin", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Addin\ICSharpCode.Reports.Addin.csproj", "{35D002D7-C78B-44FB-92AA-104BEB431678}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeAnalysis", "src\AddIns\Analysis\CodeAnalysis\CodeAnalysis.csproj", "{3EAA45A9-735C-4AC7-A799-947B93EA449D}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Core.Test", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Core\Test\ICSharpCode.Reports.Core.Test\ICSharpCode.Reports.Core.Test.csproj", "{E16B73CA-3603-47EE-915E-6F8B2A07304B}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting", "src\AddIns\Analysis\UnitTesting\UnitTesting.csproj", "{1F261725-6318-4434-A1B1-6C70CE4CD324}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Core", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Core\ICSharpCode.Reports.Core.csproj", "{4B2239FF-8FD6-431D-9D22-1B8049BA6917}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeCoverage.Tests", "src\AddIns\Analysis\CodeCoverage\Test\CodeCoverage.Tests.csproj", "{A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Irony", "src\AddIns\Misc\Reports\Irony\Irony.csproj", "{D81F5C91-D7DB-46E5-BC99-49488FB6814C}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}"
+ ProjectSection(SolutionItems) = postProject
+ EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Profiler", "Profiler", "{C4035C32-026F-4158-AF15-113EA1EF1960}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WpfDesign", "WpfDesign", "{6022AC51-B658-4C54-97EF-79187AC65B47}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.AddIn", "src\AddIns\Analysis\Profiler\Frontend\AddIn\Profiler.AddIn.csproj", "{D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.XamlDom", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign.XamlDom\Project\WpfDesign.XamlDom.csproj", "{88DA149F-21B2-48AB-82C4-28FB6BDFD783}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
- {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6} = {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.Controls", "src\AddIns\Analysis\Profiler\Frontend\Controls\Profiler.Controls.csproj", "{BDA49550-5ED1-4C6B-B648-657B2CACD8E0}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.Tests", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign.Designer\Tests\WpfDesign.Tests.csproj", "{943DBBB3-E84E-4CF4-917C-C05AFA8743C1}"
ProjectSection(ProjectDependencies) = postProject
- {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6} = {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.Controller", "src\AddIns\Analysis\Profiler\Controller\Profiler.Controller.csproj", "{72FFB35A-C9E2-4A31-B4FA-E3E3E28DED5F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.Designer", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign.Designer\Project\WpfDesign.Designer.csproj", "{78CC29AC-CC79-4355-B1F2-97936DF198AC}"
ProjectSection(ProjectDependencies) = postProject
- {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6} = {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.X64Converter", "src\AddIns\Analysis\Profiler\X64Converter\Profiler.X64Converter.csproj", "{FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.AddIn", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign.AddIn\WpfDesign.AddIn.csproj", "{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.Tests", "src\AddIns\Analysis\Profiler\Tests\Profiler.Tests\Profiler.Tests.csproj", "{068F9531-5D29-49E0-980E-59982A3A0469}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign\Project\WpfDesign.csproj", "{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}"
ProjectSection(ProjectDependencies) = postProject
- {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6} = {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Language Bindings", "Language Bindings", "{E0646C25-36F2-4524-969F-FA621353AB94}"
- ProjectSection(SolutionItems) = postProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlEditor.Tests", "src\AddIns\DisplayBindings\XmlEditor\Test\XmlEditor.Tests.csproj", "{FC0FE702-A87D-4D70-A9B6-1ECCD611125F}"
+ ProjectSection(ProjectDependencies) = postProject
+ {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Ruby", "Ruby", "{C7288E72-FFBE-48CD-84B4-6CBF95A7195A}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IconEditor", "IconEditor", "{0773ED53-08E2-4495-A3BE-CA0B5D413C15}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RubyBinding.Tests", "src\AddIns\BackendBindings\Ruby\RubyBinding\Test\RubyBinding.Tests.csproj", "{01DF0475-0CB2-4E81-971B-BADC60CDE3A5}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IconEditorAddIn", "src\AddIns\DisplayBindings\IconEditor\IconEditorAddIn\IconEditorAddIn.csproj", "{DFB936AD-90EE-4B4F-941E-4F4A636F0D92}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RubyBinding", "src\AddIns\BackendBindings\Ruby\RubyBinding\Project\RubyBinding.csproj", "{C896FFFF-5B6C-4B0E-B6DF-049865F501B4}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IconEditor", "src\AddIns\DisplayBindings\IconEditor\IconEditor\IconEditor.csproj", "{DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CppBinding", "src\AddIns\BackendBindings\CppBinding\CppBinding\CppBinding.csproj", "{70966F84-74C9-4067-A379-0C674A929233}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HexEditor", "src\AddIns\DisplayBindings\HexEditor\Project\HexEditor.csproj", "{E618A9CD-A39F-4925-A538-E8A3FEF24E54}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding.Tests", "src\AddIns\BackendBindings\CSharpBinding\Tests\CSharpBinding.Tests.csproj", "{52006F3F-3156-45DE-89D8-C4813694FBA4}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceEditor", "src\AddIns\DisplayBindings\ResourceEditor\Project\ResourceEditor.csproj", "{CBC6C247-747B-4908-B09A-4D2E0F640B6B}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VBNetBinding.Tests", "src\AddIns\BackendBindings\VBNetBinding\Test\VBNetBinding.Tests.csproj", "{50A89267-A28B-4DF3-8E62-912E005143B8}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonEdit.AddIn", "src\AddIns\DisplayBindings\AvalonEdit.AddIn\AvalonEdit.AddIn.csproj", "{0162E499-42D0-409B-AA25-EED21F75336B}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Boo", "Boo", "{97B3B514-AB0E-4FE1-89DE-8A945F5112AE}"
- ProjectSection(SolutionItems) = postProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlEditor", "src\AddIns\DisplayBindings\XmlEditor\Project\XmlEditor.csproj", "{DCA2703D-250A-463E-A68A-07ED105AE6BD}"
+ ProjectSection(ProjectDependencies) = postProject
+ {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BooBinding.Tests", "src\AddIns\BackendBindings\Boo\BooBinding\Test\BooBinding.Tests.csproj", "{6FA16499-896F-4C02-BB43-1AF5C6C7C713}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FormsDesigner", "src\AddIns\DisplayBindings\FormsDesigner\Project\FormsDesigner.csproj", "{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BooBinding", "src\AddIns\BackendBindings\Boo\BooBinding\Project\BooBinding.csproj", "{4AC2D5F1-F671-480C-A075-6BF62B3721B2}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ClassDiagram", "ClassDiagram", "{BFA3BF26-33BD-4A65-B84D-C7F30D131668}"
+ ProjectSection(SolutionItems) = postProject
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassCanvas", "src\AddIns\DisplayBindings\ClassDiagram\ClassCanvas\ClassCanvas.csproj", "{08F772A1-F0BE-433E-8B37-F6522953DB05}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryToBooConverter", "src\AddIns\BackendBindings\Boo\NRefactoryToBooConverter\Project\NRefactoryToBooConverter.csproj", "{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassDiagramAddin", "src\AddIns\DisplayBindings\ClassDiagram\ClassDiagramAddin\ClassDiagramAddin.csproj", "{5A1354DF-4989-4BB4-BC6B-D627C2E9FA13}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryToBooConverter.Tests", "src\AddIns\BackendBindings\Boo\NRefactoryToBooConverter\Test\NRefactoryToBooConverter.Tests.csproj", "{C9DE556D-325C-4544-B29F-16A9EB7C9830}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Diagrams", "src\AddIns\DisplayBindings\ClassDiagram\DiagramRouter\Diagrams.csproj", "{0991423A-DBF6-4C89-B365-A1DF1EB32E42}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Python", "Python", "{CA76F702-5B4E-4918-B8D8-7FF8382434FF}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Data", "Data", "{C7F29FC2-1B03-4CDD-9E30-400F4765FF04}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PythonBinding.Tests", "src\AddIns\BackendBindings\Python\PythonBinding\Test\PythonBinding.Tests.csproj", "{23B517C9-1ECC-4419-A13F-0B7136D085CB}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.Addin", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.Addin\ICSharpCode.Data.Addin.csproj", "{A9F12710-24E4-46D4-832C-6ECB395B9EAD}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Python.Build.Tasks.Tests", "src\AddIns\BackendBindings\Python\Python.Build.Tasks\Test\Python.Build.Tasks.Tests.csproj", "{833904AB-3CD4-4071-9B48-5770E44685AA}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.Core", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.Core\ICSharpCode.Data.Core.csproj", "{B7823AE9-4B43-4859-8796-2EBDC116FBB8}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Python.Build.Tasks", "src\AddIns\BackendBindings\Python\Python.Build.Tasks\Project\Python.Build.Tasks.csproj", "{D332F2D1-2CF1-43B7-903C-844BD5211A7E}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.Core.UI", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.Core.UI\ICSharpCode.Data.Core.UI.csproj", "{BAD94D6E-4159-4CB6-B991-486F412D9BB6}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PythonBinding", "src\AddIns\BackendBindings\Python\PythonBinding\Project\PythonBinding.csproj", "{8D732610-8FC6-43BA-94C9-7126FD7FE361}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.EDMDesigner.Core", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.EDMDesigner.Core\ICSharpCode.Data.EDMDesigner.Core.csproj", "{5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WixBinding", "src\AddIns\BackendBindings\WixBinding\Project\WixBinding.csproj", "{E1B288A2-08EE-4318-8BBB-8AB72C69E33E}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.EDMDesigner.Core.UI", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.EDMDesigner.Core.UI\ICSharpCode.Data.EDMDesigner.Core.UI.csproj", "{EEF5E054-4192-4A57-8FBF-E860D808A51D}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding", "src\AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.SQLServer", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.SQLServer\ICSharpCode.Data.SQLServer.csproj", "{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VBNetBinding", "src\AddIns\BackendBindings\VBNetBinding\Project\VBNetBinding.csproj", "{BF38FB72-B380-4196-AF8C-95749D726C61}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SettingsEditor", "src\AddIns\DisplayBindings\SettingsEditor\Project\SettingsEditor.csproj", "{85226AFB-CE71-4851-9A75-7EEC663A8E8A}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlBinding", "src\AddIns\BackendBindings\XamlBinding\XamlBinding\XamlBinding.csproj", "{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}"
- ProjectSection(ProjectDependencies) = postProject
- {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{F3662720-9EA2-4591-BBC6-97361DCE50A9}"
+ ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlBinding.Tests", "src\AddIns\BackendBindings\XamlBinding\XamlBinding.Tests\XamlBinding.Tests.csproj", "{F390DA70-1FE1-4715-81A0-389AB010C130}"
- ProjectSection(ProjectDependencies) = postProject
- {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UsageDataCollector", "UsageDataCollector", "{DEFC8584-BEC3-4921-BD0F-40482E450B7B}"
+ ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WixBinding.Tests", "src\AddIns\BackendBindings\WixBinding\Test\WixBinding.Tests.csproj", "{388E7B64-0393-4EB4-A3E3-5C474F141853}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UsageDataCollector.AddIn", "src\AddIns\Misc\UsageDataCollector\UsageDataCollector.AddIn\UsageDataCollector.AddIn.csproj", "{0008FCE9-9EB4-4E2E-979B-553278E5BBA6}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FSharpBinding", "src\AddIns\BackendBindings\FSharpBinding\FSharpBinding.csproj", "{E954F3CB-A446-492F-A664-2B376EBC86E8}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UsageDataCollector", "src\AddIns\Misc\UsageDataCollector\UsageDataCollector\UsageDataCollector.csproj", "{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Scripting", "src\AddIns\BackendBindings\Scripting\Project\ICSharpCode.Scripting.csproj", "{7048AE18-EB93-4A84-82D0-DD60EB58ADBD}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SearchAndReplace.Tests", "src\AddIns\Misc\SearchAndReplace\Test\SearchAndReplace.Tests.csproj", "{A569DCC1-C608-45FD-B770-4F79335EF154}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Scripting.Tests", "src\AddIns\BackendBindings\Scripting\Test\ICSharpCode.Scripting.Tests.csproj", "{85C09AD8-183B-403A-869A-7226646218A9}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceToolkit.Tests", "src\AddIns\Misc\ResourceToolkit\Test\ResourceToolkit.Tests.csproj", "{DD9AE6A5-2B9D-443A-BC71-38BE578C36BD}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{CDE0C5A4-2096-48B5-BEA3-74DBA0F0E1EF}"
- ProjectSection(SolutionItems) = postProject
- EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Tests", "src\AddIns\Debugger\Debugger.Tests\Debugger.Tests.csproj", "{A4C858C8-51B6-4265-A695-A20FCEBA1D19}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceToolkit", "src\AddIns\Misc\ResourceToolkit\Project\ResourceToolkit.csproj", "{461606BD-E824-4D0A-8CBA-01810B1F5E02}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "src\AddIns\Debugger\Debugger.Core\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegExpTk", "src\AddIns\Misc\RegExpTk\Project\RegExpTk.csproj", "{64A3E5E6-90BF-47F6-94DF-68C94B62C817}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.AddIn", "src\AddIns\Debugger\Debugger.AddIn\Debugger.AddIn.csproj", "{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PInvokeAddIn", "src\AddIns\Misc\PInvokeAddIn\Project\PInvokeAddIn.csproj", "{5EEB99CF-EA2B-4733-80A6-CE9192D68170}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{F3662720-9EA2-4591-BBC6-97361DCE50A9}"
- ProjectSection(SolutionItems) = postProject
- EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelpViewer", "src\AddIns\Misc\HelpViewer\HelpViewer.csproj", "{80F76D10-0B44-4D55-B4BD-DAEB5464090C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FiletypeRegisterer", "src\AddIns\Misc\FiletypeRegisterer\Project\FiletypeRegisterer.csproj", "{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpRefactoring.Tests", "src\AddIns\Misc\SharpRefactoring\Test\SharpRefactoring.Tests.csproj", "{A4AA51DE-A096-47EC-AA5D-D91457834ECF}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddinScout", "src\AddIns\Misc\AddinScout\Project\AddinScout.csproj", "{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpRefactoring", "src\AddIns\Misc\SharpRefactoring\Project\SharpRefactoring.csproj", "{3CA90546-3B4C-4663-9445-C4E9371750A7}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddInManager", "src\AddIns\Misc\AddInManager\Project\AddInManager.csproj", "{F93E52FD-DA66-4CE5-A0CB-BCD902811122}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SearchAndReplace", "src\AddIns\Misc\SearchAndReplace\Project\SearchAndReplace.csproj", "{9196DD8A-B4D4-4780-8742-C5762E547FC2}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartPage", "src\AddIns\Misc\StartPage\Project\StartPage.csproj", "{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
@@ -366,230 +361,240 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReflectorAddIn", "src\AddIn
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartPage", "src\AddIns\Misc\StartPage\Project\StartPage.csproj", "{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}"
- ProjectSection(ProjectDependencies) = postProject
- {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
- EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddInManager", "src\AddIns\Misc\AddInManager\Project\AddInManager.csproj", "{F93E52FD-DA66-4CE5-A0CB-BCD902811122}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SearchAndReplace", "src\AddIns\Misc\SearchAndReplace\Project\SearchAndReplace.csproj", "{9196DD8A-B4D4-4780-8742-C5762E547FC2}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddinScout", "src\AddIns\Misc\AddinScout\Project\AddinScout.csproj", "{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpRefactoring", "src\AddIns\Misc\SharpRefactoring\Project\SharpRefactoring.csproj", "{3CA90546-3B4C-4663-9445-C4E9371750A7}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FiletypeRegisterer", "src\AddIns\Misc\FiletypeRegisterer\Project\FiletypeRegisterer.csproj", "{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpRefactoring.Tests", "src\AddIns\Misc\SharpRefactoring\Test\SharpRefactoring.Tests.csproj", "{A4AA51DE-A096-47EC-AA5D-D91457834ECF}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PInvokeAddIn", "src\AddIns\Misc\PInvokeAddIn\Project\PInvokeAddIn.csproj", "{5EEB99CF-EA2B-4733-80A6-CE9192D68170}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelpViewer", "src\AddIns\Misc\HelpViewer\HelpViewer.csproj", "{80F76D10-0B44-4D55-B4BD-DAEB5464090C}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegExpTk", "src\AddIns\Misc\RegExpTk\Project\RegExpTk.csproj", "{64A3E5E6-90BF-47F6-94DF-68C94B62C817}"
- ProjectSection(ProjectDependencies) = postProject
- {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{CDE0C5A4-2096-48B5-BEA3-74DBA0F0E1EF}"
+ ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceToolkit", "src\AddIns\Misc\ResourceToolkit\Project\ResourceToolkit.csproj", "{461606BD-E824-4D0A-8CBA-01810B1F5E02}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.AddIn", "src\AddIns\Debugger\Debugger.AddIn\Debugger.AddIn.csproj", "{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceToolkit.Tests", "src\AddIns\Misc\ResourceToolkit\Test\ResourceToolkit.Tests.csproj", "{DD9AE6A5-2B9D-443A-BC71-38BE578C36BD}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "src\AddIns\Debugger\Debugger.Core\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SearchAndReplace.Tests", "src\AddIns\Misc\SearchAndReplace\Test\SearchAndReplace.Tests.csproj", "{A569DCC1-C608-45FD-B770-4F79335EF154}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Tests", "src\AddIns\Debugger\Debugger.Tests\Debugger.Tests.csproj", "{A4C858C8-51B6-4265-A695-A20FCEBA1D19}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UsageDataCollector", "UsageDataCollector", "{DEFC8584-BEC3-4921-BD0F-40482E450B7B}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Language Bindings", "Language Bindings", "{E0646C25-36F2-4524-969F-FA621353AB94}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UsageDataCollector", "src\AddIns\Misc\UsageDataCollector\UsageDataCollector\UsageDataCollector.csproj", "{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Scripting.Tests", "src\AddIns\BackendBindings\Scripting\Test\ICSharpCode.Scripting.Tests.csproj", "{85C09AD8-183B-403A-869A-7226646218A9}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UsageDataCollector.AddIn", "src\AddIns\Misc\UsageDataCollector\UsageDataCollector.AddIn\UsageDataCollector.AddIn.csproj", "{0008FCE9-9EB4-4E2E-979B-553278E5BBA6}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Scripting", "src\AddIns\BackendBindings\Scripting\Project\ICSharpCode.Scripting.csproj", "{7048AE18-EB93-4A84-82D0-DD60EB58ADBD}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}"
- ProjectSection(SolutionItems) = postProject
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Data", "Data", "{C7F29FC2-1B03-4CDD-9E30-400F4765FF04}"
- ProjectSection(SolutionItems) = postProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FSharpBinding", "src\AddIns\BackendBindings\FSharpBinding\FSharpBinding.csproj", "{E954F3CB-A446-492F-A664-2B376EBC86E8}"
+ ProjectSection(ProjectDependencies) = postProject
+ {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.SQLServer", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.SQLServer\ICSharpCode.Data.SQLServer.csproj", "{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WixBinding.Tests", "src\AddIns\BackendBindings\WixBinding\Test\WixBinding.Tests.csproj", "{388E7B64-0393-4EB4-A3E3-5C474F141853}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.EDMDesigner.Core.UI", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.EDMDesigner.Core.UI\ICSharpCode.Data.EDMDesigner.Core.UI.csproj", "{EEF5E054-4192-4A57-8FBF-E860D808A51D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlBinding.Tests", "src\AddIns\BackendBindings\XamlBinding\XamlBinding.Tests\XamlBinding.Tests.csproj", "{F390DA70-1FE1-4715-81A0-389AB010C130}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.EDMDesigner.Core", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.EDMDesigner.Core\ICSharpCode.Data.EDMDesigner.Core.csproj", "{5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlBinding", "src\AddIns\BackendBindings\XamlBinding\XamlBinding\XamlBinding.csproj", "{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.Core.UI", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.Core.UI\ICSharpCode.Data.Core.UI.csproj", "{BAD94D6E-4159-4CB6-B991-486F412D9BB6}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VBNetBinding", "src\AddIns\BackendBindings\VBNetBinding\Project\VBNetBinding.csproj", "{BF38FB72-B380-4196-AF8C-95749D726C61}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.Core", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.Core\ICSharpCode.Data.Core.csproj", "{B7823AE9-4B43-4859-8796-2EBDC116FBB8}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding", "src\AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.Addin", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.Addin\ICSharpCode.Data.Addin.csproj", "{A9F12710-24E4-46D4-832C-6ECB395B9EAD}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WixBinding", "src\AddIns\BackendBindings\WixBinding\Project\WixBinding.csproj", "{E1B288A2-08EE-4318-8BBB-8AB72C69E33E}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ClassDiagram", "ClassDiagram", "{BFA3BF26-33BD-4A65-B84D-C7F30D131668}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Python", "Python", "{CA76F702-5B4E-4918-B8D8-7FF8382434FF}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Diagrams", "src\AddIns\DisplayBindings\ClassDiagram\DiagramRouter\Diagrams.csproj", "{0991423A-DBF6-4C89-B365-A1DF1EB32E42}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PythonBinding", "src\AddIns\BackendBindings\Python\PythonBinding\Project\PythonBinding.csproj", "{8D732610-8FC6-43BA-94C9-7126FD7FE361}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassDiagramAddin", "src\AddIns\DisplayBindings\ClassDiagram\ClassDiagramAddin\ClassDiagramAddin.csproj", "{5A1354DF-4989-4BB4-BC6B-D627C2E9FA13}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Python.Build.Tasks", "src\AddIns\BackendBindings\Python\Python.Build.Tasks\Project\Python.Build.Tasks.csproj", "{D332F2D1-2CF1-43B7-903C-844BD5211A7E}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassCanvas", "src\AddIns\DisplayBindings\ClassDiagram\ClassCanvas\ClassCanvas.csproj", "{08F772A1-F0BE-433E-8B37-F6522953DB05}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Python.Build.Tasks.Tests", "src\AddIns\BackendBindings\Python\Python.Build.Tasks\Test\Python.Build.Tasks.Tests.csproj", "{833904AB-3CD4-4071-9B48-5770E44685AA}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FormsDesigner", "src\AddIns\DisplayBindings\FormsDesigner\Project\FormsDesigner.csproj", "{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PythonBinding.Tests", "src\AddIns\BackendBindings\Python\PythonBinding\Test\PythonBinding.Tests.csproj", "{23B517C9-1ECC-4419-A13F-0B7136D085CB}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlEditor", "src\AddIns\DisplayBindings\XmlEditor\Project\XmlEditor.csproj", "{DCA2703D-250A-463E-A68A-07ED105AE6BD}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Boo", "Boo", "{97B3B514-AB0E-4FE1-89DE-8A945F5112AE}"
+ ProjectSection(SolutionItems) = postProject
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryToBooConverter.Tests", "src\AddIns\BackendBindings\Boo\NRefactoryToBooConverter\Test\NRefactoryToBooConverter.Tests.csproj", "{C9DE556D-325C-4544-B29F-16A9EB7C9830}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonEdit.AddIn", "src\AddIns\DisplayBindings\AvalonEdit.AddIn\AvalonEdit.AddIn.csproj", "{0162E499-42D0-409B-AA25-EED21F75336B}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryToBooConverter", "src\AddIns\BackendBindings\Boo\NRefactoryToBooConverter\Project\NRefactoryToBooConverter.csproj", "{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceEditor", "src\AddIns\DisplayBindings\ResourceEditor\Project\ResourceEditor.csproj", "{CBC6C247-747B-4908-B09A-4D2E0F640B6B}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BooBinding", "src\AddIns\BackendBindings\Boo\BooBinding\Project\BooBinding.csproj", "{4AC2D5F1-F671-480C-A075-6BF62B3721B2}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HexEditor", "src\AddIns\DisplayBindings\HexEditor\Project\HexEditor.csproj", "{E618A9CD-A39F-4925-A538-E8A3FEF24E54}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BooBinding.Tests", "src\AddIns\BackendBindings\Boo\BooBinding\Test\BooBinding.Tests.csproj", "{6FA16499-896F-4C02-BB43-1AF5C6C7C713}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IconEditor", "IconEditor", "{0773ED53-08E2-4495-A3BE-CA0B5D413C15}"
- ProjectSection(SolutionItems) = postProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VBNetBinding.Tests", "src\AddIns\BackendBindings\VBNetBinding\Test\VBNetBinding.Tests.csproj", "{50A89267-A28B-4DF3-8E62-912E005143B8}"
+ ProjectSection(ProjectDependencies) = postProject
+ {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IconEditor", "src\AddIns\DisplayBindings\IconEditor\IconEditor\IconEditor.csproj", "{DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding.Tests", "src\AddIns\BackendBindings\CSharpBinding\Tests\CSharpBinding.Tests.csproj", "{52006F3F-3156-45DE-89D8-C4813694FBA4}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IconEditorAddIn", "src\AddIns\DisplayBindings\IconEditor\IconEditorAddIn\IconEditorAddIn.csproj", "{DFB936AD-90EE-4B4F-941E-4F4A636F0D92}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CppBinding", "src\AddIns\BackendBindings\CppBinding\CppBinding\CppBinding.csproj", "{70966F84-74C9-4067-A379-0C674A929233}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlEditor.Tests", "src\AddIns\DisplayBindings\XmlEditor\Test\XmlEditor.Tests.csproj", "{FC0FE702-A87D-4D70-A9B6-1ECCD611125F}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Ruby", "Ruby", "{C7288E72-FFBE-48CD-84B4-6CBF95A7195A}"
+ ProjectSection(SolutionItems) = postProject
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RubyBinding", "src\AddIns\BackendBindings\Ruby\RubyBinding\Project\RubyBinding.csproj", "{C896FFFF-5B6C-4B0E-B6DF-049865F501B4}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WpfDesign", "WpfDesign", "{6022AC51-B658-4C54-97EF-79187AC65B47}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RubyBinding.Tests", "src\AddIns\BackendBindings\Ruby\RubyBinding\Test\RubyBinding.Tests.csproj", "{01DF0475-0CB2-4E81-971B-BADC60CDE3A5}"
+ ProjectSection(ProjectDependencies) = postProject
+ {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Profiler", "Profiler", "{C4035C32-026F-4158-AF15-113EA1EF1960}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign\Project\WpfDesign.csproj", "{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.Tests", "src\AddIns\Analysis\Profiler\Tests\Profiler.Tests\Profiler.Tests.csproj", "{068F9531-5D29-49E0-980E-59982A3A0469}"
ProjectSection(ProjectDependencies) = postProject
+ {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6} = {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.AddIn", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign.AddIn\WpfDesign.AddIn.csproj", "{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.X64Converter", "src\AddIns\Analysis\Profiler\X64Converter\Profiler.X64Converter.csproj", "{FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.Designer", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign.Designer\Project\WpfDesign.Designer.csproj", "{78CC29AC-CC79-4355-B1F2-97936DF198AC}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.Controller", "src\AddIns\Analysis\Profiler\Controller\Profiler.Controller.csproj", "{72FFB35A-C9E2-4A31-B4FA-E3E3E28DED5F}"
ProjectSection(ProjectDependencies) = postProject
+ {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6} = {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.Tests", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign.Designer\Tests\WpfDesign.Tests.csproj", "{943DBBB3-E84E-4CF4-917C-C05AFA8743C1}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.Controls", "src\AddIns\Analysis\Profiler\Frontend\Controls\Profiler.Controls.csproj", "{BDA49550-5ED1-4C6B-B648-657B2CACD8E0}"
ProjectSection(ProjectDependencies) = postProject
+ {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6} = {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.XamlDom", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign.XamlDom\Project\WpfDesign.XamlDom.csproj", "{88DA149F-21B2-48AB-82C4-28FB6BDFD783}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.AddIn", "src\AddIns\Analysis\Profiler\Frontend\AddIn\Profiler.AddIn.csproj", "{D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
+ {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6} = {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6}
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analysis", "Analysis", "{F355E45F-F54F-4B42-8916-9A633A392789}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Reports", "Reports", "{8789D7FF-B36C-4187-B57D-55ED64623272}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeCoverage.Tests", "src\AddIns\Analysis\CodeCoverage\Test\CodeCoverage.Tests.csproj", "{A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Irony", "src\AddIns\Misc\Reports\Irony\Irony.csproj", "{D81F5C91-D7DB-46E5-BC99-49488FB6814C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Core", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Core\ICSharpCode.Reports.Core.csproj", "{4B2239FF-8FD6-431D-9D22-1B8049BA6917}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting", "src\AddIns\Analysis\UnitTesting\UnitTesting.csproj", "{1F261725-6318-4434-A1B1-6C70CE4CD324}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Core.Test", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Core\Test\ICSharpCode.Reports.Core.Test\ICSharpCode.Reports.Core.Test.csproj", "{E16B73CA-3603-47EE-915E-6F8B2A07304B}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeAnalysis", "src\AddIns\Analysis\CodeAnalysis\CodeAnalysis.csproj", "{3EAA45A9-735C-4AC7-A799-947B93EA449D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Addin", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Addin\ICSharpCode.Reports.Addin.csproj", "{35D002D7-C78B-44FB-92AA-104BEB431678}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeCoverage", "src\AddIns\Analysis\CodeCoverage\Project\CodeCoverage.csproj", "{08CE9972-283B-44F4-82FA-966F7DFA6B7A}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Addin.Test", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Addin\Test\ICSharpCode.Reports.Addin.Test.csproj", "{2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SourceAnalysis", "src\AddIns\Analysis\SourceAnalysis\SourceAnalysis.csproj", "{CE498514-D12D-4B6E-AE0E-FEC29BD43748}"
- ProjectSection(ProjectDependencies) = postProject
- {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Version Control", "Version Control", "{F208FF4F-E5D8-41D5-A7C7-B463976F156E}"
+ ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting.Tests", "src\AddIns\Analysis\UnitTesting\Test\UnitTesting.Tests.csproj", "{44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SubversionAddIn", "src\AddIns\VersionControl\SubversionAddIn\SubversionAddIn.csproj", "{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeQualityAnalysis", "src\AddIns\Analysis\CodeQuality\CodeQualityAnalysis.csproj", "{76DD1CC0-0D86-44A1-9BD6-D91F79807BC3}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitAddIn", "src\AddIns\VersionControl\GitAddIn\GitAddIn.csproj", "{83F15BA7-8478-4664-81BB-A82F146D88B3}"
ProjectSection(ProjectDependencies) = postProject
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}
EndProjectSection
@@ -1216,131 +1221,148 @@ Global
{85C09AD8-183B-403A-869A-7226646218A9}.Release|x86.ActiveCfg = Release|x86
{85C09AD8-183B-403A-869A-7226646218A9}.Release|Debug.Build.0 = Release|x86
{85C09AD8-183B-403A-869A-7226646218A9}.Release|Debug.ActiveCfg = Release|x86
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Debug|Win32.Build.0 = Debug|Any CPU
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Debug|x86.Build.0 = Debug|Any CPU
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Debug|Debug.Build.0 = Debug|Any CPU
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Debug|Debug.ActiveCfg = Debug|Any CPU
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Release|Win32.Build.0 = Release|Any CPU
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Release|Win32.ActiveCfg = Release|Any CPU
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Release|x86.Build.0 = Release|Any CPU
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Release|x86.ActiveCfg = Release|Any CPU
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Release|Debug.Build.0 = Release|Any CPU
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A}.Release|Debug.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {1152B71B-3C05-4598-B20D-823B5D40559E} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
- {8035765F-D51F-4A0C-A746-2FD100E19419} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
- {2748AD25-9C63-4E12-877B-4DCE96FBED54} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
- {80318B5F-A25D-45AB-8A95-EF31D2370A4C} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
- {924EE450-603D-49C1-A8E5-4AFAA31CE6F3} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
- {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
- {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
- {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
- {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
- {4980B743-B32F-4aba-AABD-45E2CAD3568D} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
- {7DB80259-24D4-46C3-A024-53FF1987733D} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
- {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
{B5F54272-49F0-40DB-845A-8D837875D3BA} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
- {DDE2A481-8271-4EAC-A330-8FA6A38D13D1} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
- {E73BB233-D88B-44A7-A98F-D71EE158381D} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
- {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
- {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
- {2FF700C2-A38A-48BD-A637-8CAFD4FE6237} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
- {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
+ {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
+ {7DB80259-24D4-46C3-A024-53FF1987733D} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
+ {4980B743-B32F-4aba-AABD-45E2CAD3568D} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
+ {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
+ {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
+ {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
+ {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
+ {924EE450-603D-49C1-A8E5-4AFAA31CE6F3} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
+ {80318B5F-A25D-45AB-8A95-EF31D2370A4C} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
+ {2748AD25-9C63-4E12-877B-4DCE96FBED54} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
+ {8035765F-D51F-4A0C-A746-2FD100E19419} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
+ {1152B71B-3C05-4598-B20D-823B5D40559E} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
{6222A3A1-83CE-47A3-A4E4-A018F82D44D8} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
- {3A9AE6AA-BC07-4A2F-972C-581E3AE2F195} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
- {B22522AA-B5BF-4A58-AC6D-D4B45805521F} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
+ {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
+ {2FF700C2-A38A-48BD-A637-8CAFD4FE6237} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
+ {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
+ {E73BB233-D88B-44A7-A98F-D71EE158381D} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{870115DD-960A-4406-A6B9-600BCDC36A03} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
- {F355E45F-F54F-4B42-8916-9A633A392789} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
- {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
- {F3662720-9EA2-4591-BBC6-97361DCE50A9} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
- {CDE0C5A4-2096-48B5-BEA3-74DBA0F0E1EF} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
- {E0646C25-36F2-4524-969F-FA621353AB94} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
- {C4035C32-026F-4158-AF15-113EA1EF1960} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
- {8789D7FF-B36C-4187-B57D-55ED64623272} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
+ {B22522AA-B5BF-4A58-AC6D-D4B45805521F} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
+ {3A9AE6AA-BC07-4A2F-972C-581E3AE2F195} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{F208FF4F-E5D8-41D5-A7C7-B463976F156E} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
- {17F4D7E0-6933-4C2E-8714-FD7E98D625D5} = {F208FF4F-E5D8-41D5-A7C7-B463976F156E}
- {83F15BA7-8478-4664-81BB-A82F146D88B3} = {F208FF4F-E5D8-41D5-A7C7-B463976F156E}
- {D81F5C91-D7DB-46E5-BC99-49488FB6814C} = {8789D7FF-B36C-4187-B57D-55ED64623272}
- {4B2239FF-8FD6-431D-9D22-1B8049BA6917} = {8789D7FF-B36C-4187-B57D-55ED64623272}
- {E16B73CA-3603-47EE-915E-6F8B2A07304B} = {8789D7FF-B36C-4187-B57D-55ED64623272}
- {35D002D7-C78B-44FB-92AA-104BEB431678} = {8789D7FF-B36C-4187-B57D-55ED64623272}
- {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7} = {8789D7FF-B36C-4187-B57D-55ED64623272}
- {068F9531-5D29-49E0-980E-59982A3A0469} = {C4035C32-026F-4158-AF15-113EA1EF1960}
- {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6} = {C4035C32-026F-4158-AF15-113EA1EF1960}
- {72FFB35A-C9E2-4A31-B4FA-E3E3E28DED5F} = {C4035C32-026F-4158-AF15-113EA1EF1960}
- {BDA49550-5ED1-4C6B-B648-657B2CACD8E0} = {C4035C32-026F-4158-AF15-113EA1EF1960}
- {D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B} = {C4035C32-026F-4158-AF15-113EA1EF1960}
- {85C09AD8-183B-403A-869A-7226646218A9} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {7048AE18-EB93-4A84-82D0-DD60EB58ADBD} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {E954F3CB-A446-492F-A664-2B376EBC86E8} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {388E7B64-0393-4EB4-A3E3-5C474F141853} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {F390DA70-1FE1-4715-81A0-389AB010C130} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {7C96B65D-28A5-4F28-A35B-8D83CE831EE8} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {BF38FB72-B380-4196-AF8C-95749D726C61} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {E1B288A2-08EE-4318-8BBB-8AB72C69E33E} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {CA76F702-5B4E-4918-B8D8-7FF8382434FF} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {97B3B514-AB0E-4FE1-89DE-8A945F5112AE} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {50A89267-A28B-4DF3-8E62-912E005143B8} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {52006F3F-3156-45DE-89D8-C4813694FBA4} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {70966F84-74C9-4067-A379-0C674A929233} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {C7288E72-FFBE-48CD-84B4-6CBF95A7195A} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {C896FFFF-5B6C-4B0E-B6DF-049865F501B4} = {C7288E72-FFBE-48CD-84B4-6CBF95A7195A}
- {01DF0475-0CB2-4E81-971B-BADC60CDE3A5} = {C7288E72-FFBE-48CD-84B4-6CBF95A7195A}
- {C9DE556D-325C-4544-B29F-16A9EB7C9830} = {97B3B514-AB0E-4FE1-89DE-8A945F5112AE}
- {DBCF20A1-BA13-4582-BFA9-74DE4D987B73} = {97B3B514-AB0E-4FE1-89DE-8A945F5112AE}
- {4AC2D5F1-F671-480C-A075-6BF62B3721B2} = {97B3B514-AB0E-4FE1-89DE-8A945F5112AE}
- {6FA16499-896F-4C02-BB43-1AF5C6C7C713} = {97B3B514-AB0E-4FE1-89DE-8A945F5112AE}
- {8D732610-8FC6-43BA-94C9-7126FD7FE361} = {CA76F702-5B4E-4918-B8D8-7FF8382434FF}
- {D332F2D1-2CF1-43B7-903C-844BD5211A7E} = {CA76F702-5B4E-4918-B8D8-7FF8382434FF}
- {833904AB-3CD4-4071-9B48-5770E44685AA} = {CA76F702-5B4E-4918-B8D8-7FF8382434FF}
- {23B517C9-1ECC-4419-A13F-0B7136D085CB} = {CA76F702-5B4E-4918-B8D8-7FF8382434FF}
- {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C} = {CDE0C5A4-2096-48B5-BEA3-74DBA0F0E1EF}
- {1D18D788-F7EE-4585-A23B-34DC8EC63CB8} = {CDE0C5A4-2096-48B5-BEA3-74DBA0F0E1EF}
- {A4C858C8-51B6-4265-A695-A20FCEBA1D19} = {CDE0C5A4-2096-48B5-BEA3-74DBA0F0E1EF}
- {DEFC8584-BEC3-4921-BD0F-40482E450B7B} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
- {A569DCC1-C608-45FD-B770-4F79335EF154} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
- {DD9AE6A5-2B9D-443A-BC71-38BE578C36BD} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
- {461606BD-E824-4D0A-8CBA-01810B1F5E02} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
- {64A3E5E6-90BF-47F6-94DF-68C94B62C817} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
- {5EEB99CF-EA2B-4733-80A6-CE9192D68170} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
- {D022A6CE-7438-41E8-AC64-F2DE18EC54C6} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
- {4B8F0F98-8BE1-402B-AA8B-C8D548577B38} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
- {F93E52FD-DA66-4CE5-A0CB-BCD902811122} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
- {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
- {8AA421C8-D7AF-4957-9F43-5135328ACB24} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
- {9196DD8A-B4D4-4780-8742-C5762E547FC2} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
- {3CA90546-3B4C-4663-9445-C4E9371750A7} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
- {A4AA51DE-A096-47EC-AA5D-D91457834ECF} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
- {80F76D10-0B44-4D55-B4BD-DAEB5464090C} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
- {0008FCE9-9EB4-4E2E-979B-553278E5BBA6} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B}
- {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B}
- {6022AC51-B658-4C54-97EF-79187AC65B47} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
- {FC0FE702-A87D-4D70-A9B6-1ECCD611125F} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
- {0773ED53-08E2-4495-A3BE-CA0B5D413C15} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
- {E618A9CD-A39F-4925-A538-E8A3FEF24E54} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
- {CBC6C247-747B-4908-B09A-4D2E0F640B6B} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
- {0162E499-42D0-409B-AA25-EED21F75336B} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
- {DCA2703D-250A-463E-A68A-07ED105AE6BD} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
- {7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
- {BFA3BF26-33BD-4A65-B84D-C7F30D131668} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
+ {8789D7FF-B36C-4187-B57D-55ED64623272} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
+ {C4035C32-026F-4158-AF15-113EA1EF1960} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
+ {E0646C25-36F2-4524-969F-FA621353AB94} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
+ {CDE0C5A4-2096-48B5-BEA3-74DBA0F0E1EF} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
+ {F3662720-9EA2-4591-BBC6-97361DCE50A9} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
+ {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
+ {F355E45F-F54F-4B42-8916-9A633A392789} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
+ {A5C0E8F8-9D04-46ED-91D6-1DEF1575313B} = {F355E45F-F54F-4B42-8916-9A633A392789}
+ {1F261725-6318-4434-A1B1-6C70CE4CD324} = {F355E45F-F54F-4B42-8916-9A633A392789}
+ {3EAA45A9-735C-4AC7-A799-947B93EA449D} = {F355E45F-F54F-4B42-8916-9A633A392789}
+ {08CE9972-283B-44F4-82FA-966F7DFA6B7A} = {F355E45F-F54F-4B42-8916-9A633A392789}
+ {CE498514-D12D-4B6E-AE0E-FEC29BD43748} = {F355E45F-F54F-4B42-8916-9A633A392789}
+ {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181} = {F355E45F-F54F-4B42-8916-9A633A392789}
+ {76DD1CC0-0D86-44A1-9BD6-D91F79807BC3} = {F355E45F-F54F-4B42-8916-9A633A392789}
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{C7F29FC2-1B03-4CDD-9E30-400F4765FF04} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
- {A9F12710-24E4-46D4-832C-6ECB395B9EAD} = {C7F29FC2-1B03-4CDD-9E30-400F4765FF04}
- {B7823AE9-4B43-4859-8796-2EBDC116FBB8} = {C7F29FC2-1B03-4CDD-9E30-400F4765FF04}
- {BAD94D6E-4159-4CB6-B991-486F412D9BB6} = {C7F29FC2-1B03-4CDD-9E30-400F4765FF04}
- {5C70D6AB-0A33-43F9-B8B5-54558C35BBB1} = {C7F29FC2-1B03-4CDD-9E30-400F4765FF04}
- {EEF5E054-4192-4A57-8FBF-E860D808A51D} = {C7F29FC2-1B03-4CDD-9E30-400F4765FF04}
- {AFE34868-AFA1-4E1C-9450-47AB4BE329D5} = {C7F29FC2-1B03-4CDD-9E30-400F4765FF04}
- {08F772A1-F0BE-433E-8B37-F6522953DB05} = {BFA3BF26-33BD-4A65-B84D-C7F30D131668}
- {5A1354DF-4989-4BB4-BC6B-D627C2E9FA13} = {BFA3BF26-33BD-4A65-B84D-C7F30D131668}
- {0991423A-DBF6-4C89-B365-A1DF1EB32E42} = {BFA3BF26-33BD-4A65-B84D-C7F30D131668}
- {DFB936AD-90EE-4B4F-941E-4F4A636F0D92} = {0773ED53-08E2-4495-A3BE-CA0B5D413C15}
- {DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD} = {0773ED53-08E2-4495-A3BE-CA0B5D413C15}
- {88DA149F-21B2-48AB-82C4-28FB6BDFD783} = {6022AC51-B658-4C54-97EF-79187AC65B47}
- {943DBBB3-E84E-4CF4-917C-C05AFA8743C1} = {6022AC51-B658-4C54-97EF-79187AC65B47}
- {78CC29AC-CC79-4355-B1F2-97936DF198AC} = {6022AC51-B658-4C54-97EF-79187AC65B47}
- {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865} = {6022AC51-B658-4C54-97EF-79187AC65B47}
+ {BFA3BF26-33BD-4A65-B84D-C7F30D131668} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
+ {7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
+ {DCA2703D-250A-463E-A68A-07ED105AE6BD} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
+ {0162E499-42D0-409B-AA25-EED21F75336B} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
+ {CBC6C247-747B-4908-B09A-4D2E0F640B6B} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
+ {E618A9CD-A39F-4925-A538-E8A3FEF24E54} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
+ {0773ED53-08E2-4495-A3BE-CA0B5D413C15} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
+ {FC0FE702-A87D-4D70-A9B6-1ECCD611125F} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
+ {6022AC51-B658-4C54-97EF-79187AC65B47} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{66A378A1-E9F4-4AD5-8946-D0EC06C2902F} = {6022AC51-B658-4C54-97EF-79187AC65B47}
- {76DD1CC0-0D86-44A1-9BD6-D91F79807BC3} = {F355E45F-F54F-4B42-8916-9A633A392789}
- {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181} = {F355E45F-F54F-4B42-8916-9A633A392789}
- {CE498514-D12D-4B6E-AE0E-FEC29BD43748} = {F355E45F-F54F-4B42-8916-9A633A392789}
- {08CE9972-283B-44F4-82FA-966F7DFA6B7A} = {F355E45F-F54F-4B42-8916-9A633A392789}
- {3EAA45A9-735C-4AC7-A799-947B93EA449D} = {F355E45F-F54F-4B42-8916-9A633A392789}
- {1F261725-6318-4434-A1B1-6C70CE4CD324} = {F355E45F-F54F-4B42-8916-9A633A392789}
- {A5C0E8F8-9D04-46ED-91D6-1DEF1575313B} = {F355E45F-F54F-4B42-8916-9A633A392789}
+ {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865} = {6022AC51-B658-4C54-97EF-79187AC65B47}
+ {78CC29AC-CC79-4355-B1F2-97936DF198AC} = {6022AC51-B658-4C54-97EF-79187AC65B47}
+ {943DBBB3-E84E-4CF4-917C-C05AFA8743C1} = {6022AC51-B658-4C54-97EF-79187AC65B47}
+ {88DA149F-21B2-48AB-82C4-28FB6BDFD783} = {6022AC51-B658-4C54-97EF-79187AC65B47}
+ {DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD} = {0773ED53-08E2-4495-A3BE-CA0B5D413C15}
+ {DFB936AD-90EE-4B4F-941E-4F4A636F0D92} = {0773ED53-08E2-4495-A3BE-CA0B5D413C15}
+ {0991423A-DBF6-4C89-B365-A1DF1EB32E42} = {BFA3BF26-33BD-4A65-B84D-C7F30D131668}
+ {5A1354DF-4989-4BB4-BC6B-D627C2E9FA13} = {BFA3BF26-33BD-4A65-B84D-C7F30D131668}
+ {08F772A1-F0BE-433E-8B37-F6522953DB05} = {BFA3BF26-33BD-4A65-B84D-C7F30D131668}
+ {AFE34868-AFA1-4E1C-9450-47AB4BE329D5} = {C7F29FC2-1B03-4CDD-9E30-400F4765FF04}
+ {EEF5E054-4192-4A57-8FBF-E860D808A51D} = {C7F29FC2-1B03-4CDD-9E30-400F4765FF04}
+ {5C70D6AB-0A33-43F9-B8B5-54558C35BBB1} = {C7F29FC2-1B03-4CDD-9E30-400F4765FF04}
+ {BAD94D6E-4159-4CB6-B991-486F412D9BB6} = {C7F29FC2-1B03-4CDD-9E30-400F4765FF04}
+ {B7823AE9-4B43-4859-8796-2EBDC116FBB8} = {C7F29FC2-1B03-4CDD-9E30-400F4765FF04}
+ {A9F12710-24E4-46D4-832C-6ECB395B9EAD} = {C7F29FC2-1B03-4CDD-9E30-400F4765FF04}
+ {80F76D10-0B44-4D55-B4BD-DAEB5464090C} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
+ {A4AA51DE-A096-47EC-AA5D-D91457834ECF} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
+ {3CA90546-3B4C-4663-9445-C4E9371750A7} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
+ {9196DD8A-B4D4-4780-8742-C5762E547FC2} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
+ {8AA421C8-D7AF-4957-9F43-5135328ACB24} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
+ {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
+ {F93E52FD-DA66-4CE5-A0CB-BCD902811122} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
+ {4B8F0F98-8BE1-402B-AA8B-C8D548577B38} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
+ {D022A6CE-7438-41E8-AC64-F2DE18EC54C6} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
+ {5EEB99CF-EA2B-4733-80A6-CE9192D68170} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
+ {64A3E5E6-90BF-47F6-94DF-68C94B62C817} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
+ {461606BD-E824-4D0A-8CBA-01810B1F5E02} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
+ {DD9AE6A5-2B9D-443A-BC71-38BE578C36BD} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
+ {A569DCC1-C608-45FD-B770-4F79335EF154} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
+ {DEFC8584-BEC3-4921-BD0F-40482E450B7B} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
+ {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B}
+ {0008FCE9-9EB4-4E2E-979B-553278E5BBA6} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B}
+ {A4C858C8-51B6-4265-A695-A20FCEBA1D19} = {CDE0C5A4-2096-48B5-BEA3-74DBA0F0E1EF}
+ {1D18D788-F7EE-4585-A23B-34DC8EC63CB8} = {CDE0C5A4-2096-48B5-BEA3-74DBA0F0E1EF}
+ {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C} = {CDE0C5A4-2096-48B5-BEA3-74DBA0F0E1EF}
+ {C7288E72-FFBE-48CD-84B4-6CBF95A7195A} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {70966F84-74C9-4067-A379-0C674A929233} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {52006F3F-3156-45DE-89D8-C4813694FBA4} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {50A89267-A28B-4DF3-8E62-912E005143B8} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {97B3B514-AB0E-4FE1-89DE-8A945F5112AE} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {CA76F702-5B4E-4918-B8D8-7FF8382434FF} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {E1B288A2-08EE-4318-8BBB-8AB72C69E33E} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {BF38FB72-B380-4196-AF8C-95749D726C61} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {7C96B65D-28A5-4F28-A35B-8D83CE831EE8} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {F390DA70-1FE1-4715-81A0-389AB010C130} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {388E7B64-0393-4EB4-A3E3-5C474F141853} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {E954F3CB-A446-492F-A664-2B376EBC86E8} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {7048AE18-EB93-4A84-82D0-DD60EB58ADBD} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {85C09AD8-183B-403A-869A-7226646218A9} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {23B517C9-1ECC-4419-A13F-0B7136D085CB} = {CA76F702-5B4E-4918-B8D8-7FF8382434FF}
+ {833904AB-3CD4-4071-9B48-5770E44685AA} = {CA76F702-5B4E-4918-B8D8-7FF8382434FF}
+ {D332F2D1-2CF1-43B7-903C-844BD5211A7E} = {CA76F702-5B4E-4918-B8D8-7FF8382434FF}
+ {8D732610-8FC6-43BA-94C9-7126FD7FE361} = {CA76F702-5B4E-4918-B8D8-7FF8382434FF}
+ {6FA16499-896F-4C02-BB43-1AF5C6C7C713} = {97B3B514-AB0E-4FE1-89DE-8A945F5112AE}
+ {4AC2D5F1-F671-480C-A075-6BF62B3721B2} = {97B3B514-AB0E-4FE1-89DE-8A945F5112AE}
+ {DBCF20A1-BA13-4582-BFA9-74DE4D987B73} = {97B3B514-AB0E-4FE1-89DE-8A945F5112AE}
+ {C9DE556D-325C-4544-B29F-16A9EB7C9830} = {97B3B514-AB0E-4FE1-89DE-8A945F5112AE}
+ {01DF0475-0CB2-4E81-971B-BADC60CDE3A5} = {C7288E72-FFBE-48CD-84B4-6CBF95A7195A}
+ {C896FFFF-5B6C-4B0E-B6DF-049865F501B4} = {C7288E72-FFBE-48CD-84B4-6CBF95A7195A}
+ {D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B} = {C4035C32-026F-4158-AF15-113EA1EF1960}
+ {BDA49550-5ED1-4C6B-B648-657B2CACD8E0} = {C4035C32-026F-4158-AF15-113EA1EF1960}
+ {72FFB35A-C9E2-4A31-B4FA-E3E3E28DED5F} = {C4035C32-026F-4158-AF15-113EA1EF1960}
+ {FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6} = {C4035C32-026F-4158-AF15-113EA1EF1960}
+ {068F9531-5D29-49E0-980E-59982A3A0469} = {C4035C32-026F-4158-AF15-113EA1EF1960}
+ {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7} = {8789D7FF-B36C-4187-B57D-55ED64623272}
+ {35D002D7-C78B-44FB-92AA-104BEB431678} = {8789D7FF-B36C-4187-B57D-55ED64623272}
+ {E16B73CA-3603-47EE-915E-6F8B2A07304B} = {8789D7FF-B36C-4187-B57D-55ED64623272}
+ {4B2239FF-8FD6-431D-9D22-1B8049BA6917} = {8789D7FF-B36C-4187-B57D-55ED64623272}
+ {D81F5C91-D7DB-46E5-BC99-49488FB6814C} = {8789D7FF-B36C-4187-B57D-55ED64623272}
+ {83F15BA7-8478-4664-81BB-A82F146D88B3} = {F208FF4F-E5D8-41D5-A7C7-B463976F156E}
+ {17F4D7E0-6933-4C2E-8714-FD7E98D625D5} = {F208FF4F-E5D8-41D5-A7C7-B463976F156E}
EndGlobalSection
EndGlobal
diff --git a/data/resources/StringResources.resx b/data/resources/StringResources.resx
index 637730eff5..f6c7a75b06 100644
--- a/data/resources/StringResources.resx
+++ b/data/resources/StringResources.resx
@@ -5645,6 +5645,14 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs
Goto previous bookmark
+
+ {0} @line {1}
+ format string for displaying "filename @line #" in the bookmarks pad
+
+
+ Location
+ Column title for the bookmark location
+
Bookmarks
@@ -5754,6 +5762,10 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs
Conditional
+
+ Condition
+ column title for a conditional breakpoint's condition
+
Continue
@@ -6384,6 +6396,17 @@ Removed the end part of the original message ", reason '${Message}'" since this
Delete all web references
Title of the dialog box when the user tries to remove all web references.
+
+ Select Reflector path
+ Button to select the Reflector path
+
+
+ Reflector was found in the following directory:
+
+
+ Reflector
+ Title of Reflector path option panel
+
Open .NET Reflector
@@ -7835,6 +7858,10 @@ The resources files have been renamed/moved accordingly.
Can not perform action because process is running.
+
+ Remove all breakpoints
+ Main menu command for removing all breakpoints + tooltip for the corresponding toolbar button (in the breakpoints pad)
+
Run &without debugger
diff --git a/data/resources/image/BitmapResources/BitmapResources.res b/data/resources/image/BitmapResources/BitmapResources.res
index 71c1744c7a..2e2617c702 100644
--- a/data/resources/image/BitmapResources/BitmapResources.res
+++ b/data/resources/image/BitmapResources/BitmapResources.res
@@ -342,6 +342,10 @@ Bookmarks.DisabledBreakpoint = Bookmarks\DisabledBreakpoint
Bookmarks.UnhealthyBreakpoint = Bookmarks\UnhealthyBreakpoint.png
Bookmarks.UnhealthyBreakpointConditional = Bookmarks\UnhealthyBreakpointConditional.png
Bookmarks.CurrentLine = Bookmarks\CurrentLine.png
+Bookmarks.DeleteAllBreakpoints = Bookmarks\DeleteAllBreakpoints.png
+Bookmarks.DisableAllBreakpoints = Bookmarks\DisableAllBreakpoints.png
+Bookmarks.NextBreakpoint = Bookmarks\NextBreakpoint.png
+Bookmarks.PrevBreakpoint = Bookmarks\PrevBreakpoint.png
Bookmarks.Pin = Bookmarks\Pin.png
diff --git a/data/resources/image/BitmapResources/Bookmarks/DeleteAllBreakpoints.PNG b/data/resources/image/BitmapResources/Bookmarks/DeleteAllBreakpoints.PNG
new file mode 100644
index 0000000000..9f1007b8ed
Binary files /dev/null and b/data/resources/image/BitmapResources/Bookmarks/DeleteAllBreakpoints.PNG differ
diff --git a/data/resources/image/BitmapResources/Bookmarks/DisableAllBreakpoints.PNG b/data/resources/image/BitmapResources/Bookmarks/DisableAllBreakpoints.PNG
new file mode 100644
index 0000000000..42d81ee1a0
Binary files /dev/null and b/data/resources/image/BitmapResources/Bookmarks/DisableAllBreakpoints.PNG differ
diff --git a/data/resources/image/BitmapResources/Bookmarks/NextBreakpoint.png b/data/resources/image/BitmapResources/Bookmarks/NextBreakpoint.png
new file mode 100644
index 0000000000..7a621abcd7
Binary files /dev/null and b/data/resources/image/BitmapResources/Bookmarks/NextBreakpoint.png differ
diff --git a/data/resources/image/BitmapResources/Bookmarks/PrevBreakpoint.png b/data/resources/image/BitmapResources/Bookmarks/PrevBreakpoint.png
new file mode 100644
index 0000000000..d0d6fdc330
Binary files /dev/null and b/data/resources/image/BitmapResources/Bookmarks/PrevBreakpoint.png differ
diff --git a/data/templates/project/VBNet/FormsProject.xpt b/data/templates/project/VBNet/FormsProject.xpt
index 778895746f..e2bac7cde2 100644
--- a/data/templates/project/VBNet/FormsProject.xpt
+++ b/data/templates/project/VBNet/FormsProject.xpt
@@ -105,7 +105,7 @@ Namespace My
MyBase.New(AuthenticationMode.Windows)
Me.IsSingleInstance = False
Me.EnableVisualStyles = True
- Me.SaveMySettingsOnExit = False ' MySettings are not supported in SharpDevelop.
+ Me.SaveMySettingsOnExit = True
Me.ShutDownStyle = ShutdownMode.AfterMainFormCloses
End Sub
@@ -116,6 +116,7 @@ Namespace My
End Namespace
]]>
+
diff --git a/data/templates/project/VBNet/MySettings.settings b/data/templates/project/VBNet/MySettings.settings
new file mode 100644
index 0000000000..29627bfb9f
--- /dev/null
+++ b/data/templates/project/VBNet/MySettings.settings
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/doc/ChangeLog.template.html b/doc/ChangeLog.template.html
index 8321a86ef9..274124fbee 100644
--- a/doc/ChangeLog.template.html
+++ b/doc/ChangeLog.template.html
@@ -6,6 +6,7 @@
SharpDevelop $INSERTVERSION$ ($INSERTDATE$)
+ - Added settings editor
- Bug fixes
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin b/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin
index 2c1cdb0d2e..3d4cc96e78 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin
+++ b/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin
@@ -68,12 +68,12 @@
-
+ defaultPosition = "Bottom, Hidden" />
-
+
+
+
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.csproj b/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.csproj
index af61ba9197..8ff2e605e0 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.csproj
+++ b/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.csproj
@@ -91,6 +91,14 @@
CallStackPad.xaml
Code
+
+ ConditionCell.xaml
+
+
+
+
+ WatchList.xaml
+
WatchInputBox.xaml
Code
@@ -336,6 +344,8 @@
+
+
@@ -358,6 +368,7 @@
ICSharpCode.Core.WinForms
False
+
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Pads/BreakPointsPad.cs b/src/AddIns/Debugger/Debugger.AddIn/Pads/BreakPointsPad.cs
index 194d550cc6..d4d5bf4293 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/Pads/BreakPointsPad.cs
+++ b/src/AddIns/Debugger/Debugger.AddIn/Pads/BreakPointsPad.cs
@@ -1,7 +1,12 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the BSD license (for details please see \src\AddIns\Debugger\Debugger.AddIn\license.txt)
+using System.Windows;
+using System.Windows.Controls;
using Debugger;
+using Debugger.AddIn.Pads.Controls;
+using ICSharpCode.Core;
+using ICSharpCode.Core.Presentation;
using ICSharpCode.SharpDevelop.Bookmarks;
using ICSharpCode.SharpDevelop.Debugging;
using ICSharpCode.SharpDevelop.Services;
@@ -16,6 +21,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
public BreakPointsPad()
{
InitializeComponents();
+
+ myPanel.Children.Add(CreateToolBar());
+
+ CreateColumns();
}
void InitializeComponents()
@@ -36,6 +45,23 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
debuggerCore = debugger.DebuggerCore;
}
+ protected override ToolBar CreateToolBar()
+ {
+ ToolBar toolbar = ToolBarService.CreateToolBar(this, "/SharpDevelop/Pads/BreakpointPad/Toolbar");
+ toolbar.SetValue(Grid.RowProperty, 0);
+ return toolbar;
+ }
+
+ protected override void CreateColumns()
+ {
+ string conditionHeader = StringParser.Parse("${res:MainWindow.Windows.Debug.Conditional.Breakpoints.ConditionalColumnHeader}");
+
+ // HACK
+ DataTemplate cellTemplate = new ConditionCell().FindResource("ConditionCellTemplate") as DataTemplate;
+
+ listView.AddColumn(conditionHeader, cellTemplate);
+ }
+
protected override bool ShowBookmarkInThisPad(SDBookmark mark)
{
return mark.IsVisibleInBookmarkPad && mark is BreakpointBookmark;
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/ConditionCell.xaml b/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/ConditionCell.xaml
new file mode 100644
index 0000000000..20ab0bae89
--- /dev/null
+++ b/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/ConditionCell.xaml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/ConditionCell.xaml.cs b/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/ConditionCell.xaml.cs
new file mode 100644
index 0000000000..8946e8e802
--- /dev/null
+++ b/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/ConditionCell.xaml.cs
@@ -0,0 +1,190 @@
+
+using System;
+using System.IO;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Input;
+
+using ICSharpCode.AvalonEdit;
+using ICSharpCode.Core;
+using ICSharpCode.Core.Presentation;
+using ICSharpCode.NRefactory;
+using ICSharpCode.SharpDevelop;
+using ICSharpCode.SharpDevelop.Bookmarks.Pad.Controls;
+using ICSharpCode.SharpDevelop.Debugging;
+using ICSharpCode.SharpDevelop.Dom;
+using ICSharpCode.SharpDevelop.Dom.NRefactoryResolver;
+using ICSharpCode.SharpDevelop.Editor;
+using ICSharpCode.SharpDevelop.Editor.CodeCompletion;
+using ICSharpCode.SharpDevelop.Gui;
+using ICSharpCode.SharpDevelop.Project;
+
+namespace Debugger.AddIn.Pads.Controls
+{
+ public partial class ConditionCell : UserControl
+ {
+ private string language;
+
+ protected ConsoleControl console;
+
+ public static readonly DependencyProperty CommandTextProperty =
+ DependencyProperty.Register("CommandText", typeof(string), typeof(ConditionCell),
+ new UIPropertyMetadata(null, new PropertyChangedCallback(OnCommandTextChanged)));
+
+ private NRefactoryResolver resolver;
+
+ public ConditionCell()
+ {
+ InitializeComponent();
+
+ console = new ConsoleControl();
+ console.TextAreaTextEntered += new TextCompositionEventHandler(consoleControl_TextAreaTextEntered);
+ console.TextAreaPreviewKeyDown += new KeyEventHandler(console_TextAreaPreviewKeyDown);
+ console.LostFocus += new RoutedEventHandler(console_LostFocus);
+ console.HideScrollBar();
+ ConsolePanel.Content = console;
+
+ // get language
+ if (ProjectService.CurrentProject == null)
+ language = "C#";
+ else
+ language = ProjectService.CurrentProject.Language;
+ resolver = new NRefactoryResolver(LanguageProperties.GetLanguage(language));
+
+ // FIXME set language
+ if (language == "VB" || language == "VBNet") {
+ console.SetHighlighting("VBNET");
+ }
+ else {
+ console.SetHighlighting("C#");
+ }
+ }
+
+ ///
+ /// Gets/sets the command text displayed at the command prompt.
+ ///
+ public string CommandText {
+ get { return console.CommandText.Trim(); }
+ set { console.CommandText = value; }
+ }
+
+ private BreakpointBookmark Breakpoint {
+ get {
+ var model = Model;
+ return model.Mark as BreakpointBookmark;
+ }
+ }
+
+ private ListViewPadItemModel Model {
+ get { return Tag as ListViewPadItemModel; }
+ }
+
+ private ITextEditor TextEditor {
+ get {
+ return console.TextEditor;
+ }
+ }
+
+ private void console_TextAreaPreviewKeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.Key == Key.Return || e.Key == Key.Escape) {
+
+ if (e.Key == Key.Escape)
+ CommandText = string.Empty;
+ else {
+ if(!CheckSyntax())
+ return;
+ }
+
+ UpdateBreakpoint();
+
+ e.Handled = true;
+ }
+ }
+
+ private void console_LostFocus(object sender, RoutedEventArgs e)
+ {
+ if (string.IsNullOrEmpty(CommandText) || !this.CheckSyntax())
+ return;
+
+ UpdateBreakpoint();
+ }
+
+ private void UpdateBreakpoint()
+ {
+ Breakpoint.Condition = CommandText;
+ Model.Condition = CommandText;
+ Breakpoint.ScriptLanguage = language;
+ Model.Language = language;
+
+ if (!string.IsNullOrEmpty(console.CommandText)) {
+ Breakpoint.Action = BreakpointAction.Condition;
+ Model.Image = PresentationResourceService.GetImage("Bookmarks.BreakpointConditional").Source;
+ }
+ else {
+ Breakpoint.Action = BreakpointAction.Break;
+ Model.Image = PresentationResourceService.GetImage("Bookmarks.Breakpoint").Source;
+ }
+ }
+
+ private bool CheckSyntax()
+ {
+ string command = CommandText;
+
+ // FIXME workaround the NRefactory issue that needs a ; at the end
+ if (language == "C#") {
+ if(!command.EndsWith(";"))
+ command += ";";
+ // FIXME only one string should be available; highlighting expects C#, supproted language, CSharp
+ language = "CSharp";
+ }
+
+ SupportedLanguage supportedLanguage = (SupportedLanguage)Enum.Parse(typeof(SupportedLanguage), language.ToString(), true);
+ using (var parser = ParserFactory.CreateParser(supportedLanguage, new StringReader(TextEditor.Document.Text))) {
+ parser.ParseExpression();
+ if (parser.Errors.Count > 0) {
+ MessageService.ShowError(parser.Errors.ErrorOutput);
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ private void consoleControl_TextAreaTextEntered(object sender, TextCompositionEventArgs e)
+ {
+ foreach (char ch in e.Text) {
+ if (ch == '.') {
+ ShowDotCompletion(console.CommandText);
+ }
+ }
+ }
+
+ private void ShowDotCompletion(string currentText)
+ {
+ var seg = Breakpoint;
+
+ var expressionFinder = ParserService.GetExpressionFinder(seg.FileName.ToString());
+ var info = ParserService.GetParseInformation(seg.FileName.ToString());
+
+ string text = ParserService.GetParseableFileContent(seg.FileName.ToString()).Text;
+
+ int currentOffset = TextEditor.Caret.Offset - console.CommandOffset - 1;
+
+ var expr = expressionFinder.FindExpression(currentText, currentOffset);
+
+ expr.Region = new DomRegion(seg.LineNumber, seg.ColumnNumber, seg.LineNumber, seg.ColumnNumber);
+
+ var rr = resolver.Resolve(expr, info, text);
+
+ if (rr != null) {
+ TextEditor.ShowCompletionWindow(new DotCodeCompletionItemProvider().GenerateCompletionListForResolveResult(rr, expr.Context));
+ }
+ }
+
+ private static void OnCommandTextChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) {
+ var cell = d as ConditionCell;
+ cell.CommandText = e.NewValue.ToString();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/Converters.cs b/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/Converters.cs
new file mode 100644
index 0000000000..360f52d6ce
--- /dev/null
+++ b/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/Converters.cs
@@ -0,0 +1,56 @@
+// 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.Globalization;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Media;
+
+namespace Debugger.AddIn.Pads.Controls
+{
+ public class TreeListViewConverter : IValueConverter
+ {
+ private const double INDENTATION_SIZE = 10;
+
+ public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
+ {
+ if (value == null) return null;
+ if (targetType == typeof(double) && typeof(DependencyObject).IsAssignableFrom(value.GetType()))
+ {
+ DependencyObject element = value as DependencyObject;
+ int level = -1;
+ for (; element != null; element = VisualTreeHelper.GetParent(element)) {
+ if (typeof(TreeViewItem).IsAssignableFrom(element.GetType())) {
+ level++;
+ }
+ }
+ return INDENTATION_SIZE * level;
+ }
+
+ throw new NotSupportedException();
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
+ {
+ throw new NotSupportedException("This method is not supported.");
+ }
+ }
+
+ public class BoolToVisibilityConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType,
+ object parameter, CultureInfo culture)
+ {
+ bool val = bool.Parse(parameter.ToString());
+ return val == (bool.Parse(values[0].ToString()) && bool.Parse(values[1].ToString())) ? Visibility.Visible : Visibility.Collapsed;
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes,
+ object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/TreeListView.cs b/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/TreeListView.cs
new file mode 100644
index 0000000000..041c081904
--- /dev/null
+++ b/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/TreeListView.cs
@@ -0,0 +1,74 @@
+// 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.Globalization;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+
+using Debugger.AddIn.TreeModel;
+
+namespace Debugger.AddIn.Pads.Controls
+{
+///
+ /// Represents a control that displays hierarchical data in a tree structure
+ /// that has items that can expand and collapse.
+ ///
+ public class TreeListView : TreeView
+ {
+ static TreeListView()
+ {
+ //Override the default style and the default control template
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(TreeListView), new FrameworkPropertyMetadata(typeof(TreeListView)));
+ }
+
+ ///
+ /// Initialize a new instance of TreeListView.
+ ///
+ public TreeListView()
+ {
+ Columns = new GridViewColumnCollection();
+ }
+
+ #region Properties
+ ///
+ /// Gets or sets the collection of System.Windows.Controls.GridViewColumn
+ /// objects that is defined for this TreeListView.
+ ///
+ public GridViewColumnCollection Columns
+ {
+ get { return (GridViewColumnCollection)GetValue(ColumnsProperty); }
+ set { SetValue(ColumnsProperty, value); }
+ }
+
+ ///
+ /// Gets or sets whether columns in a TreeListView can be
+ /// reordered by a drag-and-drop operation. This is a dependency property.
+ ///
+ public bool AllowsColumnReorder
+ {
+ get { return (bool)GetValue(AllowsColumnReorderProperty); }
+ set { SetValue(AllowsColumnReorderProperty, value); }
+ }
+ #endregion
+
+ #region Static Dependency Properties
+ // Using a DependencyProperty as the backing store for AllowsColumnReorder. This enables animation, styling, binding, etc...
+ public static readonly DependencyProperty AllowsColumnReorderProperty =
+ DependencyProperty.Register("AllowsColumnReorder", typeof(bool), typeof(TreeListView), new UIPropertyMetadata(null));
+
+ // Using a DependencyProperty as the backing store for Columns. This enables animation, styling, binding, etc...
+ public static readonly DependencyProperty ColumnsProperty =
+ DependencyProperty.Register("Columns", typeof(GridViewColumnCollection),
+ typeof(TreeListView),
+ new UIPropertyMetadata(null));
+ #endregion
+ }
+
+ ///
+ /// Represents a control that can switch states in order to expand a node of a TreeListView.
+ ///
+ public class TreeListViewExpander : ToggleButton { }
+}
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/WatchList.xaml b/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/WatchList.xaml
new file mode 100644
index 0000000000..ebdb3b10f4
--- /dev/null
+++ b/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/WatchList.xaml
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/WatchList.xaml.cs b/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/WatchList.xaml.cs
new file mode 100644
index 0000000000..8e793188cf
--- /dev/null
+++ b/src/AddIns/Debugger/Debugger.AddIn/Pads/Controls/WatchList.xaml.cs
@@ -0,0 +1,56 @@
+// 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.ObjectModel;
+using System.Collections.Specialized;
+using System.ComponentModel;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Input;
+using System.Windows.Media;
+
+using Debugger.AddIn.TreeModel;
+
+namespace Debugger.AddIn.Pads.Controls
+{
+ public partial class WatchList : UserControl
+ {
+ private ObservableCollection items = new ObservableCollection();
+
+ public WatchList()
+ {
+ InitializeComponent();
+ }
+
+ void TextBox_KeyUp(object sender, KeyEventArgs e)
+ {
+ if (e.Key != Key.Enter && e.Key != Key.Escape)
+ {
+ e.Handled = true;
+ return;
+ }
+
+ if (e.Key == Key.Enter) {
+ if(SelectedNode is ExpressionNode) {
+ var node = (ExpressionNode)SelectedNode;
+ node.SetText(((TextBox)sender).Text);
+ }
+ }
+ if (e.Key == Key.Enter || e.Key == Key.Escape) {
+ for (int i = 0; i < MyList.Items.Count; i++) {
+ TreeViewItem child = (TreeViewItem)MyList.ItemContainerGenerator.ContainerFromIndex(i);
+ child.IsSelected = false;
+ }
+ }
+ }
+
+ public ObservableCollection WatchItems { get { return items; } }
+
+ public TreeNode SelectedNode {
+ get {
+ return this.MyList.SelectedItem as TreeNode;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Pads/LocalVarPad.cs b/src/AddIns/Debugger/Debugger.AddIn/Pads/LocalVarPad.cs
index 4bbf8592b0..7142c65d5f 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/Pads/LocalVarPad.cs
+++ b/src/AddIns/Debugger/Debugger.AddIn/Pads/LocalVarPad.cs
@@ -1,26 +1,21 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the BSD license (for details please see \src\AddIns\Debugger\Debugger.AddIn\license.txt)
-using System.Windows.Forms;
-using Aga.Controls.Tree;
-using Aga.Controls.Tree.NodeControls;
+using System.Collections.ObjectModel;
using Debugger;
+using Debugger.AddIn.Pads.Controls;
using Debugger.AddIn.TreeModel;
using ICSharpCode.Core;
-using Exception=System.Exception;
+using Exception = System.Exception;
namespace ICSharpCode.SharpDevelop.Gui.Pads
{
public class LocalVarPad : DebuggerPad
{
- TreeViewAdv localVarList;
+ WatchList localVarList;
Process debuggedProcess;
static LocalVarPad instance;
- readonly TreeColumn nameColumn = new TreeColumn();
- readonly TreeColumn valColumn = new TreeColumn();
- readonly TreeColumn typeColumn = new TreeColumn();
-
public LocalVarPad()
{
instance = this;
@@ -46,44 +41,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
protected override void InitializeComponents()
{
- localVarList = new TreeViewAdv();
- localVarList.Columns.Add(nameColumn);
- localVarList.Columns.Add(valColumn);
- localVarList.Columns.Add(typeColumn);
- localVarList.UseColumns = true;
- localVarList.SelectionMode = TreeSelectionMode.Single;
- localVarList.LoadOnDemand = true;
-
- NodeIcon iconControl = new ItemIcon();
- iconControl.ParentColumn = nameColumn;
- localVarList.NodeControls.Add(iconControl);
-
- NodeTextBox nameControl = new ItemName();
- nameControl.ParentColumn = nameColumn;
- localVarList.NodeControls.Add(nameControl);
-
- NodeTextBox textControl = new ItemText();
- textControl.ParentColumn = valColumn;
- localVarList.NodeControls.Add(textControl);
-
- NodeTextBox typeControl = new ItemType();
- typeControl.ParentColumn = typeColumn;
- localVarList.NodeControls.Add(typeControl);
-
- localVarList.AutoRowHeight = true;
-
- RedrawContent();
- ResourceService.LanguageChanged += delegate { RedrawContent(); };
- }
-
- public void RedrawContent()
- {
- nameColumn.Header = ResourceService.GetString("Global.Name");
- nameColumn.Width = 250;
- valColumn.Header = ResourceService.GetString("Dialog.HighlightingEditor.Properties.Value");
- valColumn.Width = 300;
- typeColumn.Header = ResourceService.GetString("ResourceEditor.ResourceEdit.TypeColumn");
- typeColumn.Width = 250;
+ localVarList = new WatchList();
}
protected override void SelectProcess(Process process)
@@ -106,26 +64,39 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
public override void RefreshPad()
{
if (debuggedProcess == null || debuggedProcess.IsRunning || debuggedProcess.SelectedStackFrame == null) {
- localVarList.Root.Children.Clear();
+ localVarList.WatchItems.Clear();
return;
}
using(new PrintTimes("Local Variables refresh")) {
try {
- localVarList.BeginUpdate();
Utils.DoEvents(debuggedProcess);
- TreeViewVarNode.SetContentRecursive(debuggedProcess, localVarList, new StackFrameNode(debuggedProcess.SelectedStackFrame).ChildNodes);
- } catch(AbortedBecauseDebuggeeResumedException) {
- } catch(Exception) {
+ foreach (var item in new StackFrameNode(debuggedProcess.SelectedStackFrame).ChildNodes) {
+ if (!localVarList.WatchItems.ContainsItem(item))
+ localVarList.WatchItems.Add(item);
+ }
+ }
+ catch(AbortedBecauseDebuggeeResumedException) { }
+ catch(Exception ex) {
if (debuggedProcess == null || debuggedProcess.HasExited) {
// Process unexpectedly exited
} else {
- throw;
+ MessageService.ShowException(ex);
}
- } finally {
- localVarList.EndUpdate();
}
}
}
}
+
+ public static class ExtensionForWatchItems
+ {
+ public static bool ContainsItem(this ObservableCollection collection, TreeNode node)
+ {
+ foreach (var item in collection)
+ if (item.CompareTo(node) == 0)
+ return true;
+
+ return false;
+ }
+ }
}
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchInputBox.xaml b/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchInputBox.xaml
index ed684a0fd1..96473894e2 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchInputBox.xaml
+++ b/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchInputBox.xaml
@@ -1,4 +1,4 @@
-
+
0) {
+ MessageService.ShowError(parser.Errors.ErrorOutput);
+ return false;
+ }
+ }
+
+ return true;
+ }
+
private void AcceptButton_Click(object sender, RoutedEventArgs e)
{
+ if (!this.CheckSyntax())
+ return;
+
this.DialogResult = true;
this.Close();
}
@@ -95,4 +135,4 @@ namespace Debugger.AddIn.Pads
this.Close();
}
}
-}
+}
\ No newline at end of file
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPad.cs b/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPad.cs
index ea7bb0b3d0..e6e43021b2 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPad.cs
+++ b/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPad.cs
@@ -3,29 +3,26 @@
using System;
using System.Collections.Generic;
-using System.Windows.Controls;
-using System.Windows.Forms;
-using System.Windows.Forms.Integration;
+using System.Windows;
+using System.Windows.Input;
-using Aga.Controls.Tree;
-using Aga.Controls.Tree.NodeControls;
using Debugger;
using Debugger.AddIn;
+using Debugger.AddIn.Pads.Controls;
using Debugger.AddIn.TreeModel;
using ICSharpCode.Core;
-using ICSharpCode.Core.WinForms;
+using ICSharpCode.Core.Presentation;
using ICSharpCode.NRefactory;
-using ICSharpCode.NRefactory.Ast;
-using ICSharpCode.NRefactory.Visitors;
+using ICSharpCode.SharpDevelop.Project;
using Exception = System.Exception;
namespace ICSharpCode.SharpDevelop.Gui.Pads
{
public class WatchPad : DebuggerPad
{
- TreeViewAdv watchList;
+ WatchList watchList;
Process debuggedProcess;
- List watches;
+
static WatchPad instance;
/// Always check if Instance is null, might be null if pad is not opened!
@@ -37,15 +34,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
{
instance = this;
}
-
- public List Watches {
- get { return watches; }
- }
-
- readonly TreeColumn nameColumn = new TreeColumn();
- readonly TreeColumn valColumn = new TreeColumn();
- readonly TreeColumn typeColumn = new TreeColumn();
-
+
///
/// This is not used anywhere, but it is neccessary to be overridden in children of AbstractPadContent.
///
@@ -61,74 +50,51 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
protected override void InitializeComponents()
{
- watchList = new TreeViewAdv();
- watchList.Columns.Add(nameColumn);
- watchList.Columns.Add(valColumn);
- watchList.Columns.Add(typeColumn);
- watchList.UseColumns = true;
- watchList.SelectionMode = TreeSelectionMode.Single;
- watchList.LoadOnDemand = true;
-
- NodeIcon iconControl = new ItemIcon();
- iconControl.ParentColumn = nameColumn;
- watchList.NodeControls.Add(iconControl);
-
- NodeTextBox nameControl = new WatchItemName();
- nameControl.ParentColumn = nameColumn;
- watchList.NodeControls.Add(nameControl);
-
- NodeTextBox textControl = new ItemText();
- textControl.ParentColumn = valColumn;
- watchList.NodeControls.Add(textControl);
-
- NodeTextBox typeControl = new ItemType();
- typeControl.ParentColumn = typeColumn;
- watchList.NodeControls.Add(typeControl);
-
- watchList.AutoRowHeight = true;
- watchList.MouseDoubleClick += new MouseEventHandler(watchList_DoubleClick);
- watchList.ContextMenuStrip = MenuService.CreateContextMenu(this, "/SharpDevelop/Pads/WatchPad/ContextMenu");
+ watchList = new WatchList();
+ watchList.MouseDoubleClick += watchList_DoubleClick;
+ watchList.ContextMenu = MenuService.CreateContextMenu(this, "/SharpDevelop/Pads/WatchPad/ContextMenu");
watchList.AllowDrop = true;
- watchList.DragEnter += new DragEventHandler(watchList_DragEnter);
- watchList.DragDrop += new DragEventHandler(watchList_DragDrop);
- watchList.KeyUp += new KeyEventHandler(watchList_KeyUp);
-
- watches = new List();
-
- ResourceService.LanguageChanged += delegate { OnLanguageChanged(); };
- OnLanguageChanged();
+ watchList.DragEnter += watchList_DragOver;
+ watchList.Drop += watchList_Drop;
+ watchList.KeyUp += watchList_KeyUp;
}
void watchList_KeyUp(object sender, KeyEventArgs e)
{
- if (e.KeyCode == Keys.Delete) {
+ if (e.Key == Key.Delete) {
RemoveWatchCommand cmd = new RemoveWatchCommand { Owner = this };
cmd.Run();
}
}
- void watchList_DragDrop(object sender, DragEventArgs e)
+ void watchList_Drop(object sender, DragEventArgs e)
{
- watchList.BeginUpdate();
- TextNode text = new TextNode(e.Data.GetData(DataFormats.StringFormat).ToString(), SupportedLanguage.CSharp);
- TreeViewVarNode node = new TreeViewVarNode(this.debuggedProcess, this.watchList, text);
- watches.Add(text);
- watchList.Root.Children.Add(node);
- watchList.EndUpdate();
+ if (ProjectService.CurrentProject == null) return;
+ if (e.Data == null) return;
+ if (!e.Data.GetDataPresent(DataFormats.StringFormat)) return;
+ if (string.IsNullOrEmpty(e.Data.GetData(DataFormats.StringFormat).ToString())) return;
- node.IsSelected = true;
+ string language = ProjectService.CurrentProject.Language;
+
+ // FIXME languages
+ TextNode text = new TextNode(e.Data.GetData(DataFormats.StringFormat).ToString(),
+ language == "VB" || language == "VBNet" ? SupportedLanguage.VBNet : SupportedLanguage.CSharp);
+
+ if (!watchList.WatchItems.Contains(text))
+ watchList.WatchItems.ContainsItem(text);
this.RefreshPad();
}
- void watchList_DragEnter(object sender, DragEventArgs e)
+ void watchList_DragOver(object sender, DragEventArgs e)
{
if(e.Data.GetDataPresent(DataFormats.StringFormat)) {
- e.Effect = DragDropEffects.Copy;
+ e.Effects = DragDropEffects.Copy;
}
else {
- e.Effect = DragDropEffects.None;
+ e.Effects = DragDropEffects.None;
+ e.Handled = true;
}
}
@@ -143,23 +109,17 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
void ResetPad(object sender, EventArgs e)
{
- watchList.BeginUpdate();
- watchList.Root.Children.Clear();
+ string language = ProjectService.CurrentProject.Language;
- foreach (TextNode text in watches)
- watchList.Root.Children.Add(new TreeViewVarNode(this.debuggedProcess, this.watchList, text));
+ // rebuild list
+ var nodes = new List();
+ foreach (var nod in watchList.WatchItems)
+ nodes.Add(new TextNode(nod.Name,
+ language == "VB" || language == "VBNet" ? SupportedLanguage.VBNet : SupportedLanguage.CSharp));
- watchList.EndUpdate();
- }
-
- void OnLanguageChanged()
- {
- nameColumn.Header = ResourceService.GetString("Global.Name");
- nameColumn.Width = 250;
- valColumn.Header = ResourceService.GetString("Dialog.HighlightingEditor.Properties.Value");
- valColumn.Width = 300;
- typeColumn.Header = ResourceService.GetString("ResourceEditor.ResourceEdit.TypeColumn");
- typeColumn.Width = 250;
+ watchList.WatchItems.Clear();
+ foreach (var nod in nodes)
+ watchList.WatchItems.Add(nod);
}
protected override void SelectProcess(Process process)
@@ -188,30 +148,31 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
using(new PrintTimes("Watch Pad refresh")) {
try {
- watchList.BeginUpdate();
Utils.DoEvents(debuggedProcess);
- List nodes = new List();
+ List nodes = new List();
- foreach (var nod in watches) {
+ foreach (var nod in watchList.WatchItems) {
try {
LoggingService.Info("Evaluating: " + (string.IsNullOrEmpty(nod.Name) ? "is null or empty!" : nod.Name));
var nodExpression = debugger.GetExpression(nod.Name);
//Value val = ExpressionEvaluator.Evaluate(nod.Name, nod.Language, debuggedProcess.SelectedStackFrame);
ExpressionNode valNode = new ExpressionNode(null, nod.Name, nodExpression);
- nodes.Add(new TreeViewVarNode(debuggedProcess, watchList, valNode));
- } catch (GetValueException) {
+ nodes.Add(valNode);
+ }
+ catch (GetValueException) {
string error = String.Format(StringParser.Parse("${res:MainWindow.Windows.Debug.Watch.InvalidExpression}"), nod.Name);
ErrorInfoNode infoNode = new ErrorInfoNode(nod.Name, error);
- nodes.Add(new TreeViewVarNode(debuggedProcess, watchList, infoNode));
+ nodes.Add(infoNode);
}
}
- watchList.Root.Children.Clear();
-
- foreach (TreeViewVarNode nod in nodes)
- watchList.Root.Children.Add(nod);
- } catch(AbortedBecauseDebuggeeResumedException) {
- } catch(Exception ex) {
+ // rebuild list
+ watchList.WatchItems.Clear();
+ foreach (var nod in nodes)
+ watchList.WatchItems.Add(nod);
+ }
+ catch(AbortedBecauseDebuggeeResumedException) { }
+ catch(Exception ex) {
if (debuggedProcess == null || debuggedProcess.HasExited) {
// Process unexpectedly exited
} else {
@@ -219,8 +180,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
}
}
}
-
- watchList.EndUpdate();
}
}
}
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPadCommands.cs b/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPadCommands.cs
index 1616f93b9b..7e48745708 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPadCommands.cs
+++ b/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPadCommands.cs
@@ -3,10 +3,12 @@
using System;
using System.Collections.Generic;
+using System.Windows.Controls;
using System.Windows.Forms;
using Aga.Controls.Tree;
using Debugger.AddIn.Pads;
+using Debugger.AddIn.Pads.Controls;
using Debugger.AddIn.TreeModel;
using ICSharpCode.Core;
using ICSharpCode.Core.Presentation;
@@ -14,6 +16,7 @@ using ICSharpCode.Core.WinForms;
using ICSharpCode.NRefactory;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui.Pads;
+using ICSharpCode.SharpDevelop.Project;
namespace Debugger.AddIn
{
@@ -23,7 +26,6 @@ namespace Debugger.AddIn
{
if (this.Owner is WatchPad) {
WatchPad pad = (WatchPad)this.Owner;
- TreeViewAdv ctrl = (TreeViewAdv)pad.Control;
var inputWindow = new WatchInputBox(StringParser.Parse("${res:MainWindow.Windows.Debug.Watch.AddWatch}"),
StringParser.Parse("${res:MainWindow.Windows.Debug.Watch.EnterExpression}"));
@@ -35,13 +37,17 @@ namespace Debugger.AddIn
string input = inputWindow.CommandText;
if (!string.IsNullOrEmpty(input)) {
- ctrl.BeginUpdate();
- TextNode text = new TextNode(input, SupportedLanguage.CSharp);
- TreeViewVarNode node = new TreeViewVarNode(pad.Process, ctrl, text);
+ // get language
+ if (ProjectService.CurrentProject == null) return;
- pad.Watches.Add(text);
- ctrl.Root.Children.Add(node);
- ctrl.EndUpdate();
+ string language = ProjectService.CurrentProject.Language;
+
+ TextNode text = new TextNode(input,
+ language == "VB" || language == "VBNet" ? SupportedLanguage.VBNet : SupportedLanguage.CSharp);
+ var list = (WatchList)pad.Control;
+
+ if(!list.WatchItems.ContainsItem(text))
+ list.WatchItems.Add(text);
}
pad.RefreshPad();
@@ -55,19 +61,14 @@ namespace Debugger.AddIn
{
if (this.Owner is WatchPad) {
WatchPad pad = (WatchPad)this.Owner;
-
- TreeNodeAdv node = ((TreeViewAdv)pad.Control).SelectedNode;
+ var list = (WatchList)pad.Control;
+
+ var node = list.SelectedNode;
if (node == null)
return;
- while (node.Parent != ((TreeViewAdv)pad.Control).Root)
- {
- node = node.Parent;
- }
-
- pad.Watches.RemoveAt(node.Index);
- ((TreeViewAdv)pad.Control).Root.Children.Remove(node);
+ list.WatchItems.Remove(node);
((WatchPad)this.Owner).RefreshPad();
}
@@ -90,11 +91,23 @@ namespace Debugger.AddIn
{
if (this.Owner is WatchPad) {
WatchPad pad = (WatchPad)this.Owner;
-
- ((TreeViewAdv)pad.Control).BeginUpdate();
- pad.Watches.Clear();
- ((TreeViewAdv)pad.Control).Root.Children.Clear();
- ((TreeViewAdv)pad.Control).EndUpdate();
+ var list = (WatchList)pad.Control;
+ list.WatchItems.Clear();
+ }
+ }
+ }
+
+ public class CopyToClipboardCommand : AbstractMenuCommand
+ {
+ public override void Run()
+ {
+ if (this.Owner is WatchPad) {
+ WatchPad pad = (WatchPad)this.Owner;
+ var list = (WatchList)pad.Control;
+ if (list.SelectedNode is ExpressionNode) {
+ string text = ((ExpressionNode)list.SelectedNode).FullText;
+ ClipboardWrapper.SetText(text);
+ }
}
}
}
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPadModel.cs b/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPadModel.cs
index 38d93e1407..84fbf600ee 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPadModel.cs
+++ b/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPadModel.cs
@@ -19,7 +19,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
this.Language = language;
}
- public new bool CanSetText {
+ public override bool CanSetText {
get {
return true;
}
@@ -74,17 +74,17 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
MessageBox.Show("You can not set name to an empty string!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
{
- if (((TreeViewVarNode)node).Content is ExpressionNode) {
- WatchPad.Instance.Watches.RemoveAll(item => item.Name == ((ExpressionNode)((TreeViewVarNode)node).Content).Name);
- ((ExpressionNode)((TreeViewVarNode)node).Content).Name = value.ToString();
- } else {
- if (((TreeViewVarNode)node).Content is TextNode) {
- WatchPad.Instance.Watches.RemoveAll(item => item.Name == ((TextNode)((TreeViewVarNode)node).Content).Name);
- ((TextNode)((TreeViewVarNode)node).Content).Name = value.ToString();
- }
- }
-
- WatchPad.Instance.Watches.Add(new TextNode(value as string, SupportedLanguage.CSharp));
+// if (((TreeViewVarNode)node).Content is ExpressionNode) {
+// WatchPad.Instance.Watches.RemoveAll(item => item.Name == ((ExpressionNode)((TreeViewVarNode)node).Content).Name);
+// ((ExpressionNode)((TreeViewVarNode)node).Content).Name = value.ToString();
+// } else {
+// if (((TreeViewVarNode)node).Content is TextNode) {
+// WatchPad.Instance.Watches.RemoveAll(item => item.Name == ((TextNode)((TreeViewVarNode)node).Content).Name);
+// ((TextNode)((TreeViewVarNode)node).Content).Name = value.ToString();
+// }
+// }
+//
+// WatchPad.Instance.Watches.Add(new TextNode(value as string, SupportedLanguage.CSharp));
}
}
public override void MouseDown(TreeNodeAdvMouseEventArgs args)
diff --git a/src/AddIns/Debugger/Debugger.AddIn/TreeModel/ExpressionNode.cs b/src/AddIns/Debugger/Debugger.AddIn/TreeModel/ExpressionNode.cs
index 7a09ab96f2..fcb53a93a1 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/TreeModel/ExpressionNode.cs
+++ b/src/AddIns/Debugger/Debugger.AddIn/TreeModel/ExpressionNode.cs
@@ -430,4 +430,4 @@ namespace Debugger.AddIn.TreeModel
}
}
}
-}
\ No newline at end of file
+}
diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceCodeGeneratorTool.cs b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceCodeGeneratorTool.cs
index a0937d6b5b..0c1140abef 100644
--- a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceCodeGeneratorTool.cs
+++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceCodeGeneratorTool.cs
@@ -57,13 +57,6 @@ namespace ResourceEditor
string[] unmatchable = null;
string generatedCodeNamespace = context.OutputNamespace;
- if (context.Project.LanguageProperties == ICSharpCode.SharpDevelop.Dom.LanguageProperties.VBNet) {
- if (generatedCodeNamespace == context.Project.RootNamespace) {
- generatedCodeNamespace = null; // namespace is implicit in VB
- } else if (generatedCodeNamespace.StartsWith(context.Project.RootNamespace + ".", StringComparison.OrdinalIgnoreCase)) {
- generatedCodeNamespace = generatedCodeNamespace.Substring(context.Project.RootNamespace.Length + 1);
- }
- }
context.WriteCodeDomToFile(
item,
diff --git a/src/AddIns/DisplayBindings/SettingsEditor/Project/EmptySettingsFile.xft b/src/AddIns/DisplayBindings/SettingsEditor/Project/EmptySettingsFile.xft
new file mode 100644
index 0000000000..3603f7a1cd
--- /dev/null
+++ b/src/AddIns/DisplayBindings/SettingsEditor/Project/EmptySettingsFile.xft
@@ -0,0 +1,25 @@
+
+
+
+
+
+ ${res:Templates.File.Resource.EmptyResourceFile.Description}
+
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
diff --git a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsCodeGeneratorTool.cs b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsCodeGeneratorTool.cs
index e53dabdf23..489aff83c3 100644
--- a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsCodeGeneratorTool.cs
+++ b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsCodeGeneratorTool.cs
@@ -3,12 +3,14 @@
using System;
using System.CodeDom;
+using System.ComponentModel;
using System.Configuration;
using System.Diagnostics;
using System.Reflection;
using System.Xml;
using ICSharpCode.EasyCodeDom;
+using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SettingsEditor
@@ -26,7 +28,11 @@ namespace ICSharpCode.SettingsEditor
}
CodeCompileUnit ccu = new CodeCompileUnit();
- ccu.AddNamespace(setDoc.GeneratedClassNamespace).Types.Add(CreateClass(setDoc));
+ var ns = ccu.AddNamespace(setDoc.GeneratedClassNamespace);
+ ns.Types.Add(CreateClass(setDoc));
+ if (setDoc.UseMySettingsClassName) {
+ ns.Types.Add(CreateMySettingsProperty(setDoc));
+ }
context.WriteCodeDomToFile(item, context.GetOutputFileName(item, ".Designer"), ccu);
}
@@ -47,7 +53,12 @@ namespace ICSharpCode.SettingsEditor
.InvokeMethod("Synchronized", Easy.New(Easy.TypeRef(c)))
.CastTo(Easy.TypeRef(c));
- c.AddProperty(f, "Default");
+ var defaultProperty = c.AddProperty(f, "Default");
+
+ if (setDoc.UseMySettingsClassName) {
+ c.AddAttribute(typeof(EditorBrowsableAttribute), Easy.Prim(EditorBrowsableState.Advanced));
+ AddAutoSaveLogic(c, defaultProperty);
+ }
foreach (SettingsEntry entry in setDoc.Entries) {
Type entryType = entry.Type ?? typeof(string);
@@ -99,6 +110,72 @@ namespace ICSharpCode.SettingsEditor
return c;
}
+
+ void AddAutoSaveLogic(CodeTypeDeclaration c, CodeMemberProperty defaultProperty)
+ {
+ // VB auto-safe logic:
+
+ c.Members.Add(new CodeSnippetTypeMember(
+ @" #Region ""Support for My.Application.SaveMySettingsOnExit""
+ #If _MyType = ""WindowsForms"" Then
+ Private Shared addedHandler As Boolean
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+ #End If
+ #End Region".Replace("\t", EditorControlService.GlobalOptions.IndentationString)
+ ));
+
+ defaultProperty.GetStatements.Insert(0, new CodeSnippetStatement(
+ @" #If _MyType = ""WindowsForms"" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+ #End If".Replace("\t", EditorControlService.GlobalOptions.IndentationString)
+ ));
+ }
+
+ class CodeLiteralDirective : CodeDirective
+ {
+ string text;
+
+ public CodeLiteralDirective(string text)
+ {
+ this.text = text;
+ }
+
+ public override string ToString()
+ {
+ return text;
+ }
+ }
+
+ CodeTypeDeclaration CreateMySettingsProperty(SettingsDocument setDoc)
+ {
+ CodeTypeDeclaration c = new CodeTypeDeclaration("MySettingsProperty");
+ c.UserData["Module"] = true;
+ c.AddAttribute(new CodeTypeReference("Microsoft.VisualBasic.HideModuleNameAttribute"));
+ c.AddAttribute(typeof(DebuggerNonUserCodeAttribute));
+ c.AddAttribute(typeof(System.Runtime.CompilerServices.CompilerGeneratedAttribute));
+ c.TypeAttributes = TypeAttributes.NotPublic;
+
+ CodeTypeReference r = new CodeTypeReference(setDoc.GeneratedFullClassName);
+ var p = c.AddProperty(r, "Settings");
+ p.Attributes = MemberAttributes.Assembly | MemberAttributes.Static;
+ p.Getter.Return(Easy.Type(r).Property("Default"));
+ p.AddAttribute(typeof(System.ComponentModel.Design.HelpKeywordAttribute), Easy.Prim("My.Settings"));
+ return c;
+ }
}
public class PublicSettingsCodeGeneratorTool : SettingsCodeGeneratorTool
diff --git a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsDocument.cs b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsDocument.cs
index 76c08de470..d1c41344f6 100644
--- a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsDocument.cs
+++ b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsDocument.cs
@@ -2,8 +2,8 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
-using System.Xml;
using System.Collections.Generic;
+using System.Xml;
namespace ICSharpCode.SettingsEditor
{
@@ -23,6 +23,20 @@ namespace ICSharpCode.SettingsEditor
set { generatedClassName = value ?? ""; }
}
+ public string GeneratedFullClassName {
+ get {
+ if (string.IsNullOrEmpty(generatedClassNamespace))
+ return generatedClassName;
+ else
+ return generatedClassNamespace + "." + generatedClassName;
+ }
+ }
+
+ ///
+ /// VB "My" namespace integration
+ ///
+ public bool UseMySettingsClassName { get; set; }
+
public List Entries {
get { return entries; }
}
@@ -37,6 +51,7 @@ namespace ICSharpCode.SettingsEditor
{
generatedClassNamespace = settingsFile.GetAttribute("GeneratedClassNamespace");
generatedClassName = settingsFile.GetAttribute("GeneratedClassName");
+ this.UseMySettingsClassName = "true".Equals(settingsFile.GetAttribute("UseMySettingsClassName"), StringComparison.OrdinalIgnoreCase);
XmlElement settings = settingsFile["Settings"];
@@ -53,6 +68,8 @@ namespace ICSharpCode.SettingsEditor
writer.WriteAttributeString("CurrentProfile", "(Default)");
writer.WriteAttributeString("GeneratedClassNamespace", generatedClassNamespace);
writer.WriteAttributeString("GeneratedClassName", generatedClassName);
+ if (this.UseMySettingsClassName)
+ writer.WriteAttributeString("UseMySettingsClassName", "true");
writer.WriteStartElement("Profiles");
writer.WriteStartElement("Profile");
diff --git a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsEditor.addin b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsEditor.addin
index 11c4a9defa..826dd1cea5 100644
--- a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsEditor.addin
+++ b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsEditor.addin
@@ -12,6 +12,17 @@
+
+
+
+
+
+
+
+
+
+
Library
ICSharpCode.SettingsEditor
@@ -6,7 +7,7 @@
Debug
AnyCPU
{85226AFB-CE71-4851-9A75-7EEC663A8E8A}
- ..\..\..\..\..\AddIns\AddIns\DisplayBindings\SettingsEditor\
+ ..\..\..\..\..\AddIns\DisplayBindings\SettingsEditor\
False
False
4
@@ -45,8 +46,14 @@
+
+ 3.5
+
+
+ Always
+
Always
diff --git a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.Designer.cs b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.Designer.cs
index 61d2edfbf5..a316c1af5e 100644
--- a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.Designer.cs
+++ b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.Designer.cs
@@ -33,21 +33,17 @@ namespace ICSharpCode.SettingsEditor
{
this.components = new System.ComponentModel.Container();
this.grid = new System.Windows.Forms.DataGridView();
- this.bindingSource = new System.Windows.Forms.BindingSource(this.components);
- this.label1 = new System.Windows.Forms.Label();
this.NameColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.TypeColumn = new System.Windows.Forms.DataGridViewComboBoxColumn();
this.ScopeColumn = new System.Windows.Forms.DataGridViewComboBoxColumn();
this.ValueColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.bindingSource = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.grid)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource)).BeginInit();
this.SuspendLayout();
//
// grid
//
- this.grid.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
this.grid.AutoGenerateColumns = false;
this.grid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.grid.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
@@ -56,28 +52,15 @@ namespace ICSharpCode.SettingsEditor
this.ScopeColumn,
this.ValueColumn});
this.grid.DataSource = this.bindingSource;
+ this.grid.Dock = System.Windows.Forms.DockStyle.Fill;
this.grid.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter;
- this.grid.Location = new System.Drawing.Point(3, 38);
+ this.grid.Location = new System.Drawing.Point(0, 0);
this.grid.Name = "grid";
- this.grid.Size = new System.Drawing.Size(480, 321);
+ this.grid.Size = new System.Drawing.Size(486, 362);
this.grid.TabIndex = 0;
this.grid.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.GridDataError);
this.grid.SelectionChanged += new System.EventHandler(this.GridSelectionChanged);
//
- // bindingSource
- //
- this.bindingSource.DataSource = typeof(ICSharpCode.SettingsEditor.SettingsEntry);
- this.bindingSource.AddingNew += new System.ComponentModel.AddingNewEventHandler(this.BindingSourceAddingNew);
- //
- // label1
- //
- this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(4, 9);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(292, 13);
- this.label1.TabIndex = 1;
- this.label1.Text = "SettingsView prototype. Code generation not implemented!";
- //
// NameColumn
//
this.NameColumn.DataPropertyName = "Name";
@@ -111,25 +94,27 @@ namespace ICSharpCode.SettingsEditor
this.ValueColumn.MinimumWidth = 50;
this.ValueColumn.Name = "ValueColumn";
//
+ // bindingSource
+ //
+ this.bindingSource.DataSource = typeof(ICSharpCode.SettingsEditor.SettingsEntry);
+ this.bindingSource.AddingNew += new System.ComponentModel.AddingNewEventHandler(this.BindingSourceAddingNew);
+ //
// SettingsView
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.Controls.Add(this.label1);
this.Controls.Add(this.grid);
this.Name = "SettingsView";
this.Size = new System.Drawing.Size(486, 362);
((System.ComponentModel.ISupportInitialize)(this.grid)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource)).EndInit();
this.ResumeLayout(false);
- this.PerformLayout();
}
private System.Windows.Forms.DataGridViewComboBoxColumn TypeColumn;
private System.Windows.Forms.DataGridViewComboBoxColumn ScopeColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn ValueColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn NameColumn;
private System.Windows.Forms.BindingSource bindingSource;
- private System.Windows.Forms.Label label1;
private System.Windows.Forms.DataGridView grid;
}
}
diff --git a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.resx b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.resx
index 22812d6b53..ee0fc3bb3b 100644
--- a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.resx
+++ b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.resx
@@ -112,15 +112,15 @@
2.0
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
True
-
+
28, 18
\ No newline at end of file
diff --git a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsViewContent.cs b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsViewContent.cs
index 5eef3992e7..d2d75d9b5e 100644
--- a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsViewContent.cs
+++ b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsViewContent.cs
@@ -4,13 +4,15 @@
using System;
using System.Collections.Generic;
using System.IO;
-using System.Windows.Forms;
-using System.Xml;
+using System.Linq;
using System.Text;
+using System.Xml;
+using System.Xml.Linq;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
+using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SettingsEditor
{
@@ -19,17 +21,41 @@ namespace ICSharpCode.SettingsEditor
SettingsView view = new SettingsView();
PropertyContainer propertyContainer = new PropertyContainer();
SettingsDocument setDoc = new SettingsDocument();
+ MemoryStream appConfigStream;
+ OpenedFile appConfigFile;
public SettingsViewContent(OpenedFile file) : base(file)
{
+ TryOpenAppConfig(false);
view.SelectionChanged += delegate {
propertyContainer.SelectedObjects = view.GetSelectedEntriesForPropertyGrid().ToArray();
};
view.SettingsChanged += delegate {
this.PrimaryFile.MakeDirty();
+ if (appConfigFile != null)
+ appConfigFile.MakeDirty();
};
}
+ void TryOpenAppConfig(bool createIfNotExists)
+ {
+ if (appConfigFile != null) // already open
+ return;
+ if (ProjectService.OpenSolution == null)
+ return;
+ IProject p = ProjectService.OpenSolution.FindProjectContainingFile(this.PrimaryFileName);
+ if (p == null)
+ return;
+ FileName appConfigFileName = CompilableProject.GetAppConfigFile(p, createIfNotExists);
+ if (appConfigFileName != null) {
+ appConfigFile = FileService.GetOrCreateOpenedFile(appConfigFileName);
+ this.Files.Add(appConfigFile);
+ if (createIfNotExists)
+ appConfigFile.MakeDirty();
+ appConfigFile.ForceInitializeView(this);
+ }
+ }
+
public override object Control {
get {
return view;
@@ -48,6 +74,9 @@ namespace ICSharpCode.SettingsEditor
} catch (XmlException ex) {
ShowLoadError(ex.Message);
}
+ } else if (file == appConfigFile) {
+ appConfigStream = new MemoryStream();
+ stream.WriteTo(appConfigStream);
}
}
@@ -68,13 +97,109 @@ namespace ICSharpCode.SettingsEditor
setDoc.Entries.Clear();
setDoc.Entries.AddRange(view.GetAllEntries());
+ if (setDoc.Entries.Count > 0)
+ TryOpenAppConfig(true);
setDoc.Save(writer);
writer.WriteEndDocument();
}
+ } else if (file == appConfigFile) {
+ appConfigStream.Position = 0;
+ XDocument appConfigDoc;
+ try {
+ appConfigDoc = XDocument.Load(appConfigStream, LoadOptions.PreserveWhitespace);
+ } catch (XmlException) {
+ appConfigDoc = null;
+ }
+ if (appConfigDoc != null) {
+ UpdateAppConfig(appConfigDoc);
+ appConfigDoc.Save(stream, SaveOptions.DisableFormatting);
+ } else {
+ appConfigStream.Position = 0;
+ appConfigStream.WriteTo(stream);
+ }
+ }
+ }
+
+ #region Update app.config
+ void UpdateAppConfig(XDocument appConfigDoc)
+ {
+ var entries = view.GetAllEntries();
+ var userEntries = entries.Where(e => e.Scope == SettingScope.User);
+ var appEntries = entries.Where(e => e.Scope == SettingScope.Application);
+
+ XElement configuration = appConfigDoc.Root;
+ XElement configSections = configuration.Element("configSections");
+ if (configSections == null) {
+ configSections = configuration.AddFirstWithIndentation(new XElement("configSections"));
+ }
+ RegisterAppConfigSection(configSections, userEntries.Any(), appEntries.Any());
+ XElement userSettings = configuration.Element("userSettings");
+ if (userSettings == null && userEntries.Any()) {
+ userSettings = configuration.AddWithIndentation(new XElement("userSettings"));
+ }
+ if (userSettings != null) {
+ UpdateSettings(userSettings, userEntries);
+ }
+
+ XElement appSettings = configuration.Element("applicationSettings");
+ if (appSettings == null && appEntries.Any()) {
+ appSettings = configuration.AddWithIndentation(new XElement("applicationSettings"));
+ }
+ if (appSettings != null) {
+ UpdateSettings(appSettings, appEntries);
+ }
+ }
+
+ void RegisterAppConfigSection(XElement configSections, bool hasUserEntries, bool hasAppEntries)
+ {
+ if (hasUserEntries) {
+ XElement userSettings = configSections.Elements("sectionGroup").FirstOrDefault(e => (string)e.Attribute("name") == "userSettings");
+ if (userSettings == null) {
+ userSettings = configSections.AddWithIndentation(new XElement("sectionGroup", new XAttribute("name", "userSettings")));
+ userSettings.Add(new XAttribute("type", "System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"));
+ }
+ RegisterAppConfigSectionInGroup(userSettings, SettingScope.User);
+ }
+ if (hasAppEntries) {
+ XElement appSettings = configSections.Elements("sectionGroup").FirstOrDefault(e => (string)e.Attribute("name") == "applicationSettings");
+ if (appSettings == null) {
+ appSettings = configSections.AddWithIndentation(new XElement("sectionGroup", new XAttribute("name", "applicationSettings")));
+ appSettings.Add(new XAttribute("type", "System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"));
+ }
+ RegisterAppConfigSectionInGroup(appSettings, SettingScope.Application);
+ }
+ }
+
+ void RegisterAppConfigSectionInGroup(XElement sectionGroup, SettingScope scope)
+ {
+ if (!sectionGroup.Elements("section").Any(e => (string)e.Attribute("name") == setDoc.GeneratedFullClassName)) {
+ XElement section = new XElement("section", new XAttribute("name", setDoc.GeneratedFullClassName));
+ section.Add(new XAttribute("type", "System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"));
+ if (scope == SettingScope.User) {
+ section.Add(new XAttribute("allowExeDefinition", "MachineToLocalUser"));
+ }
+ section.Add(new XAttribute("requirePermission", false));
+ sectionGroup.AddWithIndentation(section);
+ }
+ }
+
+ void UpdateSettings(XElement settingsContainer, IEnumerable entries)
+ {
+ XElement settings = settingsContainer.Element(setDoc.GeneratedFullClassName);
+ if (settings == null) {
+ settings = settingsContainer.AddWithIndentation(new XElement(setDoc.GeneratedFullClassName));
+ }
+ settings.RemoveAll();
+ foreach (SettingsEntry entry in entries) {
+ XElement setting = new XElement("setting", new XAttribute("name", entry.Name));
+ settings.Add(new XAttribute("serializeAs", "String"));
+ settings.Add(new XElement("value", entry.SerializedValue));
}
+ settings.ReplaceWith(settings.FormatXml(2));
}
+ #endregion
public PropertyContainer PropertyContainer {
get {
diff --git a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Properties/AssemblyInfo.cs b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Properties/AssemblyInfo.cs
index b804da8885..830c3cc354 100644
--- a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Properties/AssemblyInfo.cs
+++ b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Properties/AssemblyInfo.cs
@@ -21,4 +21,3 @@ using System.Reflection;
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
-[assembly: System.CLSCompliant(true)]
diff --git a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/ReflectorAddIn.addin b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/ReflectorAddIn.addin
index b401f093ed..7a631e8e15 100644
--- a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/ReflectorAddIn.addin
+++ b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/ReflectorAddIn.addin
@@ -30,5 +30,10 @@
-
+
+
+
+
diff --git a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/ReflectorAddIn.csproj b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/ReflectorAddIn.csproj
index ecd93b97b7..14858554fc 100644
--- a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/ReflectorAddIn.csproj
+++ b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/ReflectorAddIn.csproj
@@ -40,12 +40,18 @@
+
+
3.5
+
+ 4.0
+
+
@@ -53,22 +59,25 @@
+
+ ChangeReflectorPath.xaml
+ Code
+
-
-
- SetReflectorPathDialog.cs
-
+
+ SetReflectorPath.xaml
+ Code
+
Always
-
- SetReflectorPathDialog.cs
-
+
+
{2748AD25-9C63-4E12-877B-4DCE96FBED54}
ICSharpCode.SharpDevelop
@@ -79,10 +88,22 @@
ICSharpCode.Core
False
+
+ {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}
+ ICSharpCode.Core.Presentation
+
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}
ICSharpCode.SharpDevelop.Dom
False
+
+ {8035765F-D51F-4A0C-A746-2FD100E19419}
+ ICSharpCode.SharpDevelop.Widgets
+
+
+
+
+
\ No newline at end of file
diff --git a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/OptionPanels/ChangeReflectorPath.xaml b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/OptionPanels/ChangeReflectorPath.xaml
new file mode 100644
index 0000000000..8399ffba9e
--- /dev/null
+++ b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/OptionPanels/ChangeReflectorPath.xaml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/OptionPanels/ChangeReflectorPath.xaml.cs b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/OptionPanels/ChangeReflectorPath.xaml.cs
new file mode 100644
index 0000000000..a79242ee6a
--- /dev/null
+++ b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/OptionPanels/ChangeReflectorPath.xaml.cs
@@ -0,0 +1,35 @@
+
+using System;
+using ICSharpCode.Core;
+using ICSharpCode.SharpDevelop.Gui;
+
+namespace ReflectorAddIn.OptionPanels
+{
+ public partial class ChangeReflectorPath : OptionPanel
+ {
+ public ChangeReflectorPath()
+ {
+ InitializeComponent();
+
+ Loaded += delegate { ShowStatus(); };
+ }
+
+ void ShowStatus()
+ {
+ string path = PropertyService.Get(ReflectorSetupHelper.ReflectorExePathPropertyName);
+
+ if (string.IsNullOrEmpty(path)) {
+ StatusLabel.Text = StringParser.Parse("${res:ReflectorAddIn.ReflectorPathNotSet}");
+ } else {
+ StatusLabel.Text = StringParser.Parse("${res:ReflectorAddIn.IdeOptions.ReflectorFoundInPath}")
+ + Environment.NewLine + path;
+ }
+ }
+
+ void FindReflectorPathClick(object sender, EventArgs e)
+ {
+ ReflectorSetupHelper.OpenReflectorExeFullPathInteractiver();
+ ShowStatus();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/ReflectorController.cs b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/ReflectorController.cs
index 540621a23f..07146d2588 100644
--- a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/ReflectorController.cs
+++ b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/ReflectorController.cs
@@ -1,15 +1,13 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
-using ICSharpCode.SharpDevelop.Dom;
using System;
using System.Diagnostics;
using System.IO;
-using System.Runtime.Remoting;
-using System.Text;
using System.Threading;
-using System.Windows.Forms;
+
using ICSharpCode.Core;
+using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui;
namespace ReflectorAddIn
diff --git a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/ReflectorSetupHelper.cs b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/ReflectorSetupHelper.cs
index c5ed1f56c7..e73638f5c0 100644
--- a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/ReflectorSetupHelper.cs
+++ b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/ReflectorSetupHelper.cs
@@ -1,12 +1,13 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
-using ICSharpCode.SharpDevelop.Gui;
using System;
using System.IO;
using System.Text.RegularExpressions;
-using System.Windows.Forms;
+
using ICSharpCode.Core;
+using ICSharpCode.SharpDevelop.Gui;
+using ReflectorAddIn.Windows;
namespace ReflectorAddIn
{
@@ -31,19 +32,31 @@ namespace ReflectorAddIn
}
if (askReason != null) {
- using(SetReflectorPathDialog dialog = new SetReflectorPathDialog(path, askReason)) {
-
- if (dialog.ShowDialog(WorkbenchSingleton.MainWin32Window) != DialogResult.OK || !File.Exists(dialog.SelectedFile)) {
- return null;
- }
-
- path = dialog.SelectedFile;
- PropertyService.Set(ReflectorExePathPropertyName, path);
-
- }
+ SetReflectorPath dialog = new SetReflectorPath(path, askReason);
+ dialog.Owner = WorkbenchSingleton.MainWindow;
+ bool? result = dialog.ShowDialog();
+ if (!result.HasValue || !result.Value || !File.Exists(dialog.SelectedFile))
+ return null;
+
+ path = dialog.SelectedFile;
+ PropertyService.Set(ReflectorExePathPropertyName, path);
}
return path;
}
+
+ internal static void OpenReflectorExeFullPathInteractiver() {
+ string path = PropertyService.Get(ReflectorExePathPropertyName);
+ string askReason = null;
+
+ SetReflectorPath dialog = new SetReflectorPath(path, askReason);
+ dialog.Owner = WorkbenchSingleton.MainWindow;
+
+ bool? result = dialog.ShowDialog();
+ if (!result.HasValue || !result.Value || !File.Exists(dialog.SelectedFile))
+ return;
+
+ PropertyService.Set(ReflectorExePathPropertyName, dialog.SelectedFile);
+ }
}
}
diff --git a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/TextEditorContextMenuCommand.cs b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/TextEditorContextMenuCommand.cs
index f1b6d17b5a..9d7268db78 100644
--- a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/TextEditorContextMenuCommand.cs
+++ b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/TextEditorContextMenuCommand.cs
@@ -2,14 +2,11 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
-using System.Collections.Generic;
-using System.Linq;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Bookmarks;
using ICSharpCode.SharpDevelop.Dom;
-using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.ClassBrowser;
using ICSharpCode.SharpDevelop.Project;
diff --git a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/Windows/SetReflectorPath.xaml b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/Windows/SetReflectorPath.xaml
new file mode 100644
index 0000000000..90d32042c2
--- /dev/null
+++ b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/Windows/SetReflectorPath.xaml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/Windows/SetReflectorPath.xaml.cs b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/Windows/SetReflectorPath.xaml.cs
new file mode 100644
index 0000000000..085edf219a
--- /dev/null
+++ b/src/AddIns/Misc/ReflectorAddIn/ReflectorAddIn/Project/Src/Windows/SetReflectorPath.xaml.cs
@@ -0,0 +1,82 @@
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+
+using ICSharpCode.Core;
+using Microsoft.Win32;
+
+namespace ReflectorAddIn.Windows
+{
+ public partial class SetReflectorPath : Window
+ {
+ public SetReflectorPath(string oldPath, string reason)
+ {
+ InitializeComponent();
+
+ this.Title = ResourceService.GetString("ReflectorAddIn.SetReflectorPathDialogTitle");
+
+ if (reason != null)
+ this.txtReason.Text = reason;
+ else
+ this.txtReason.Visibility = Visibility.Collapsed;
+ if (!String.IsNullOrEmpty(oldPath)) {
+ this.slePath.Text = oldPath;
+ }
+ }
+
+ public string SelectedFile {
+ get {
+ return slePath.Text;
+ }
+ }
+
+ void OpenReflectorPageButton_Click(object sender, RoutedEventArgs e)
+ {
+ try {
+ using(System.Diagnostics.Process.Start("http://reflector.red-gate.com/Download.aspx")) {
+ }
+ } catch (Exception ex) {
+ MessageService.ShowError(ex.Message);
+ }
+ }
+
+ void OkButton_Click(object sender, RoutedEventArgs e)
+ {
+ this.DialogResult = true;
+ Close();
+ }
+
+ void CancelButton_Click(object sender, RoutedEventArgs e)
+ {
+ this.DialogResult = false;
+ Close();
+ }
+
+ void BrowseButton_Click(object sender, RoutedEventArgs e)
+ {
+ OpenFileDialog dialog = new OpenFileDialog();
+
+ dialog.Title = this.Title;
+ dialog.DefaultExt = "exe";
+ dialog.RestoreDirectory = true;
+ dialog.Filter = "Reflector.exe|Reflector.exe";
+
+ if (!String.IsNullOrEmpty(this.slePath.Text)) {
+ dialog.FileName = this.slePath.Text;
+ }
+
+ bool? result = dialog.ShowDialog(this);
+
+ if (result.HasValue && result.Value) {
+ this.slePath.Text = dialog.FileName;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs
index ca0cd38af8..21551c45e3 100644
--- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs
+++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs
@@ -56,6 +56,7 @@ namespace ICSharpCode.AvalonEdit.Rendering
layers = new UIElementCollection(this, this);
InsertLayer(textLayer, KnownLayer.Text, LayerInsertionPosition.Replace);
}
+
#endregion
#region Document Property
@@ -688,7 +689,9 @@ namespace ICSharpCode.AvalonEdit.Rendering
double heightTreeHeight = this.DocumentHeight;
TextEditorOptions options = this.Options;
if (options.AllowScrollBelowDocument) {
- heightTreeHeight = Math.Max(heightTreeHeight, Math.Min(heightTreeHeight - 50, scrollOffset.Y) + scrollViewport.Height);
+ if (!double.IsInfinity(scrollViewport.Height)) {
+ heightTreeHeight = Math.Max(heightTreeHeight, Math.Min(heightTreeHeight - 50, scrollOffset.Y) + scrollViewport.Height);
+ }
}
SetScrollData(availableSize,
@@ -1525,6 +1528,8 @@ namespace ICSharpCode.AvalonEdit.Rendering
};
RaiseEvent(args2);
}
+
+
#endregion
///
diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin
index 91468b0851..1a60a36a4b 100755
--- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin
+++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin
@@ -139,12 +139,12 @@
class = "ICSharpCode.SharpDevelop.Editor.Search.SearchResultsPad"
defaultPosition = "Bottom, Hidden" />
-
+ defaultPosition = "Bottom, Hidden" />
+
+
+
+
+
+
+
+
+
+
+
@@ -1922,11 +1948,11 @@
+ class = "ICSharpCode.SharpDevelop.Bookmarks.PrevBookmarkPadCommand"/>
+ class = "ICSharpCode.SharpDevelop.Bookmarks.NextBookmarkPadCommand"/>
Src\Project\MSBuildEngine\ExtendedBinaryReader.cs
+
+ ListViewPad.xaml
+
@@ -821,8 +824,7 @@
-
-
+
@@ -846,6 +848,7 @@
ICSharpCode.Core
False
+
diff --git a/src/Main/Base/Project/Src/Bookmarks/BookmarkConverter.cs b/src/Main/Base/Project/Src/Bookmarks/BookmarkConverter.cs
index 1d29c73dd6..4d91bbe82c 100644
--- a/src/Main/Base/Project/Src/Bookmarks/BookmarkConverter.cs
+++ b/src/Main/Base/Project/Src/Bookmarks/BookmarkConverter.cs
@@ -8,7 +8,6 @@ using System.Text;
using ICSharpCode.Core;
using ICSharpCode.NRefactory;
-using Services.Debugger.Tooltips;
namespace ICSharpCode.SharpDevelop.Bookmarks
{
@@ -103,16 +102,6 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
b.Append(bbm.Condition);
}
-// if (bookmark is PinBookmark) {
-// var pin = (PinBookmark)bookmark;
-// b.Append(pin.Comment ?? string.Empty);
-// foreach(var node in pin.Nodes) {
-// b.Append('|');
-// b.Append(node.Name);
-// b.Append('|');
-// b.Append(node.Text);
-// }
-// }
return b.ToString();
} else {
return base.ConvertTo(context, culture, value, destinationType);
diff --git a/src/Main/Base/Project/Src/Bookmarks/BookmarkManager.cs b/src/Main/Base/Project/Src/Bookmarks/BookmarkManager.cs
index 9f5321d68c..f02c28c724 100644
--- a/src/Main/Base/Project/Src/Bookmarks/BookmarkManager.cs
+++ b/src/Main/Base/Project/Src/Bookmarks/BookmarkManager.cs
@@ -90,7 +90,7 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
static void OnAdded(BookmarkEventArgs e)
{
if (Added != null) {
- Added(null, e);
+ Added(null, e);
}
}
@@ -121,6 +121,20 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
BookmarkManager.AddMark(bookmarkFactory(new Location(column, line)));
}
+ public static void RemoveAll(Predicate match)
+ {
+ if (match == null)
+ throw new ArgumentNullException("Predicate is null!");
+
+ for(int index = bookmarks.Count - 1; index >= 0; --index){
+ SDBookmark bookmark = bookmarks[index];
+ if(match(bookmark)) {
+ bookmarks.RemoveAt(index);
+ OnRemoved(new BookmarkEventArgs(bookmark));
+ }
+ }
+ }
+
public static event BookmarkEventHandler Removed;
public static event BookmarkEventHandler Added;
}
diff --git a/src/Main/Base/Project/Src/Bookmarks/Pad/BookmarkPad.cs b/src/Main/Base/Project/Src/Bookmarks/Pad/BookmarkPad.cs
index d499f16358..348427f5e2 100644
--- a/src/Main/Base/Project/Src/Bookmarks/Pad/BookmarkPad.cs
+++ b/src/Main/Base/Project/Src/Bookmarks/Pad/BookmarkPad.cs
@@ -3,10 +3,13 @@
using System;
using System.Collections.Generic;
-using System.Windows.Forms;
+using System.Windows;
+using System.Windows.Controls;
using ICSharpCode.Core;
-using ICSharpCode.Core.WinForms;
+using ICSharpCode.Core.Presentation;
+using ICSharpCode.SharpDevelop.Bookmarks.Pad.Controls;
+using ICSharpCode.SharpDevelop.Debugging;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.SharpDevelop.Bookmarks
@@ -24,18 +27,27 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
}
}
+ protected override ToolBar CreateToolBar()
+ {
+ ToolBar toolbar = ToolBarService.CreateToolBar(this, "/SharpDevelop/Pads/BookmarkPad/Toolbar");
+ toolbar.SetValue(Grid.RowProperty, 0);
+ return toolbar;
+ }
+
+ protected override void CreateColumns() { }
+
public BookmarkPad()
{
- instance = this;
+ instance = this;
+ myPanel.Children.Add(CreateToolBar());
+ listView.HideColumns(3, 0);
}
}
public abstract class BookmarkPadBase : AbstractPadContent
{
- Panel myPanel = new Panel();
- ExtTreeView bookmarkTreeView = new ExtTreeView();
-
- Dictionary fileNodes = new Dictionary();
+ protected Grid myPanel = new Grid();
+ protected ListViewPad listView = new ListViewPad();
public override object Control {
get {
@@ -43,88 +55,82 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
}
}
- public TreeNode CurrentNode {
+ public ListViewPadItemModel CurrentItem {
get {
- return bookmarkTreeView.SelectedNode as TreeNode;
+ return listView.CurrentItem;
}
}
- protected virtual ToolStrip CreateToolStrip()
- {
- ToolStrip toolStrip = ToolbarService.CreateToolStrip(this, "/SharpDevelop/Pads/BookmarkPad/Toolbar");
- toolStrip.Stretch = true;
- toolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
- return toolStrip;
- }
+ protected abstract ToolBar CreateToolBar();
+
+ protected abstract void CreateColumns();
protected BookmarkPadBase()
{
- bookmarkTreeView.Dock = DockStyle.Fill;
- bookmarkTreeView.CheckBoxes = true;
- bookmarkTreeView.HideSelection = false;
- bookmarkTreeView.Font = ExtTreeNode.RegularBigFont;
- bookmarkTreeView.IsSorted = false;
+ myPanel.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
+ myPanel.RowDefinitions.Add(new RowDefinition());
+ listView.SetValue(Grid.RowProperty, 1);
+ myPanel.Children.Add(listView);
- myPanel.Controls.AddRange(new Control[] { bookmarkTreeView, CreateToolStrip()} );
BookmarkManager.Added += new BookmarkEventHandler(BookmarkManagerAdded);
BookmarkManager.Removed += new BookmarkEventHandler(BookmarkManagerRemoved);
foreach (SDBookmark mark in BookmarkManager.Bookmarks) {
AddMark(mark);
}
+
+ listView.ItemActivated += new EventHandler(listView_ItemActivated);
}
- public IEnumerable AllNodes {
+ public IEnumerable AllItems {
get {
- Stack treeNodes = new Stack();
- foreach (TreeNode node in bookmarkTreeView.Nodes) {
- treeNodes.Push(node);
- }
-
- while (treeNodes.Count > 0) {
- TreeNode node = treeNodes.Pop();
- foreach (TreeNode childNode in node.Nodes) {
- treeNodes.Push(childNode);
- }
- yield return node;
+ foreach (var item in listView.ItemCollection) {
+ yield return item;
}
}
}
+ public ListViewPadItemModel NextItem {
+ get {
+ return this.listView.NextItem;
+ }
+ }
+
+ public ListViewPadItemModel PrevItem {
+ get {
+ return this.listView.PrevItem;
+ }
+ }
+
public void EnableDisableAll()
{
bool isOneChecked = false;
- foreach (TreeNode node in AllNodes) {
- if (node is BookmarkNode) {
- if (((BookmarkNode)node).Checked) {
- isOneChecked = true;
- break;
- }
- }
- }
- foreach (TreeNode node in AllNodes) {
- if (node is BookmarkNode) {
- ((BookmarkNode)node).Checked = !isOneChecked;
+ foreach (var node in AllItems) {
+ if (node.IsChecked) {
+ isOneChecked = true;
+ break;
}
}
+ foreach (var node in AllItems)
+ node.IsChecked = !isOneChecked;
+ }
+
+ public void SelectItem(ListViewPadItemModel model)
+ {
+ listView.CurrentItem = model;
}
void AddMark(SDBookmark mark)
{
if (!ShowBookmarkInThisPad(mark))
return;
- if (!fileNodes.ContainsKey(mark.FileName)) {
- BookmarkFolderNode folderNode = new BookmarkFolderNode(mark.FileName);
- fileNodes.Add(mark.FileName, folderNode);
- bookmarkTreeView.Nodes.Add(folderNode);
- }
- fileNodes[mark.FileName].AddMark(mark);
- fileNodes[mark.FileName].Expand();
+
+ listView.Add(new ListViewPadItemModel(mark));
}
protected virtual bool ShowBookmarkInThisPad(SDBookmark mark)
{
- return mark.IsVisibleInBookmarkPad;
+ return mark.IsVisibleInBookmarkPad && !(mark is BreakpointBookmark);
}
void BookmarkManagerAdded(object sender, BookmarkEventArgs e)
@@ -134,25 +140,18 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
void BookmarkManagerRemoved(object sender, BookmarkEventArgs e)
{
- if (fileNodes.ContainsKey(e.Bookmark.FileName)) {
- fileNodes[e.Bookmark.FileName].RemoveMark(e.Bookmark);
- if (fileNodes[e.Bookmark.FileName].Marks.Count == 0) {
- bookmarkTreeView.Nodes.Remove(fileNodes[e.Bookmark.FileName]);
- fileNodes.Remove(e.Bookmark.FileName);
- }
- }
+ listView.Remove(new ListViewPadItemModel(e.Bookmark));
}
- void TreeViewDoubleClick(object sender, EventArgs e)
+ void listView_ItemActivated(object sender, EventArgs e)
{
- TreeNode node = bookmarkTreeView.SelectedNode;
+ var node = CurrentItem;
if (node != null) {
- SDBookmark mark = node.Tag as SDBookmark;
+ SDBookmark mark = node.Mark as SDBookmark;
if (mark != null) {
FileService.JumpToFilePosition(mark.FileName, mark.LineNumber, 1);
}
- }
+ }
}
-
}
}
diff --git a/src/Main/Base/Project/Src/Bookmarks/Pad/BookmarkPadToolbarCommands.cs b/src/Main/Base/Project/Src/Bookmarks/Pad/BookmarkPadToolbarCommands.cs
index 287e592a7f..229395f037 100644
--- a/src/Main/Base/Project/Src/Bookmarks/Pad/BookmarkPadToolbarCommands.cs
+++ b/src/Main/Base/Project/Src/Bookmarks/Pad/BookmarkPadToolbarCommands.cs
@@ -3,40 +3,83 @@
using System;
using System.Collections.Generic;
+using System.Linq;
using System.Windows.Forms;
using ICSharpCode.Core;
+using ICSharpCode.SharpDevelop.Bookmarks.Pad.Controls;
+using ICSharpCode.SharpDevelop.Debugging;
namespace ICSharpCode.SharpDevelop.Bookmarks
{
#region Goto Commands
- /*
- public class GotoNext : AbstractEditActionMenuCommand
+ public abstract class NextPrevBookmarkPadCommand : AbstractMenuCommand
{
- public override IEditAction EditAction {
- get {
- return new ICSharpCode.TextEditor.Actions.GotoNextBookmark(PrevBookmark.AcceptOnlyStandardBookmarks);
+ public void Run(ListViewPadItemModel item)
+ {
+ var bookmarkBase = (BookmarkPadBase)Owner;
+
+ if (item == null) return;
+
+ // get next bookmark
+ int line = (item.Mark as SDBookmark).LineNumber;
+
+ SDBookmark bookmark;
+ if (item.Mark is BreakpointBookmark) {
+ var bookmarks = DebuggerService.Breakpoints;
+ bookmark = bookmarks.FirstOrDefault(b => b.LineNumber == line);
+ if (bookmark == null && bookmarks.Count > 0) {
+ bookmark = bookmarks[0]; // jump around to first bookmark
+ }
}
+ else {
+ var bookmarks = BookmarkManager.Bookmarks;
+ bookmark = bookmarks.FirstOrDefault(b => b.LineNumber == line);
+ if (bookmark == null && bookmarks.Count > 0) {
+ bookmark = bookmarks[0]; // jump around to first bookmark
+ }
+ }
+
+ if (bookmark != null) {
+ FileService.JumpToFilePosition(bookmark.FileName, bookmark.LineNumber, bookmark.ColumnNumber);
+ }
+
+ // select in tree
+ bookmarkBase.SelectItem(item);
}
}
- public class GotoPrev : AbstractEditActionMenuCommand
+ public sealed class NextBookmarkPadCommand : NextPrevBookmarkPadCommand
{
- public override IEditAction EditAction {
- get {
- return new ICSharpCode.TextEditor.Actions.GotoPrevBookmark(PrevBookmark.AcceptOnlyStandardBookmarks);
- }
+ public override void Run()
+ {
+ var bookmarkBase = (BookmarkPadBase)Owner;
+ var nextItem = bookmarkBase.NextItem;
+
+ base.Run(nextItem);
+ }
+ }
+
+ public sealed class PrevBookmarkPadCommand : NextPrevBookmarkPadCommand
+ {
+ public override void Run()
+ {
+ var bookmarkBase = (BookmarkPadBase)Owner;
+ var prevItem = bookmarkBase.PrevItem;
+
+ base.Run(prevItem);
}
}
- */
#endregion Goto Commands
#region Delete BookMark(s) commands
public abstract class AbstractDeleteMarkClass : AbstractMenuCommand
{
- protected void deleteBookMark (BookmarkNode node) {
- ICSharpCode.SharpDevelop.Bookmarks.BookmarkManager.RemoveMark(node.Bookmark);
+ protected void deleteBookMark (SDBookmark bookmark) {
+ if (bookmark == null) return;
+ if (bookmark is BreakpointBookmark) return;
+ ICSharpCode.SharpDevelop.Bookmarks.BookmarkManager.RemoveMark(bookmark);
}
}
@@ -47,23 +90,10 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
{
public override void Run()
{
- IEnumerable nodes = ((BookmarkPadBase)Owner).AllNodes;
- foreach(TreeNode innerNode in nodes) {
- BookmarkFolderNode folderNode = innerNode as BookmarkFolderNode;
- // Its problebly not the most effecient way of doing it, but it works.
- if (folderNode != null) {
- for (int i = folderNode.Nodes.Count - 1; i >= 0 ; i--)
- {
- if (folderNode.Nodes[i] is BookmarkNode) {
- deleteBookMark(folderNode.Nodes[i] as BookmarkNode);
- }
- }
- }
- }
+ BookmarkManager.RemoveAll(b => !(b is BreakpointBookmark));
}
}
-
///
/// Deletes the currently selected or
///
@@ -71,21 +101,10 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
{
public override void Run()
{
- TreeNode node = ((BookmarkPadBase)Owner).CurrentNode;
+ var node = ((BookmarkPadBase)Owner).CurrentItem;
if (node == null) return;
- if (node is BookmarkNode) {
- deleteBookMark(node as BookmarkNode);
- }
- if (node is BookmarkFolderNode) {
- BookmarkFolderNode folderNode = node as BookmarkFolderNode;
- // We have to start from the top of the array to prevent reordering.
- for (int i = folderNode.Nodes.Count - 1; i >= 0 ; i--)
- {
- if (folderNode.Nodes[i] is BookmarkNode) {
- deleteBookMark(folderNode.Nodes[i] as BookmarkNode);
- }
- }
- }
+
+ deleteBookMark(node.Mark as SDBookmark);
}
}
diff --git a/src/Main/Base/Project/Src/Bookmarks/Pad/Controls/ListViewPad.xaml b/src/Main/Base/Project/Src/Bookmarks/Pad/Controls/ListViewPad.xaml
new file mode 100644
index 0000000000..b80d7d1c71
--- /dev/null
+++ b/src/Main/Base/Project/Src/Bookmarks/Pad/Controls/ListViewPad.xaml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Main/Base/Project/Src/Bookmarks/Pad/Controls/ListViewPad.xaml.cs b/src/Main/Base/Project/Src/Bookmarks/Pad/Controls/ListViewPad.xaml.cs
new file mode 100644
index 0000000000..28342e9a10
--- /dev/null
+++ b/src/Main/Base/Project/Src/Bookmarks/Pad/Controls/ListViewPad.xaml.cs
@@ -0,0 +1,243 @@
+// 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.ObjectModel;
+using System.ComponentModel;
+using System.IO;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Input;
+using System.Windows.Media;
+
+using ICSharpCode.Core;
+using ICSharpCode.SharpDevelop.Debugging;
+
+namespace ICSharpCode.SharpDevelop.Bookmarks.Pad.Controls
+{
+ ///
+ /// ListViewPad inside WPF pads.
+ ///
+ public sealed partial class ListViewPad : UserControl
+ {
+ ObservableCollection itemCollection = new ObservableCollection();
+
+ public ObservableCollection ItemCollection {
+ get { return itemCollection; }
+ }
+
+ public event EventHandler ItemActivated;
+
+ public ListViewPad()
+ {
+ InitializeComponent();
+
+ this.MyListView.PreviewMouseDoubleClick += new MouseButtonEventHandler(ListViewPad_PreviewMouseDoubleClick);
+ this.MyListView.KeyDown += new KeyEventHandler(ListViewPad_KeyDown);
+ }
+
+ public ListViewPadItemModel CurrentItem {
+ get {
+ if (MyListView.SelectedItem == null && MyListView.Items.Count > 0)
+ this.MyListView.SelectedItem = MyListView.Items[0];
+
+ return MyListView.SelectedItem as ListViewPadItemModel;
+ }
+ set {
+ if (value == null) return;
+
+ this.MyListView.SelectedItem = value;
+ }
+ }
+
+ public ListViewPadItemModel NextItem {
+ get {
+ bool found = false;
+ foreach (var line in ItemCollection) {
+ if (found)
+ return line;
+ if (line == CurrentItem)
+ found = true;
+ }
+
+ return null;
+ }
+ }
+
+ public ListViewPadItemModel PrevItem {
+ get {
+ bool found = false;
+ ListViewPadItemModel prev = null;
+ foreach (var line in ItemCollection) {
+ if (found)
+ return prev;
+ if (line == CurrentItem) {
+ found = true;
+ }
+ else {
+ prev = line;
+ }
+ }
+
+ return prev;
+ }
+ }
+
+ public void Add(ListViewPadItemModel item)
+ {
+ if (item == null) return;
+ ItemCollection.Add(item);
+ }
+
+ public void Remove(ListViewPadItemModel item)
+ {
+ SDBookmark bookmark1 = item.Mark as SDBookmark;
+
+ if (bookmark1 is CurrentLineBookmark)
+ return;
+
+ foreach (var line in itemCollection) {
+ SDBookmark bookmark2 = line.Mark as SDBookmark;
+
+ if (bookmark1.FileName == bookmark2.FileName &&
+ bookmark1.LineNumber == bookmark2.LineNumber) {
+ ItemCollection.Remove(line);
+ break;
+ }
+ }
+ }
+
+ public void AddColumn(string header, DataTemplate cellTemplate)
+ {
+ GridViewColumn column = new GridViewColumn();
+ column.Header = header;
+ column.CellTemplate = cellTemplate;
+ ((GridView)this.MyListView.View).Columns.Add(column);
+ }
+
+ ///
+ /// Indexes from end to start.
+ ///
+ ///
+ public void HideColumns(params int[] columnIndexes)
+ {
+ foreach(int i in columnIndexes)
+ ((GridView)MyListView.View).Columns.RemoveAt(i);
+ }
+
+ private void ListViewPad_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
+ {
+ var handler = ItemActivated;
+
+ if (handler != null)
+ ItemActivated(this, EventArgs.Empty);
+ }
+
+ private void ListViewPad_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.Key == Key.Escape) {
+ this.MyListView.UnselectAll();
+ e.Handled = true;
+ }
+ }
+ }
+
+ public sealed class ListViewPadItemModel : INotifyPropertyChanged
+ {
+ bool isChecked;
+ object tag;
+ string language;
+ string condition;
+ ImageSource imageSource;
+
+ public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+
+ public ListViewPadItemModel(SDBookmark mark)
+ {
+ if (mark is BreakpointBookmark) {
+ isChecked = ((BreakpointBookmark)mark).IsEnabled;
+ condition = ((BreakpointBookmark)mark).Condition;
+ language = ((BreakpointBookmark)mark).ScriptLanguage;
+ }
+
+ imageSource = mark.Image.ImageSource;
+
+ Location = GetLocation(mark);
+ Mark = mark;
+ tag = this;
+ }
+
+ public bool IsChecked {
+ get {
+ return isChecked;
+ }
+ set {
+ if (value != isChecked)
+ {
+ isChecked = value;
+ NotifyPropertyChanged("IsChecked");
+ }
+ }
+ }
+
+ public SDBookmark Mark {
+ get; set;
+ }
+
+ public ImageSource Image {
+ get { return imageSource; }
+ set {
+ imageSource = value;
+ NotifyPropertyChanged("Image");
+ }
+ }
+
+ public string Location {
+ get; private set;
+ }
+
+ public string Language {
+ get { return language; }
+ set {
+ language = value;
+ NotifyPropertyChanged("Language");
+ }
+ }
+
+ public string Condition {
+ get { return condition; }
+ set {
+ condition = value;
+ NotifyPropertyChanged("Condition");
+ }
+ }
+
+ public object Tag {
+ get { return tag;}
+ set {
+ tag = value;
+ NotifyPropertyChanged("Tag");
+ }
+ }
+
+ private string GetLocation(SDBookmark bookmark)
+ {
+ return string.Format(StringParser.Parse("${res:MainWindow.Windows.BookmarkPad.LineText}"),
+ Path.GetFileName(bookmark.FileName), bookmark.LineNumber);
+ }
+
+ private void NotifyPropertyChanged(string property)
+ {
+ if (property == "IsChecked")
+ {
+ if (Mark is BreakpointBookmark)
+ (Mark as BreakpointBookmark).IsEnabled = isChecked;
+ }
+
+ if (PropertyChanged != null)
+ {
+ PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(property));
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Main/Base/Project/Src/Commands/DebugCommands.cs b/src/Main/Base/Project/Src/Commands/DebugCommands.cs
index e2b1020847..f06e420d1f 100644
--- a/src/Main/Base/Project/Src/Commands/DebugCommands.cs
+++ b/src/Main/Base/Project/Src/Commands/DebugCommands.cs
@@ -2,7 +2,13 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+
using ICSharpCode.Core;
+using ICSharpCode.SharpDevelop.Bookmarks;
+using ICSharpCode.SharpDevelop.Bookmarks.Pad.Controls;
using ICSharpCode.SharpDevelop.Debugging;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Gui;
@@ -30,6 +36,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
build.Run();
}
}
+
public class ExecuteWithoutDebugger : Execute
{
public override void Run()
@@ -113,6 +120,27 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
}
}
+ public class RemoveAllBreakpointsCommand : AbstractMenuCommand
+ {
+ public override void Run()
+ {
+ BookmarkManager.RemoveAll(b => b is BreakpointBookmark);
+ }
+ }
+
+ public class DeleteBreakpointCommand : AbstractMenuCommand
+ {
+ public override void Run()
+ {
+ var bookmarkBase = (BookmarkPadBase)Owner;
+ var item = bookmarkBase.CurrentItem;
+
+ if (item.Mark is BreakpointBookmark) {
+ BookmarkManager.RemoveMark(item.Mark);
+ }
+ }
+ }
+
public class AttachToProcessCommand : AbstractMenuCommand
{
public override void Run()
diff --git a/src/Main/Base/Project/Src/Gui/Pads/AbstractConsolePad.cs b/src/Main/Base/Project/Src/Gui/Pads/AbstractConsolePad.cs
index 7e033aaa92..be5c665ee0 100755
--- a/src/Main/Base/Project/Src/Gui/Pads/AbstractConsolePad.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/AbstractConsolePad.cs
@@ -262,6 +262,9 @@ namespace ICSharpCode.SharpDevelop.Gui
internal ITextEditor editorAdapter;
internal BeginReadOnlySectionProvider readOnlyRegion;
+ public event TextCompositionEventHandler TextAreaTextEntered;
+ public event KeyEventHandler TextAreaPreviewKeyDown;
+
public ConsoleControl()
{
this.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) });
@@ -279,6 +282,9 @@ namespace ICSharpCode.SharpDevelop.Gui
this.Children.Add(editor);
editor.TextArea.ReadOnlySectionProvider = readOnlyRegion = new BeginReadOnlySectionProvider();
+
+ editor.TextArea.TextEntered += new TextCompositionEventHandler(editor_TextArea_TextEntered);
+ editor.TextArea.PreviewKeyDown += new KeyEventHandler(editor_TextArea_PreviewKeyDown);
}
public ITextEditor TextEditor {
@@ -313,6 +319,15 @@ namespace ICSharpCode.SharpDevelop.Gui
readOnlyRegion.EndOffset = editor.Document.TextLength;
}
+ ///
+ /// Hides the scroll bar.
+ ///
+ public void HideScrollBar()
+ {
+ this.editor.HorizontalScrollBarVisibility = ScrollBarVisibility.Hidden;
+ this.editor.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
+ }
+
public int CommandOffset {
get { return readOnlyRegion.EndOffset; }
}
@@ -328,6 +343,22 @@ namespace ICSharpCode.SharpDevelop.Gui
editor.Document.Replace(new TextSegment() { StartOffset = readOnlyRegion.EndOffset, EndOffset = editor.Document.TextLength }, value);
}
}
+
+ void editor_TextArea_TextEntered(object sender, TextCompositionEventArgs e)
+ {
+ TextCompositionEventHandler handler = TextAreaTextEntered;
+
+ if (handler != null)
+ handler(this, e);
+ }
+
+ void editor_TextArea_PreviewKeyDown(object sender, KeyEventArgs e)
+ {
+ KeyEventHandler handler = TextAreaPreviewKeyDown;
+
+ if (handler != null)
+ handler(this, e);
+ }
}
public class BeginReadOnlySectionProvider : IReadOnlySectionProvider
diff --git a/src/Main/Base/Project/Src/Project/CompilableProject.cs b/src/Main/Base/Project/Src/Project/CompilableProject.cs
index a9e5753d5e..511ebf963a 100644
--- a/src/Main/Base/Project/Src/Project/CompilableProject.cs
+++ b/src/Main/Base/Project/Src/Project/CompilableProject.cs
@@ -1,18 +1,16 @@
// 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.Xml.Linq;
-using ICSharpCode.SharpDevelop.Gui;
-using ICSharpCode.SharpDevelop.Project.Converter;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
+using System.Xml.Linq;
+
using ICSharpCode.Core;
-using ICSharpCode.SharpDevelop.Debugging;
-using ICSharpCode.SharpDevelop.Internal.Templates;
+using ICSharpCode.SharpDevelop.Project.Converter;
using ICSharpCode.SharpDevelop.Util;
namespace ICSharpCode.SharpDevelop.Project
@@ -580,31 +578,39 @@ namespace ICSharpCode.SharpDevelop.Project
}
}
- void UpdateAppConfig(TargetFramework newFramework)
+ public static FileName GetAppConfigFile(IProject project, bool createIfNotExists)
{
- // When changing the target framework, update any existing app.config
- // Also, for applications (not libraries), create an app.config is it is required for the target framework
- bool createAppConfig = newFramework.RequiresAppConfigEntry && (this.OutputType != OutputType.Library && this.OutputType != OutputType.Module);
-
- string appConfigFileName = Path.Combine(this.Directory, "app.config");
+ FileName appConfigFileName = Core.FileName.Create(Path.Combine(project.Directory, "app.config"));
if (!File.Exists(appConfigFileName)) {
- if (createAppConfig) {
+ if (createIfNotExists) {
File.WriteAllText(appConfigFileName,
"" + Environment.NewLine +
"" + Environment.NewLine
+ "");
} else {
- return;
+ return null;
}
}
- if (!IsFileInProject(appConfigFileName)) {
- FileProjectItem fpi = new FileProjectItem(this, ItemType.None, "app.config");
- ProjectService.AddProjectItem(this, fpi);
+ if (!project.IsFileInProject(appConfigFileName)) {
+ FileProjectItem fpi = new FileProjectItem(project, ItemType.None, "app.config");
+ ProjectService.AddProjectItem(project, fpi);
FileService.FireFileCreated(appConfigFileName, false);
ProjectBrowserPad.RefreshViewAsync();
}
+ return appConfigFileName;
+ }
+
+ void UpdateAppConfig(TargetFramework newFramework)
+ {
+ // When changing the target framework, update any existing app.config
+ // Also, for applications (not libraries), create an app.config is it is required for the target framework
+ bool createAppConfig = newFramework.RequiresAppConfigEntry && (this.OutputType != OutputType.Library && this.OutputType != OutputType.Module);
+
+ string appConfigFileName = GetAppConfigFile(this, createAppConfig);
+ if (appConfigFileName == null)
+ return;
using (FakeXmlViewContent xml = new FakeXmlViewContent(appConfigFileName)) {
if (xml.Document != null) {
@@ -616,13 +622,12 @@ namespace ICSharpCode.SharpDevelop.Project
// must be first element
configuration.Elements().First().AddAfterSelf(startup);
} else {
- configuration.AddFirst(startup);
+ startup = configuration.AddFirstWithIndentation(startup);
}
}
XElement supportedRuntime = startup.Element("supportedRuntime");
if (supportedRuntime == null) {
- supportedRuntime = new XElement("supportedRuntime");
- startup.AddFirst(supportedRuntime);
+ supportedRuntime = startup.AddFirstWithIndentation(new XElement("supportedRuntime"));
}
supportedRuntime.SetAttributeValue("version", newFramework.SupportedRuntimeVersion);
supportedRuntime.SetAttributeValue("sku", newFramework.SupportedSku);
diff --git a/src/Main/Base/Project/Src/Project/CustomTool.cs b/src/Main/Base/Project/Src/Project/CustomTool.cs
index b28562f90a..9142d32cea 100644
--- a/src/Main/Base/Project/Src/Project/CustomTool.cs
+++ b/src/Main/Base/Project/Src/Project/CustomTool.cs
@@ -12,6 +12,7 @@ using System.Text;
using System.Text.RegularExpressions;
using ICSharpCode.Core;
+using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.SharpDevelop.Project
@@ -145,6 +146,17 @@ namespace ICSharpCode.SharpDevelop.Project
CodeDomProvider provider = project.LanguageProperties.CodeDomProvider;
CodeGeneratorOptions options = new CodeDOMGeneratorUtility().CreateCodeGeneratorOptions;
+ if (project.LanguageProperties == LanguageProperties.VBNet) {
+ // the root namespace is implicit in VB
+ foreach (CodeNamespace ns in ccu.Namespaces) {
+ if (string.Equals(ns.Name, project.RootNamespace, StringComparison.OrdinalIgnoreCase)) {
+ ns.Name = string.Empty;
+ } else if (ns.Name.StartsWith(project.RootNamespace + ".", StringComparison.OrdinalIgnoreCase)) {
+ ns.Name = ns.Name.Substring(project.RootNamespace.Length + 1);
+ }
+ }
+ }
+
string codeOutput;
using (StringWriter writer = new StringWriter()) {
if (provider == null) {
diff --git a/src/Main/Base/Project/Src/Util/ExtensionMethods.cs b/src/Main/Base/Project/Src/Util/ExtensionMethods.cs
index 705735185c..f734266f5b 100644
--- a/src/Main/Base/Project/Src/Util/ExtensionMethods.cs
+++ b/src/Main/Base/Project/Src/Util/ExtensionMethods.cs
@@ -5,14 +5,18 @@ using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows;
using System.Windows.Controls;
-using System.Windows.Media;
using System.Windows.Documents;
using System.Windows.Forms;
+using System.Windows.Media;
+using System.Xml;
+using System.Xml.Linq;
+
using ICSharpCode.Core.Presentation;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Editor;
@@ -347,7 +351,7 @@ namespace ICSharpCode.SharpDevelop
}
///
- /// Takes at most first characters from string.
+ /// Takes at most first characters from string.
/// String can be null.
///
public static string TakeStart(this string s, int length)
@@ -358,7 +362,7 @@ namespace ICSharpCode.SharpDevelop
}
///
- /// Takes at most first characters from string, and appends '...' if string is longer.
+ /// Takes at most first characters from string, and appends '...' if string is longer.
/// String can be null.
///
public static string TakeStartEllipsis(this string s, int length)
@@ -498,5 +502,81 @@ namespace ICSharpCode.SharpDevelop
{
return expr.Region.IsEmpty;
}
+
+ public static void WriteTo(this Stream sourceStream, Stream targetStream)
+ {
+ byte[] buffer = new byte[4096];
+ int bytes;
+ while ((bytes = sourceStream.Read(buffer, 0, buffer.Length)) > 0)
+ targetStream.Write(buffer, 0, bytes);
+ }
+
+ public static XElement FormatXml(this XElement element, int indentationLevel)
+ {
+ StringWriter sw = new StringWriter();
+ using (XmlTextWriter xmlW = new XmlTextWriter(sw)) {
+ if (EditorControlService.GlobalOptions.ConvertTabsToSpaces) {
+ xmlW.IndentChar = ' ';
+ xmlW.Indentation = EditorControlService.GlobalOptions.IndentationSize;
+ } else {
+ xmlW.Indentation = 1;
+ xmlW.IndentChar = '\t';
+ }
+ xmlW.Formatting = Formatting.Indented;
+ element.WriteTo(xmlW);
+ }
+ string xmlText = sw.ToString();
+ xmlText = xmlText.Replace(sw.NewLine, sw.NewLine + GetIndentation(indentationLevel));
+ return XElement.Parse(xmlText, LoadOptions.PreserveWhitespace);
+ }
+
+ static string GetIndentation(int level)
+ {
+ StringBuilder indentation = new StringBuilder();
+ for (int i = 0; i < level; i++) {
+ indentation.Append(EditorControlService.GlobalOptions.IndentationString);
+ }
+ return indentation.ToString();
+ }
+
+ public static XElement AddWithIndentation(this XElement element, XElement newContent)
+ {
+ int indentationLevel = 0;
+ XElement tmp = element;
+ while (tmp != null) {
+ tmp = tmp.Parent;
+ indentationLevel++;
+ }
+ if (!element.Nodes().Any()) {
+ element.Add(new XText(Environment.NewLine + GetIndentation(indentationLevel - 1)));
+ }
+ XText whitespace = element.Nodes().Last() as XText;
+ if (whitespace != null && string.IsNullOrWhiteSpace(whitespace.Value)) {
+ whitespace.AddBeforeSelf(new XText(Environment.NewLine + GetIndentation(indentationLevel)));
+ whitespace.AddBeforeSelf(newContent = FormatXml(newContent, indentationLevel));
+ } else {
+ element.Add(new XText(Environment.NewLine + GetIndentation(indentationLevel)));
+ element.Add(newContent = FormatXml(newContent, indentationLevel));
+ }
+ return newContent;
+ }
+
+ public static XElement AddFirstWithIndentation(this XElement element, XElement newContent)
+ {
+ int indentationLevel = 0;
+ StringBuilder indentation = new StringBuilder();
+ XElement tmp = element;
+ while (tmp != null) {
+ tmp = tmp.Parent;
+ indentationLevel++;
+ indentation.Append(EditorControlService.GlobalOptions.IndentationString);
+ }
+ if (!element.Nodes().Any()) {
+ element.Add(new XText(Environment.NewLine + GetIndentation(indentationLevel - 1)));
+ }
+ element.AddFirst(newContent = FormatXml(newContent, indentationLevel));
+ element.AddFirst(new XText(Environment.NewLine + indentation.ToString()));
+ return newContent;
+ }
}
}
diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/LanguageProperties.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/LanguageProperties.cs
index 04616aa336..38478047b9 100644
--- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/LanguageProperties.cs
+++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/LanguageProperties.cs
@@ -243,6 +243,18 @@ namespace ICSharpCode.SharpDevelop.Dom
return "[" + base.ToString() + "]";
}
+ public static LanguageProperties GetLanguage(string language)
+ {
+ switch(language)
+ {
+ case "VBNet":
+ case "VB":
+ return LanguageProperties.VBNet;
+ default:
+ return LanguageProperties.CSharp;
+ }
+ }
+
#region CSharpProperties
internal sealed class CSharpProperties : LanguageProperties
{
diff --git a/src/Main/StartUp/Project/Resources/BitmapResources.resources b/src/Main/StartUp/Project/Resources/BitmapResources.resources
index 7e8309d2a6..99f7688bf7 100644
Binary files a/src/Main/StartUp/Project/Resources/BitmapResources.resources and b/src/Main/StartUp/Project/Resources/BitmapResources.resources differ
diff --git a/src/Setup/Files.wxs b/src/Setup/Files.wxs
index 058cb5fbc9..b58ddd8bb7 100644
--- a/src/Setup/Files.wxs
+++ b/src/Setup/Files.wxs
@@ -816,6 +816,7 @@
+
@@ -1326,6 +1327,13 @@
+
+
+
+
+
+
+
diff --git a/src/Setup/Setup.wxs b/src/Setup/Setup.wxs
index 3585a81bbe..c4a8062083 100644
--- a/src/Setup/Setup.wxs
+++ b/src/Setup/Setup.wxs
@@ -345,6 +345,7 @@
+