From 3ec21c410faf2ddaedfd8bd540c952cc9ffe73c3 Mon Sep 17 00:00:00 2001 From: Tom van Ommeren Date: Tue, 3 Oct 2017 09:14:33 +0200 Subject: [PATCH] fix: Only return InsertTextFormat.Snippet when a snippet is returned --- src/test/typescript-service-helpers.ts | 2 +- src/typescript-service.ts | 20 ++++++++------------ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/test/typescript-service-helpers.ts b/src/test/typescript-service-helpers.ts index 3584bf0fe..cd10e6ebe 100644 --- a/src/test/typescript-service-helpers.ts +++ b/src/test/typescript-service-helpers.ts @@ -2457,7 +2457,7 @@ export function describeTypeScriptService(createService: TypeScriptServiceFactor kind: CompletionItemKind.Property, documentation: 'qux doc', sortText: '0', - insertTextFormat: InsertTextFormat.Snippet, + insertTextFormat: InsertTextFormat.PlainText, insertText: 'qux', detail: '(property) A.qux: number', data: undefined diff --git a/src/typescript-service.ts b/src/typescript-service.ts index 9e437591d..2be507a9e 100644 --- a/src/typescript-service.ts +++ b/src/typescript-service.ts @@ -1093,19 +1093,15 @@ export class TypeScriptService { if (details) { item.documentation = ts.displayPartsToString(details.documentation) item.detail = ts.displayPartsToString(details.displayParts) - if (this.supportsCompletionWithSnippets) { + if (this.supportsCompletionWithSnippets && + (details.kind === 'method' || details.kind === 'function')) { + const parameters = details.displayParts + .filter(p => p.kind === 'parameterName') + // tslint:disable-next-line:no-invalid-template-strings + .map((p, i) => '${' + `${i + 1}:${p.text}` + '}') + const paramString = parameters.join(', ') + item.insertText = details.name + `(${paramString})` item.insertTextFormat = InsertTextFormat.Snippet - if (details.kind === 'method' || details.kind === 'function') { - const parameters = details.displayParts - .filter(p => p.kind === 'parameterName') - // tslint:disable-next-line:no-invalid-template-strings - .map((p, i) => '${' + `${i + 1}:${p.text}` + '}') - const paramString = parameters.join(', ') - item.insertText = details.name + `(${paramString})` - } else { - item.insertText = details.name - - } } else { item.insertTextFormat = InsertTextFormat.PlainText item.insertText = details.name