Skip to content

Commit c394463

Browse files
Flash out QuickInfo implementation.
1 parent 7787996 commit c394463

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

src/services/services.ts

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ module ts {
495495
getCompletionEntryDetails(fileName: string, position: number, entryName: string): CompletionEntryDetails;
496496

497497
getTypeAtPosition(fileName: string, position: number): TypeInfo;
498-
getQuickInfo(fileName: string, position: number): SymbolDisplayPart[];
498+
getQuickInfo(fileName: string, position: number): QuickInfo;
499499

500500
getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TypeScript.TextSpan;
501501

@@ -1722,11 +1722,10 @@ module ts {
17221722
return undefined;
17231723
}
17241724

1725-
var declarations = symbol.getDeclarations();
17261725
return {
17271726
name: displayName,
17281727
kind: getSymbolKind(symbol),
1729-
kindModifiers: declarations ? getNodeModifiers(declarations[0]) : ScriptElementKindModifier.none
1728+
kindModifiers: getSymbolModifiers(symbol)
17301729
};
17311730
}
17321731

@@ -2207,6 +2206,12 @@ module ts {
22072206
}
22082207
}
22092208

2209+
function getSymbolModifiers(symbol: Symbol): string {
2210+
return symbol && symbol.declarations && symbol.declarations.length > 0
2211+
? getNodeModifiers(symbol.declarations[0])
2212+
: ScriptElementKindModifier.none;
2213+
}
2214+
22102215
function getNodeModifiers(node: Node): string {
22112216
var flags = node.flags;
22122217
var result: string[] = [];
@@ -2221,7 +2226,7 @@ module ts {
22212226
}
22222227

22232228
/// QuickInfo
2224-
function getQuickInfo(fileName: string, position: number): SymbolDisplayPart[] {
2229+
function getQuickInfo(fileName: string, position: number): QuickInfo {
22252230
synchronizeHostData();
22262231

22272232
fileName = TypeScript.switchToForwardSlashes(fileName);
@@ -2232,16 +2237,15 @@ module ts {
22322237
}
22332238

22342239
var symbol = typeInfoResolver.getSymbolInfo(node);
2235-
return symbol ? typeInfoResolver.symbolToDisplayParts(symbol) : [];
2236-
//var type = symbol && typeInfoResolver.getTypeOfSymbol(symbol);
2237-
//if (type) {
2238-
// return new TypeInfo(
2239-
// new TypeScript.MemberNameString(typeInfoResolver.typeToString(type)),
2240-
// "", typeInfoResolver.symbolToString(symbol, getContainerNode(node)),
2241-
// getSymbolKind(symbol), TypeScript.TextSpan.fromBounds(node.pos, node.end));
2242-
//}
2240+
if (!symbol) {
2241+
return undefined;
2242+
}
22432243

2244-
//return undefined;
2244+
return new QuickInfo(
2245+
getSymbolKind(symbol),
2246+
getSymbolModifiers(symbol),
2247+
new TypeScript.TextSpan(node.getStart(), node.getWidth()),
2248+
typeInfoResolver.symbolToDisplayParts(symbol));
22452249
}
22462250

22472251
function getTypeAtPosition(fileName: string, position: number): TypeInfo {
@@ -4038,7 +4042,7 @@ module ts {
40384042
var kind = getSymbolKind(symbol);
40394043
if (kind) {
40404044
return RenameInfo.Create(symbol.name, typeInfoResolver.getFullyQualifiedName(symbol), kind,
4041-
getNodeModifiers(symbol.getDeclarations()[0]),
4045+
getSymbolModifiers(symbol),
40424046
new TypeScript.TextSpan(node.getStart(), node.getWidth()));
40434047
}
40444048
}

0 commit comments

Comments
 (0)