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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 public string DocumentGetText( )
 {
     return(VsShellUtilities.GetRunningDocumentContents(this.ProjectMgr.Site, this.Url));
 }