mirror of
https://github.com/Microsoft/vscode
synced 2024-09-19 02:26:04 +00:00
Configure optional chain completions at the file level instead of per-request
Fixes #97398
This commit is contained in:
parent
df88d8a7ef
commit
e4e1099f8c
|
@ -380,7 +380,6 @@ interface CompletionConfiguration {
|
|||
readonly nameSuggestions: boolean;
|
||||
readonly pathSuggestions: boolean;
|
||||
readonly autoImportSuggestions: boolean;
|
||||
readonly includeAutomaticOptionalChainCompletions: boolean;
|
||||
}
|
||||
|
||||
namespace CompletionConfiguration {
|
||||
|
@ -388,7 +387,6 @@ 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,
|
||||
|
@ -400,7 +398,6 @@ namespace CompletionConfiguration {
|
|||
pathSuggestions: config.get<boolean>(CompletionConfiguration.pathSuggestions, true),
|
||||
autoImportSuggestions: config.get<boolean>(CompletionConfiguration.autoImportSuggestions, true),
|
||||
nameSuggestions: config.get<boolean>(CompletionConfiguration.nameSuggestions, true),
|
||||
includeAutomaticOptionalChainCompletions: config.get<boolean>(CompletionConfiguration.includeAutomaticOptionalChainCompletions, true),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -456,12 +453,11 @@ class TypeScriptCompletionItemProvider implements vscode.CompletionItemProvider<
|
|||
|
||||
await this.client.interruptGetErr(() => this.fileConfigurationManager.ensureConfigurationForDocument(document, token));
|
||||
|
||||
const args: Proto.CompletionsRequestArgs & { includeAutomaticOptionalChainCompletions?: boolean } = {
|
||||
const args: Proto.CompletionsRequestArgs = {
|
||||
...typeConverters.Position.toFileLocationRequestArgs(file, position),
|
||||
includeExternalModuleExports: completionConfiguration.autoImportSuggestions,
|
||||
includeInsertTextCompletions: true,
|
||||
triggerCharacter: this.getTsTriggerCharacter(context),
|
||||
includeAutomaticOptionalChainCompletions: completionConfiguration.includeAutomaticOptionalChainCompletions,
|
||||
};
|
||||
|
||||
let isNewIdentifierLocation = true;
|
||||
|
|
|
@ -176,16 +176,21 @@ export default class FileConfigurationManager extends Disposable {
|
|||
}
|
||||
|
||||
const config = vscode.workspace.getConfiguration(
|
||||
isTypeScriptDocument(document) ? 'typescript' : 'javascript',
|
||||
document.uri);
|
||||
|
||||
const preferencesConfig = vscode.workspace.getConfiguration(
|
||||
isTypeScriptDocument(document) ? 'typescript.preferences' : 'javascript.preferences',
|
||||
document.uri);
|
||||
|
||||
const preferences: Proto.UserPreferences = {
|
||||
quotePreference: this.getQuoteStylePreference(config),
|
||||
importModuleSpecifierPreference: getImportModuleSpecifierPreference(config),
|
||||
importModuleSpecifierEnding: getImportModuleSpecifierEndingPreference(config),
|
||||
quotePreference: this.getQuoteStylePreference(preferencesConfig),
|
||||
importModuleSpecifierPreference: getImportModuleSpecifierPreference(preferencesConfig),
|
||||
importModuleSpecifierEnding: getImportModuleSpecifierEndingPreference(preferencesConfig),
|
||||
allowTextChangesInNewFiles: document.uri.scheme === fileSchemes.file,
|
||||
providePrefixAndSuffixTextForRename: config.get<boolean>('renameShorthandProperties', true) === false ? false : config.get<boolean>('useAliasesForRenames', true),
|
||||
providePrefixAndSuffixTextForRename: preferencesConfig.get<boolean>('renameShorthandProperties', true) === false ? false : preferencesConfig.get<boolean>('useAliasesForRenames', true),
|
||||
allowRenameOfImportPath: true,
|
||||
includeAutomaticOptionalChainCompletions: config.get<boolean>('suggest.includeAutomaticOptionalChainCompletions', true),
|
||||
};
|
||||
|
||||
return preferences;
|
||||
|
|
Loading…
Reference in a new issue