Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
            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);
            }
Ejemplo n.º 4
0
 private ITagger <IErrorTag> CreateTagger()
 {
     return(provider.CreateTagger <IErrorTag>(textView, textBuffer));
 }