From 8b5d8565cf9339226cb17045790a67993edc71cf Mon Sep 17 00:00:00 2001 From: Andy Date: Fri, 3 Nov 2017 15:11:36 -0700 Subject: [PATCH] Add CompletionDetailsFull request (#19689) * Add CompletionDetailsFull request * Update API baselines * Make internal --- src/server/protocol.ts | 2 ++ src/server/session.ts | 21 +++++++++---------- .../reference/api/tsserverlibrary.d.ts | 2 +- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/server/protocol.ts b/src/server/protocol.ts index 9a94c265f5d..18a5ad2ce10 100644 --- a/src/server/protocol.ts +++ b/src/server/protocol.ts @@ -15,6 +15,8 @@ namespace ts.server.protocol { /* @internal */ CompletionsFull = "completions-full", CompletionDetails = "completionEntryDetails", + /* @internal */ + CompletionDetailsFull = "completionEntryDetailsFull", CompileOnSaveAffectedFileList = "compileOnSaveAffectedFileList", CompileOnSaveEmitFile = "compileOnSaveEmitFile", Configure = "configure", diff --git a/src/server/session.ts b/src/server/session.ts index f02e1c620b9..f6983f48b54 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -1216,23 +1216,19 @@ namespace ts.server { } } - private getCompletionEntryDetails(args: protocol.CompletionDetailsRequestArgs): ReadonlyArray { + private getCompletionEntryDetails(args: protocol.CompletionDetailsRequestArgs, simplifiedResult: boolean): ReadonlyArray | ReadonlyArray { const { file, project } = this.getFileAndProject(args); const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); const position = this.getPosition(args, scriptInfo); const formattingOptions = project.projectService.getFormatCodeOptions(file); - return mapDefined(args.entryNames, entryName => { + const result = mapDefined(args.entryNames, entryName => { const { name, source } = typeof entryName === "string" ? { name: entryName, source: undefined } : entryName; - const details = project.getLanguageService().getCompletionEntryDetails(file, position, name, formattingOptions, source); - if (details) { - const mappedCodeActions = map(details.codeActions, action => this.mapCodeAction(action, scriptInfo)); - return { ...details, codeActions: mappedCodeActions }; - } - else { - return undefined; - } + return project.getLanguageService().getCompletionEntryDetails(file, position, name, formattingOptions, source); }); + return simplifiedResult + ? result.map(details => ({ ...details, codeActions: map(details.codeActions, action => this.mapCodeAction(action, scriptInfo)) })) + : result; } private getCompileOnSaveAffectedFileList(args: protocol.FileRequestArgs): ReadonlyArray { @@ -1842,7 +1838,10 @@ namespace ts.server { return this.requiredResponse(this.getCompletions(request.arguments, /*simplifiedResult*/ false)); }, [CommandNames.CompletionDetails]: (request: protocol.CompletionDetailsRequest) => { - return this.requiredResponse(this.getCompletionEntryDetails(request.arguments)); + return this.requiredResponse(this.getCompletionEntryDetails(request.arguments, /*simplifiedResult*/ true)); + }, + [CommandNames.CompletionDetailsFull]: (request: protocol.CompletionDetailsRequest) => { + return this.requiredResponse(this.getCompletionEntryDetails(request.arguments, /*simplifiedResult*/ false)); }, [CommandNames.CompileOnSaveAffectedFileList]: (request: protocol.CompileOnSaveAffectedFileListRequest) => { return this.requiredResponse(this.getCompileOnSaveAffectedFileList(request.arguments)); diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index cffa1375608..aacd4f1276d 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -6996,7 +6996,7 @@ declare namespace ts.server { private getFormattingEditsAfterKeystrokeFull(args); private getFormattingEditsAfterKeystroke(args); private getCompletions(args, simplifiedResult); - private getCompletionEntryDetails(args); + private getCompletionEntryDetails(args, simplifiedResult); private getCompileOnSaveAffectedFileList(args); private emitFile(args); private getSignatureHelpItems(args, simplifiedResult);