Add configuration for includeAutomaticOptionalChainCompletions

For https://github.com/microsoft/TypeScript/pull/34552
This commit is contained in:
Matt Bierner
2019-10-18 22:00:04 -07:00
parent 2710db93e2
commit bd200eafd1
3 changed files with 19 additions and 2 deletions

View File

@@ -301,6 +301,7 @@ interface CompletionConfiguration {
readonly nameSuggestions: boolean;
readonly pathSuggestions: boolean;
readonly autoImportSuggestions: boolean;
readonly includeAutomaticOptionalChainCompletions: boolean;
}
namespace CompletionConfiguration {
@@ -308,6 +309,7 @@ namespace CompletionConfiguration {
export const nameSuggestions = 'suggest.names';
export const pathSuggestions = 'suggest.paths';
export const autoImportSuggestions = 'suggest.autoImports';
export const includeAutomaticOptionalChainCompletions = 'suggest.includeAutomaticOptionalChainCompletions';
export function getConfigurationForResource(
modeId: string,
@@ -318,7 +320,8 @@ namespace CompletionConfiguration {
useCodeSnippetsOnMethodSuggest: config.get<boolean>(CompletionConfiguration.useCodeSnippetsOnMethodSuggest, false),
pathSuggestions: config.get<boolean>(CompletionConfiguration.pathSuggestions, true),
autoImportSuggestions: config.get<boolean>(CompletionConfiguration.autoImportSuggestions, true),
nameSuggestions: config.get<boolean>(CompletionConfiguration.nameSuggestions, true)
nameSuggestions: config.get<boolean>(CompletionConfiguration.nameSuggestions, true),
includeAutomaticOptionalChainCompletions: config.get<boolean>(CompletionConfiguration.includeAutomaticOptionalChainCompletions, true),
};
}
}
@@ -372,11 +375,12 @@ class TypeScriptCompletionItemProvider implements vscode.CompletionItemProvider
await this.client.interruptGetErr(() => this.fileConfigurationManager.ensureConfigurationForDocument(document, token));
const args: Proto.CompletionsRequestArgs = {
const args: Proto.CompletionsRequestArgs & { includeAutomaticOptionalChainCompletions?: boolean } = {
...typeConverters.Position.toFileLocationRequestArgs(file, position),
includeExternalModuleExports: completionConfiguration.autoImportSuggestions,
includeInsertTextCompletions: true,
triggerCharacter: this.getTsTriggerCharacter(context),
includeAutomaticOptionalChainCompletions: completionConfiguration.includeAutomaticOptionalChainCompletions,
};
let isNewIdentifierLocation = true;