Skip to content

Commit 16bd3d3

Browse files
authored
fixing issue with comment on generic causing member chain to break (#1563)
closes #1555
1 parent 5a9e32d commit 16bd3d3

File tree

3 files changed

+19
-6
lines changed

3 files changed

+19
-6
lines changed

Src/CSharpier.Tests/FormattingTests/TestFiles/cs/MemberChains.test

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,3 +274,9 @@ builder
274274
.CallMethod()
275275
//.CallMethod()
276276
;
277+
278+
// CommentOnGenericDoesNotBreakChain
279+
SomeObject<SomeThing>.SomeProperty.SomeOtherProperty = 1;
280+
281+
// CommentOnGenericDoesNotBreakChain
282+
SomeObject<SomeThing>.SomeProperty.CallMethod();

Src/CSharpier/SyntaxPrinter/SyntaxNodePrinters/GenericName.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@ internal static class GenericName
44
{
55
public static Doc Print(GenericNameSyntax node, PrintingContext context)
66
{
7-
return Doc.Group(
8-
Token.Print(node.Identifier, context),
9-
Node.Print(node.TypeArgumentList, context)
7+
return Doc.Concat(
8+
Token.PrintLeadingTrivia(node.Identifier, context),
9+
Doc.Group(
10+
Token.PrintWithoutLeadingTrivia(node.Identifier, context),
11+
Node.Print(node.TypeArgumentList, context)
12+
)
1013
);
1114
}
1215
}

Src/CSharpier/SyntaxPrinter/Token.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ private static Doc PrintSyntaxToken(
4646

4747
var docs = new ValueListBuilder<Doc>([null, null, null, null, null, null, null, null]);
4848

49-
if (!skipLeadingTrivia && !context.State.SkipNextLeadingTrivia)
49+
if (!skipLeadingTrivia)
5050
{
5151
var leadingTrivia = PrintLeadingTrivia(syntaxToken, context);
5252
if (leadingTrivia != Doc.Null)
@@ -55,8 +55,6 @@ private static Doc PrintSyntaxToken(
5555
}
5656
}
5757

58-
context.State.SkipNextLeadingTrivia = false;
59-
6058
if (
6159
(
6260
syntaxToken.RawSyntaxKind() == SyntaxKind.StringLiteralToken
@@ -154,6 +152,12 @@ context.State.TrailingComma is not null
154152

155153
public static Doc PrintLeadingTrivia(SyntaxToken syntaxToken, PrintingContext context)
156154
{
155+
if (context.State.SkipNextLeadingTrivia)
156+
{
157+
context.State.SkipNextLeadingTrivia = false;
158+
return Doc.Null;
159+
}
160+
157161
var isClosingBrace =
158162
syntaxToken.RawSyntaxKind() == SyntaxKind.CloseBraceToken
159163
|| syntaxToken.Parent is CollectionExpressionSyntax

0 commit comments

Comments
 (0)