@@ -276,9 +276,7 @@ namespace ts.OutliningElementsCollector {
276276 }
277277
278278 function functionSpan ( node : FunctionLike , body : Block , sourceFile : SourceFile ) : OutliningSpan | undefined {
279- const openToken = isNodeArrayMultiLine ( node . parameters , sourceFile )
280- ? findChildOfKind ( node , SyntaxKind . OpenParenToken , sourceFile )
281- : findChildOfKind ( body , SyntaxKind . OpenBraceToken , sourceFile ) ;
279+ const openToken = tryGetFunctionOpenToken ( node , body , sourceFile ) ;
282280 const closeToken = findChildOfKind ( body , SyntaxKind . CloseBraceToken , sourceFile ) ;
283281 return openToken && closeToken && spanBetweenTokens ( openToken , closeToken , node , sourceFile , /*autoCollapse*/ node . kind !== SyntaxKind . ArrowFunction ) ;
284282 }
@@ -291,4 +289,14 @@ namespace ts.OutliningElementsCollector {
291289 function createOutliningSpan ( textSpan : TextSpan , kind : OutliningSpanKind , hintSpan : TextSpan = textSpan , autoCollapse = false , bannerText = "..." ) : OutliningSpan {
292290 return { textSpan, kind, hintSpan, bannerText, autoCollapse } ;
293291 }
292+
293+ function tryGetFunctionOpenToken ( node : FunctionLike , body : Block , sourceFile : SourceFile ) : Node | undefined {
294+ if ( isNodeArrayMultiLine ( node . parameters , sourceFile ) ) {
295+ const openParenToken = findChildOfKind ( node , SyntaxKind . OpenParenToken , sourceFile ) ;
296+ if ( openParenToken ) {
297+ return openParenToken ;
298+ }
299+ }
300+ return findChildOfKind ( body , SyntaxKind . OpenBraceToken , sourceFile ) ;
301+ }
294302}
0 commit comments