@@ -85,6 +85,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
8585 type : SyntaxFactory . IdentifierName ( "Type" ) ,
8686 variables : SyntaxFactory . SingletonSeparatedList ( SyntaxFactory . VariableDeclarator ( "WrappedType" ) ) ) ) ) ;
8787
88+ bool first = true ;
8889 foreach ( var field in nodeData . Fields )
8990 {
9091 if ( field . IsSkipped )
@@ -99,7 +100,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
99100 }
100101
101102 // private static readonly Func<CSharpSyntaxNode, T> FieldAccessor;
102- members = members . Add ( SyntaxFactory . FieldDeclaration (
103+ FieldDeclarationSyntax fieldAccessor = SyntaxFactory . FieldDeclaration (
103104 attributeLists : default ,
104105 modifiers : SyntaxFactory . TokenList ( SyntaxFactory . Token ( SyntaxKind . PrivateKeyword ) , SyntaxFactory . Token ( SyntaxKind . StaticKeyword ) , SyntaxFactory . Token ( SyntaxKind . ReadOnlyKeyword ) ) ,
105106 declaration : SyntaxFactory . VariableDeclaration (
@@ -111,7 +112,15 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
111112 SyntaxFactory . IdentifierName ( concreteBase ) ,
112113 SyntaxFactory . ParseTypeName ( field . GetAccessorResultType ( syntaxData ) ) ,
113114 } ) ) ) ,
114- variables : SyntaxFactory . SingletonSeparatedList ( SyntaxFactory . VariableDeclarator ( field . AccessorName ) ) ) ) ) ;
115+ variables : SyntaxFactory . SingletonSeparatedList ( SyntaxFactory . VariableDeclarator ( field . AccessorName ) ) ) ) ;
116+
117+ if ( first )
118+ {
119+ fieldAccessor = fieldAccessor . WithLeadingBlankLine ( ) ;
120+ first = false ;
121+ }
122+
123+ members = members . Add ( fieldAccessor ) ;
115124 }
116125
117126 foreach ( var field in nodeData . Fields )
@@ -144,7 +153,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
144153 modifiers : SyntaxFactory . TokenList ( SyntaxFactory . Token ( SyntaxKind . PrivateKeyword ) , SyntaxFactory . Token ( SyntaxKind . ReadOnlyKeyword ) ) ,
145154 declaration : SyntaxFactory . VariableDeclaration (
146155 type : SyntaxFactory . IdentifierName ( concreteBase ) ,
147- variables : SyntaxFactory . SingletonSeparatedList ( SyntaxFactory . VariableDeclarator ( "node" ) ) ) ) ) ;
156+ variables : SyntaxFactory . SingletonSeparatedList ( SyntaxFactory . VariableDeclarator ( "node" ) ) ) ) . WithLeadingBlankLine ( ) ) ;
148157
149158 // WrappedType = SyntaxWrapperHelper.GetWrappedType(typeof(SyntaxWrapper));
150159 var staticCtorStatements = SyntaxFactory . SingletonList < StatementSyntax > (
@@ -284,7 +293,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
284293 parameterList : SyntaxFactory . ParameterList ( ) ,
285294 initializer : null ,
286295 body : SyntaxFactory . Block ( staticCtorStatements ) ,
287- expressionBody : null ) ) ;
296+ expressionBody : null ) . WithLeadingBlankLine ( ) ) ;
288297
289298 // private SyntaxNodeWrapper(SyntaxNode node)
290299 // {
@@ -333,6 +342,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
333342 // return ...;
334343 // }
335344 // }
345+ first = true ;
336346 foreach ( var field in nodeData . Fields )
337347 {
338348 if ( field . IsSkipped )
@@ -426,7 +436,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
426436 // return ...;
427437 // }
428438 // }
429- members = members . Add ( SyntaxFactory . PropertyDeclaration (
439+ PropertyDeclarationSyntax property = SyntaxFactory . PropertyDeclaration (
430440 attributeLists : default ,
431441 modifiers : SyntaxFactory . TokenList ( SyntaxFactory . Token ( SyntaxKind . PublicKeyword ) ) ,
432442 type : propertyType ,
@@ -438,7 +448,15 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
438448 SyntaxFactory . ReturnStatement ( returnExpression ) ) ) ) ) ,
439449 expressionBody : null ,
440450 initializer : null ,
441- semicolonToken : default ) ) ;
451+ semicolonToken : default ) ;
452+
453+ if ( first )
454+ {
455+ property = property . WithLeadingBlankLine ( ) ;
456+ first = false ;
457+ }
458+
459+ members = members . Add ( property ) ;
442460 }
443461
444462 for ( var baseNode = syntaxData . TryGetNode ( nodeData . BaseName ) ; baseNode ? . WrapperName is not null ; baseNode = syntaxData . TryGetNode ( baseNode . BaseName ) )
@@ -447,7 +465,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
447465 // {
448466 // return (SyntaxWrapper)node.SyntaxNode;
449467 // }
450- members = members . Add ( SyntaxFactory . ConversionOperatorDeclaration (
468+ ConversionOperatorDeclarationSyntax wrapperConversion = SyntaxFactory . ConversionOperatorDeclaration (
451469 attributeLists : default ,
452470 modifiers : SyntaxFactory . TokenList ( SyntaxFactory . Token ( SyntaxKind . PublicKeyword ) , SyntaxFactory . Token ( SyntaxKind . StaticKeyword ) ) ,
453471 implicitOrExplicitKeyword : SyntaxFactory . Token ( SyntaxKind . ExplicitKeyword ) ,
@@ -467,7 +485,15 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
467485 expression : SyntaxFactory . IdentifierName ( "node" ) ,
468486 name : SyntaxFactory . IdentifierName ( "SyntaxNode" ) ) ) ) ) ,
469487 expressionBody : null ,
470- semicolonToken : default ) ) ;
488+ semicolonToken : default ) ;
489+
490+ if ( first )
491+ {
492+ wrapperConversion = wrapperConversion . WithLeadingBlankLine ( ) ;
493+ first = false ;
494+ }
495+
496+ members = members . Add ( wrapperConversion ) ;
471497 }
472498
473499 // public static explicit operator WhenClauseSyntaxWrapper(SyntaxNode node)
@@ -484,7 +510,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
484510 //
485511 // return new WhenClauseSyntaxWrapper((CSharpSyntaxNode)node);
486512 // }
487- members = members . Add ( SyntaxFactory . ConversionOperatorDeclaration (
513+ var nodeConversion = SyntaxFactory . ConversionOperatorDeclaration (
488514 attributeLists : default ,
489515 modifiers : SyntaxFactory . TokenList ( SyntaxFactory . Token ( SyntaxKind . PublicKeyword ) , SyntaxFactory . Token ( SyntaxKind . StaticKeyword ) ) ,
490516 implicitOrExplicitKeyword : SyntaxFactory . Token ( SyntaxKind . ExplicitKeyword ) ,
@@ -556,7 +582,15 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
556582 expression : SyntaxFactory . IdentifierName ( "node" ) ) ) ) ) ,
557583 initializer : null ) ) ) ,
558584 expressionBody : null ,
559- semicolonToken : default ) ) ;
585+ semicolonToken : default ) ;
586+
587+ if ( first )
588+ {
589+ nodeConversion = nodeConversion . WithLeadingBlankLine ( ) ;
590+ first = false ;
591+ }
592+
593+ members = members . Add ( nodeConversion ) ;
560594
561595 for ( var baseNode = syntaxData . TryGetNode ( nodeData . BaseName ) ; baseNode ? . WrapperName is not null ; baseNode = syntaxData . TryGetNode ( baseNode . BaseName ) )
562596 {
@@ -827,6 +861,7 @@ private void GenerateSyntaxWrapperHelper(in GeneratorExecutionContext context, I
827861 SyntaxFactory . IdentifierName ( "Type" ) ,
828862 } ) ) ) ) ) ) ) ) ) ) ) ;
829863
864+ bool first = true ;
830865 foreach ( var node in wrapperTypes . OrderBy ( node => node . Name , StringComparer . OrdinalIgnoreCase ) )
831866 {
832867 if ( node . WrapperName is null )
@@ -890,7 +925,7 @@ private void GenerateSyntaxWrapperHelper(in GeneratorExecutionContext context, I
890925 }
891926
892927 // builder.Add(typeof(ConstantPatternSyntaxWrapper), csharpCodeAnalysisAssembly.GetType(ConstantPatternSyntaxWrapper.WrappedTypeName));
893- staticCtorStatements = staticCtorStatements . Add ( SyntaxFactory . ExpressionStatement (
928+ ExpressionStatementSyntax statement = SyntaxFactory . ExpressionStatement (
894929 SyntaxFactory . InvocationExpression (
895930 expression : SyntaxFactory . MemberAccessExpression (
896931 SyntaxKind . SimpleMemberAccessExpression ,
@@ -912,7 +947,15 @@ private void GenerateSyntaxWrapperHelper(in GeneratorExecutionContext context, I
912947 SyntaxKind . SimpleMemberAccessExpression ,
913948 expression : SyntaxFactory . IdentifierName ( node . WrapperName ) ,
914949 name : SyntaxFactory . IdentifierName ( "WrappedTypeName" ) ) ) ) ) ) ) ,
915- } ) ) ) ) ) ;
950+ } ) ) ) ) ;
951+
952+ if ( first )
953+ {
954+ statement = statement . WithLeadingBlankLine ( ) ;
955+ first = false ;
956+ }
957+
958+ staticCtorStatements = staticCtorStatements . Add ( statement ) ;
916959 }
917960
918961 // WrappedTypes = builder.ToImmutable();
@@ -924,7 +967,7 @@ private void GenerateSyntaxWrapperHelper(in GeneratorExecutionContext context, I
924967 SyntaxFactory . MemberAccessExpression (
925968 SyntaxKind . SimpleMemberAccessExpression ,
926969 expression : SyntaxFactory . IdentifierName ( "builder" ) ,
927- name : SyntaxFactory . IdentifierName ( "ToImmutable" ) ) ) ) ) ) ;
970+ name : SyntaxFactory . IdentifierName ( "ToImmutable" ) ) ) ) ) . WithLeadingBlankLine ( ) ) ;
928971
929972 var staticCtor = SyntaxFactory . ConstructorDeclaration (
930973 attributeLists : default ,
@@ -933,7 +976,7 @@ private void GenerateSyntaxWrapperHelper(in GeneratorExecutionContext context, I
933976 parameterList : SyntaxFactory . ParameterList ( ) ,
934977 initializer : null ,
935978 body : SyntaxFactory . Block ( staticCtorStatements ) ,
936- expressionBody : null ) ;
979+ expressionBody : null ) . WithLeadingBlankLine ( ) ;
937980
938981 // /// <summary>
939982 // /// Gets the type that is wrapped by the given wrapper.
0 commit comments