private void OnProjectAnalyzerReferenceChanged(object sender, ProjectAnalyzerReferenceChangedEventArgs e) { if (e.Removed.Length == 0) { // nothing to refresh return; } // events will be automatically serialized. var project = e.Project; var stateSets = e.Removed; // first remove all states foreach (var stateSet in stateSets) { foreach (var document in project.Documents) { stateSet.Remove(document.Id); } stateSet.Remove(project.Id); } // now raise events Owner.RaiseBulkDiagnosticsUpdated(raiseEvents => { foreach (var document in project.Documents) { RaiseDocumentDiagnosticsRemoved(document, stateSets, includeProjectState: true, raiseEvents: raiseEvents); } RaiseProjectDiagnosticsRemoved(project, stateSets, raiseEvents); }); }
private void OnProjectAnalyzerReferenceChanged(object sender, ProjectAnalyzerReferenceChangedEventArgs e) { if (e.Removed.Length == 0) { // nothing to refresh return; } // events will be automatically serialized. ClearProjectStatesAsync(e.Project, e.Removed, CancellationToken.None); }
private void OnProjectAnalyzerReferenceChanged(object sender, ProjectAnalyzerReferenceChangedEventArgs e) { if (e.Removed.Length == 0) { // nothing to refresh return; } // events will be automatically serialized. ClearProjectStatesAsync(e.Project, e.Removed, CancellationToken.None); }
private void OnProjectAnalyzerReferenceChanged(object sender, ProjectAnalyzerReferenceChangedEventArgs e) { if (e.Removed.Length == 0) { // nothing to refresh return; } // guarantee order of the events. var asyncToken = Owner.Listener.BeginAsyncOperation(nameof(OnProjectAnalyzerReferenceChanged)); _eventQueue.ScheduleTask(() => ClearProjectStatesAsync(e.Project, e.Removed, CancellationToken.None), CancellationToken.None).CompletesAsyncOperation(asyncToken); }
private void OnProjectAnalyzerReferenceChanged(object sender, ProjectAnalyzerReferenceChangedEventArgs e) { if (e.Removed.Length == 0) { // nothing to refresh return; } // guarantee order of the events. var asyncToken = Owner.Listener.BeginAsyncOperation(nameof(OnProjectAnalyzerReferenceChanged)); _eventQueue.ScheduleTask(() => ClearProjectStatesAsync(e.Project, e.Removed, CancellationToken.None), CancellationToken.None).CompletesAsyncOperation(asyncToken); }
private void OnProjectAnalyzerReferenceChanged(object?sender, ProjectAnalyzerReferenceChangedEventArgs e) { if (e.Removed.Length == 0) { // nothing to refresh return; } // events will be automatically serialized. var project = e.Project; var stateSets = e.Removed; // make sure we drop cache related to the analyzers foreach (var stateSet in stateSets) { stateSet.OnRemoved(); } ClearAllDiagnostics(stateSets, project.Id); }
private void OnProjectAnalyzerReferenceChanged(object sender, ProjectAnalyzerReferenceChangedEventArgs e) { if (e.Removed.Length == 0) { // nothing to refresh return; } // events will be automatically serialized. var project = e.Project; var stateSets = e.Removed; // make sure we drop cache related to the analyzers foreach (var stateSet in stateSets) { stateSet.OnRemoved(); } ClearAllDiagnostics(stateSets, project.Id); }
private void RaiseProjectAnalyzerReferenceChanged(ProjectAnalyzerReferenceChangedEventArgs args) { ProjectAnalyzerReferenceChanged?.Invoke(this, args); }
private void RaiseProjectAnalyzerReferenceChanged(ProjectAnalyzerReferenceChangedEventArgs args) { ProjectAnalyzerReferenceChanged?.Invoke(this, args); }