private static ImmutableArray <TExtension> CreateLanguageSpecificExtensions(string language, Extensions <TExtension> extensions) { // Get all analyzers in the assembly for the given language. var builder = ImmutableArray.CreateBuilder <TExtension>(); extensions.AddExtensions(builder, language); return(builder.ToImmutable()); }
private static ImmutableArray <TExtension> CreateExtensionsForAllLanguages(Extensions <TExtension> extensions) { // Get all analyzers in the assembly. ImmutableDictionary <string, ImmutableArray <TExtension> > .Builder map = ImmutableDictionary.CreateBuilder <string, ImmutableArray <TExtension> >(); extensions.AddExtensions(map); ImmutableArray <TExtension> .Builder builder = ImmutableArray.CreateBuilder <TExtension>(); foreach (ImmutableArray <TExtension> analyzers in map.Values) { builder.AddRange(analyzers); } return(builder.ToImmutable()); }
/// <summary> /// Adds the <see cref="ImmutableArray{T}"/> of <see cref="ISourceGenerator"/> defined in this assembly reference of given <paramref name="language"/>. /// </summary> internal void AddGenerators(ImmutableArray <ISourceGenerator> .Builder builder, string language) { _generators.AddExtensions(builder, language); }
/// <summary> /// Adds the <see cref="ImmutableArray{T}"/> of <see cref="DiagnosticAnalyzer"/> defined in this assembly reference of given <paramref name="language"/>. /// </summary> internal void AddAnalyzers(ImmutableArray <DiagnosticAnalyzer> .Builder builder, string language) { _diagnosticAnalyzers.AddExtensions(builder, language); }
/// <summary> /// Adds the <see cref="ImmutableDictionary{TKey, TValue}"/> of <see cref="ImmutableArray{T}"/> of <see cref="DiagnosticAnalyzer"/> /// for all languages defined in this assembly reference. /// </summary> internal void AddAnalyzers(ImmutableDictionary <string, ImmutableArray <DiagnosticAnalyzer> > .Builder builder) { _diagnosticAnalyzers.AddExtensions(builder); }
/// <summary> /// Adds the <see cref="ImmutableArray{T}"/> of <see cref="DiagnosticAnalyzer"/> defined in this assembly reference of given <paramref name="language"/>. /// </summary> internal void AddAnalyzers(ImmutableArray <DiagnosticAnalyzer> .Builder builder, string language, Func <DiagnosticAnalyzer, bool>?shouldInclude = null) { _diagnosticAnalyzers.AddExtensions(builder, language, shouldInclude); }