Skip to content

Commit 01ad4f7

Browse files
author
Andy
authored
Support quick info at function and => locations (#19669)
* Support quick info at `function` and `=>` locations * Fixes
1 parent 85285bc commit 01ad4f7

File tree

4 files changed

+26
-15
lines changed

4 files changed

+26
-15
lines changed

src/compiler/checker.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23638,6 +23638,8 @@ namespace ts {
2363823638
return objectType && getPropertyOfType(objectType, escapeLeadingUnderscores((node as StringLiteral | NumericLiteral).text));
2363923639

2364023640
case SyntaxKind.DefaultKeyword:
23641+
case SyntaxKind.FunctionKeyword:
23642+
case SyntaxKind.EqualsGreaterThanToken:
2364123643
return getSymbolOfNode(node.parent);
2364223644

2364323645
default:

src/services/symbolDisplay.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -489,8 +489,10 @@ namespace ts.SymbolDisplay {
489489
addNewLineIfDisplayPartsExist();
490490
if (symbolKind) {
491491
pushTypePart(symbolKind);
492-
displayParts.push(spacePart());
493-
addFullSymbolName(symbol);
492+
if (!some(symbol.declarations, d => isArrowFunction(d) || (isFunctionExpression(d) || isClassExpression(d)) && !d.name)) {
493+
displayParts.push(spacePart());
494+
addFullSymbolName(symbol);
495+
}
494496
}
495497
}
496498

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/// <reference path='fourslash.ts'/>
2+
3+
////[1].forEach(fu/*1*/nction() {});
4+
////[1].map(x =/*2*/> x + 1);
5+
6+
verify.quickInfoAt("1", "(local function)(): void");
7+
verify.quickInfoAt("2", "function(x: number): number");

tests/cases/fourslash/quickInfoInvalidLocations.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
11
/// <reference path='fourslash.ts' />
22

33

4-
////inter/*invlaid1*/face IFoo {
4+
////inter/*invalid1*/face IFoo {
55
//// new(): IFoo;
66
//// [indexer: string]: number;
77
//// method(value: number): string;
88
//// property: string;
9-
/////*invlaid2*/}
9+
/////*invalid2*/}
1010
////
11-
////cl/*invlaid3*/ass bar imple/*invlaid4*/ments IFoo {
12-
//// constructor( /*invlaid5*/ ) {
11+
////cl/*invalid3*/ass bar imple/*invalid4*/ments IFoo {
12+
//// constructor( /*invalid5*/ ) {
1313
////
1414
//// }
1515
////
16-
//// pu/*invlaid6*/blic method(value: string): string {
17-
//// retu/*invlaid7*/rn null;
16+
//// pu/*invalid6*/blic method(value: string): string {
17+
//// retu/*invalid7*/rn null;
1818
//// }
1919
////
20-
//// public property: string /*invlaid8*/= "string";
20+
//// public property: string /*invalid8*/= "string";
2121
////
22-
//// public ge/*invlaid9*/t value() {
22+
//// public ge/*invalid9*/t value() {
2323
//// return 0;
2424
//// }
2525
////}
2626
////
2727
////
28-
////mod/*invlaid10*/ule m1 {
29-
//// va/*invlaid11*/r varibale = 0;
28+
////mod/*invalid10*/ule m1 {
29+
//// va/*invalid11*/r varibale = 0;
3030
////
31-
//// func/*invlaid12*/tion foo(arg1: number) {
32-
//// ret/*invlaid13*/urn string;
31+
//// function foo(arg1: number) {
32+
//// ret/*invalid13*/urn string;
3333
//// }
3434
////
3535
//// class foo {
@@ -40,7 +40,7 @@
4040
//// value1: "string",
4141
//// value2: {
4242
//// value21: number
43-
//// /*invlaid14*/}
43+
//// /*invalid14*/}
4444
//// };
4545
////}
4646

0 commit comments

Comments
 (0)