From 4b955ee91a66b8a2016e7bceffbcd3ceee084828 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Wed, 11 Mar 2015 14:03:32 -0700 Subject: [PATCH] added for* statements to isCompletedNode --- src/services/formatting/smartIndenter.ts | 6 ++++++ .../fourslash/smartIndentStatementFor.ts | 5 +++++ .../fourslash/smartIndentStatementForIn.ts | 5 +++++ .../fourslash/smartIndentStatementForOf.ts | 20 +++++++++++++++++++ 4 files changed, 36 insertions(+) create mode 100644 tests/cases/fourslash/smartIndentStatementForOf.ts diff --git a/src/services/formatting/smartIndenter.ts b/src/services/formatting/smartIndenter.ts index 96159d332fe..f1d0935c132 100644 --- a/src/services/formatting/smartIndenter.ts +++ b/src/services/formatting/smartIndenter.ts @@ -461,6 +461,12 @@ module ts.formatting { case SyntaxKind.DefaultClause: // there is no such thing as terminator token for CaseClause\DefaultClause so for simplicitly always consider them non-completed return false; + case SyntaxKind.ForStatement: + return isCompletedNode((n).statement, sourceFile); + case SyntaxKind.ForInStatement: + return isCompletedNode((n).statement, sourceFile); + case SyntaxKind.ForOfStatement: + return isCompletedNode((n).statement, sourceFile); case SyntaxKind.WhileStatement: return isCompletedNode((n).statement, sourceFile); case SyntaxKind.DoStatement: diff --git a/tests/cases/fourslash/smartIndentStatementFor.ts b/tests/cases/fourslash/smartIndentStatementFor.ts index a3fc2a9a0ce..777dd9ac5dc 100644 --- a/tests/cases/fourslash/smartIndentStatementFor.ts +++ b/tests/cases/fourslash/smartIndentStatementFor.ts @@ -5,6 +5,8 @@ //// /*insideStatement*/ //// } //// /*afterStatement*/ +//// for (var i = 0;;) +//// /*insideStatement2*/ ////} goTo.marker('insideStatement'); @@ -12,3 +14,6 @@ verify.indentationIs(8); goTo.marker('afterStatement'); verify.indentationIs(4); + +goTo.marker('insideStatement2'); +verify.indentationIs(8); diff --git a/tests/cases/fourslash/smartIndentStatementForIn.ts b/tests/cases/fourslash/smartIndentStatementForIn.ts index 355f175b7df..9ae65f27452 100644 --- a/tests/cases/fourslash/smartIndentStatementForIn.ts +++ b/tests/cases/fourslash/smartIndentStatementForIn.ts @@ -6,6 +6,8 @@ //// /*insideStatement*/ //// } //// /*afterStatement*/ +//// for (var i in []) +//// /*insideStatement2*/ ////} goTo.marker('insideStatement'); @@ -13,3 +15,6 @@ verify.indentationIs(8); goTo.marker('afterStatement'); verify.indentationIs(4); + +goTo.marker('insideStatement2'); +verify.indentationIs(8); diff --git a/tests/cases/fourslash/smartIndentStatementForOf.ts b/tests/cases/fourslash/smartIndentStatementForOf.ts new file mode 100644 index 00000000000..3126e63e6a5 --- /dev/null +++ b/tests/cases/fourslash/smartIndentStatementForOf.ts @@ -0,0 +1,20 @@ +/// + +////function Foo() { +//// for (var i of []) +//// { +//// /*insideStatement*/ +//// } +//// /*afterStatement*/ +//// for (var i of []) +//// /*insideStatement2*/ +////} + +goTo.marker('insideStatement'); +verify.indentationIs(8); + +goTo.marker('afterStatement'); +verify.indentationIs(4); + +goTo.marker('insideStatement2'); +verify.indentationIs(8);