mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-17 01:49:57 -05:00
fix(33286): add outlining for arrow function with one parameter (#38631)
This commit is contained in:
@@ -276,9 +276,7 @@ namespace ts.OutliningElementsCollector {
|
||||
}
|
||||
|
||||
function functionSpan(node: FunctionLike, body: Block, sourceFile: SourceFile): OutliningSpan | undefined {
|
||||
const openToken = isNodeArrayMultiLine(node.parameters, sourceFile)
|
||||
? findChildOfKind(node, SyntaxKind.OpenParenToken, sourceFile)
|
||||
: findChildOfKind(body, SyntaxKind.OpenBraceToken, sourceFile);
|
||||
const openToken = tryGetFunctionOpenToken(node, body, sourceFile);
|
||||
const closeToken = findChildOfKind(body, SyntaxKind.CloseBraceToken, sourceFile);
|
||||
return openToken && closeToken && spanBetweenTokens(openToken, closeToken, node, sourceFile, /*autoCollapse*/ node.kind !== SyntaxKind.ArrowFunction);
|
||||
}
|
||||
@@ -291,4 +289,14 @@ namespace ts.OutliningElementsCollector {
|
||||
function createOutliningSpan(textSpan: TextSpan, kind: OutliningSpanKind, hintSpan: TextSpan = textSpan, autoCollapse = false, bannerText = "..."): OutliningSpan {
|
||||
return { textSpan, kind, hintSpan, bannerText, autoCollapse };
|
||||
}
|
||||
|
||||
function tryGetFunctionOpenToken(node: FunctionLike, body: Block, sourceFile: SourceFile): Node | undefined {
|
||||
if (isNodeArrayMultiLine(node.parameters, sourceFile)) {
|
||||
const openParenToken = findChildOfKind(node, SyntaxKind.OpenParenToken, sourceFile);
|
||||
if (openParenToken) {
|
||||
return openParenToken;
|
||||
}
|
||||
}
|
||||
return findChildOfKind(body, SyntaxKind.OpenBraceToken, sourceFile);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user