mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 08:11:30 -06:00
Add CompletionDetailsFull request (#19689)
* Add CompletionDetailsFull request * Update API baselines * Make internal
This commit is contained in:
parent
cd9dbe694f
commit
8b5d8565cf
@ -15,6 +15,8 @@ namespace ts.server.protocol {
|
||||
/* @internal */
|
||||
CompletionsFull = "completions-full",
|
||||
CompletionDetails = "completionEntryDetails",
|
||||
/* @internal */
|
||||
CompletionDetailsFull = "completionEntryDetailsFull",
|
||||
CompileOnSaveAffectedFileList = "compileOnSaveAffectedFileList",
|
||||
CompileOnSaveEmitFile = "compileOnSaveEmitFile",
|
||||
Configure = "configure",
|
||||
|
||||
@ -1216,23 +1216,19 @@ namespace ts.server {
|
||||
}
|
||||
}
|
||||
|
||||
private getCompletionEntryDetails(args: protocol.CompletionDetailsRequestArgs): ReadonlyArray<protocol.CompletionEntryDetails> {
|
||||
private getCompletionEntryDetails(args: protocol.CompletionDetailsRequestArgs, simplifiedResult: boolean): ReadonlyArray<protocol.CompletionEntryDetails> | ReadonlyArray<CompletionEntryDetails> {
|
||||
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<string | protocol.CompletionEntryIdentifier, protocol.CompletionEntryDetails>(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<protocol.CompileOnSaveAffectedFileListSingleProject> {
|
||||
@ -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));
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user