Skip to content

Commit d2ecfa7

Browse files
committed
Merge pull request #2303 from Microsoft/smartIndentInIncompleteForLikeStatements
added for* statements to isCompletedNode
2 parents 76dcfb6 + 4b955ee commit d2ecfa7

File tree

4 files changed

+36
-0
lines changed

4 files changed

+36
-0
lines changed

src/services/formatting/smartIndenter.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,12 @@ module ts.formatting {
461461
case SyntaxKind.DefaultClause:
462462
// there is no such thing as terminator token for CaseClause\DefaultClause so for simplicitly always consider them non-completed
463463
return false;
464+
case SyntaxKind.ForStatement:
465+
return isCompletedNode((<ForStatement>n).statement, sourceFile);
466+
case SyntaxKind.ForInStatement:
467+
return isCompletedNode((<ForInStatement>n).statement, sourceFile);
468+
case SyntaxKind.ForOfStatement:
469+
return isCompletedNode((<ForOfStatement>n).statement, sourceFile);
464470
case SyntaxKind.WhileStatement:
465471
return isCompletedNode((<WhileStatement>n).statement, sourceFile);
466472
case SyntaxKind.DoStatement:

tests/cases/fourslash/smartIndentStatementFor.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,15 @@
55
//// /*insideStatement*/
66
//// }
77
//// /*afterStatement*/
8+
//// for (var i = 0;;)
9+
//// /*insideStatement2*/
810
////}
911

1012
goTo.marker('insideStatement');
1113
verify.indentationIs(8);
1214

1315
goTo.marker('afterStatement');
1416
verify.indentationIs(4);
17+
18+
goTo.marker('insideStatement2');
19+
verify.indentationIs(8);

tests/cases/fourslash/smartIndentStatementForIn.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,15 @@
66
//// /*insideStatement*/
77
//// }
88
//// /*afterStatement*/
9+
//// for (var i in [])
10+
//// /*insideStatement2*/
911
////}
1012

1113
goTo.marker('insideStatement');
1214
verify.indentationIs(8);
1315

1416
goTo.marker('afterStatement');
1517
verify.indentationIs(4);
18+
19+
goTo.marker('insideStatement2');
20+
verify.indentationIs(8);
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/// <reference path='fourslash.ts'/>
2+
3+
////function Foo() {
4+
//// for (var i of [])
5+
//// {
6+
//// /*insideStatement*/
7+
//// }
8+
//// /*afterStatement*/
9+
//// for (var i of [])
10+
//// /*insideStatement2*/
11+
////}
12+
13+
goTo.marker('insideStatement');
14+
verify.indentationIs(8);
15+
16+
goTo.marker('afterStatement');
17+
verify.indentationIs(4);
18+
19+
goTo.marker('insideStatement2');
20+
verify.indentationIs(8);

0 commit comments

Comments
 (0)