Skip to content

Commit 416ba76

Browse files
committed
Switch generator to ForAttributeWithMetadataName usage
1 parent b29890f commit 416ba76

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

src/generator/Vertical/Cli/SourceGenerator/CommandLineBuilderIncrementalGenerator.cs

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
1212
{
1313
var modelTypes = context
1414
.SyntaxProvider
15-
.CreateSyntaxProvider(
16-
predicate: static (node, _) => SelectAttributeNotes(node),
17-
transform: static (syntaxContext, _) => SelectModelType(syntaxContext))
15+
.ForAttributeWithMetadataName(
16+
fullyQualifiedMetadataName: "Vertical.Cli.Binding.GeneratedBindingAttribute",
17+
transform: static (syntaxContext, _) => SelectModelType(syntaxContext),
18+
predicate: static (_, _) => true)
1819
.Where(item => item is not null);
20+
1921

2022
var collected = context
2123
.CompilationProvider
@@ -40,19 +42,12 @@ private static bool SelectAttributeNotes(SyntaxNode node)
4042
return node is AttributeSyntax attributeSyntax && attributeSyntax.Name.GetSimpleName()
4143
is "GeneratedBinding" or "GeneratedBindingAttribute";
4244
}
43-
44-
private static ITypeSymbol? SelectModelType(GeneratorSyntaxContext syntaxContext)
45+
46+
private static ITypeSymbol? SelectModelType(GeneratorAttributeSyntaxContext syntaxContext)
4547
{
46-
var attributeNode = syntaxContext.Node;
47-
var attributeListNode = attributeNode.Parent;
48-
var annotatedSyntaxNode = attributeListNode?.Parent;
49-
50-
if (annotatedSyntaxNode == null)
51-
return null;
52-
5348
var symbol = syntaxContext
5449
.SemanticModel
55-
.GetDeclaredSymbol(annotatedSyntaxNode);
50+
.GetDeclaredSymbol(syntaxContext.TargetNode);
5651

5752
var modelType = symbol switch
5853
{

0 commit comments

Comments
 (0)