Browse Source

Code coverage addin now uses the new text editor - AvalonEdit.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5918 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Matt Ward 15 years ago
parent
commit
bd0975ba7d
  1. 18
      src/AddIns/Analysis/CodeCoverage/CodeCoverage.sln
  2. 18
      src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj
  3. 83
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageControl.cs
  4. 5
      src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj
  5. 24
      src/AddIns/Analysis/CodeCoverage/Test/MockDocument.cs

18
src/AddIns/Analysis/CodeCoverage/CodeCoverage.sln

@ -1,15 +1,13 @@ @@ -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 @@ -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 @@ -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 @@ -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

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

@ -1,4 +1,5 @@ @@ -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 @@ @@ -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 @@ @@ -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">

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

@ -5,14 +5,17 @@ @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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);
}
}

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

@ -68,7 +68,6 @@ @@ -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 @@ @@ -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>

24
src/AddIns/Analysis/CodeCoverage/Test/MockDocument.cs

@ -1,24 +0,0 @@ @@ -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();
}
}
}
Loading…
Cancel
Save