15 public void Initialize(IncrementalGeneratorInitializationContext context)
19 IncrementalValuesProvider<ApiModel> pipeline = context.SyntaxProvider.ForAttributeWithMetadataName(
21 static (syntaxNode, _) => syntaxNode is ClassDeclarationSyntax,
22 static (context, _) =>
24 INamedTypeSymbol api = (INamedTypeSymbol)context.TargetSymbol;
31 context.RegisterSourceOutput(
33 static (context, model) =>
36 if (model.Diagnostics.Length != 0)
38 foreach (Diagnostic diagnostic
in model.Diagnostics)
40 context.ReportDiagnostic(diagnostic);
41 isError |= diagnostic.Severity == DiagnosticSeverity.Error;
45 BadInteropApiSourceGenerator gen =
new BadInteropApiSourceGenerator(context);
46 SourceText sourceText = SourceText.From(
47 gen.GenerateModelSource(context, model, isError),
52 context.AddSource($
"{model.ClassName}.g.cs", sourceText);