diff --git a/src/StructuredLogViewer/Controls/TextViewerControl.xaml b/src/StructuredLogViewer/Controls/TextViewerControl.xaml
index 84556366..800e17b0 100644
--- a/src/StructuredLogViewer/Controls/TextViewerControl.xaml
+++ b/src/StructuredLogViewer/Controls/TextViewerControl.xaml
@@ -75,6 +75,7 @@
+
diff --git a/src/StructuredLogViewer/Controls/TextViewerControl.xaml.cs b/src/StructuredLogViewer/Controls/TextViewerControl.xaml.cs
index 325fdda1..b66c03b3 100644
--- a/src/StructuredLogViewer/Controls/TextViewerControl.xaml.cs
+++ b/src/StructuredLogViewer/Controls/TextViewerControl.xaml.cs
@@ -111,13 +111,15 @@ private void OnSettingData(object sender, DataObjectSettingDataEventArgs e)
DisplaySource(lineNumber, column);
if (IsXml)
+ {
ImportLinkHighlighter.Install(textEditor, sourceFilePath, navigationHelper);
+ }
}
protected override void OnKeyUp(KeyEventArgs e)
{
// Mark Ctrl+F handle to not steal focus from search panel
- if (e.Key == Key.F && Keyboard.Modifiers == ModifierKeys.Control)
+ if (e.Key == Key.F && Keyboard.Modifiers == ModifierKeys.Control)
{
e.Handled = true;
}
@@ -203,6 +205,8 @@ void SetColor(string name, string hex)
var foldingStrategy = new XmlFoldingStrategy();
foldingStrategy.UpdateFoldings(foldingManager, textEditor.Document);
+
+ gotoProjectMenu.Visibility = Visibility.Visible;
}
else if (!looksLikeXml && IsXml)
{
@@ -259,7 +263,7 @@ void save_Click(object sender, RoutedEventArgs e)
Title = "Save file as...",
FileName = Path.GetFileName(filePath)
};
-
+
var result = saveFileDialog.ShowDialog(Application.Current.MainWindow);
if (result is true)
@@ -312,5 +316,21 @@ private void copyMenu_Click(object sender, RoutedEventArgs e)
{
textEditor.Copy();
}
+
+ private void gotoProjectFoldingMenu_Click(object sender, RoutedEventArgs e)
+ {
+ var selectionStart = textEditor.SelectionStart;
+ if (selectionStart > 0)
+ {
+ selectionStart--;
+ }
+
+ var projFolding = foldingManager.GetFoldingsContaining(selectionStart)?.LastOrDefault(f => f.Title == "");
+ if (projFolding != null)
+ {
+ textEditor.Select(projFolding.StartOffset, projFolding.Title.Length);
+ textEditor.ScrollTo(textEditor.Document.GetLineByOffset(projFolding.StartOffset).LineNumber, 0);
+ }
+ }
}
}