public TextBufferIssueTracker(DTE dte, TaggerProvider provider, ITextDocument document, IEnumerable <AnalysisLanguage> detectedLanguages, IIssuesFilter issuesFilter, ISonarErrorListDataSource sonarErrorDataSource, IAnalysisIssueVisualizationConverter converter, IVsSolution5 vsSolution, ILogger logger) { this.dte = dte; this.Provider = provider; this.textBuffer = document.TextBuffer; this.detectedLanguages = detectedLanguages; this.sonarErrorDataSource = sonarErrorDataSource; this.converter = converter; this.vsSolution = vsSolution; this.logger = logger; this.issuesFilter = issuesFilter; this.document = document; this.FilePath = document.FilePath; this.charset = document.Encoding.WebName; this.Factory = new IssuesSnapshotFactory(new IssuesSnapshot(GetProjectName(), GetProjectGuid(), FilePath, new List <IAnalysisIssueVisualization>())); document.FileActionOccurred += SafeOnFileActionOccurred; sonarErrorDataSource.AddFactory(this.Factory); Provider.AddIssueTracker(this); RequestAnalysis(null /* no options */); }
public void AddTagger(IssueTagger tagger) { Debug.Assert(!activeTaggers.Contains(tagger), "Not expecting the tagger to be already registered"); activeTaggers.Add(tagger); if (activeTaggers.Count == 1) { // First tagger created... start doing stuff textBuffer.ChangedLowPriority += SafeOnBufferChange; this.dirtySpans = new NormalizedSnapshotSpanCollection(new SnapshotSpan(currentSnapshot, 0, currentSnapshot.Length)); Provider.AddIssueTracker(this); RequestAnalysis(); } }