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

Commit 2cc8b26

Browse files
author
Lakshmi Priya Sekar
committed
Fix bug
1 parent 38fccd1 commit 2cc8b26

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,16 @@ public async Task<Document> ProcessAsync(Document document, CancellationToken ca
3333
token.LeadingTrivia.First().CSharpKind() == SyntaxKind.EndOfLineTrivia ||
3434
token.LeadingTrivia.Last().CSharpKind() == SyntaxKind.EndOfLineTrivia ||
3535
token.LeadingTrivia.Last().CSharpKind() == SyntaxKind.WhitespaceTrivia));
36-
36+
3737
return document.WithSyntaxRoot(syntaxRoot.ReplaceTokens(tokensToReplace, replaceTriviaInTokens));
3838
}
3939

4040
private static IEnumerable<SyntaxTrivia> RemoveNewLinesFromTop(IEnumerable<SyntaxTrivia> trivia)
4141
{
42-
int elementsToRemoveAtStart = 1;
42+
int elementsToRemoveAtStart = 0;
4343
if (trivia.First().CSharpKind() == SyntaxKind.EndOfLineTrivia)
4444
{
45+
elementsToRemoveAtStart = 1;
4546
if (trivia.Count() > 1)
4647
{
4748
while (elementsToRemoveAtStart < trivia.Count() &&
@@ -63,7 +64,7 @@ private static IEnumerable<SyntaxTrivia> RemoveNewLinesFromBotton(IEnumerable<Sy
6364
trivia = trivia.Take(trivia.Count() - 1);
6465
}
6566

66-
if (trivia.Any() && trivia.Last().CSharpKind() == SyntaxKind.EndOfLineTrivia)
67+
if (trivia.Any() && trivia.Last().CSharpKind() == SyntaxKind.EndOfLineTrivia)
6768
{
6869
if (trivia.Count() > 1)
6970
{
@@ -75,7 +76,11 @@ private static IEnumerable<SyntaxTrivia> RemoveNewLinesFromBotton(IEnumerable<Sy
7576

7677
if (addWhitespace)
7778
{
78-
return trivia.Take(elementsToRemoveAtEnd + 1).AddNewLine().AddWhiteSpaceTrivia();
79+
var newTrivia = trivia.Take(elementsToRemoveAtEnd + 1);
80+
if (newTrivia.Last().IsDirective)
81+
return newTrivia.AddWhiteSpaceTrivia();
82+
83+
return newTrivia.AddNewLine().AddWhiteSpaceTrivia();
7984
}
8085

8186
return trivia.Take(elementsToRemoveAtEnd + 1);

0 commit comments

Comments
 (0)