Browse Source

Add TextView.InvalidateLayer.

Enabled bracket highlighting.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@4842 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 16 years ago
parent
commit
984b1ab9e1
  1. 10
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/BracketHighlightRenderer.cs
  2. 8
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
  3. 23
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs

10
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/BracketHighlightRenderer.cs

@ -4,9 +4,11 @@ @@ -4,9 +4,11 @@
// <owner name="Siegfried Pammer" email="siegfriedpammer@gmail.com"/>
// <version>$Revision$</version>
// </file>
using ICSharpCode.AvalonEdit.Document;
using System;
using System.Diagnostics;
using System.Windows.Media;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.SharpDevelop.Editor;
@ -21,9 +23,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -21,9 +23,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
public void SetHighlight(BracketSearchResult result)
{
this.result = result;
var layer = textView.GetKnownLayer(Layer);
if (layer != null)
layer.InvalidateVisual();
textView.InvalidateLayer(this.Layer);
}
public BracketHighlightRenderer(TextView textView)
@ -35,7 +35,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -35,7 +35,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
this.borderPen.Freeze();
this.textView = textView;
//this.textView.BackgroundRenderers.Add(this);
this.textView.BackgroundRenderers.Add(this);
}
public KnownLayer Layer {

8
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs

@ -299,10 +299,10 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -299,10 +299,10 @@ namespace ICSharpCode.AvalonEdit.AddIn
if (activeAdapter.Language != null) {
var bracketSearchResult = activeAdapter.Language.BracketSearcher.SearchBracket(activeAdapter.Document, activeAdapter.Caret.Offset);
// if (activeAdapter == primaryTextEditorAdapter)
// this.primaryBracketRenderer.SetHighlight(bracketSearchResult);
// else
// this.secondaryBracketRenderer.SetHighlight(bracketSearchResult);
if (activeAdapter == primaryTextEditorAdapter)
this.primaryBracketRenderer.SetHighlight(bracketSearchResult);
else
this.secondaryBracketRenderer.SetHighlight(bracketSearchResult);
}
StatusBarService.SetCaretPosition(caret.Column, caret.Line, caret.Column);

23
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs

@ -247,19 +247,6 @@ namespace ICSharpCode.AvalonEdit.Rendering @@ -247,19 +247,6 @@ namespace ICSharpCode.AvalonEdit.Rendering
get { return layers; }
}
/// <summary>
/// Retrieves a known layer from the Layers collection.
/// </summary>
public UIElement GetKnownLayer(KnownLayer knownLayer)
{
foreach (UIElement layer in layers) {
LayerPosition p = LayerPosition.GetLayerPosition(layer);
if (p != null && p.KnownLayer == knownLayer)
return layer;
}
return null;
}
/// <summary>
/// Inserts a new layer at a position specified relative to an existing layer.
/// </summary>
@ -379,6 +366,16 @@ namespace ICSharpCode.AvalonEdit.Rendering @@ -379,6 +366,16 @@ namespace ICSharpCode.AvalonEdit.Rendering
}
}
/// <summary>
/// Causes a known layer to redraw.
/// This method does not invalidate visual lines;
/// use the <see cref="Redraw()"/> method to do that.
/// </summary>
public void InvalidateLayer(KnownLayer knownLayer)
{
InvalidateMeasure(DispatcherPriority.Normal);
}
/// <summary>
/// Causes the text editor to redraw all lines overlapping with the specified segment.
/// Does nothing if segment is null.

Loading…
Cancel
Save