[typescript-language-features] Add suggest.allowIncompleteCompletions and pass trigger kind to TS Server (#127673)

* Add suggest.allowIncompleteCompletions and pass trigger kind to TS Server

* Remove setting, use switch for TriggerKind conversion
This commit is contained in:
Andrew Branch
2021-07-06 17:10:20 -06:00
committed by GitHub
parent 1274ff80b2
commit c0bc22edf0
3 changed files with 16 additions and 0 deletions

View File

@@ -721,6 +721,8 @@ class TypeScriptCompletionItemProvider implements vscode.CompletionItemProvider<
includeExternalModuleExports: completionConfiguration.autoImportSuggestions,
includeInsertTextCompletions: true,
triggerCharacter: this.getTsTriggerCharacter(context),
// @ts-expect-error
triggerKind: typeConverters.CompletionTriggerKind.toProtocolCompletionTriggerKind(context.triggerKind),
};
let isNewIdentifierLocation = true;

View File

@@ -185,6 +185,8 @@ export default class FileConfigurationManager extends Disposable {
generateReturnInDocTemplate: config.get<boolean>('suggest.jsdoc.generateReturns', true),
includeCompletionsForImportStatements: config.get<boolean>('suggest.includeCompletionsForImportStatements', true),
includeCompletionsWithSnippetText: config.get<boolean>('suggest.includeCompletionsWithSnippetText', true),
// @ts-expect-error until 4.4
allowIncompleteCompletions: true,
displayPartsForJSDoc: true,
};

View File

@@ -126,3 +126,15 @@ export namespace SymbolKind {
}
}
}
export namespace CompletionTriggerKind {
// @ts-expect-error until 4.4
// TODO: once 4.4 protocol is available, replace number literals in return statements.
export function toProtocolCompletionTriggerKind(kind: vscode.CompletionTriggerKind): Proto.CompletionTriggerKind {
switch (kind) {
case vscode.CompletionTriggerKind.Invoke: return 1;
case vscode.CompletionTriggerKind.TriggerCharacter: return 2;
case vscode.CompletionTriggerKind.TriggerForIncompleteCompletions: return 3;
}
}
}