public static void Remove() { try { if (instance != null) { instance.Document.BookmarkManager.RemoveMark(instance); instance.RemoveMarker(); instance = null; } } catch { } }
internal void ExecuteErrorPos(PascalABCCompiler.SourceLocation sl, int imageindex) { if (CurrentCodeFileDocument.DesignerAndCodeTabs != null) { CurrentCodeFileDocument.DesignerAndCodeTabs.SelectedTab = CurrentCodeFileDocument.TextPage; } ExecuteSourceLocationAction(sl, ErrorCursorPosStrategy); if (imageindex == 1) { ErrorLineBookmark.SetPosition(CurrentSyntaxEditor.TextEditor, sl.BeginPosition.Line); } else if (imageindex == 2) { RuntimeErrorBookmark.SetPosition(CurrentSyntaxEditor.TextEditor, sl.BeginPosition.Line); } }
//public static void SetPosition(string fileName, IDocument document, int makerStartLine, int makerEndLine) public static void SetPosition(TextEditorControl ctrl, int makerStartLine) { try { Remove(); IDocument document = ctrl.Document; string fileName = ctrl.FileName; startLine = makerStartLine; endLine = makerStartLine; startColumn = 1; LineSegment line = document.GetLineSegment(startLine - 1); endColumn = line.Length + 1; instance = new RuntimeErrorBookmark(fileName, document, startLine - 1); document.BookmarkManager.AddMark(instance); document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.LinesBetween, startLine - 1, startLine - 1)); document.CommitUpdate(); } catch { } }
void docPositionChanged(object sender, EventArgs e) { ErrorLineBookmark.Remove(); RuntimeErrorBookmark.Remove(); }
//public static void SetPosition(string fileName, IDocument document, int makerStartLine, int makerEndLine) public static void SetPosition(TextEditorControl ctrl, int makerStartLine) { try { Remove(); IDocument document = ctrl.Document; string fileName = ctrl.FileName; startLine = makerStartLine; endLine = makerStartLine; startColumn=1; LineSegment line = document.GetLineSegment(startLine - 1); endColumn = line.Length+1; instance = new RuntimeErrorBookmark(fileName, document, startLine - 1); document.BookmarkManager.AddMark(instance); document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.LinesBetween, startLine - 1, startLine - 1)); document.CommitUpdate(); } catch { } }