private IEnumerable <ITextBuffer> GetDocumentTextBuffers(DocumentLoad documentLoad) { var list = new List <ITextBuffer>(); foreach (var docCookie in _runningDocumentTable.GetRunningDocumentCookies()) { if (documentLoad == DocumentLoad.RespectLazy && _sharedService.IsLazyLoaded(docCookie)) { continue; } if (_vsAdapter.GetTextBufferForDocCookie(docCookie).TryGetValue(out ITextBuffer buffer)) { list.Add(buffer); } } return(list); }
private IEnumerable <ITextBuffer> GetDocumentTextBuffers(DocumentLoad documentLoad) { var list = new List <ITextBuffer>(); foreach (var docCookie in _runningDocumentTable.GetRunningDocumentCookies()) { if (documentLoad == DocumentLoad.RespectLazy && isLazyLoaded(docCookie)) { continue; } if (_vsAdapter.GetTextBufferForDocCookie(docCookie).TryGetValue(out ITextBuffer buffer)) { list.Add(buffer); } } return(list); bool isLazyLoaded(uint documentCookie) { try { if (_runningDocumentTable4 is null) { _runningDocumentTable4 = _serviceProvider.GetService <SVsRunningDocumentTable, IVsRunningDocumentTable4>(); } var flags = (_VSRDTFLAGS4)_runningDocumentTable4.GetDocumentFlags(documentCookie); return(0 != (flags & _VSRDTFLAGS4.RDT_PendingInitialization)); } catch (Exception) { return(false); } } }