@@ -85,6 +85,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
85
85
type : SyntaxFactory . IdentifierName ( "Type" ) ,
86
86
variables : SyntaxFactory . SingletonSeparatedList ( SyntaxFactory . VariableDeclarator ( "WrappedType" ) ) ) ) ) ;
87
87
88
+ bool first = true ;
88
89
foreach ( var field in nodeData . Fields )
89
90
{
90
91
if ( field . IsSkipped )
@@ -99,7 +100,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
99
100
}
100
101
101
102
// private static readonly Func<CSharpSyntaxNode, T> FieldAccessor;
102
- members = members . Add ( SyntaxFactory . FieldDeclaration (
103
+ FieldDeclarationSyntax fieldAccessor = SyntaxFactory . FieldDeclaration (
103
104
attributeLists : default ,
104
105
modifiers : SyntaxFactory . TokenList ( SyntaxFactory . Token ( SyntaxKind . PrivateKeyword ) , SyntaxFactory . Token ( SyntaxKind . StaticKeyword ) , SyntaxFactory . Token ( SyntaxKind . ReadOnlyKeyword ) ) ,
105
106
declaration : SyntaxFactory . VariableDeclaration (
@@ -111,7 +112,15 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
111
112
SyntaxFactory . IdentifierName ( concreteBase ) ,
112
113
SyntaxFactory . ParseTypeName ( field . GetAccessorResultType ( syntaxData ) ) ,
113
114
} ) ) ) ,
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 ) ;
115
124
}
116
125
117
126
foreach ( var field in nodeData . Fields )
@@ -144,7 +153,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
144
153
modifiers : SyntaxFactory . TokenList ( SyntaxFactory . Token ( SyntaxKind . PrivateKeyword ) , SyntaxFactory . Token ( SyntaxKind . ReadOnlyKeyword ) ) ,
145
154
declaration : SyntaxFactory . VariableDeclaration (
146
155
type : SyntaxFactory . IdentifierName ( concreteBase ) ,
147
- variables : SyntaxFactory . SingletonSeparatedList ( SyntaxFactory . VariableDeclarator ( "node" ) ) ) ) ) ;
156
+ variables : SyntaxFactory . SingletonSeparatedList ( SyntaxFactory . VariableDeclarator ( "node" ) ) ) ) . WithLeadingBlankLine ( ) ) ;
148
157
149
158
// WrappedType = SyntaxWrapperHelper.GetWrappedType(typeof(SyntaxWrapper));
150
159
var staticCtorStatements = SyntaxFactory . SingletonList < StatementSyntax > (
@@ -284,7 +293,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
284
293
parameterList : SyntaxFactory . ParameterList ( ) ,
285
294
initializer : null ,
286
295
body : SyntaxFactory . Block ( staticCtorStatements ) ,
287
- expressionBody : null ) ) ;
296
+ expressionBody : null ) . WithLeadingBlankLine ( ) ) ;
288
297
289
298
// private SyntaxNodeWrapper(SyntaxNode node)
290
299
// {
@@ -333,6 +342,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
333
342
// return ...;
334
343
// }
335
344
// }
345
+ first = true ;
336
346
foreach ( var field in nodeData . Fields )
337
347
{
338
348
if ( field . IsSkipped )
@@ -426,7 +436,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
426
436
// return ...;
427
437
// }
428
438
// }
429
- members = members . Add ( SyntaxFactory . PropertyDeclaration (
439
+ PropertyDeclarationSyntax property = SyntaxFactory . PropertyDeclaration (
430
440
attributeLists : default ,
431
441
modifiers : SyntaxFactory . TokenList ( SyntaxFactory . Token ( SyntaxKind . PublicKeyword ) ) ,
432
442
type : propertyType ,
@@ -438,7 +448,15 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
438
448
SyntaxFactory . ReturnStatement ( returnExpression ) ) ) ) ) ,
439
449
expressionBody : null ,
440
450
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 ) ;
442
460
}
443
461
444
462
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
447
465
// {
448
466
// return (SyntaxWrapper)node.SyntaxNode;
449
467
// }
450
- members = members . Add ( SyntaxFactory . ConversionOperatorDeclaration (
468
+ ConversionOperatorDeclarationSyntax wrapperConversion = SyntaxFactory . ConversionOperatorDeclaration (
451
469
attributeLists : default ,
452
470
modifiers : SyntaxFactory . TokenList ( SyntaxFactory . Token ( SyntaxKind . PublicKeyword ) , SyntaxFactory . Token ( SyntaxKind . StaticKeyword ) ) ,
453
471
implicitOrExplicitKeyword : SyntaxFactory . Token ( SyntaxKind . ExplicitKeyword ) ,
@@ -467,7 +485,15 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
467
485
expression : SyntaxFactory . IdentifierName ( "node" ) ,
468
486
name : SyntaxFactory . IdentifierName ( "SyntaxNode" ) ) ) ) ) ,
469
487
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 ) ;
471
497
}
472
498
473
499
// public static explicit operator WhenClauseSyntaxWrapper(SyntaxNode node)
@@ -484,7 +510,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
484
510
//
485
511
// return new WhenClauseSyntaxWrapper((CSharpSyntaxNode)node);
486
512
// }
487
- members = members . Add ( SyntaxFactory . ConversionOperatorDeclaration (
513
+ var nodeConversion = SyntaxFactory . ConversionOperatorDeclaration (
488
514
attributeLists : default ,
489
515
modifiers : SyntaxFactory . TokenList ( SyntaxFactory . Token ( SyntaxKind . PublicKeyword ) , SyntaxFactory . Token ( SyntaxKind . StaticKeyword ) ) ,
490
516
implicitOrExplicitKeyword : SyntaxFactory . Token ( SyntaxKind . ExplicitKeyword ) ,
@@ -556,7 +582,15 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
556
582
expression : SyntaxFactory . IdentifierName ( "node" ) ) ) ) ) ,
557
583
initializer : null ) ) ) ,
558
584
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 ) ;
560
594
561
595
for ( var baseNode = syntaxData . TryGetNode ( nodeData . BaseName ) ; baseNode ? . WrapperName is not null ; baseNode = syntaxData . TryGetNode ( baseNode . BaseName ) )
562
596
{
@@ -827,6 +861,7 @@ private void GenerateSyntaxWrapperHelper(in GeneratorExecutionContext context, I
827
861
SyntaxFactory . IdentifierName ( "Type" ) ,
828
862
} ) ) ) ) ) ) ) ) ) ) ) ;
829
863
864
+ bool first = true ;
830
865
foreach ( var node in wrapperTypes . OrderBy ( node => node . Name , StringComparer . OrdinalIgnoreCase ) )
831
866
{
832
867
if ( node . WrapperName is null )
@@ -890,7 +925,7 @@ private void GenerateSyntaxWrapperHelper(in GeneratorExecutionContext context, I
890
925
}
891
926
892
927
// builder.Add(typeof(ConstantPatternSyntaxWrapper), csharpCodeAnalysisAssembly.GetType(ConstantPatternSyntaxWrapper.WrappedTypeName));
893
- staticCtorStatements = staticCtorStatements . Add ( SyntaxFactory . ExpressionStatement (
928
+ ExpressionStatementSyntax statement = SyntaxFactory . ExpressionStatement (
894
929
SyntaxFactory . InvocationExpression (
895
930
expression : SyntaxFactory . MemberAccessExpression (
896
931
SyntaxKind . SimpleMemberAccessExpression ,
@@ -912,7 +947,15 @@ private void GenerateSyntaxWrapperHelper(in GeneratorExecutionContext context, I
912
947
SyntaxKind . SimpleMemberAccessExpression ,
913
948
expression : SyntaxFactory . IdentifierName ( node . WrapperName ) ,
914
949
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 ) ;
916
959
}
917
960
918
961
// WrappedTypes = builder.ToImmutable();
@@ -924,7 +967,7 @@ private void GenerateSyntaxWrapperHelper(in GeneratorExecutionContext context, I
924
967
SyntaxFactory . MemberAccessExpression (
925
968
SyntaxKind . SimpleMemberAccessExpression ,
926
969
expression : SyntaxFactory . IdentifierName ( "builder" ) ,
927
- name : SyntaxFactory . IdentifierName ( "ToImmutable" ) ) ) ) ) ) ;
970
+ name : SyntaxFactory . IdentifierName ( "ToImmutable" ) ) ) ) ) . WithLeadingBlankLine ( ) ) ;
928
971
929
972
var staticCtor = SyntaxFactory . ConstructorDeclaration (
930
973
attributeLists : default ,
@@ -933,7 +976,7 @@ private void GenerateSyntaxWrapperHelper(in GeneratorExecutionContext context, I
933
976
parameterList : SyntaxFactory . ParameterList ( ) ,
934
977
initializer : null ,
935
978
body : SyntaxFactory . Block ( staticCtorStatements ) ,
936
- expressionBody : null ) ;
979
+ expressionBody : null ) . WithLeadingBlankLine ( ) ;
937
980
938
981
// /// <summary>
939
982
// /// Gets the type that is wrapped by the given wrapper.
0 commit comments