Skip to content
This repository was archived by the owner on Jul 12, 2022. It is now read-only.

Commit cb3b3d1

Browse files
committed
More newline fixes
1 parent 7a417d3 commit cb3b3d1

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/Microsoft.DotNet.CodeFormatting/Rules/BraceNewLineRule.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ private static SyntaxToken FixCloseBraceLeadingTrivia(SyntaxToken token)
123123
else
124124
{
125125
// new line and we are done.
126-
triviaList = SyntaxFactory.TriviaList(SyntaxFactory.CarriageReturnLineFeed);
126+
triviaList = SyntaxFactory.TriviaList(SyntaxUtil.GetBestNewLineTrivia(token));
127127
}
128128
}
129129
else
@@ -148,7 +148,7 @@ private static SyntaxTriviaList RemoveNewLinesFromTop(SyntaxTriviaList triviaLis
148148
}
149149

150150
var list = new List<SyntaxTrivia>(triviaList.Count);
151-
list.Add(SyntaxFactory.CarriageReturnLineFeed);
151+
list.Add(SyntaxUtil.GetBestNewLineTrivia(triviaList));
152152

153153
var index = MovePastSimpleNewLines(triviaList, 0);
154154
while (index < triviaList.Count)
@@ -200,7 +200,7 @@ private static SyntaxTriviaList RemoveNewLinesFromBottom(SyntaxTriviaList trivia
200200
// A directive has an implicit new line after it.
201201
if (!list[index].IsDirective)
202202
{
203-
list.Add(SyntaxFactory.CarriageReturnLineFeed);
203+
list.Add(SyntaxUtil.GetBestNewLineTrivia(triviaList));
204204
}
205205

206206
if (triviaList.Last().IsKind(SyntaxKind.WhitespaceTrivia))

src/Microsoft.DotNet.CodeFormatting/SyntaxUtil.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,18 @@ internal static SyntaxTrivia GetBestNewLineTrivia(SyntaxNode node, SyntaxTrivia?
2727
return defaultNewLineTrivia ?? SyntaxFactory.CarriageReturnLineFeed;
2828
}
2929

30+
internal static SyntaxTrivia GetBestNewLineTrivia(SyntaxToken token, SyntaxTrivia? defaultNewLineTrivia = null)
31+
{
32+
SyntaxTrivia trivia;
33+
if (TryGetExistingNewLine(token.LeadingTrivia, out trivia) ||
34+
TryGetExistingNewLine(token.TrailingTrivia, out trivia))
35+
{
36+
return trivia;
37+
}
38+
39+
return defaultNewLineTrivia ?? SyntaxFactory.CarriageReturnLineFeed;
40+
}
41+
3042
internal static SyntaxTrivia GetBestNewLineTrivia(SyntaxTriviaList list, SyntaxTrivia? defaultNewLineTrivia = null)
3143
{
3244
SyntaxTrivia trivia;

0 commit comments

Comments
 (0)