예제 #1
0
        public static bool TryGetCookieForInitializedDocument(this IVsRunningDocumentTable4 runningDocTable, string moniker, out uint docCookie)
        {
            docCookie = VSConstants.VSCOOKIE_NIL;

            if (runningDocTable != null && runningDocTable.IsMonikerValid(moniker))
            {
                var foundDocCookie = runningDocTable.GetDocumentCookie(moniker);

                if (runningDocTable.IsDocumentInitialized(foundDocCookie))
                {
                    docCookie = foundDocCookie;
                    return(true);
                }
            }

            return(false);
        }
        public static bool TryGetBufferFromMoniker(this IVsRunningDocumentTable4 runningDocumentTable,
                                                   IVsEditorAdaptersFactoryService editorAdaptersFactoryService,
                                                   string moniker, [NotNullWhen(true)] out ITextBuffer?textBuffer)
        {
            textBuffer = null;
            if (!runningDocumentTable.IsFileOpen(moniker))
            {
                return(false);
            }

            var cookie = runningDocumentTable.GetDocumentCookie(moniker);

            if (!runningDocumentTable.IsDocumentInitialized(cookie))
            {
                return(false);
            }

            return(TryGetBuffer(runningDocumentTable, editorAdaptersFactoryService, cookie, out textBuffer));
        }