private void ClearProjectState(Project project, DiagnosticAnalyzer analyzer, DiagnosticState state) { // remove saved cache state.Remove(project.Id); // raise diagnostic updated event var solutionArgs = new SolutionArgument(project); RaiseDiagnosticsUpdated(StateType.Project, project.Id, analyzer, solutionArgs, ImmutableArray <DiagnosticData> .Empty); }
private void RaiseDiagnosticsUpdated( StateType type, object key, ProviderId providerId, SolutionArgument solution, ImmutableArray <DiagnosticData> diagnostics) { if (_owner != null) { var id = new ArgumentKey(providerId, type, key); _owner.RaiseDiagnosticsUpdated(this, new DiagnosticsUpdatedArgs(id, _analyzersAndState.Workspace, solution.Solution, solution.ProjectId, solution.DocumentId, diagnostics)); } }
private void ClearDocumentState(Document document, DiagnosticAnalyzer analyzer, StateType type, DiagnosticState state) { // remove saved info state.Remove(document.Id); // raise diagnostic updated event var documentId = document.Id; var solutionArgs = new SolutionArgument(document); RaiseDiagnosticsUpdated(type, document.Id, analyzer, solutionArgs, ImmutableArray <DiagnosticData> .Empty); }
private void ClearProjectState(Project project, StateSet stateSet) { var state = stateSet.GetState(StateType.Project); // remove saved cache state.Remove(project.Id); // raise diagnostic updated event var solutionArgs = new SolutionArgument(project); RaiseDiagnosticsUpdated(StateType.Project, project.Id, stateSet, solutionArgs, ImmutableArray <DiagnosticData> .Empty); }
private void RaiseDiagnosticsUpdated( StateType type, object key, DiagnosticAnalyzer analyzer, SolutionArgument solution, ImmutableArray <DiagnosticData> diagnostics) { if (Owner == null) { return; } var id = new ArgumentKey(analyzer, type, key); Owner.RaiseDiagnosticsUpdated(this, new DiagnosticsUpdatedArgs(id, Workspace, solution.Solution, solution.ProjectId, solution.DocumentId, diagnostics)); }
private void RaiseDiagnosticsRemoved( StateType type, object key, StateSet stateSet, SolutionArgument solution) { if (Owner == null) { return; } // get right arg id for the given analyzer var id = CreateArgumentKey(type, key, stateSet); Owner.RaiseDiagnosticsUpdated(this, DiagnosticsUpdatedArgs.DiagnosticsRemoved(id, Workspace, solution.Solution, solution.ProjectId, solution.DocumentId)); }
private void RaiseDiagnosticsUpdated( StateType type, object key, StateSet stateSet, SolutionArgument solution, ImmutableArray <DiagnosticData> diagnostics) { if (Owner == null) { return; } // get right arg id for the given analyzer var id = stateSet.ErrorSourceName != null ? new HostAnalyzerKey(stateSet.Analyzer, type, key, stateSet.ErrorSourceName) : (object)new ArgumentKey(stateSet.Analyzer, type, key); Owner.RaiseDiagnosticsUpdated(this, new DiagnosticsUpdatedArgs(id, Workspace, solution.Solution, solution.ProjectId, solution.DocumentId, diagnostics)); }
public override void RemoveProject(ProjectId projectId) { using (Logger.LogBlock(FunctionId.Diagnostics_RemoveProject, GetRemoveLogMessage, projectId, CancellationToken.None)) { foreach (var stateSet in _stateManager.GetStateSets(projectId)) { stateSet.Remove(projectId); var solutionArgs = new SolutionArgument(null, projectId, null); RaiseDiagnosticsUpdated(StateType.Project, projectId, stateSet, solutionArgs, ImmutableArray <DiagnosticData> .Empty); } } _stateManager.RemoveStateSet(projectId); }
private void ClearDocumentState(Document document, StateSet stateSet, StateType type, bool raiseEvent) { var state = stateSet.GetState(type); // remove saved info state.Remove(document.Id); if (raiseEvent) { // raise diagnostic updated event var documentId = document.Id; var solutionArgs = new SolutionArgument(document); RaiseDiagnosticsUpdated(type, document.Id, stateSet, solutionArgs, ImmutableArray <DiagnosticData> .Empty); } }
public override void RemoveDocument(DocumentId documentId) { using (Logger.LogBlock(FunctionId.Diagnostics_RemoveDocument, GetRemoveLogMessage, documentId, CancellationToken.None)) { _memberRangeMap.Remove(documentId); foreach (var stateSet in _stateManager.GetStateSets(documentId.ProjectId)) { stateSet.Remove(documentId); var solutionArgs = new SolutionArgument(null, documentId.ProjectId, documentId); for (var stateType = 0; stateType < s_stateTypeCount; stateType++) { RaiseDiagnosticsUpdated((StateType)stateType, documentId, stateSet, solutionArgs, ImmutableArray <DiagnosticData> .Empty); } } } }
private async Task RemoveCacheDataAsync(Project project, DiagnosticState state, ProviderId providerId, CancellationToken cancellationToken) { try { // remove memory cache state.Remove(project.Id); // remove persistent cache await state.PersistAsync(project, AnalysisData.Empty, cancellationToken).ConfigureAwait(false); // raise diagnostic updated event var solutionArgs = new SolutionArgument(project); RaiseDiagnosticsUpdated(StateType.Project, project.Id, providerId, solutionArgs, ImmutableArray <DiagnosticData> .Empty); } catch (Exception e) when(FatalError.ReportUnlessCanceled(e)) { throw ExceptionUtilities.Unreachable; } }
public override void RemoveProject(ProjectId projectId) { using (Logger.LogBlock(FunctionId.Diagnostics_RemoveProject, GetRemoveLogMessage, projectId, CancellationToken.None)) { foreach (var stateProviderIdAndType in _analyzersAndState.GetAllExistingDiagnosticStates(projectId, StateType.Project)) { var state = stateProviderIdAndType.Item1; var providerId = stateProviderIdAndType.Item2; if (state != null) { state.Remove(projectId); } var solutionArgs = new SolutionArgument(null, projectId, null); RaiseDiagnosticsUpdated(StateType.Project, projectId, providerId, solutionArgs, ImmutableArray <DiagnosticData> .Empty); } _analyzersAndState.RemoveProjectAnalyzersAndStates(projectId); } }
private async Task RemoveCacheDataAsync(Document document, DiagnosticState state, ProviderId providerId, StateType type, CancellationToken cancellationToken) { try { // remove memory cache state.Remove(document.Id); // remove persistent cache await state.PersistAsync(document, AnalysisData.Empty, cancellationToken).ConfigureAwait(false); // raise diagnostic updated event var documentId = type == StateType.Project ? null : document.Id; var projectId = document.Project.Id; var key = documentId ?? (object)projectId; var solutionArgs = new SolutionArgument(document.Project.Solution, projectId, documentId); RaiseDiagnosticsUpdated(type, key, providerId, solutionArgs, ImmutableArray <DiagnosticData> .Empty); } catch (Exception e) when(FatalError.ReportUnlessCanceled(e)) { throw ExceptionUtilities.Unreachable; } }
public override void RemoveDocument(DocumentId documentId) { using (Logger.LogBlock(FunctionId.Diagnostics_RemoveDocument, GetRemoveLogMessage, documentId, CancellationToken.None)) { _memberRangeMap.Remove(documentId); foreach (var stateProviderIdAndType in _analyzersAndState.GetAllExistingDiagnosticStates(documentId.ProjectId)) { var state = stateProviderIdAndType.Item1; var providerId = stateProviderIdAndType.Item2; var type = stateProviderIdAndType.Item3; if (state != null) { state.Remove(documentId); } var solutionArgs = new SolutionArgument(null, documentId.ProjectId, documentId); RaiseDiagnosticsUpdated(type, documentId, providerId, solutionArgs, ImmutableArray <DiagnosticData> .Empty); } } }
private void RaiseDiagnosticsRemoved( StateType type, object key, StateSet stateSet, SolutionArgument solution) { RaiseDiagnosticsRemoved(type, key, stateSet, solution, Owner.RaiseDiagnosticsUpdated); }
private void RaiseDiagnosticsRemoved( StateType type, object key, StateSet stateSet, SolutionArgument solution, Action<DiagnosticsUpdatedArgs> raiseEvents) { // get right arg id for the given analyzer var id = new LiveDiagnosticUpdateArgsId(stateSet.Analyzer, key, (int)type, stateSet.ErrorSourceName); raiseEvents(DiagnosticsUpdatedArgs.DiagnosticsRemoved(id, Workspace, solution.Solution, solution.ProjectId, solution.DocumentId)); }
private void ClearDocumentState(Document document, StateSet stateSet, StateType type, bool raiseEvent) { var state = stateSet.GetState(type); // remove saved info state.Remove(document.Id); if (raiseEvent) { // raise diagnostic updated event var documentId = document.Id; var solutionArgs = new SolutionArgument(document); RaiseDiagnosticsUpdated(type, document.Id, stateSet, solutionArgs, ImmutableArray<DiagnosticData>.Empty); } }
private void ClearProjectState(Project project, StateSet stateSet) { var state = stateSet.GetState(StateType.Project); // remove saved cache state.Remove(project.Id); // raise diagnostic updated event var solutionArgs = new SolutionArgument(project); RaiseDiagnosticsUpdated(StateType.Project, project.Id, stateSet, solutionArgs, ImmutableArray<DiagnosticData>.Empty); }
public override void RemoveProject(ProjectId projectId) { using (Logger.LogBlock(FunctionId.Diagnostics_RemoveProject, GetRemoveLogMessage, projectId, CancellationToken.None)) { foreach (var stateSet in _stateManager.GetStateSets(projectId)) { stateSet.Remove(projectId); var solutionArgs = new SolutionArgument(null, projectId, null); RaiseDiagnosticsUpdated(StateType.Project, projectId, stateSet, solutionArgs, ImmutableArray<DiagnosticData>.Empty); } } _stateManager.RemoveStateSet(projectId); }
private void RaiseDiagnosticsUpdated( StateType type, object key, StateSet stateSet, SolutionArgument solution, ImmutableArray<DiagnosticData> diagnostics) { if (Owner == null) { return; } // get right arg id for the given analyzer var id = stateSet.ErrorSourceName != null ? (object)new HostAnalyzerKey(stateSet.Analyzer, type, key, stateSet.ErrorSourceName) : (object)new ArgumentKey(stateSet.Analyzer, type, key); Owner.RaiseDiagnosticsUpdated(this, new DiagnosticsUpdatedArgs(id, Workspace, solution.Solution, solution.ProjectId, solution.DocumentId, diagnostics)); }
public void RemoveDocument(DocumentId documentId) { using (Logger.LogBlock(FunctionId.Diagnostics_RemoveDocument, GetRemoveLogMessage, documentId, CancellationToken.None)) { _memberRangeMap.Remove(documentId); foreach (var stateProviderIdAndType in _analyzersAndState.GetAllExistingDiagnosticStates(documentId.ProjectId)) { var state = stateProviderIdAndType.Item1; var providerId = stateProviderIdAndType.Item2; var type = stateProviderIdAndType.Item3; if (state != null) { state.Remove(documentId); } var solutionArgs = new SolutionArgument(null, documentId.ProjectId, documentId); RaiseDiagnosticsUpdated(type, documentId, providerId, solutionArgs, ImmutableArray<DiagnosticData>.Empty); } } }
public override void RemoveDocument(DocumentId documentId) { using (Logger.LogBlock(FunctionId.Diagnostics_RemoveDocument, GetRemoveLogMessage, documentId, CancellationToken.None)) { _memberRangeMap.Remove(documentId); foreach (var stateSet in _stateManager.GetStateSets(documentId.ProjectId)) { stateSet.Remove(documentId); var solutionArgs = new SolutionArgument(null, documentId.ProjectId, documentId); for (var stateType = 0; stateType < s_stateTypeCount; stateType++) { RaiseDiagnosticsUpdated((StateType)stateType, documentId, stateSet, solutionArgs, ImmutableArray<DiagnosticData>.Empty); } } } }
public void RemoveProject(ProjectId projectId) { using (Logger.LogBlock(FunctionId.Diagnostics_RemoveProject, GetRemoveLogMessage, projectId, CancellationToken.None)) { foreach (var stateProviderIdAndType in _analyzersAndState.GetAllExistingDiagnosticStates(projectId, StateType.Project)) { var state = stateProviderIdAndType.Item1; var providerId = stateProviderIdAndType.Item2; if (state != null) { state.Remove(projectId); } var solutionArgs = new SolutionArgument(null, projectId, null); RaiseDiagnosticsUpdated(StateType.Project, projectId, providerId, solutionArgs, ImmutableArray<DiagnosticData>.Empty); } _analyzersAndState.RemoveProjectAnalyzersAndStates(projectId); } }
private void RaiseDiagnosticsCreated( StateType type, object key, StateSet stateSet, SolutionArgument solution, ImmutableArray<DiagnosticData> diagnostics) { RaiseDiagnosticsCreated(type, key, stateSet, solution, diagnostics, Owner.RaiseDiagnosticsUpdated); }
private void RaiseDiagnosticsUpdated( StateType type, object key, ProviderId providerId, SolutionArgument solution, ImmutableArray<DiagnosticData> diagnostics) { if (_owner != null) { var id = new ArgumentKey(providerId, type, key); _owner.RaiseDiagnosticsUpdated(this, new DiagnosticsUpdatedArgs(id, _analyzersAndState.Workspace, solution.Solution, solution.ProjectId, solution.DocumentId, diagnostics)); } }
private async Task RemoveCacheDataAsync(Document document, DiagnosticState state, ProviderId providerId, StateType type, CancellationToken cancellationToken) { try { // remove memory cache state.Remove(document.Id); // remove persistent cache await state.PersistAsync(document, AnalysisData.Empty, cancellationToken).ConfigureAwait(false); // raise diagnostic updated event var documentId = type == StateType.Project ? null : document.Id; var projectId = document.Project.Id; var key = documentId ?? (object)projectId; var solutionArgs = new SolutionArgument(document.Project.Solution, projectId, documentId); RaiseDiagnosticsUpdated(type, key, providerId, solutionArgs, ImmutableArray<DiagnosticData>.Empty); } catch (Exception e) when (FatalError.ReportUnlessCanceled(e)) { throw ExceptionUtilities.Unreachable; } }
private async Task RemoveCacheDataAsync(Project project, DiagnosticState state, ProviderId providerId, CancellationToken cancellationToken) { try { // remove memory cache state.Remove(project.Id); // remove persistent cache await state.PersistAsync(project, AnalysisData.Empty, cancellationToken).ConfigureAwait(false); // raise diagnostic updated event var solutionArgs = new SolutionArgument(project); RaiseDiagnosticsUpdated(StateType.Project, project.Id, providerId, solutionArgs, ImmutableArray<DiagnosticData>.Empty); } catch (Exception e) when (FatalError.ReportUnlessCanceled(e)) { throw ExceptionUtilities.Unreachable; } }
public override void RemoveDocument(DocumentId documentId) { using (Logger.LogBlock(FunctionId.Diagnostics_RemoveDocument, GetRemoveLogMessage, documentId, CancellationToken.None)) { _memberRangeMap.Remove(documentId); var stateSets = _stateManager.GetStateSets(documentId.ProjectId); foreach (var stateSet in stateSets) { stateSet.Remove(documentId); } Owner.RaiseBulkDiagnosticsUpdated(raiseEvents => { foreach (var stateSet in stateSets) { var solutionArgs = new SolutionArgument(null, documentId.ProjectId, documentId); for (var stateType = 0; stateType < s_stateTypeCount; stateType++) { RaiseDiagnosticsRemoved((StateType)stateType, documentId, stateSet, solutionArgs, raiseEvents); } } }); } }
private void RaiseDiagnosticsRemoved( StateType type, object key, StateSet stateSet, SolutionArgument solution, Action<DiagnosticsUpdatedArgs> raiseEvents) { // get right arg id for the given analyzer var id = CreateArgumentKey(type, key, stateSet); raiseEvents(DiagnosticsUpdatedArgs.DiagnosticsRemoved(id, Workspace, solution.Solution, solution.ProjectId, solution.DocumentId)); }
public override void RemoveProject(ProjectId projectId) { using (Logger.LogBlock(FunctionId.Diagnostics_RemoveProject, GetRemoveLogMessage, projectId, CancellationToken.None)) { var stateSets = _stateManager.GetStateSets(projectId); foreach (var stateSet in stateSets) { stateSet.Remove(projectId); } _stateManager.RemoveStateSet(projectId); Owner.RaiseBulkDiagnosticsUpdated(raiseEvents => { foreach (var stateSet in stateSets) { var solutionArgs = new SolutionArgument(null, projectId, null); RaiseDiagnosticsRemoved(StateType.Project, projectId, stateSet, solutionArgs, raiseEvents); } }); } }