From a4601eca6808fceabfadbd0569744d979d17b26b Mon Sep 17 00:00:00 2001 From: Keen Yee Liau Date: Tue, 11 Jun 2019 16:39:57 -0700 Subject: [PATCH] fix(language-service): Remove 'any' in getQuickInfoAtPosition (#31014) PR Close #31014 --- .../goldens/quickinfo.json | 6 +-- packages/language-service/src/ts_plugin.ts | 46 +++++++++---------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/integration/language_service_plugin/goldens/quickinfo.json b/integration/language_service_plugin/goldens/quickinfo.json index 66a9771dcf..9bd1f4a75f 100644 --- a/integration/language_service_plugin/goldens/quickinfo.json +++ b/integration/language_service_plugin/goldens/quickinfo.json @@ -5,8 +5,8 @@ "request_seq": 2, "success": true, "body": { - "kind": "angular", - "kindModifiers": "what does this do?", + "kind": "", + "kindModifiers": "", "start": { "line": 5, "offset": 26 @@ -19,4 +19,4 @@ "documentation": "", "tags": [] } -} \ No newline at end of file +} diff --git a/packages/language-service/src/ts_plugin.ts b/packages/language-service/src/ts_plugin.ts index 368dba70e8..434a928aae 100644 --- a/packages/language-service/src/ts_plugin.ts +++ b/packages/language-service/src/ts_plugin.ts @@ -113,30 +113,30 @@ export function create(info: tss.server.PluginCreateInfo): ts.LanguageService { proxy.getQuickInfoAtPosition = function(fileName: string, position: number): ts.QuickInfo | undefined { - let base = oldLS.getQuickInfoAtPosition(fileName, position); - // TODO(vicb): the tags property has been removed in TS 2.2 - tryOperation('get quick info', () => { - const ours = ls.getHoverAt(fileName, position); - if (ours) { - const displayParts: ts.SymbolDisplayPart[] = []; - for (const part of ours.text) { - displayParts.push({kind: part.language || 'angular', text: part.text}); - } - const tags = base && (base).tags; - base = { - displayParts, - documentation: [], - kind: 'angular', - kindModifiers: 'what does this do?', - textSpan: {start: ours.span.start, length: ours.span.end - ours.span.start}, + const base = oldLS.getQuickInfoAtPosition(fileName, position); + const ours = ls.getHoverAt(fileName, position); + if (!ours) { + return base; + } + const result: ts.QuickInfo = { + kind: ts.ScriptElementKind.unknown, + kindModifiers: ts.ScriptElementKindModifier.none, + textSpan: { + start: ours.span.start, + length: ours.span.end - ours.span.start, + }, + displayParts: ours.text.map(part => { + return { + text: part.text, + kind: part.language || 'angular', }; - if (tags) { - (base).tags = tags; - } - } - }); - - return base; + }), + documentation: [], + }; + if (base && base.tags) { + result.tags = base.tags; + } + return result; }; proxy.getSemanticDiagnostics = function(fileName: string) {