public IVsTextView NavigateToEquivalentPosition(IVsTextView sourceView, string targetFile) { int line; int column; ErrorHandler.ThrowOnFailure(sourceView.GetCaretPos(out line, out column)); var text1 = GetText(sourceView); var view = OpenDocument(targetFile); var text2 = VsShellUtilities.GetRunningDocumentContents(serviceProvider, targetFile); var fromLines = ReadLines(text1); var toLines = ReadLines(text2); var matchingLine = FindMatchingLine(fromLines, toLines, line, matchLinesAbove: MatchLinesAboveTarget); if (matchingLine == -1) { // If we can't match line use orignal as best guess. matchingLine = line < toLines.Count ? line : toLines.Count - 1; column = 0; } ErrorHandler.ThrowOnFailure(view.SetCaretPos(matchingLine, column)); ErrorHandler.ThrowOnFailure(view.CenterLines(matchingLine, 1)); return(view); }
public int OnAfterSave(uint docCookie) { IVsRunningDocumentTable rdt = provider.GetService(typeof(SVsRunningDocumentTable)) as IVsRunningDocumentTable; if (null != rdt) { uint flags; uint readLocks; uint writeLocks; string documentMoniker; IVsHierarchy hierarchy; uint itemId; IntPtr unkDocData; int hr = rdt.GetDocumentInfo(docCookie, out flags, out readLocks, out writeLocks, out documentMoniker, out hierarchy, out itemId, out unkDocData); string fileText = VsShellUtilities.GetRunningDocumentContents(provider, documentMoniker); CreateParseRequest(documentMoniker, fileText, new ModuleId(hierarchy, itemId)); } return(VSConstants.S_OK); }
public string DocumentGetText( ) { return(VsShellUtilities.GetRunningDocumentContents(this.ProjectMgr.Site, this.Url)); }