@@ -272,9 +272,7 @@ namespace ts.OutliningElementsCollector {
272
272
}
273
273
274
274
function functionSpan ( node : FunctionLike , body : Block , sourceFile : SourceFile ) : OutliningSpan | undefined {
275
- const openToken = isNodeArrayMultiLine ( node . parameters , sourceFile )
276
- ? findChildOfKind ( node , SyntaxKind . OpenParenToken , sourceFile )
277
- : findChildOfKind ( body , SyntaxKind . OpenBraceToken , sourceFile ) ;
275
+ const openToken = tryGetFunctionOpenToken ( node , body , sourceFile ) ;
278
276
const closeToken = findChildOfKind ( body , SyntaxKind . CloseBraceToken , sourceFile ) ;
279
277
return openToken && closeToken && spanBetweenTokens ( openToken , closeToken , node , sourceFile , /*autoCollapse*/ node . kind !== SyntaxKind . ArrowFunction ) ;
280
278
}
@@ -287,4 +285,14 @@ namespace ts.OutliningElementsCollector {
287
285
function createOutliningSpan ( textSpan : TextSpan , kind : OutliningSpanKind , hintSpan : TextSpan = textSpan , autoCollapse = false , bannerText = "..." ) : OutliningSpan {
288
286
return { textSpan, kind, hintSpan, bannerText, autoCollapse } ;
289
287
}
288
+
289
+ function tryGetFunctionOpenToken ( node : FunctionLike , body : Block , sourceFile : SourceFile ) : Node | undefined {
290
+ if ( isNodeArrayMultiLine ( node . parameters , sourceFile ) ) {
291
+ const openParenToken = findChildOfKind ( node , SyntaxKind . OpenParenToken , sourceFile ) ;
292
+ if ( openParenToken ) {
293
+ return openParenToken ;
294
+ }
295
+ }
296
+ return findChildOfKind ( body , SyntaxKind . OpenBraceToken , sourceFile ) ;
297
+ }
290
298
}
0 commit comments