Skip to content

Commit 6f7b284

Browse files
committed
ux: use a new resource Brush.Diff.BlockBorderHighlight to highlight current block in text diff view (#2113)
Signed-off-by: leo <longshuang@msn.cn>
1 parent 1d38c9d commit 6f7b284

File tree

3 files changed

+24
-10
lines changed

3 files changed

+24
-10
lines changed

src/Resources/Themes.axaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
<Color x:Key="Color.Diff.DeletedBG">#80FF9797</Color>
2828
<Color x:Key="Color.Diff.AddedHighlight">#A7E1A7</Color>
2929
<Color x:Key="Color.Diff.DeletedHighlight">#F19B9D</Color>
30+
<Color x:Key="Color.Diff.BlockBorderHighlight">DarkCyan</Color>
3031
<Color x:Key="Color.Link">#0000EE</Color>
3132
<Color x:Key="Color.InlineCode">#FFE4E4E4</Color>
3233
<Color x:Key="Color.InlineCodeFG">Black</Color>
@@ -59,6 +60,7 @@
5960
<Color x:Key="Color.Diff.DeletedBG">#C0633F3E</Color>
6061
<Color x:Key="Color.Diff.AddedHighlight">#A0308D3C</Color>
6162
<Color x:Key="Color.Diff.DeletedHighlight">#A09F4247</Color>
63+
<Color x:Key="Color.Diff.BlockBorderHighlight">DarkCyan</Color>
6264
<Color x:Key="Color.Link">#4DAAFC</Color>
6365
<Color x:Key="Color.InlineCode">#FF383838</Color>
6466
<Color x:Key="Color.InlineCodeFG">#FFF0F0F0</Color>
@@ -93,6 +95,7 @@
9395
<SolidColorBrush x:Key="Brush.Diff.DeletedBG" Color="{DynamicResource Color.Diff.DeletedBG}"/>
9496
<SolidColorBrush x:Key="Brush.Diff.AddedHighlight" Color="{DynamicResource Color.Diff.AddedHighlight}"/>
9597
<SolidColorBrush x:Key="Brush.Diff.DeletedHighlight" Color="{DynamicResource Color.Diff.DeletedHighlight}"/>
98+
<SolidColorBrush x:Key="Brush.Diff.BlockBorderHighlight" Color="{DynamicResource Color.Diff.BlockBorderHighlight}"/>
9699
<SolidColorBrush x:Key="Brush.Link" Color="{DynamicResource Color.Link}"/>
97100
<SolidColorBrush x:Key="Brush.InlineCode" Color="{DynamicResource Color.InlineCode}"/>
98101
<SolidColorBrush x:Key="Brush.InlineCodeFG" Color="{DynamicResource Color.InlineCodeFG}"/>

src/Views/TextDiffView.axaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
AddedHighlightBrush="{DynamicResource Brush.Diff.AddedHighlight}"
2424
DeletedHighlightBrush="{DynamicResource Brush.Diff.DeletedHighlight}"
2525
IndicatorForeground="{DynamicResource Brush.FG2}"
26+
BlockBorderHighlightBrush="{DynamicResource Brush.Diff.BlockBorderHighlight}"
2627
FontFamily="{DynamicResource Fonts.Monospace}"
2728
FontSize="{Binding Source={x:Static vm:Preferences.Instance}, Path=EditorFontSize}"
2829
TabWidth="{Binding Source={x:Static vm:Preferences.Instance}, Path=EditorTabWidth}"
@@ -54,6 +55,7 @@
5455
AddedHighlightBrush="{DynamicResource Brush.Diff.AddedHighlight}"
5556
DeletedHighlightBrush="{DynamicResource Brush.Diff.DeletedHighlight}"
5657
IndicatorForeground="{DynamicResource Brush.FG2}"
58+
BlockBorderHighlightBrush="{DynamicResource Brush.Diff.BlockBorderHighlight}"
5759
FontFamily="{DynamicResource Fonts.Monospace}"
5860
FontSize="{Binding Source={x:Static vm:Preferences.Instance}, Path=EditorFontSize}"
5961
TabWidth="{Binding Source={x:Static vm:Preferences.Instance}, Path=EditorTabWidth}"
@@ -76,6 +78,7 @@
7678
AddedHighlightBrush="{DynamicResource Brush.Diff.AddedHighlight}"
7779
DeletedHighlightBrush="{DynamicResource Brush.Diff.DeletedHighlight}"
7880
IndicatorForeground="{DynamicResource Brush.FG2}"
81+
BlockBorderHighlightBrush="{DynamicResource Brush.Diff.BlockBorderHighlight}"
7982
FontFamily="{DynamicResource Fonts.Monospace}"
8083
FontSize="{Binding Source={x:Static vm:Preferences.Instance}, Path=EditorFontSize}"
8184
TabWidth="{Binding Source={x:Static vm:Preferences.Instance}, Path=EditorTabWidth}"

src/Views/TextDiffView.axaml.cs

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,7 @@ public void Draw(TextView textView, DrawingContext drawingContext)
216216
return;
217217

218218
var changeBlock = _presenter.BlockNavigation.GetCurrentBlock();
219-
var changeBlockBG = new SolidColorBrush(Colors.Gray, 0.25);
220-
var changeBlockFG = new Pen(Brushes.Gray);
219+
var changeBlockBorder = new Pen(_presenter.BlockBorderHighlightBrush);
221220

222221
var lines = _presenter.GetLines();
223222
var width = textView.Bounds.Width;
@@ -279,14 +278,14 @@ public void Draw(TextView textView, DrawingContext drawingContext)
279278
}
280279
}
281280

282-
if (changeBlock != null && changeBlock.Contains(index))
283-
{
284-
drawingContext.DrawRectangle(changeBlockBG, null, new Rect(0, startY, width, endY - startY));
285-
if (index == changeBlock.Start)
286-
drawingContext.DrawLine(changeBlockFG, new Point(0, startY), new Point(width, startY));
287-
if (index == changeBlock.End)
288-
drawingContext.DrawLine(changeBlockFG, new Point(0, endY), new Point(width, endY));
289-
}
281+
if (changeBlock == null)
282+
continue;
283+
284+
if (index == changeBlock.Start)
285+
drawingContext.DrawLine(changeBlockBorder, new Point(0, startY), new Point(width, startY));
286+
287+
if (index == changeBlock.End)
288+
drawingContext.DrawLine(changeBlockBorder, new Point(0, endY), new Point(width, endY));
290289
}
291290
}
292291

@@ -406,6 +405,15 @@ public IBrush IndicatorForeground
406405
set => SetValue(IndicatorForegroundProperty, value);
407406
}
408407

408+
public static readonly StyledProperty<IBrush> BlockBorderHighlightBrushProperty =
409+
AvaloniaProperty.Register<ThemedTextDiffPresenter, IBrush>(nameof(BlockBorderHighlightBrush), Brushes.Gray);
410+
411+
public IBrush BlockBorderHighlightBrush
412+
{
413+
get => GetValue(BlockBorderHighlightBrushProperty);
414+
set => SetValue(BlockBorderHighlightBrushProperty, value);
415+
}
416+
409417
public static readonly StyledProperty<bool> UseSyntaxHighlightingProperty =
410418
AvaloniaProperty.Register<ThemedTextDiffPresenter, bool>(nameof(UseSyntaxHighlighting));
411419

0 commit comments

Comments
 (0)