protected override void Run(ITextEditor editor, IBookmarkMargin bookmarkMargin) { var bookmarks = (from b in bookmarkMargin.Bookmarks.OfType <Bookmark>() where b.CanToggle select b).ToList(); foreach (SDBookmark b in bookmarks) { BookmarkManager.RemoveMark(b); } }
public static void ToggleBookmark(ITextEditor editor, int line, Predicate <SDBookmark> canToggle, Func <Location, SDBookmark> bookmarkFactory) { foreach (SDBookmark bookmark in GetBookmarks(new FileName(editor.FileName))) { if (canToggle(bookmark) && bookmark.LineNumber == line) { BookmarkManager.RemoveMark(bookmark); return; } } // no bookmark at that line: create a new bookmark int lineStartOffset = editor.Document.GetLine(line).Offset; int column = 1 + DocumentUtilitites.GetWhitespaceAfter(editor.Document, lineStartOffset).Length; BookmarkManager.AddMark(bookmarkFactory(new Location(column, line))); }
protected override void RemoveMark() { BookmarkManager.RemoveMark(this); }