17 public void Initialize(IncrementalGeneratorInitializationContext context)
21 IncrementalValuesProvider<ApiModel> apiPipeline =
23 static (syntaxNode, _) =>
24 syntaxNode is ClassDeclarationSyntax,
25 static (context, _) =>
27 INamedTypeSymbol api =
28 (INamedTypeSymbol)context.TargetSymbol;
37 IncrementalValuesProvider<ObjectModel> objectPipeline =
39 static (syntaxNode, _) =>
40 syntaxNode is ClassDeclarationSyntax,
41 static (context, _) =>
43 INamedTypeSymbol api =
44 (INamedTypeSymbol)context.TargetSymbol;
53 context.RegisterSourceOutput(apiPipeline,
54 static (context, model) =>
58 if (model.Diagnostics.Length != 0)
60 foreach (Diagnostic diagnostic
in model.Diagnostics)
62 context.ReportDiagnostic(diagnostic);
63 isError |= diagnostic.Severity == DiagnosticSeverity.Error;
67 BadInteropApiSourceGenerator gen =
new BadInteropApiSourceGenerator(context);
69 SourceText sourceText =
70 SourceText.From(gen.GenerateModelSource(context, model, isError),
74 context.AddSource($
"{model.ClassName}.Api.g.cs", sourceText);
78 context.RegisterSourceOutput(objectPipeline,
79 static (context, model) =>
83 if (model.Diagnostics.Length != 0)
85 foreach (Diagnostic diagnostic
in model.Diagnostics)
87 context.ReportDiagnostic(diagnostic);
88 isError |= diagnostic.Severity == DiagnosticSeverity.Error;
92 BadInteropObjectSourceGenerator gen =
new BadInteropObjectSourceGenerator(context);
94 SourceText sourceText =
95 SourceText.From(gen.GenerateModelSource(context, model, isError),
99 context.AddSource($
"{model.ClassName}.Object.g.cs", sourceText);