From 6c34520281419eeb6c1c3b143c10c9e8b275601b Mon Sep 17 00:00:00 2001 From: Benjamin Lichtman Date: Mon, 31 Dec 2018 14:37:31 -0800 Subject: [PATCH 1/2] Use normal start for spans for args --- src/services/outliningElementsCollector.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/services/outliningElementsCollector.ts b/src/services/outliningElementsCollector.ts index 9d2c61a1a7d..5337c49a370 100644 --- a/src/services/outliningElementsCollector.ts +++ b/src/services/outliningElementsCollector.ts @@ -206,10 +206,10 @@ namespace ts.OutliningElementsCollector { } function spanForObjectOrArrayLiteral(node: Node, open: SyntaxKind.OpenBraceToken | SyntaxKind.OpenBracketToken = SyntaxKind.OpenBraceToken): OutliningSpan | undefined { - // If the block has no leading keywords and is inside an array literal, + // If the block has no leading keywords and is inside an array literal or call expression, // we only want to collapse the span of the block. // Otherwise, the collapsed section will include the end of the previous line. - return spanForNode(node, /*autoCollapse*/ false, /*useFullStart*/ !isArrayLiteralExpression(node.parent), open); + return spanForNode(node, /*autoCollapse*/ false, /*useFullStart*/ !isArrayLiteralExpression(node.parent) && !isCallExpression(node.parent), open); } function spanForNode(hintSpanNode: Node, autoCollapse = false, useFullStart = true, open: SyntaxKind.OpenBraceToken | SyntaxKind.OpenBracketToken = SyntaxKind.OpenBraceToken): OutliningSpan | undefined { From a2661319288047155a86806a1473b25be94eb643 Mon Sep 17 00:00:00 2001 From: Benjamin Lichtman Date: Mon, 31 Dec 2018 14:43:56 -0800 Subject: [PATCH 2/2] Add test --- tests/cases/fourslash/getOutliningSpans.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/cases/fourslash/getOutliningSpans.ts b/tests/cases/fourslash/getOutliningSpans.ts index f4d1eb33e23..51a181ccfc4 100644 --- a/tests/cases/fourslash/getOutliningSpans.ts +++ b/tests/cases/fourslash/getOutliningSpans.ts @@ -96,5 +96,18 @@ //////outline after a deeply nested node ////class AfterNestedNodes[| { ////}|] +////// function arguments +////function f(x: number[], y: number[])[| { +//// return 3; +////}|] +////f( +////// single line array literal span won't render in VS +//// [|[0]|], +//// [|[ +//// 1, +//// 2 +//// ]|] +////); + verify.outliningSpansInCurrentFile(test.ranges(), "code");