From 2a5459a0b93a8b169b045fbb6edf1c0e8ac75fa8 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Wed, 22 Dec 2010 15:52:06 +0100 Subject: [PATCH] Fixed ArgumentOutOfRangeException in CodeCoverageControl.OpenFile (http://community.sharpdevelop.net/forums/t/12456.aspx). --- .../CodeCoverage/Project/Src/CodeCoverageControl.cs | 6 +++--- .../AvalonEdit/ICSharpCode.AvalonEdit/TextEditor.cs | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageControl.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageControl.cs index 07340f6827..9c8a992284 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageControl.cs +++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageControl.cs @@ -240,7 +240,7 @@ namespace ICSharpCode.CodeCoverage CodeCoverageSequencePoint sequencePoint = methodNode.Method.SequencePoints[0]; if (sequencePoint.HasDocument()) { if (classNode == null) { - OpenFile(sequencePoint.Document, sequencePoint.Line - 1, sequencePoint.Column - 1); + OpenFile(sequencePoint.Document, sequencePoint.Line, sequencePoint.Column); } else { OpenFile(sequencePoint.Document, 1, 1); } @@ -310,8 +310,8 @@ namespace ICSharpCode.CodeCoverage textEditor.Load(fileName); } textEditor.ScrollToEnd(); - textEditor.TextArea.Caret.Line = line - 1; - textEditor.ScrollToLine(line - 1); + textEditor.TextArea.Caret.Location = new ICSharpCode.AvalonEdit.Document.TextLocation(line, column); + textEditor.ScrollToLine(line); CodeCoverageService.ShowCodeCoverage(new AvalonEditTextEditorAdapter(textEditor), fileName); } diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextEditor.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextEditor.cs index 4152385319..1e9ca34fc9 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextEditor.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextEditor.cs @@ -1102,6 +1102,11 @@ namespace ICSharpCode.AvalonEdit TextView textView = textArea.TextView; TextDocument document = textView.Document; if (scrollViewer != null && document != null) { + if (line < 1) + line = 1; + if (line > document.LineCount) + line = document.LineCount; + IScrollInfo scrollInfo = textView; if (!scrollInfo.CanHorizontallyScroll) { // Word wrap is enabled. Ensure that we have up-to-date info about line height so that we scroll