private void OnAnalyzerLoadError(object sender, AnalyzerLoadFailureEventArgs e) { var data = AnalyzerHelper.CreateAnalyzerLoadFailureDiagnostic(_workspace, _projectId, _language, _fullPath, e); _analyzerLoadErrors = _analyzerLoadErrors ?? new List<DiagnosticData>(); _analyzerLoadErrors.Add(data); _hostDiagnosticUpdateSource.UpdateDiagnosticsForProject(_projectId, this, _analyzerLoadErrors); }
private void OnAnalyzerLoadError(object sender, AnalyzerLoadFailureEventArgs e) { string id; string message; string messageFormat; switch (e.ErrorCode) { case AnalyzerLoadFailureEventArgs.FailureErrorCode.UnableToLoadAnalyzer: id = _language == LanguageNames.CSharp ? WRN_UnableToLoadAnalyzerIdCS : WRN_UnableToLoadAnalyzerIdVB; messageFormat = ServicesVSResources.WRN_UnableToLoadAnalyzer; message = string.Format(ServicesVSResources.WRN_UnableToLoadAnalyzer, _fullPath, e.Exception.Message); break; case AnalyzerLoadFailureEventArgs.FailureErrorCode.UnableToCreateAnalyzer: id = _language == LanguageNames.CSharp ? WRN_AnalyzerCannotBeCreatedIdCS : WRN_AnalyzerCannotBeCreatedIdVB; messageFormat = ServicesVSResources.WRN_AnalyzerCannotBeCreated; message = string.Format(ServicesVSResources.WRN_AnalyzerCannotBeCreated, e.TypeName, _fullPath, e.Exception.Message); break; case AnalyzerLoadFailureEventArgs.FailureErrorCode.NoAnalyzers: id = _language == LanguageNames.CSharp ? WRN_NoAnalyzerInAssemblyIdCS : WRN_NoAnalyzerInAssemblyIdVB; messageFormat = ServicesVSResources.WRN_NoAnalyzerInAssembly; message = string.Format(ServicesVSResources.WRN_NoAnalyzerInAssembly, _fullPath); break; case AnalyzerLoadFailureEventArgs.FailureErrorCode.None: default: return; } DiagnosticData data = new DiagnosticData( id, ServicesVSResources.ErrorCategory, message, messageFormat, severity: DiagnosticSeverity.Warning, defaultSeverity: DiagnosticSeverity.Warning, isEnabledByDefault: true, warningLevel: 0, customTags: ImmutableArray<string>.Empty, workspace: _workspace, projectId: _projectId); _analyzerLoadErrors = _analyzerLoadErrors ?? new List<DiagnosticData>(); _analyzerLoadErrors.Add(data); _hostDiagnosticUpdateSource.UpdateDiagnosticsForProject(_projectId, this, _analyzerLoadErrors); }
public static DiagnosticData CreateAnalyzerLoadFailureDiagnostic( Workspace workspace, ProjectId projectId, string language, string fullPath, AnalyzerLoadFailureEventArgs e) { string id, message, messageFormat, description; if (!TryGetErrorMessage(language, fullPath, e, out id, out message, out messageFormat, out description)) { return null; } return new DiagnosticData( id, FeaturesResources.Roslyn_HostError, message, messageFormat, severity: DiagnosticSeverity.Warning, isEnabledByDefault: true, description: description, warningLevel: 0, workspace: workspace, projectId: projectId); }
public void OnAnalyzerLoadFailed(object sender, AnalyzerLoadFailureEventArgs e) { var reference = sender as AnalyzerFileReference; if (reference == null) { return; } var diagnostic = AnalyzerHelper.CreateAnalyzerLoadFailureDiagnostic(reference.FullPath, e); // diagnostic from host analyzer can never go away var args = new DiagnosticsUpdatedArgs( id: Tuple.Create(this, reference.FullPath, e.ErrorCode, e.TypeName), workspace: PrimaryWorkspace.Workspace, solution: null, projectId: null, documentId: null, diagnostics: ImmutableArray.Create<DiagnosticData>(diagnostic)); _hostUpdateSource.RaiseDiagnosticsUpdated(args); }
private static bool TryGetErrorMessage( string language, string fullPath, AnalyzerLoadFailureEventArgs e, out string id, out string message, out string messageFormat, out string description) { switch (e.ErrorCode) { case AnalyzerLoadFailureEventArgs.FailureErrorCode.UnableToLoadAnalyzer: id = Choose(language, WRN_UnableToLoadAnalyzerId, WRN_UnableToLoadAnalyzerIdCS, WRN_UnableToLoadAnalyzerIdVB); messageFormat = FeaturesResources.Unable_to_load_Analyzer_assembly_0_colon_1; message = string.Format(FeaturesResources.Unable_to_load_Analyzer_assembly_0_colon_1, fullPath, e.Message); description = e.Exception.CreateDiagnosticDescription(); break; case AnalyzerLoadFailureEventArgs.FailureErrorCode.UnableToCreateAnalyzer: id = Choose(language, WRN_AnalyzerCannotBeCreatedId, WRN_AnalyzerCannotBeCreatedIdCS, WRN_AnalyzerCannotBeCreatedIdVB); messageFormat = FeaturesResources.An_instance_of_analyzer_0_cannot_be_created_from_1_colon_2; message = string.Format(FeaturesResources.An_instance_of_analyzer_0_cannot_be_created_from_1_colon_2, e.TypeName, fullPath, e.Message); description = e.Exception.CreateDiagnosticDescription(); break; case AnalyzerLoadFailureEventArgs.FailureErrorCode.NoAnalyzers: id = Choose(language, WRN_NoAnalyzerInAssemblyId, WRN_NoAnalyzerInAssemblyIdCS, WRN_NoAnalyzerInAssemblyIdVB); messageFormat = FeaturesResources.The_assembly_0_does_not_contain_any_analyzers; message = string.Format(FeaturesResources.The_assembly_0_does_not_contain_any_analyzers, fullPath); description = e.Exception.CreateDiagnosticDescription(); break; case AnalyzerLoadFailureEventArgs.FailureErrorCode.None: default: id = string.Empty; message = string.Empty; messageFormat = string.Empty; description = string.Empty; return false; } return true; }
public static DiagnosticData CreateAnalyzerLoadFailureDiagnostic(string fullPath, AnalyzerLoadFailureEventArgs e) { return CreateAnalyzerLoadFailureDiagnostic(null, null, null, fullPath, e); }
private static bool TryGetErrorMessage( string language, string fullPath, AnalyzerLoadFailureEventArgs e, out string id, out string message, out string messageFormat) { switch (e.ErrorCode) { case AnalyzerLoadFailureEventArgs.FailureErrorCode.UnableToLoadAnalyzer: id = Choose(language, WRN_UnableToLoadAnalyzerId, WRN_UnableToLoadAnalyzerIdCS, WRN_UnableToLoadAnalyzerIdVB); messageFormat = FeaturesResources.WRN_UnableToLoadAnalyzer; message = string.Format(FeaturesResources.WRN_UnableToLoadAnalyzer, fullPath, e.Message); break; case AnalyzerLoadFailureEventArgs.FailureErrorCode.UnableToCreateAnalyzer: id = Choose(language, WRN_AnalyzerCannotBeCreatedId, WRN_AnalyzerCannotBeCreatedIdCS, WRN_AnalyzerCannotBeCreatedIdVB); messageFormat = FeaturesResources.WRN_AnalyzerCannotBeCreated; message = string.Format(FeaturesResources.WRN_AnalyzerCannotBeCreated, e.TypeName, fullPath, e.Message); break; case AnalyzerLoadFailureEventArgs.FailureErrorCode.NoAnalyzers: id = Choose(language, WRN_NoAnalyzerInAssemblyId, WRN_NoAnalyzerInAssemblyIdCS, WRN_NoAnalyzerInAssemblyIdVB); messageFormat = FeaturesResources.WRN_NoAnalyzerInAssembly; message = string.Format(FeaturesResources.WRN_NoAnalyzerInAssembly, fullPath); break; case AnalyzerLoadFailureEventArgs.FailureErrorCode.None: default: id = string.Empty; message = string.Empty; messageFormat = string.Empty; return false; } return true; }
public static DiagnosticData CreateAnalyzerLoadFailureDiagnostic( Workspace workspace, ProjectId projectId, string language, string fullPath, AnalyzerLoadFailureEventArgs e) { string id, message, messageFormat, description; if (!TryGetErrorMessage(language, fullPath, e, out id, out message, out messageFormat, out description)) { return(null); } return(new DiagnosticData( id, FeaturesResources.ErrorCategory, message, messageFormat, severity: DiagnosticSeverity.Warning, isEnabledByDefault: true, description: description, warningLevel: 0, workspace: workspace, projectId: projectId)); }
public static DiagnosticData CreateAnalyzerLoadFailureDiagnostic(string fullPath, AnalyzerLoadFailureEventArgs e) { return(CreateAnalyzerLoadFailureDiagnostic(null, null, null, fullPath, e)); }
public static DiagnosticData CreateAnalyzerLoadFailureDiagnostic(AnalyzerLoadFailureEventArgs e, string fullPath, ProjectId?projectId, string?language) {
public static DiagnosticData CreateAnalyzerLoadFailureDiagnostic(ProjectId projectId, string language, string fullPath, AnalyzerLoadFailureEventArgs e) { if (!TryGetErrorMessage(language, fullPath, e, out var id, out var message, out var messageFormat, out var description)) { return(null); } return(new DiagnosticData( id, FeaturesResources.Roslyn_HostError, message, messageFormat, severity: DiagnosticSeverity.Warning, defaultSeverity: DiagnosticSeverity.Warning, isEnabledByDefault: true, description: description, warningLevel: 0, projectId: projectId, customTags: ImmutableArray <string> .Empty, properties: ImmutableDictionary <string, string> .Empty)); }
public static DiagnosticData CreateAnalyzerLoadFailureDiagnostic(string fullPath, AnalyzerLoadFailureEventArgs e) { return(CreateAnalyzerLoadFailureDiagnostic(projectId: null, language: null, fullPath, e)); }