diff --git a/src/AddIns/Analysis/CodeCoverage/CodeCoverage.sln b/src/AddIns/Analysis/CodeCoverage/CodeCoverage.sln index c301e3d780..ab0cca6e98 100644 --- a/src/AddIns/Analysis/CodeCoverage/CodeCoverage.sln +++ b/src/AddIns/Analysis/CodeCoverage/CodeCoverage.sln @@ -1,15 +1,13 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -# SharpDevelop 3.0.0.3280 +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +# SharpDevelop 4.0.0.5879 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeCoverage", "Project\CodeCoverage.csproj", "{08CE9972-283B-44F4-82FA-966F7DFA6B7A}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeCoverage.Tests", "Test\CodeCoverage.Tests.csproj", "{A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TextEditor", "..\..\..\Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj", "{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI", "..\..\..\Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj", "{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "..\..\..\Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}" @@ -22,6 +20,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Wi EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom", "..\..\..\Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj", "{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit", "..\..\..\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj", "{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -40,10 +40,6 @@ Global {2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}.Release|Any CPU.Build.0 = Release|Any CPU {2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}.Release|Any CPU.Build.0 = Release|Any CPU - {D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}.Release|Any CPU.ActiveCfg = Release|Any CPU {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.Build.0 = Debug|Any CPU {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Any CPU.Build.0 = Release|Any CPU @@ -68,5 +64,9 @@ Global {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|Any CPU.Build.0 = Release|Any CPU {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.ActiveCfg = Release|Any CPU EndGlobalSection EndGlobal diff --git a/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj b/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj index 36bc56a60c..cd1865dbd2 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj +++ b/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj @@ -1,4 +1,5 @@ -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> <PropertyGroup> <OutputType>Library</OutputType> <RootNamespace>ICSharpCode.CodeCoverage</RootNamespace> @@ -37,14 +38,23 @@ <Reference Include="PresentationCore"> <RequiredTargetFramework>3.0</RequiredTargetFramework> </Reference> + <Reference Include="PresentationFramework"> + <RequiredTargetFramework>3.0</RequiredTargetFramework> + </Reference> <Reference Include="System" /> <Reference Include="System.Core" /> <Reference Include="System.Drawing" /> <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xaml"> + <RequiredTargetFramework>4.0</RequiredTargetFramework> + </Reference> <Reference Include="System.Xml" /> <Reference Include="WindowsBase"> <RequiredTargetFramework>3.0</RequiredTargetFramework> </Reference> + <Reference Include="WindowsFormsIntegration"> + <RequiredTargetFramework>3.0</RequiredTargetFramework> + </Reference> </ItemGroup> <ItemGroup> <Compile Include="Src\CodeCoverageControl.cs" /> @@ -93,9 +103,9 @@ <Compile Include="Src\ShowDisplayOptionsDropDown.cs" /> </ItemGroup> <ItemGroup> - <ProjectReference Include="..\..\..\..\Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj"> - <Project>{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}</Project> - <Name>ICSharpCode.TextEditor</Name> + <ProjectReference Include="..\..\..\..\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj"> + <Project>{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}</Project> + <Name>ICSharpCode.AvalonEdit</Name> <Private>False</Private> </ProjectReference> <ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj"> diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageControl.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageControl.cs index f10e57dbe3..020778ac3b 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageControl.cs +++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageControl.cs @@ -5,14 +5,17 @@ // <version>$Revision$</version> // </file> -using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor; using System; using System.Collections.Generic; using System.Windows.Forms; +using System.Windows.Forms.Integration; +using ICSharpCode.AvalonEdit; +using ICSharpCode.AvalonEdit.Editing; using ICSharpCode.Core; using ICSharpCode.Core.WinForms; using ICSharpCode.SharpDevelop; -using ICSharpCode.TextEditor; +using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor; +using ICSharpCode.SharpDevelop.Editor.AvalonEdit; namespace ICSharpCode.CodeCoverage { @@ -22,7 +25,9 @@ namespace ICSharpCode.CodeCoverage ListView listView; SplitContainer verticalSplitContainer; SplitContainer horizontalSplitContainer; - TextEditorControl textEditorControl; + ElementHost textEditorHost; + TextEditor textEditor; + string textEditorFileName; ColumnHeader visitCountColumnHeader; ColumnHeader startLineColumnHeader; ColumnHeader endLineColumnHeader; @@ -55,9 +60,9 @@ namespace ICSharpCode.CodeCoverage if (listView != null) { listView.Items.Clear(); } - if (textEditorControl != null) { - textEditorControl.FileName = null; - textEditorControl.Text = String.Empty; + if (textEditor != null) { + textEditorFileName = null; + textEditor.Text = String.Empty; } } @@ -150,15 +155,15 @@ namespace ICSharpCode.CodeCoverage // Add text editor if (showSourceCodePanel) { if (showVisitCountPanel) { - if (verticalSplitContainer.Panel2.Controls.Contains(textEditorControl)) { - verticalSplitContainer.Panel2.Controls.Remove(textEditorControl); + if (verticalSplitContainer.Panel2.Controls.Contains(textEditorHost)) { + verticalSplitContainer.Panel2.Controls.Remove(textEditorHost); } - if (!horizontalSplitContainer.Panel2.Controls.Contains(textEditorControl)) { - horizontalSplitContainer.Panel2.Controls.Add(textEditorControl); + if (!horizontalSplitContainer.Panel2.Controls.Contains(textEditorHost)) { + horizontalSplitContainer.Panel2.Controls.Add(textEditorHost); } } else { - if (!verticalSplitContainer.Panel2.Controls.Contains(textEditorControl)) { - verticalSplitContainer.Panel2.Controls.Add(textEditorControl); + if (!verticalSplitContainer.Panel2.Controls.Contains(textEditorHost)) { + verticalSplitContainer.Panel2.Controls.Add(textEditorHost); } } } @@ -203,7 +208,7 @@ namespace ICSharpCode.CodeCoverage if (listView != null) { UpdateListView(node); } - if (textEditorControl != null) { + if (textEditor != null) { UpdateTextEditor(node); } } @@ -304,13 +309,13 @@ namespace ICSharpCode.CodeCoverage void OpenFile(string fileName, int line, int column) { - if (fileName != textEditorControl.FileName) { - textEditorControl.LoadFile(fileName, true, true); + if (fileName != textEditorFileName) { + textEditor.Load(fileName); } - textEditorControl.ActiveTextAreaControl.ScrollTo(int.MaxValue); - textEditorControl.ActiveTextAreaControl.Caret.Line = line - 1; - textEditorControl.ActiveTextAreaControl.ScrollToCaret(); - CodeCoverageService.ShowCodeCoverage(new TextEditorAdapter(textEditorControl), fileName); + textEditor.ScrollToEnd(); + textEditor.TextArea.Caret.Line = line - 1; + textEditor.ScrollToLine(line - 1); + CodeCoverageService.ShowCodeCoverage(new AvalonEditTextEditorAdapter(textEditor), fileName); } void CreateTreeView() @@ -467,8 +472,8 @@ namespace ICSharpCode.CodeCoverage horizontalSplitContainer.Panel1.Controls.Remove(listView); } - if (textEditorControl != null && horizontalSplitContainer.Panel2.Controls.Contains(textEditorControl)) { - horizontalSplitContainer.Panel2.Controls.Remove(textEditorControl); + if (textEditor != null && horizontalSplitContainer.Panel2.Controls.Contains(textEditorHost)) { + horizontalSplitContainer.Panel2.Controls.Remove(textEditorHost); } if (verticalSplitContainer != null && verticalSplitContainer.Panel2.Controls.Contains(horizontalSplitContainer)) { @@ -481,41 +486,43 @@ namespace ICSharpCode.CodeCoverage void CreateTextEditor() { - if (textEditorControl != null) { + if (textEditorHost != null) { return; } - textEditorControl = new TextEditorControl(); - textEditorControl.Dock = DockStyle.Fill; - textEditorControl.Document.ReadOnly = true; - textEditorControl.TextEditorProperties = SharpDevelopTextEditorProperties.Instance; - textEditorControl.ActiveTextAreaControl.TextArea.DoubleClick += TextEditorControlDoubleClick; + textEditor = AvalonEditTextEditorAdapter.CreateAvalonEditInstance(); + textEditor.IsReadOnly = true; + textEditor.MouseDoubleClick += TextEditorDoubleClick; + + textEditorHost = new ElementHost(); + textEditorHost.Dock = DockStyle.Fill; + textEditorHost.Child = textEditor; } void DisposeTextEditor() { - if (textEditorControl == null) { + if (textEditorHost == null) { return; } - if (verticalSplitContainer.Panel2.Controls.Contains(textEditorControl)) { - verticalSplitContainer.Panel2.Controls.Remove(textEditorControl); + if (verticalSplitContainer.Panel2.Controls.Contains(textEditorHost)) { + verticalSplitContainer.Panel2.Controls.Remove(textEditorHost); } - if (horizontalSplitContainer != null && horizontalSplitContainer.Panel2.Controls.Contains(textEditorControl)) { - horizontalSplitContainer.Panel2.Controls.Remove(textEditorControl); + if (horizontalSplitContainer != null && horizontalSplitContainer.Panel2.Controls.Contains(textEditorHost)) { + horizontalSplitContainer.Panel2.Controls.Remove(textEditorHost); } - textEditorControl.ActiveTextAreaControl.TextArea.DoubleClick -= TextEditorControlDoubleClick; - textEditorControl.Dispose(); - textEditorControl = null; + textEditor.MouseDoubleClick -= TextEditorDoubleClick; + textEditorHost.Dispose(); + textEditorHost = null; } - void TextEditorControlDoubleClick(object sender, EventArgs e) + void TextEditorDoubleClick(object sender, EventArgs e) { - string fileName = textEditorControl.FileName; + string fileName = textEditorFileName; if (fileName != null) { - Caret caret = textEditorControl.ActiveTextAreaControl.Caret; + Caret caret = textEditor.TextArea.Caret; FileService.JumpToFilePosition(fileName, caret.Line + 1, caret.Column + 1); } } diff --git a/src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj b/src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj index 0349c78262..7f30c5e6fa 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj +++ b/src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj @@ -68,7 +68,6 @@ <Compile Include="ListViewSortingTestFixture.cs" /> <Compile Include="ModuleVisitedSequencePointsTestFixture.cs" /> <Compile Include="AddCodeCoverageMarkersTestFixture.cs" /> - <Compile Include="MockDocument.cs" /> <Compile Include="PartCoverCommandLineTests.cs" /> <Compile Include="PartCoverExitEventArgsTestFixture.cs" /> <Compile Include="PartCoverSettingsMissingRulePrefixTestFixture.cs" /> @@ -112,10 +111,6 @@ <Project>{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}</Project> <Name>ICSharpCode.Core</Name> </ProjectReference> - <ProjectReference Include="..\..\..\..\Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj"> - <Project>{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}</Project> - <Name>ICSharpCode.TextEditor</Name> - </ProjectReference> <ProjectReference Include="..\Project\CodeCoverage.csproj"> <Project>{08CE9972-283B-44F4-82FA-966F7DFA6B7A}</Project> <Name>CodeCoverage</Name> diff --git a/src/AddIns/Analysis/CodeCoverage/Test/MockDocument.cs b/src/AddIns/Analysis/CodeCoverage/Test/MockDocument.cs deleted file mode 100644 index 82a6f3dec2..0000000000 --- a/src/AddIns/Analysis/CodeCoverage/Test/MockDocument.cs +++ /dev/null @@ -1,24 +0,0 @@ -// <file> -// <copyright see="prj:///doc/copyright.txt"/> -// <license see="prj:///doc/license.txt"/> -// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/> -// <version>$Revision$</version> -// </file> - -using ICSharpCode.TextEditor.Document; -using System; -using System.Collections.Generic; - -namespace ICSharpCode.CodeCoverage.Tests -{ - /// <summary> - /// Helper class that implements the Text Editor library's IDocument interface. - /// </summary> - public class MockDocument - { - public static IDocument Create() - { - return new DocumentFactory().CreateDocument(); - } - } -}