Skip to content

Commit 8b5d856

Browse files
author
Andy
authored
Add CompletionDetailsFull request (#19689)
* Add CompletionDetailsFull request * Update API baselines * Make internal
1 parent cd9dbe6 commit 8b5d856

File tree

3 files changed

+13
-12
lines changed

3 files changed

+13
-12
lines changed

src/server/protocol.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ namespace ts.server.protocol {
1515
/* @internal */
1616
CompletionsFull = "completions-full",
1717
CompletionDetails = "completionEntryDetails",
18+
/* @internal */
19+
CompletionDetailsFull = "completionEntryDetailsFull",
1820
CompileOnSaveAffectedFileList = "compileOnSaveAffectedFileList",
1921
CompileOnSaveEmitFile = "compileOnSaveEmitFile",
2022
Configure = "configure",

src/server/session.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1216,23 +1216,19 @@ namespace ts.server {
12161216
}
12171217
}
12181218

1219-
private getCompletionEntryDetails(args: protocol.CompletionDetailsRequestArgs): ReadonlyArray<protocol.CompletionEntryDetails> {
1219+
private getCompletionEntryDetails(args: protocol.CompletionDetailsRequestArgs, simplifiedResult: boolean): ReadonlyArray<protocol.CompletionEntryDetails> | ReadonlyArray<CompletionEntryDetails> {
12201220
const { file, project } = this.getFileAndProject(args);
12211221
const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);
12221222
const position = this.getPosition(args, scriptInfo);
12231223
const formattingOptions = project.projectService.getFormatCodeOptions(file);
12241224

1225-
return mapDefined<string | protocol.CompletionEntryIdentifier, protocol.CompletionEntryDetails>(args.entryNames, entryName => {
1225+
const result = mapDefined(args.entryNames, entryName => {
12261226
const { name, source } = typeof entryName === "string" ? { name: entryName, source: undefined } : entryName;
1227-
const details = project.getLanguageService().getCompletionEntryDetails(file, position, name, formattingOptions, source);
1228-
if (details) {
1229-
const mappedCodeActions = map(details.codeActions, action => this.mapCodeAction(action, scriptInfo));
1230-
return { ...details, codeActions: mappedCodeActions };
1231-
}
1232-
else {
1233-
return undefined;
1234-
}
1227+
return project.getLanguageService().getCompletionEntryDetails(file, position, name, formattingOptions, source);
12351228
});
1229+
return simplifiedResult
1230+
? result.map(details => ({ ...details, codeActions: map(details.codeActions, action => this.mapCodeAction(action, scriptInfo)) }))
1231+
: result;
12361232
}
12371233

12381234
private getCompileOnSaveAffectedFileList(args: protocol.FileRequestArgs): ReadonlyArray<protocol.CompileOnSaveAffectedFileListSingleProject> {
@@ -1842,7 +1838,10 @@ namespace ts.server {
18421838
return this.requiredResponse(this.getCompletions(request.arguments, /*simplifiedResult*/ false));
18431839
},
18441840
[CommandNames.CompletionDetails]: (request: protocol.CompletionDetailsRequest) => {
1845-
return this.requiredResponse(this.getCompletionEntryDetails(request.arguments));
1841+
return this.requiredResponse(this.getCompletionEntryDetails(request.arguments, /*simplifiedResult*/ true));
1842+
},
1843+
[CommandNames.CompletionDetailsFull]: (request: protocol.CompletionDetailsRequest) => {
1844+
return this.requiredResponse(this.getCompletionEntryDetails(request.arguments, /*simplifiedResult*/ false));
18461845
},
18471846
[CommandNames.CompileOnSaveAffectedFileList]: (request: protocol.CompileOnSaveAffectedFileListRequest) => {
18481847
return this.requiredResponse(this.getCompileOnSaveAffectedFileList(request.arguments));

tests/baselines/reference/api/tsserverlibrary.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6996,7 +6996,7 @@ declare namespace ts.server {
69966996
private getFormattingEditsAfterKeystrokeFull(args);
69976997
private getFormattingEditsAfterKeystroke(args);
69986998
private getCompletions(args, simplifiedResult);
6999-
private getCompletionEntryDetails(args);
6999+
private getCompletionEntryDetails(args, simplifiedResult);
70007000
private getCompileOnSaveAffectedFileList(args);
70017001
private emitFile(args);
70027002
private getSignatureHelpItems(args, simplifiedResult);

0 commit comments

Comments
 (0)