Browse Source

Bracket highlighting: Create a different figure for start and end bracket (don't draw combining line when end bracket is on the next line after the start bracket)

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@4857 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
68fe102c06
  1. 5
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/BracketHighlightRenderer.cs
  2. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/TextMarkerService.cs
  3. 10
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignSurface.xaml.cs
  4. 2
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/SelectionLayer.cs
  5. 7
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/BackgroundGeometryBuilder.cs

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

@ -61,12 +61,11 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -61,12 +61,11 @@ namespace ICSharpCode.AvalonEdit.AddIn
builder.CornerRadius = 1;
builder.AddSegment(textView, new TextSegment() { StartOffset = result.OpeningBracketOffset, Length = result.OpeningBracketLength });
builder.CloseFigure(); // prevent connecting the two segments
builder.AddSegment(textView, new TextSegment() { StartOffset = result.ClosingBracketOffset, Length = result.ClosingBracketLength });
PathGeometry geometry = builder.CreateGeometry();
Geometry geometry = builder.CreateGeometry();
if (geometry != null) {
geometry.Freeze();
drawingContext.DrawGeometry(backgroundBrush, borderPen, geometry);
}
}

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/TextMarkerService.cs

@ -150,7 +150,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -150,7 +150,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
if (marker.BackgroundColor != null) {
BackgroundGeometryBuilder geoBuilder = new BackgroundGeometryBuilder();
geoBuilder.AddSegment(textView, marker);
PathGeometry geometry = geoBuilder.CreateGeometry();
Geometry geometry = geoBuilder.CreateGeometry();
if (geometry != null) {
Color color = marker.BackgroundColor.Value;
SolidColorBrush brush = new SolidColorBrush(color);

10
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignSurface.xaml.cs

@ -47,7 +47,7 @@ namespace ICSharpCode.WpfDesign.Designer @@ -47,7 +47,7 @@ namespace ICSharpCode.WpfDesign.Designer
protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e)
{
if (e.OriginalSource == uxZoom.ScrollViewer) {
if (e.OriginalSource == uxZoom.ScrollViewer) {
UnselectAll();
}
}
@ -67,9 +67,9 @@ namespace ICSharpCode.WpfDesign.Designer @@ -67,9 +67,9 @@ namespace ICSharpCode.WpfDesign.Designer
public void LoadDesigner(XmlReader xamlReader, XamlLoadSettings loadSettings)
{
UnloadDesigner();
loadSettings = loadSettings ?? new XamlLoadSettings();
loadSettings.CustomServiceRegisterFunctions.Add(
context => context.Services.AddService(typeof(IDesignPanel), _designPanel));
loadSettings = loadSettings ?? new XamlLoadSettings();
loadSettings.CustomServiceRegisterFunctions.Add(
context => context.Services.AddService(typeof(IDesignPanel), _designPanel));
InitializeDesigner(new XamlDesignContext(xamlReader, loadSettings));
}
@ -209,7 +209,7 @@ namespace ICSharpCode.WpfDesign.Designer @@ -209,7 +209,7 @@ namespace ICSharpCode.WpfDesign.Designer
yield return item;
foreach (var child in Descendants(item)) {
yield return child;
}
}
}
public static IEnumerable<DesignItem> Descendants(DesignItem item)

2
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/SelectionLayer.cs

@ -45,7 +45,7 @@ namespace ICSharpCode.AvalonEdit.Editing @@ -45,7 +45,7 @@ namespace ICSharpCode.AvalonEdit.Editing
foreach (var segment in textArea.Selection.Segments) {
geoBuilder.AddSegment(textView, segment);
}
PathGeometry geometry = geoBuilder.CreateGeometry();
Geometry geometry = geoBuilder.CreateGeometry();
if (geometry != null) {
SolidColorBrush lightHighlightBrush = new SolidColorBrush(SystemColors.HighlightColor);
lightHighlightBrush.Opacity = 0.7;

7
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/BackgroundGeometryBuilder.cs

@ -173,7 +173,10 @@ namespace ICSharpCode.AvalonEdit.Rendering @@ -173,7 +173,10 @@ namespace ICSharpCode.AvalonEdit.Rendering
return ls;
}
void CloseFigure()
/// <summary>
/// Closes the current figure.
/// </summary>
public void CloseFigure()
{
if (figure != null) {
figure.Segments.Insert(insertionIndex, MakeLineSegment(lastLeft, lastTop + cornerRadius));
@ -193,7 +196,7 @@ namespace ICSharpCode.AvalonEdit.Rendering @@ -193,7 +196,7 @@ namespace ICSharpCode.AvalonEdit.Rendering
/// Creates the geometry.
/// Returns null when the geometry is empty!
/// </summary>
public PathGeometry CreateGeometry()
public Geometry CreateGeometry()
{
CloseFigure();
if (figures.Count != 0) {

Loading…
Cancel
Save