diff --git a/src/services/outliningElementsCollector.ts b/src/services/outliningElementsCollector.ts index 7c9e89052ab..c849a9a5a6b 100644 --- a/src/services/outliningElementsCollector.ts +++ b/src/services/outliningElementsCollector.ts @@ -218,6 +218,8 @@ namespace ts.OutliningElementsCollector { case SyntaxKind.TemplateExpression: case SyntaxKind.NoSubstitutionTemplateLiteral: return spanForTemplateLiteral(n); + case SyntaxKind.ArrayBindingPattern: + return spanForNode(n, /*autoCollapse*/ false, /*useFullStart*/ !isBindingElement(n.parent), SyntaxKind.OpenBracketToken); } function spanForJSXElement(node: JsxElement): OutliningSpan | undefined { diff --git a/tests/cases/fourslash/getOutliningForArrayDestructuring.ts b/tests/cases/fourslash/getOutliningForArrayDestructuring.ts new file mode 100644 index 00000000000..72a2a0807ec --- /dev/null +++ b/tests/cases/fourslash/getOutliningForArrayDestructuring.ts @@ -0,0 +1,45 @@ +/// + +////const[| [ +//// a, +//// b, +//// c +////]|] =[| [ +//// 1, +//// 2, +//// 3 +////]|]; + +////const[| [ +//// [|[ +//// [|[ +//// [|[ +//// a, +//// b, +//// c +//// ]|] +//// ]|] +//// ]|], +//// [|[ +//// a1, +//// b1, +//// c1 +//// ]|] +////]|] =[| [ +//// [|[ +//// [|[ +//// [|[ +//// 1, +//// 2, +//// 3 +//// ]|] +//// ]|] +//// ]|], +//// [|[ +//// 1, +//// 2, +//// 3 +//// ]|] +////]|] + +verify.outliningSpansInCurrentFile(test.ranges(), "code");