提交 a7fb144e 编写于 作者: M Matt Bierner

Use Typescript's CompletionInfo.isNewIdentifierLocation

Fixes #52499
上级 e1d50f11
......@@ -306,12 +306,23 @@ class TypeScriptCompletionItemProvider implements vscode.CompletionItemProvider
triggerCharacter: context.triggerCharacter as Proto.CompletionsTriggerCharacter
};
let msg: Proto.CompletionEntry[] | undefined = undefined;
let msg: ReadonlyArray<Proto.CompletionEntry> | undefined = undefined;
try {
const response = await this.client.execute('completions', args, token);
msg = response.body;
if (!msg) {
return [];
if (this.client.apiVersion.gte(API.v300)) {
const response = await this.client.execute('completionInfo', args, token);
if (!response.body) {
return [];
}
if (response.body.isNewIdentifierLocation) {
return [];
}
msg = response.body.entries;
} else {
const response = await this.client.execute('completions', args, token);
if (!response.body) {
return [];
}
msg = response.body;
}
} catch {
return [];
......
......@@ -51,6 +51,7 @@ export interface ITypeScriptServiceClient {
execute(command: 'change', args: Proto.ChangeRequestArgs, expectedResult: boolean, token?: CancellationToken): Promise<any>;
execute(command: 'quickinfo', args: Proto.FileLocationRequestArgs, token?: CancellationToken): Promise<Proto.QuickInfoResponse>;
execute(command: 'completions', args: Proto.CompletionsRequestArgs, token?: CancellationToken): Promise<Proto.CompletionsResponse>;
execute(command: 'completionInfo', args: Proto.CompletionsRequestArgs, token?: CancellationToken): Promise<Proto.CompletionInfoResponse>;
execute(command: 'completionEntryDetails', args: Proto.CompletionDetailsRequestArgs, token?: CancellationToken): Promise<Proto.CompletionDetailsResponse>;
execute(command: 'signatureHelp', args: Proto.SignatureHelpRequestArgs, token?: CancellationToken): Promise<Proto.SignatureHelpResponse>;
execute(command: 'definition', args: Proto.FileLocationRequestArgs, token?: CancellationToken): Promise<Proto.DefinitionResponse>;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册