@@ -34,14 +34,16 @@ public void OnVisitSyntaxNode(GeneratorSyntaxContext context)
3434 if ( context . Node is FieldDeclarationSyntax { AttributeLists : { Count : > 0 } } fieldDeclaration &&
3535 context . SemanticModel . Compilation . GetTypeByMetadataName ( "Microsoft.Toolkit.Mvvm.ComponentModel.ObservablePropertyAttribute" ) is INamedTypeSymbol attributeSymbol )
3636 {
37+ SyntaxTriviaList leadingTrivia = fieldDeclaration . GetLeadingTrivia ( ) ;
38+
3739 foreach ( VariableDeclaratorSyntax variableDeclarator in fieldDeclaration . Declaration . Variables )
3840 {
3941 if ( context . SemanticModel . GetDeclaredSymbol ( variableDeclarator ) is IFieldSymbol fieldSymbol &&
4042 fieldSymbol . GetAttributes ( ) . FirstOrDefault ( a => SymbolEqualityComparer . Default . Equals ( a . AttributeClass , attributeSymbol ) ) is AttributeData attributeData &&
4143 attributeData . ApplicationSyntaxReference is SyntaxReference syntaxReference &&
4244 syntaxReference . GetSyntax ( ) is AttributeSyntax attributeSyntax )
4345 {
44- this . gatheredInfo . Add ( new Item ( variableDeclarator , fieldSymbol , attributeSyntax , attributeData ) ) ;
46+ this . gatheredInfo . Add ( new Item ( leadingTrivia , variableDeclarator , fieldSymbol , attributeSyntax , attributeData ) ) ;
4547 }
4648 }
4749 }
@@ -50,11 +52,13 @@ attributeData.ApplicationSyntaxReference is SyntaxReference syntaxReference &&
5052 /// <summary>
5153 /// A model for a group of item representing a discovered type to process.
5254 /// </summary>
55+ /// <param name="LeadingTrivia">The leading trivia for the field declaration.</param>
5356 /// <param name="FieldDeclarator">The <see cref="VariableDeclaratorSyntax"/> instance for the target field variable declaration.</param>
5457 /// <param name="FieldSymbol">The <see cref="IFieldSymbol"/> instance for <paramref name="FieldDeclarator"/>.</param>
5558 /// <param name="AttributeSyntax">The <see cref="AttributeSyntax"/> instance for the target attribute over <paramref name="FieldDeclarator"/>.</param>
5659 /// <param name="AttributeData">The <see cref="AttributeData"/> instance for <paramref name="AttributeSyntax"/>.</param>
5760 public sealed record Item (
61+ SyntaxTriviaList LeadingTrivia ,
5862 VariableDeclaratorSyntax FieldDeclarator ,
5963 IFieldSymbol FieldSymbol ,
6064 AttributeSyntax AttributeSyntax ,
0 commit comments