diff --git a/src/services/formatting/smartIndenter.ts b/src/services/formatting/smartIndenter.ts
index 38ed4cf8442..c0a84e25e24 100644
--- a/src/services/formatting/smartIndenter.ts
+++ b/src/services/formatting/smartIndenter.ts
@@ -368,6 +368,8 @@ module ts.formatting {
case SyntaxKind.ExportAssignment:
case SyntaxKind.ReturnStatement:
case SyntaxKind.ConditionalExpression:
+ case SyntaxKind.ArrayBindingPattern:
+ case SyntaxKind.ObjectBindingPattern:
return true;
}
return false;
diff --git a/tests/cases/fourslash/indentationAfterArrayBindingPattern01.ts b/tests/cases/fourslash/indentationAfterArrayBindingPattern01.ts
new file mode 100644
index 00000000000..980f2383299
--- /dev/null
+++ b/tests/cases/fourslash/indentationAfterArrayBindingPattern01.ts
@@ -0,0 +1,14 @@
+///
+
+////var /*1*/[/*2*/a,/*3*/b,/*4*/
+
+function verifyIndentationAfterNewLine(marker: string, indentation: number): void {
+ goTo.marker(marker);
+ edit.insert("\r\n");
+ verify.indentationIs(indentation);
+}
+
+verifyIndentationAfterNewLine("1", 4);
+verifyIndentationAfterNewLine("2", 8);
+verifyIndentationAfterNewLine("3", 8);
+verifyIndentationAfterNewLine("4", 8);
\ No newline at end of file
diff --git a/tests/cases/fourslash/indentationAfterArrayBindingPattern02.ts b/tests/cases/fourslash/indentationAfterArrayBindingPattern02.ts
new file mode 100644
index 00000000000..b9a1da7796a
--- /dev/null
+++ b/tests/cases/fourslash/indentationAfterArrayBindingPattern02.ts
@@ -0,0 +1,15 @@
+///
+
+////var /*1*/[/*2*/a,/*3*/b/*4*/]/*5*/
+
+function verifyIndentationAfterNewLine(marker: string, indentation: number): void {
+ goTo.marker(marker);
+ edit.insert("\r\n");
+ verify.indentationIs(indentation);
+}
+
+verifyIndentationAfterNewLine("1", 4);
+verifyIndentationAfterNewLine("2", 8);
+verifyIndentationAfterNewLine("3", 8);
+verifyIndentationAfterNewLine("4", 8);
+verifyIndentationAfterNewLine("5", 0);
\ No newline at end of file
diff --git a/tests/cases/fourslash/indentationAfterObjectBindingPattern01.ts b/tests/cases/fourslash/indentationAfterObjectBindingPattern01.ts
new file mode 100644
index 00000000000..8bfcbe83b72
--- /dev/null
+++ b/tests/cases/fourslash/indentationAfterObjectBindingPattern01.ts
@@ -0,0 +1,15 @@
+///
+
+////var /*1*/{/*2*/a,/*3*/b:/*4*/k,/*5*/
+
+function verifyIndentationAfterNewLine(marker: string, indentation: number): void {
+ goTo.marker(marker);
+ edit.insert("\r\n");
+ verify.indentationIs(indentation);
+}
+
+verifyIndentationAfterNewLine("1", 4);
+verifyIndentationAfterNewLine("2", 8);
+verifyIndentationAfterNewLine("3", 8);
+verifyIndentationAfterNewLine("4", 8);
+verifyIndentationAfterNewLine("5", 8);
\ No newline at end of file
diff --git a/tests/cases/fourslash/indentationAfterObjectBindingPattern02.ts b/tests/cases/fourslash/indentationAfterObjectBindingPattern02.ts
new file mode 100644
index 00000000000..e1612dffbb4
--- /dev/null
+++ b/tests/cases/fourslash/indentationAfterObjectBindingPattern02.ts
@@ -0,0 +1,16 @@
+///
+
+////var /*1*/{/*2*/a,/*3*/b:/*4*/k,/*5*/}/*6*/
+
+function verifyIndentationAfterNewLine(marker: string, indentation: number): void {
+ goTo.marker(marker);
+ edit.insert("\r\n");
+ verify.indentationIs(indentation);
+}
+
+verifyIndentationAfterNewLine("1", 4);
+verifyIndentationAfterNewLine("2", 8);
+verifyIndentationAfterNewLine("3", 8);
+verifyIndentationAfterNewLine("4", 8);
+verifyIndentationAfterNewLine("5", 8);
+verifyIndentationAfterNewLine("6", 0);
\ No newline at end of file