Merge pull request #948 from jkoritzinsky/customize-comp-analyzers-options
Add extension point for creating a CompilationWithAnalyzers object.
This commit is contained in:
Коммит
c66a6cd7a5
|
@ -1048,7 +1048,7 @@ namespace Microsoft.CodeAnalysis.Testing
|
|||
foreach (var project in solution.Projects)
|
||||
{
|
||||
var compilation = await GetProjectCompilationAsync(project, verifier, cancellationToken).ConfigureAwait(false);
|
||||
var compilationWithAnalyzers = compilation.WithAnalyzers(analyzers, GetAnalyzerOptions(project), cancellationToken);
|
||||
var compilationWithAnalyzers = CreateCompilationWithAnalyzers(compilation, analyzers, GetAnalyzerOptions(project), cancellationToken);
|
||||
var allDiagnostics = await compilationWithAnalyzers.GetAllDiagnosticsAsync().ConfigureAwait(false);
|
||||
|
||||
diagnostics.AddRange(allDiagnostics.Where(diagnostic => !IsCompilerDiagnostic(diagnostic) || IsCompilerDiagnosticIncluded(diagnostic, compilerDiagnostics)).Select(diagnostic => (project, diagnostic)));
|
||||
|
@ -1106,6 +1106,17 @@ namespace Microsoft.CodeAnalysis.Testing
|
|||
protected virtual AnalyzerOptions GetAnalyzerOptions(Project project)
|
||||
=> project.AnalyzerOptions;
|
||||
|
||||
/// <summary>
|
||||
/// Combine a compilation with analyzers and options.
|
||||
/// </summary>
|
||||
/// <param name="compilation">The compilation the analyzers will be run on.</param>
|
||||
/// <param name="analyzers">The analyzer to run on the documents.</param>
|
||||
/// <param name="options">The <see cref="AnalyzerOptions"/> for the project.</param>
|
||||
/// <param name="cancellationToken">The <see cref="CancellationToken"/> that the task will observe.</param>
|
||||
/// <returns>A <see cref="CompilationWithAnalyzers"/> object representing the provided compilation, analyzers, and options.</returns>
|
||||
protected virtual CompilationWithAnalyzers CreateCompilationWithAnalyzers(Compilation compilation, ImmutableArray<DiagnosticAnalyzer> analyzers, AnalyzerOptions options, CancellationToken cancellationToken)
|
||||
=> compilation.WithAnalyzers(analyzers, options, cancellationToken);
|
||||
|
||||
/// <summary>
|
||||
/// Given an array of strings as sources and a language, turn them into a <see cref="Project"/> and return the
|
||||
/// solution.
|
||||
|
|
|
@ -333,6 +333,7 @@ static Microsoft.CodeAnalysis.Testing.TestFileMarkupParser.GetSpans(string input
|
|||
static Microsoft.CodeAnalysis.Testing.TestFileMarkupParser.GetSpans(string input, out string output, out System.Collections.Immutable.ImmutableDictionary<string, System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.Text.TextSpan>> spans) -> void
|
||||
static readonly Microsoft.CodeAnalysis.Testing.DiagnosticResult.EmptyDiagnosticResults -> Microsoft.CodeAnalysis.Testing.DiagnosticResult[]
|
||||
virtual Microsoft.CodeAnalysis.Testing.AnalyzerTest<TVerifier>.ApplyCompilationOptions(Microsoft.CodeAnalysis.Project project) -> Microsoft.CodeAnalysis.Project
|
||||
virtual Microsoft.CodeAnalysis.Testing.AnalyzerTest<TVerifier>.CreateCompilationWithAnalyzers(Microsoft.CodeAnalysis.Compilation compilation, System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer> analyzers, Microsoft.CodeAnalysis.Diagnostics.AnalyzerOptions options, System.Threading.CancellationToken cancellationToken) -> Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers
|
||||
virtual Microsoft.CodeAnalysis.Testing.AnalyzerTest<TVerifier>.CreateProjectImplAsync(Microsoft.CodeAnalysis.Testing.Model.EvaluatedProjectState primaryProject, System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.Testing.Model.EvaluatedProjectState> additionalProjects, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<Microsoft.CodeAnalysis.Project>
|
||||
virtual Microsoft.CodeAnalysis.Testing.AnalyzerTest<TVerifier>.CreateSolutionAsync(Microsoft.CodeAnalysis.ProjectId projectId, Microsoft.CodeAnalysis.Testing.Model.EvaluatedProjectState projectState, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<Microsoft.CodeAnalysis.Solution>
|
||||
virtual Microsoft.CodeAnalysis.Testing.AnalyzerTest<TVerifier>.CreateWorkspaceImpl() -> Microsoft.CodeAnalysis.Workspace
|
||||
|
|
Загрузка…
Ссылка в новой задаче