void DataGrid_SelectionChanged(Object sender, SelectionChangedEventArgs e) { if (e == null) { return; } if (0 < e.AddedItems.Count) { var item = e.AddedItems[0]; ViewModel.Segment segment = null; if (item is ViewModel.LineFragment fragment) { segment = fragment.Segment; } if (item is ViewModel.LineReplacement replacement) { segment = replacement.Segment; } HighlightInputSegment(segment); } e.Handled = true; }
void TreeView_SelectedItemChanged(Object sender, RoutedPropertyChangedEventArgs <Object> e) { if (e == null) { return; } ViewModel.Segment segment = null; if (e.NewValue is ViewModel.Node node && node.Success) { segment = node.Segment; } HighlightInputSegment(segment); e.Handled = true; }
void HighlightInputSegment(ViewModel.Segment segment) { if (segment == null) { if (Colorer.Input.HighlightTaggerProvider.TryGetTaggerForView(m_editorInput.WpfTextViewHost.TextView, out var tagger)) { tagger.Unhighlight(); } } else { m_editorInput.Scroll(segment.Start); if (Colorer.Input.HighlightTaggerProvider.TryGetTaggerForView(m_editorInput.WpfTextViewHost.TextView, out var tagger)) { tagger.Hightlight(segment.Start, segment.Length); } } }