@@ -277,9 +277,15 @@ private List<CorrectionExtent> GetCorrectionsForBraceShouldHaveNewLineAfter(
277277 var corrections = new List < CorrectionExtent > ( ) ;
278278 var nextToken = tokens [ closeBracePos + 1 ] ;
279279 var closeBraceToken = tokens [ closeBracePos ] ;
280+
281+ // Also remove the whitespace between the close brace and the next token
282+ // and indent the next token to the same level as the close brace
280283 corrections . Add ( new CorrectionExtent (
281- closeBraceToken . Extent ,
282- closeBraceToken . Text + Environment . NewLine ,
284+ closeBraceToken . Extent . StartLineNumber ,
285+ nextToken . Extent . StartLineNumber ,
286+ closeBraceToken . Extent . StartColumnNumber ,
287+ nextToken . Extent . StartColumnNumber ,
288+ closeBraceToken . Text + Environment . NewLine + GetIndentation ( tokens , closeBracePos , openBracePos ) ,
283289 fileName ) ) ;
284290 return corrections ;
285291 }
@@ -296,7 +302,7 @@ private string GetIndentation(Token[] tokens, int closeBracePos, int openBracePo
296302 // if open brace follows any keywords use the identation of the first keyword
297303 // on the line containing the open brace
298304 Token firstTokenOnOpenBraceLine = openBraceToken ;
299- for ( int k = openBracePos ; k > 0 ; -- k )
305+ for ( int k = openBracePos ; k >= 0 ; -- k )
300306 {
301307 if ( tokens [ k ] . Extent . StartLineNumber == firstTokenOnOpenBraceLine . Extent . StartLineNumber )
302308 {
@@ -433,10 +439,21 @@ private List<CorrectionExtent> GetCorrectionsForBraceShouldBeOnNewLine(
433439 {
434440 var corrections = new List < CorrectionExtent > ( ) ;
435441 var closeBraceToken = tokens [ closeBracePos ] ;
442+
443+ // Also remove any whitespace between the preceding token and the close brace
444+ // so that the preceding line does not end with a trailing whitespace
445+ var startLineNumber = closeBraceToken . Extent . StartLineNumber ;
446+ var startColumnNumber = closeBraceToken . Extent . StartColumnNumber ;
447+ var precedingTokenExtent = tokens [ closeBracePos - 1 ] . Extent ;
448+ if ( precedingTokenExtent . EndLineNumber == startLineNumber )
449+ {
450+ startColumnNumber = precedingTokenExtent . EndColumnNumber ;
451+ }
452+
436453 corrections . Add ( new CorrectionExtent (
437- closeBraceToken . Extent . StartLineNumber ,
454+ startLineNumber ,
438455 closeBraceToken . Extent . EndLineNumber ,
439- closeBraceToken . Extent . StartColumnNumber ,
456+ startColumnNumber ,
440457 closeBraceToken . Extent . EndColumnNumber ,
441458 Environment . NewLine + GetIndentation ( tokens , closeBracePos , openBracePos ) + closeBraceToken . Extent . Text ,
442459 fileName ) ) ;
0 commit comments