static NavigationPoint GetNavPointForDoc(Document doc) { if (doc == null) { return(null); } NavigationPoint point = null; INavigable navigable = doc.GetContent <INavigable> (); if (navigable != null) { point = navigable.BuildNavigationPoint(); if (point != null) { return(point); } } IEditableTextBuffer editBuf = doc.GetContent <IEditableTextBuffer> (); if (editBuf != null) { point = new TextFileNavigationPoint(doc, editBuf); if (point != null) { return(point); } } return(new DocumentNavigationPoint(doc)); }
NavigationPoint GetNavPointForDoc(Document doc, bool forClosedHistory) { if (doc == null) { return(null); } NavigationPoint point = null; INavigable navigable = doc.GetContent <INavigable> (true); if (navigable != null) { point = navigable.BuildNavigationPoint(); if (point != null) { return(point); } } #pragma warning disable CS0618, CS0612 // Type or member is obsolete var editBuf = doc.Editor; if (editBuf != null) { if (forClosedHistory) { point = new TextFileNavigationPoint(doc.FileName, editBuf.CaretLine, editBuf.CaretColumn); } else { point = new TextFileNavigationPoint(doc, editBuf); } if (point != null) { return(point); } } #pragma warning restore CS0618, CS0612 // Type or member is obsolete return(new DocumentNavigationPoint(doc)); }
NavigationPoint GetNavPointForDoc(Document doc, bool forClosedHistory) { if (doc == null) { return(null); } NavigationPoint point = null; INavigable navigable = doc.GetContent <INavigable> (true); if (navigable != null) { point = navigable.BuildNavigationPoint(); if (point != null) { return(point); } } if (doc.GetContent <ITextView> (forActiveView: true) is ITextView textView) { if (forClosedHistory) { var caretPosition = textView.Caret.Position.BufferPosition; var line = textView.TextBuffer.CurrentSnapshot.GetLineFromPosition(caretPosition); var column = caretPosition.Position - line.Start.Position; point = new TextFileNavigationPoint(doc.FileName, line.LineNumber, column); } else { point = new TextFileNavigationPoint(doc, textView); } if (point != null) { return(point); } } return(new DocumentNavigationPoint(doc)); }
static NavigationPoint GetNavPointForDoc(Document doc, bool forClosedHistory) { if (doc == null) { return(null); } NavigationPoint point = null; INavigable navigable = doc.GetContent <INavigable> (); if (navigable != null) { point = navigable.BuildNavigationPoint(); if (point != null) { return(point); } } var editBuf = doc.Editor; if (editBuf != null) { if (forClosedHistory) { point = new TextFileNavigationPoint(doc.FileName, editBuf.CaretLine, editBuf.CaretColumn); } else { point = new TextFileNavigationPoint(doc, editBuf); } if (point != null) { return(point); } } return(new DocumentNavigationPoint(doc)); }