Browse Source

SD2-1059. Bookmarks can now be navigated in the xml editor. Bookmarks are re-added when the xml file is closed and reloaded.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1804 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Matt Ward 19 years ago
parent
commit
1fb21ce190
  1. 15
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlEditorControl.cs
  2. 11
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs

15
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlEditorControl.cs

@ -42,6 +42,8 @@ namespace ICSharpCode.XmlEditor @@ -42,6 +42,8 @@ namespace ICSharpCode.XmlEditor
Document.FoldingManager.FoldingStrategy = new XmlFoldingStrategy();
TextEditorProperties = new SharpDevelopTextEditorProperties();
Document.BookmarkManager.Factory = new SDBookmarkFactory(Document.BookmarkManager);
Document.BookmarkManager.Added += new ICSharpCode.TextEditor.Document.BookmarkEventHandler(BookmarkAdded);
Document.BookmarkManager.Removed += new ICSharpCode.TextEditor.Document.BookmarkEventHandler(BookmarkRemoved);
GenerateEditActions();
@ -345,5 +347,18 @@ namespace ICSharpCode.XmlEditor @@ -345,5 +347,18 @@ namespace ICSharpCode.XmlEditor
ICSharpCode.SharpDevelop.Bookmarks.BookmarkManager.RemoveMark(b);
}
}
/// <summary>
/// Have to add the bookmark to the BookmarkManager otherwise the bookmark is
/// not remembered when re-opening the file and does not show in the
/// bookmark manager.
/// </summary>
void BookmarkAdded(object sender, ICSharpCode.TextEditor.Document.BookmarkEventArgs e)
{
ICSharpCode.SharpDevelop.Bookmarks.SDBookmark b = e.Bookmark as ICSharpCode.SharpDevelop.Bookmarks.SDBookmark;
if (b != null) {
ICSharpCode.SharpDevelop.Bookmarks.BookmarkManager.AddMark(b);
}
}
}
}

11
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs

@ -57,7 +57,7 @@ namespace ICSharpCode.XmlEditor @@ -57,7 +57,7 @@ namespace ICSharpCode.XmlEditor
xmlEditor.SchemaCompletionDataItems = XmlSchemaManager.SchemaCompletionDataItems;
xmlEditor.Document.DocumentChanged += new DocumentEventHandler(DocumentChanged);
xmlEditor.ActiveTextAreaControl.Caret.CaretModeChanged += new EventHandler(CaretModeChanged);
xmlEditor.ActiveTextAreaControl.Enter += new EventHandler(CaretUpdate);
((Form)ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.Workbench).Activated += new EventHandler(GotFocusEvent);
@ -518,6 +518,13 @@ namespace ICSharpCode.XmlEditor @@ -518,6 +518,13 @@ namespace ICSharpCode.XmlEditor
FileName = fileName;
TitleName = Path.GetFileName(fileName);
IsDirty = false;
// Add bookmarks.
foreach (ICSharpCode.SharpDevelop.Bookmarks.SDBookmark bookmark in ICSharpCode.SharpDevelop.Bookmarks.BookmarkManager.GetBookmarks(fileName)) {
bookmark.Document = xmlEditor.Document;
xmlEditor.Document.BookmarkManager.Marks.Add(bookmark);
}
UpdateFolding();
SetWatcher();
}
@ -692,6 +699,8 @@ namespace ICSharpCode.XmlEditor @@ -692,6 +699,8 @@ namespace ICSharpCode.XmlEditor
{
base.OnFileNameChanged(e);
xmlEditor.FileName = base.FileName;
ICSharpCode.SharpDevelop.Bookmarks.SDBookmarkFactory factory = (ICSharpCode.SharpDevelop.Bookmarks.SDBookmarkFactory)xmlEditor.Document.BookmarkManager.Factory;
factory.ChangeFilename(base.FileName);
}
static bool IsFileReadOnly(string fileName)

Loading…
Cancel
Save