Browse Source

v0.2

pull/15/head
Eusebiu Marcu 15 years ago
parent
commit
a72baabcd2
  1. 3
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpBracketSearcher.cs
  2. 3
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetBracketSearcher.cs
  3. 38
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/HiddenDefinition/HiddenDefinitionRenderer.cs
  4. 9
      src/Main/Base/Project/Src/Editor/IBracketSearcher.cs

3
src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpBracketSearcher.cs

@ -36,8 +36,7 @@ namespace CSharpBinding
if (otherOffset > -1) if (otherOffset > -1)
return new BracketSearchResult(Math.Min(offset - 1, otherOffset), 1, return new BracketSearchResult(Math.Min(offset - 1, otherOffset), 1,
Math.Max(offset - 1, otherOffset), 1, Math.Max(offset - 1, otherOffset), 1);
openingBrackets[ind].ToString(), closingBrackets[ind].ToString());
} }
return null; return null;

3
src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetBracketSearcher.cs

@ -36,8 +36,7 @@ namespace ICSharpCode.VBNetBinding
if (otherOffset > -1) if (otherOffset > -1)
return new BracketSearchResult(Math.Min(offset - 1, otherOffset), 1, return new BracketSearchResult(Math.Min(offset - 1, otherOffset), 1,
Math.Max(offset - 1, otherOffset), 1, Math.Max(offset - 1, otherOffset), 1);
openingBrackets[ind].ToString(), closingBrackets[ind].ToString());
int length; int length;
VBStatement statement; VBStatement statement;

38
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/HiddenDefinition/HiddenDefinitionRenderer.cs

@ -2,11 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.ComponentModel.Design;
using System.Linq;
using System.Windows.Controls.Primitives; using System.Windows.Controls.Primitives;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.Core.Presentation; using ICSharpCode.Core.Presentation;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
@ -45,10 +41,14 @@ namespace ICSharpCode.AvalonEdit.AddIn.HiddenDefinition
{ {
ClosePopup(); ClosePopup();
if (BracketSearchResult == null || BracketSearchResult.OpeningBracket != "{") return; if (BracketSearchResult == null) return;
// verify if we have a open bracket
if (this.editor.Document.GetCharAt(BracketSearchResult.OpeningBracketOffset) != '{')
return;
var line = GetLineText(BracketSearchResult.OpeningBracketOffset); var line = GetLineText(BracketSearchResult.OpeningBracketOffset);
if(line == null) return; if(line == null) return;
control.DefinitionText = line; control.DefinitionText = line;
popup.Child = control; popup.Child = control;
@ -60,19 +60,23 @@ namespace ICSharpCode.AvalonEdit.AddIn.HiddenDefinition
private string GetLineText(int offset) private string GetLineText(int offset)
{ {
// get folding manager // get line
var container = this.editor.Adapter.GetService(typeof(IServiceContainer)) as IServiceContainer; var line = editor.Document.GetLineByOffset(offset);
if (container == null) return null; string text = editor.Document.Text;
var folding = container.GetService(typeof(ParserFoldingStrategy)) as ParserFoldingStrategy;
if (folding == null) return null;
// get folding while (true) {
var f = folding.FoldingManager.GetFoldingsContaining(offset).LastOrDefault(); if (line == null || line.IsDeleted) return null;
if (f == null) return null; string lineString = text.Substring(line.Offset, line.Length).Trim();
if (lineString != "{" && !string.IsNullOrEmpty(lineString) &&
!lineString.StartsWith("//") && !lineString.StartsWith("/*") &&
!lineString.StartsWith("*") && !lineString.StartsWith("'"))
break;
line = line.PreviousLine;
}
// get line if (!editor.TextArea.TextView.VisualLinesValid)
var line = editor.Document.GetLineByOffset(f.StartOffset); return null;
if (line == null || line.IsDeleted) return null;
// check whether the line is visible // check whether the line is visible
int off = line.Offset; int off = line.Offset;

9
src/Main/Base/Project/Src/Editor/IBracketSearcher.cs

@ -40,20 +40,13 @@ namespace ICSharpCode.SharpDevelop.Editor
public int ClosingBracketLength { get; private set; } public int ClosingBracketLength { get; private set; }
public string OpeningBracket { get; private set; }
public string ClosingBracket { get; private set; }
public BracketSearchResult(int openingBracketOffset, int openingBracketLength, public BracketSearchResult(int openingBracketOffset, int openingBracketLength,
int closingBracketOffset, int closingBracketLength, int closingBracketOffset, int closingBracketLength)
string openingBracket = null, string closingBracket = null)
{ {
this.OpeningBracketOffset = openingBracketOffset; this.OpeningBracketOffset = openingBracketOffset;
this.OpeningBracketLength = openingBracketLength; this.OpeningBracketLength = openingBracketLength;
this.ClosingBracketOffset = closingBracketOffset; this.ClosingBracketOffset = closingBracketOffset;
this.ClosingBracketLength = closingBracketLength; this.ClosingBracketLength = closingBracketLength;
this.OpeningBracket = openingBracket;
this.ClosingBracket = closingBracket;
} }
} }
} }

Loading…
Cancel
Save