@@ -346,11 +346,15 @@ private DiagnosticRecord GetViolationsForUncuddledBranches(
346
346
{
347
347
var expectedNewLinePos = closeBracePos + 1 ;
348
348
349
+ // this will not work if there is a comment in between any tokens.
350
+ // find violation only if the open brace is on the same line as the branching statement.
351
+ // todo handle types in catch statement
349
352
if ( tokens . Length > 1 && tokens . Length > expectedNewLinePos )
350
353
{
351
354
var closeBraceToken = tokens [ closeBracePos ] ;
352
355
if ( tokens [ closeBracePos + 1 ] . Kind == TokenKind . NewLine &&
353
- IsBranchingStatementToken ( tokens [ closeBracePos + 2 ] ) )
356
+ IsBranchingStatementToken ( tokens [ closeBracePos + 2 ] ) &&
357
+ tokens [ closeBracePos + 3 ] . Kind == TokenKind . LCurly )
354
358
{
355
359
return new DiagnosticRecord (
356
360
GetError ( Strings . PlaceCloseBraceErrorShouldCuddleBranchStatement ) ,
@@ -359,13 +363,32 @@ private DiagnosticRecord GetViolationsForUncuddledBranches(
359
363
GetDiagnosticSeverity ( ) ,
360
364
fileName ,
361
365
null ,
362
- GetCorrectionsForBraceShouldHaveNewLineAfter ( tokens , closeBracePos , openBracePos , fileName ) ) ;
366
+ GetCorrectionsForUncuddledBranches ( tokens , closeBracePos , closeBracePos + 2 , fileName ) ) ;
363
367
}
364
368
}
365
369
366
370
return null ;
367
371
}
368
372
373
+ private List < CorrectionExtent > GetCorrectionsForUncuddledBranches (
374
+ Token [ ] tokens ,
375
+ int closeBracePos ,
376
+ int branchStatementPos ,
377
+ string fileName )
378
+ {
379
+ var corrections = new List < CorrectionExtent > ( ) ;
380
+ var closeBraceToken = tokens [ closeBracePos ] ;
381
+ var branchStatementToken = tokens [ branchStatementPos ] ;
382
+ corrections . Add ( new CorrectionExtent (
383
+ closeBraceToken . Extent . StartLineNumber ,
384
+ branchStatementToken . Extent . EndLineNumber ,
385
+ closeBraceToken . Extent . StartColumnNumber ,
386
+ branchStatementToken . Extent . EndColumnNumber ,
387
+ closeBraceToken . Extent . Text + ' ' + branchStatementToken . Extent . Text ,
388
+ fileName ) ) ;
389
+ return corrections ;
390
+
391
+ }
369
392
370
393
private DiagnosticRecord GetViolationForBraceShouldBeOnNewLine (
371
394
Token [ ] tokens ,
0 commit comments