private ITagger <IErrorTag> CreateTagger(string filePath) { _mockTextDocument .Setup(d => d.FilePath) .Returns(filePath); var mockTextBuffer = new Mock <ITextBuffer>(); var textBuffer = mockTextBuffer.Object; var mockTextDataModel = new Mock <ITextDataModel>(); var textDataModel = mockTextDataModel.Object; var mockTextView = new Mock <ITextView>(); mockTextView .Setup(t => t.TextBuffer) .Returns(textBuffer); mockTextView .Setup(t => t.TextDataModel) .Returns(textDataModel); var textView = mockTextView.Object; return(_provider.CreateTagger <IErrorTag>(textView, textBuffer)); }
private ITagger <IErrorTag> CreateTagger(IContentType bufferContentType = null) { var mockTextBuffer = new Mock <ITextBuffer>(); mockTextBuffer.Setup(b => b.ContentType).Returns(bufferContentType); ITextBuffer textBuffer = mockTextBuffer.Object; var mockTextDataModel = new Mock <ITextDataModel>(); var textDataModel = mockTextDataModel.Object; var mockTextView = new Mock <ITextView>(); mockTextView.Setup(t => t.TextBuffer).Returns(textBuffer); mockTextView.Setup(t => t.TextDataModel).Returns(textDataModel); ITextView textView = mockTextView.Object; return(provider.CreateTagger <IErrorTag>(textView, textBuffer)); }
private void OnDiagnosticsUpdatedOnForeground( object sender, DiagnosticsUpdatedArgs e, SourceText sourceText, ITextSnapshot editorSnapshot) { this.AssertIsForeground(); if (_disposed) { return; } // Find the appropriate async tagger for this diagnostics id, and let it know that // there were new diagnostics produced for it. var id = e.Id; ValueTuple <TaggerProvider, IAccurateTagger <TTag> > providerAndTagger; if (!_idToProviderAndTagger.TryGetValue(id, out providerAndTagger)) { // We didn't have an existing tagger for this diagnostic id. If there are no actual // diagnostics being reported, then don't bother actually doing anything. This saves // us from creating a lot of objects, and subscribing to tons of events that we don't // actually need (since we don't even have any diagnostics to show!). if (e.Diagnostics.Length == 0) { return; } // Didn't have an existing tagger for this diagnostic id. Make a new one // and cache it so we can use it in the future. var taggerProvider = new TaggerProvider(_owner); var tagger = taggerProvider.CreateTagger <TTag>(_subjectBuffer); providerAndTagger = ValueTuple.Create(taggerProvider, tagger); _idToProviderAndTagger[id] = providerAndTagger; // Register for changes from the underlying tagger. When it tells us about // changes, we'll let anyone know who is registered with us. tagger.TagsChanged += OnUnderlyingTaggerTagsChanged; } // Let the provier know that there are new diagnostics. It will then // handle all the async processing of those diagnostics. providerAndTagger.Item1.OnDiagnosticsUpdated(e, sourceText, editorSnapshot); }
private ITagger <IErrorTag> CreateTagger() { return(provider.CreateTagger <IErrorTag>(textView, textBuffer)); }