diff --git a/SharpDevelop.sln b/SharpDevelop.sln
index 45cf62a003..7a3ed47608 100644
--- a/SharpDevelop.sln
+++ b/SharpDevelop.sln
@@ -1,29 +1,27 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
-# SharpDevelop 4.0.0.6474
+# SharpDevelop 4.0.0.6860
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.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.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.Core.WinForms", "src\Main\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj", "{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}"
+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
@@ -33,22 +31,24 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Do
{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.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.SharpDevelop", "src\Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}"
+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.Widgets", "src\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj", "{8035765F-D51F-4A0C-A746-2FD100E19419}"
+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.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
@@ -57,217 +57,211 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{
ProjectSection(SolutionItems) = postProject
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}") = "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}") = "ICSharpCode.Build.Tasks", "src\Libraries\ICSharpCode.Build.Tasks\Project\ICSharpCode.Build.Tasks.csproj", "{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}"
+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("{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.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}") = "NRefactory", "src\Libraries\NRefactory\Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}"
+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}") = "AddIns", "AddIns", "{39327899-ED91-4F7F-988C-4FE4E17C014D}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Reports", "Reports", "{8789D7FF-B36C-4187-B57D-55ED64623272}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Version Control", "Version Control", "{6E3D4DBA-DBF9-4035-8F7E-1403975B21EA}"
ProjectSection(SolutionItems) = postProject
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}") = "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}") = "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}") = "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
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Irony", "src\AddIns\Misc\Reports\Irony\Irony.csproj", "{D81F5C91-D7DB-46E5-BC99-49488FB6814C}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Profiler", "Profiler", "{C4035C32-026F-4158-AF15-113EA1EF1960}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analysis", "Analysis", "{F355E45F-F54F-4B42-8916-9A633A392789}"
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}") = "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}
- {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}") = "SourceAnalysis", "src\AddIns\Analysis\SourceAnalysis\SourceAnalysis.csproj", "{CE498514-D12D-4B6E-AE0E-FEC29BD43748}"
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}") = "CodeCoverage", "src\AddIns\Analysis\CodeCoverage\Project\CodeCoverage.csproj", "{08CE9972-283B-44F4-82FA-966F7DFA6B7A}"
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}") = "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("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Language Bindings", "Language Bindings", "{E0646C25-36F2-4524-969F-FA621353AB94}"
+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("{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}") = "Ruby", "Ruby", "{C7288E72-FFBE-48CD-84B4-6CBF95A7195A}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WpfDesign", "WpfDesign", "{6022AC51-B658-4C54-97EF-79187AC65B47}"
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}"
+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}
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}") = "WpfDesign.Designer", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign.Designer\Project\WpfDesign.Designer.csproj", "{78CC29AC-CC79-4355-B1F2-97936DF198AC}"
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
- EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BooBinding", "src\AddIns\BackendBindings\Boo\BooBinding\Project\BooBinding.csproj", "{4AC2D5F1-F671-480C-A075-6BF62B3721B2}"
+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}") = "NRefactoryToBooConverter", "src\AddIns\BackendBindings\Boo\NRefactoryToBooConverter\Project\NRefactoryToBooConverter.csproj", "{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign\Project\WpfDesign.csproj", "{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}"
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}") = "IconEditor", "IconEditor", "{0773ED53-08E2-4495-A3BE-CA0B5D413C15}"
ProjectSection(SolutionItems) = postProject
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}") = "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}") = "PythonBinding", "src\AddIns\BackendBindings\Python\PythonBinding\Project\PythonBinding.csproj", "{8D732610-8FC6-43BA-94C9-7126FD7FE361}"
+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}") = "WixBinding", "src\AddIns\BackendBindings\WixBinding\Project\WixBinding.csproj", "{E1B288A2-08EE-4318-8BBB-8AB72C69E33E}"
+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", "src\AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}"
+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", "src\AddIns\BackendBindings\VBNetBinding\Project\VBNetBinding.csproj", "{BF38FB72-B380-4196-AF8C-95749D726C61}"
+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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlBinding", "src\AddIns\BackendBindings\XamlBinding\XamlBinding\XamlBinding.csproj", "{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}"
+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}") = "FSharpBinding", "src\AddIns\BackendBindings\FSharpBinding\FSharpBinding.csproj", "{E954F3CB-A446-492F-A664-2B376EBC86E8}"
+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}") = "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}
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ClassDiagram", "ClassDiagram", "{BFA3BF26-33BD-4A65-B84D-C7F30D131668}"
+ ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{CDE0C5A4-2096-48B5-BEA3-74DBA0F0E1EF}"
- ProjectSection(SolutionItems) = postProject
+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}") = "Debugger.Core", "src\AddIns\Debugger\Debugger.Core\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}"
+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}") = "Debugger.AddIn", "src\AddIns\Debugger\Debugger.AddIn\Debugger.AddIn.csproj", "{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}"
+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}") = "Misc", "Misc", "{F3662720-9EA2-4591-BBC6-97361DCE50A9}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Data", "Data", "{C7F29FC2-1B03-4CDD-9E30-400F4765FF04}"
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}") = "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}") = "SharpRefactoring", "src\AddIns\Misc\SharpRefactoring\Project\SharpRefactoring.csproj", "{3CA90546-3B4C-4663-9445-C4E9371750A7}"
+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}") = "SearchAndReplace", "src\AddIns\Misc\SearchAndReplace\Project\SearchAndReplace.csproj", "{9196DD8A-B4D4-4780-8742-C5762E547FC2}"
+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}") = "ReflectorAddIn", "src\AddIns\Misc\ReflectorAddIn\ReflectorAddIn\Project\ReflectorAddIn.csproj", "{8AA421C8-D7AF-4957-9F43-5135328ACB24}"
+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}") = "StartPage", "src\AddIns\Misc\StartPage\Project\StartPage.csproj", "{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}"
+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}") = "AddInManager", "src\AddIns\Misc\AddInManager\Project\AddInManager.csproj", "{F93E52FD-DA66-4CE5-A0CB-BCD902811122}"
+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}") = "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}
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{F3662720-9EA2-4591-BBC6-97361DCE50A9}"
+ ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-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}
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UsageDataCollector", "UsageDataCollector", "{DEFC8584-BEC3-4921-BD0F-40482E450B7B}"
+ ProjectSection(SolutionItems) = postProject
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}") = "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}") = "RegExpTk", "src\AddIns\Misc\RegExpTk\Project\RegExpTk.csproj", "{64A3E5E6-90BF-47F6-94DF-68C94B62C817}"
+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
@@ -277,179 +271,185 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceToolkit", "src\AddI
{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}"
- 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}") = "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}") = "UsageDataCollector.AddIn", "src\AddIns\Misc\UsageDataCollector\UsageDataCollector.AddIn\UsageDataCollector.AddIn.csproj", "{0008FCE9-9EB4-4E2E-979B-553278E5BBA6}"
+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}") = "Display Bindings", "Display Bindings", "{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}"
- ProjectSection(SolutionItems) = postProject
+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("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Data", "Data", "{C7F29FC2-1B03-4CDD-9E30-400F4765FF04}"
- ProjectSection(SolutionItems) = postProject
+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}") = "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}") = "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}") = "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}") = "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}") = "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}") = "ReflectorAddIn", "src\AddIns\Misc\ReflectorAddIn\ReflectorAddIn\Project\ReflectorAddIn.csproj", "{8AA421C8-D7AF-4957-9F43-5135328ACB24}"
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}") = "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}") = "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}") = "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}") = "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}") = "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("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ClassDiagram", "ClassDiagram", "{BFA3BF26-33BD-4A65-B84D-C7F30D131668}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{CDE0C5A4-2096-48B5-BEA3-74DBA0F0E1EF}"
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}") = "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}") = "ClassDiagramAddin", "src\AddIns\DisplayBindings\ClassDiagram\ClassDiagramAddin\ClassDiagramAddin.csproj", "{5A1354DF-4989-4BB4-BC6B-D627C2E9FA13}"
+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}") = "ClassCanvas", "src\AddIns\DisplayBindings\ClassDiagram\ClassCanvas\ClassCanvas.csproj", "{08F772A1-F0BE-433E-8B37-F6522953DB05}"
+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}") = "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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FormsDesigner", "src\AddIns\DisplayBindings\FormsDesigner\Project\FormsDesigner.csproj", "{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}"
+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}") = "XmlEditor", "src\AddIns\DisplayBindings\XmlEditor\Project\XmlEditor.csproj", "{DCA2703D-250A-463E-A68A-07ED105AE6BD}"
+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}") = "AvalonEdit.AddIn", "src\AddIns\DisplayBindings\AvalonEdit.AddIn\AvalonEdit.AddIn.csproj", "{0162E499-42D0-409B-AA25-EED21F75336B}"
+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}") = "ResourceEditor", "src\AddIns\DisplayBindings\ResourceEditor\Project\ResourceEditor.csproj", "{CBC6C247-747B-4908-B09A-4D2E0F640B6B}"
+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}") = "HexEditor", "src\AddIns\DisplayBindings\HexEditor\Project\HexEditor.csproj", "{E618A9CD-A39F-4925-A538-E8A3FEF24E54}"
+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}") = "IconEditor", "IconEditor", "{0773ED53-08E2-4495-A3BE-CA0B5D413C15}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Python", "Python", "{CA76F702-5B4E-4918-B8D8-7FF8382434FF}"
ProjectSection(SolutionItems) = postProject
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}") = "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}") = "IconEditorAddIn", "src\AddIns\DisplayBindings\IconEditor\IconEditorAddIn\IconEditorAddIn.csproj", "{DFB936AD-90EE-4B4F-941E-4F4A636F0D92}"
+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("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WpfDesign", "WpfDesign", "{6022AC51-B658-4C54-97EF-79187AC65B47}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Boo", "Boo", "{97B3B514-AB0E-4FE1-89DE-8A945F5112AE}"
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}"
- ProjectSection(ProjectDependencies) = postProject
- {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}") = "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}") = "WpfDesign.Designer", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign.Designer\Project\WpfDesign.Designer.csproj", "{78CC29AC-CC79-4355-B1F2-97936DF198AC}"
+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}") = "WpfDesign.XamlDom", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign.XamlDom\Project\WpfDesign.XamlDom.csproj", "{88DA149F-21B2-48AB-82C4-28FB6BDFD783}"
+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("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analysis", "Analysis", "{F355E45F-F54F-4B42-8916-9A633A392789}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Ruby", "Ruby", "{C7288E72-FFBE-48CD-84B4-6CBF95A7195A}"
ProjectSection(SolutionItems) = postProject
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}") = "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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeAnalysis", "src\AddIns\Analysis\CodeAnalysis\CodeAnalysis.csproj", "{3EAA45A9-735C-4AC7-A799-947B93EA449D}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Profiler", "Profiler", "{C4035C32-026F-4158-AF15-113EA1EF1960}"
+ ProjectSection(SolutionItems) = postProject
+ EndProjectSection
+EndProject
+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}") = "CodeCoverage", "src\AddIns\Analysis\CodeCoverage\Project\CodeCoverage.csproj", "{08CE9972-283B-44F4-82FA-966F7DFA6B7A}"
+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}") = "SourceAnalysis", "src\AddIns\Analysis\SourceAnalysis\SourceAnalysis.csproj", "{CE498514-D12D-4B6E-AE0E-FEC29BD43748}"
+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}") = "CodeQualityAnalysis", "src\AddIns\Analysis\CodeQuality\CodeQualityAnalysis.csproj", "{76DD1CC0-0D86-44A1-9BD6-D91F79807BC3}"
+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}") = "Version Control", "Version Control", "{6E3D4DBA-DBF9-4035-8F7E-1403975B21EA}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Reports", "Reports", "{8789D7FF-B36C-4187-B57D-55ED64623272}"
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}") = "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}") = "SubversionAddIn", "src\AddIns\VersionControl\SubversionAddIn\SubversionAddIn.csproj", "{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}"
+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
@@ -917,98 +917,98 @@ Global
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}
- {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
{B5F54272-49F0-40DB-845A-8D837875D3BA} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
- {3A9AE6AA-BC07-4A2F-972C-581E3AE2F195} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
- {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}
+ {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F} = {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}
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
- {6E3D4DBA-DBF9-4035-8F7E-1403975B21EA} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
- {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}
+ {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}
+ {3A9AE6AA-BC07-4A2F-972C-581E3AE2F195} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{8789D7FF-B36C-4187-B57D-55ED64623272} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
- {D81F5C91-D7DB-46E5-BC99-49488FB6814C} = {8789D7FF-B36C-4187-B57D-55ED64623272}
- {4B2239FF-8FD6-431D-9D22-1B8049BA6917} = {8789D7FF-B36C-4187-B57D-55ED64623272}
- {35D002D7-C78B-44FB-92AA-104BEB431678} = {8789D7FF-B36C-4187-B57D-55ED64623272}
- {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}
- {7048AE18-EB93-4A84-82D0-DD60EB58ADBD} = {E0646C25-36F2-4524-969F-FA621353AB94}
- {E954F3CB-A446-492F-A664-2B376EBC86E8} = {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}
- {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}
- {DBCF20A1-BA13-4582-BFA9-74DE4D987B73} = {97B3B514-AB0E-4FE1-89DE-8A945F5112AE}
- {4AC2D5F1-F671-480C-A075-6BF62B3721B2} = {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}
- {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C} = {CDE0C5A4-2096-48B5-BEA3-74DBA0F0E1EF}
- {1D18D788-F7EE-4585-A23B-34DC8EC63CB8} = {CDE0C5A4-2096-48B5-BEA3-74DBA0F0E1EF}
- {DEFC8584-BEC3-4921-BD0F-40482E450B7B} = {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}
- {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}
- {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}
+ {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}
+ {6E3D4DBA-DBF9-4035-8F7E-1403975B21EA} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
+ {83F15BA7-8478-4664-81BB-A82F146D88B3} = {6E3D4DBA-DBF9-4035-8F7E-1403975B21EA}
+ {17F4D7E0-6933-4C2E-8714-FD7E98D625D5} = {6E3D4DBA-DBF9-4035-8F7E-1403975B21EA}
+ {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}
+ {76DD1CC0-0D86-44A1-9BD6-D91F79807BC3} = {F355E45F-F54F-4B42-8916-9A633A392789}
{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}
- {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}
+ {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}
- {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}
- {17F4D7E0-6933-4C2E-8714-FD7E98D625D5} = {6E3D4DBA-DBF9-4035-8F7E-1403975B21EA}
- {83F15BA7-8478-4664-81BB-A82F146D88B3} = {6E3D4DBA-DBF9-4035-8F7E-1403975B21EA}
+ {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865} = {6022AC51-B658-4C54-97EF-79187AC65B47}
+ {78CC29AC-CC79-4355-B1F2-97936DF198AC} = {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}
+ {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}
+ {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}
+ {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}
+ {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}
+ {E954F3CB-A446-492F-A664-2B376EBC86E8} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {7048AE18-EB93-4A84-82D0-DD60EB58ADBD} = {E0646C25-36F2-4524-969F-FA621353AB94}
+ {D332F2D1-2CF1-43B7-903C-844BD5211A7E} = {CA76F702-5B4E-4918-B8D8-7FF8382434FF}
+ {8D732610-8FC6-43BA-94C9-7126FD7FE361} = {CA76F702-5B4E-4918-B8D8-7FF8382434FF}
+ {4AC2D5F1-F671-480C-A075-6BF62B3721B2} = {97B3B514-AB0E-4FE1-89DE-8A945F5112AE}
+ {DBCF20A1-BA13-4582-BFA9-74DE4D987B73} = {97B3B514-AB0E-4FE1-89DE-8A945F5112AE}
+ {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}
+ {35D002D7-C78B-44FB-92AA-104BEB431678} = {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}
EndGlobalSection
EndGlobal
diff --git a/data/resources/StringResources.resx b/data/resources/StringResources.resx
index 1b0e5e1330..280e6e0218 100644
--- a/data/resources/StringResources.resx
+++ b/data/resources/StringResources.resx
@@ -5645,6 +5645,15 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs
Bookmarks
+
+ {0} @line {1}
+
+
+ Location
+
+
+ Language
+
Back
@@ -5775,6 +5784,9 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs
Trace
+
+ Condition
+
Console
diff --git a/data/resources/image/BitmapResources/BitmapResources.res b/data/resources/image/BitmapResources/BitmapResources.res
index 76615e2224..eaf2aa2126 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
#backend icons
C#.ProjectIcon = backendicons\CSharp\SmallProject.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/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin b/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin
index 2c1cdb0d2e..898924b6f7 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" />
-
+
+
+
@@ -165,4 +165,30 @@
+
+
+
+
+
+
+
+
+
+
+
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 4b6fac8574..84fbf600ee 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPadModel.cs
+++ b/src/AddIns/Debugger/Debugger.AddIn/Pads/WatchPadModel.cs
@@ -19,13 +19,13 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
this.Language = language;
}
- public bool CanSetText {
+ public override bool CanSetText {
get {
return true;
}
}
- public bool SetText(string text)
+ public new bool SetText(string text)
{
this.Text = text;
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 a1ee943a84..fcb53a93a1 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/TreeModel/ExpressionNode.cs
+++ b/src/AddIns/Debugger/Debugger.AddIn/TreeModel/ExpressionNode.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
+using System.ComponentModel;
using System.Drawing;
using System.Globalization;
using System.Reflection;
@@ -26,7 +27,7 @@ namespace Debugger.AddIn.TreeModel
/// Node in the tree which can be defined by a debugger expression.
/// The expression will be lazily evaluated when needed.
///
- public class ExpressionNode: TreeNode, ISetText, IContextMenu
+ public class ExpressionNode: TreeNode, ISetText, INotifyPropertyChanged
{
bool evaluated;
@@ -36,11 +37,16 @@ namespace Debugger.AddIn.TreeModel
string fullText;
+ public bool Evaluated {
+ get { return evaluated; }
+ set { evaluated = value; }
+ }
+
public Expression Expression {
get { return expression; }
}
- public bool CanSetText {
+ public override bool CanSetText {
get {
if (!evaluated) EvaluateExpression();
return canSetText;
@@ -54,11 +60,21 @@ namespace Debugger.AddIn.TreeModel
}
}
+ public string FullText {
+ get { return fullText; }
+ }
+
public override string Text {
get {
if (!evaluated) EvaluateExpression();
return base.Text;
}
+ set {
+ if (value != base.Text) {
+ base.Text = value;
+ NotifyPropertyChanged("Text");
+ }
+ }
}
public override string Type {
@@ -80,7 +96,7 @@ namespace Debugger.AddIn.TreeModel
if (!evaluated) EvaluateExpression();
return base.HasChildNodes;
}
- }
+ }
/// Used to determine available VisualizerCommands
private DebugType expressionType;
@@ -269,7 +285,7 @@ namespace Debugger.AddIn.TreeModel
return size >= 7 && runs <= (size + 7) / 8;
}
- public bool SetText(string newText)
+ public override bool SetText(string newText)
{
Value val = null;
try {
@@ -343,19 +359,19 @@ namespace Debugger.AddIn.TreeModel
return DebuggerResourceService.GetImage("Icons.16x16." + name);
}
- public ContextMenuStrip GetContextMenu()
- {
- if (this.Error != null) return GetErrorContextMenu();
-
- ContextMenuStrip menu = new ContextMenuStrip();
-
- ToolStripMenuItem copyItem;
- copyItem = new ToolStripMenuItem();
- copyItem.Text = ResourceService.GetString("MainWindow.Windows.Debug.LocalVariables.CopyToClipboard");
- copyItem.Checked = false;
- copyItem.Click += delegate {
- ClipboardWrapper.SetText(fullText);
- };
+// public ContextMenuStrip GetContextMenu()
+// {
+// if (this.Error != null) return GetErrorContextMenu();
+//
+// ContextMenuStrip menu = new ContextMenuStrip();
+//
+// ToolStripMenuItem copyItem;
+// copyItem = new ToolStripMenuItem();
+// copyItem.Text = ResourceService.GetString("MainWindow.Windows.Debug.LocalVariables.CopyToClipboard");
+// copyItem.Checked = false;
+// copyItem.Click += delegate {
+// ClipboardWrapper.SetText(fullText);
+// };
// ToolStripMenuItem hexView;
// hexView = new ToolStripMenuItem();
@@ -371,13 +387,13 @@ namespace Debugger.AddIn.TreeModel
// WatchPad.Instance.RefreshPad();
// };
- menu.Items.AddRange(new ToolStripItem[] {
- copyItem,
- //hexView
- });
-
- return menu;
- }
+// menu.Items.AddRange(new ToolStripItem[] {
+// copyItem,
+// //hexView
+// });
+//
+// return menu;
+// }
public ContextMenuStrip GetErrorContextMenu()
{
@@ -403,5 +419,15 @@ namespace Debugger.AddIn.TreeModel
return (WindowsDebugger)DebuggerService.CurrentDebugger;
}
}
+
+ public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+
+ private void NotifyPropertyChanged(string info)
+ {
+ if (PropertyChanged != null)
+ {
+ PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(info));
+ }
+ }
}
}
diff --git a/src/AddIns/Debugger/Debugger.AddIn/TreeModel/TreeNode.cs b/src/AddIns/Debugger/Debugger.AddIn/TreeModel/TreeNode.cs
index 956410e91f..ca328cd1ae 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/TreeModel/TreeNode.cs
+++ b/src/AddIns/Debugger/Debugger.AddIn/TreeModel/TreeNode.cs
@@ -3,9 +3,10 @@
using System;
using System.Collections.Generic;
+using System.ComponentModel;
using System.Drawing;
-using System.Windows.Media;
using System.Linq;
+using System.Windows.Media;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Debugging;
@@ -58,7 +59,7 @@ namespace Debugger.AddIn.TreeModel
public virtual string Text
{
get { return text; }
- protected set { text = value; }
+ set { text = value; }
}
public virtual string Type {
@@ -79,6 +80,10 @@ namespace Debugger.AddIn.TreeModel
get { return childNodes != null; }
}
+ public virtual bool CanSetText {
+ get { return false; }
+ }
+
public virtual IEnumerable VisualizerCommands {
get {
return null;
@@ -108,5 +113,9 @@ namespace Debugger.AddIn.TreeModel
{
return this.Name.CompareTo(other.Name);
}
+
+ public virtual bool SetText(string newValue) {
+ return false;
+ }
}
}
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..b6b1cbaabd 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" />
Src\Project\MSBuildEngine\ExtendedBinaryReader.cs
+
@@ -817,6 +818,7 @@
+
@@ -840,6 +842,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 05b3332645..6f43fd5ab3 100644
--- a/src/Main/Base/Project/Src/Bookmarks/BookmarkConverter.cs
+++ b/src/Main/Base/Project/Src/Bookmarks/BookmarkConverter.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.NRefactory;
using System;
using System.ComponentModel;
using System.Globalization;
using System.Text;
+
using ICSharpCode.Core;
+using ICSharpCode.NRefactory;
namespace ICSharpCode.SharpDevelop.Bookmarks
{
@@ -25,8 +26,7 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
{
if (value is string) {
string[] v = ((string)value).Split('|');
- if (v.Length != 8)
- return null;
+
FileName fileName = FileName.Create(v[1]);
int lineNumber = int.Parse(v[2], culture);
int columnNumber = int.Parse(v[3], culture);
@@ -75,6 +75,7 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
b.Append(bookmark.LineNumber);
b.Append('|');
b.Append(bookmark.ColumnNumber);
+
if (bookmark is Debugging.BreakpointBookmark) {
Debugging.BreakpointBookmark bbm = (Debugging.BreakpointBookmark)bookmark;
b.Append('|');
@@ -86,6 +87,7 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
b.Append('|');
b.Append(bbm.Condition);
}
+
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..b74366d598 100644
--- a/src/Main/Base/Project/Src/Bookmarks/Pad/BookmarkPadToolbarCommands.cs
+++ b/src/Main/Base/Project/Src/Bookmarks/Pad/BookmarkPadToolbarCommands.cs
@@ -4,8 +4,10 @@
using System;
using System.Collections.Generic;
using System.Windows.Forms;
+using System.Linq;
using ICSharpCode.Core;
+using ICSharpCode.SharpDevelop.Debugging;
namespace ICSharpCode.SharpDevelop.Bookmarks
{
@@ -35,8 +37,10 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
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 SDMarkerBookmark) return;
+ ICSharpCode.SharpDevelop.Bookmarks.BookmarkManager.RemoveMark(bookmark);
}
}
@@ -47,23 +51,14 @@ 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);
- }
- }
- }
- }
+ var result = BookmarkManager.Bookmarks
+ .Where(b => !(b is SDMarkerBookmark))
+ .Select(b => b);
+ foreach (var b in result.ToArray())
+ BookmarkManager.RemoveMark(b);
}
}
-
///
/// Deletes the currently selected or
///
@@ -71,21 +66,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..afbd655577
--- /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..727b4beb6c
--- /dev/null
+++ b/src/Main/Base/Project/Src/Bookmarks/Pad/Controls/ListViewPad.xaml.cs
@@ -0,0 +1,240 @@
+// 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 {
+ 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 == MyListView.SelectedItem as ListViewPadItemModel)
+ 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 == MyListView.SelectedItem as ListViewPadItemModel) {
+ 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..d15477ae76 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,70 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
}
}
+ public class RemoveAllBreakpointsCommand : AbstractMenuCommand
+ {
+ public override void Run()
+ {
+ if (DebuggerService.Breakpoints.Count <= 0) return;
+
+ if(System.Windows.Forms.MessageBox.Show(
+ StringParser.Parse("${res:ICSharpCode.SharpDevelop.Commands.Debug.RemoveAllBreakPoints}"),
+ StringParser.Parse("${res:ICSharpCode.SharpDevelop.Commands.Debug.RemoveAllBreakPointsCaption}"),
+ System.Windows.Forms.MessageBoxButtons.YesNo,
+ System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
+ {
+ BookmarkManager.RemoveAll(b => b is BreakpointBookmark);
+ }
+ }
+ }
+
+ public abstract class NextPrevBreakpointCommand : AbstractMenuCommand
+ {
+ public void Run(ListViewPadItemModel nextItem)
+ {
+ var bookmarkBase = (BookmarkPadBase)Owner;
+
+ if (nextItem == null) return;
+
+ // get next bookmark
+ int line = (nextItem.Mark as SDBookmark).LineNumber;
+
+ var bookmarks = DebuggerService.Breakpoints;
+ var 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(nextItem);
+ }
+ }
+
+ public sealed class NextBreakpointCommand : NextPrevBreakpointCommand
+ {
+ public override void Run()
+ {
+ var bookmarkBase = (BookmarkPadBase)Owner;
+ var nextItem = bookmarkBase.NextItem;
+
+ base.Run(nextItem);
+ }
+ }
+
+ public sealed class PrevBreakpointCommand : NextPrevBreakpointCommand
+ {
+ public override void Run()
+ {
+ var bookmarkBase = (BookmarkPadBase)Owner;
+ var prevItem = bookmarkBase.PrevItem;
+
+ base.Run(prevItem);
+ }
+ }
+
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/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 8740ee3c61..00029d6f0b 100644
Binary files a/src/Main/StartUp/Project/Resources/BitmapResources.resources and b/src/Main/StartUp/Project/Resources/BitmapResources.resources differ