New config to turn off TypeScript autocomplete suggestions (#58011)

* New config to turn off TypeScript autocomplete suggestions

* add missing semicolon

* Exclude everything, even name suggestions, when suggestions disabled
This commit is contained in:
Dave Williams
2018-09-10 19:06:12 +01:00
committed by Matt Bierner
parent d140d23129
commit b9dbeb90d1
3 changed files with 14 additions and 2 deletions

View File

@@ -237,6 +237,7 @@ interface CompletionConfiguration {
readonly nameSuggestions: boolean;
readonly quickSuggestionsForPaths: boolean;
readonly autoImportSuggestions: boolean;
readonly typeScriptSuggestions: boolean;
}
namespace CompletionConfiguration {
@@ -244,6 +245,7 @@ namespace CompletionConfiguration {
export const nameSuggestions = 'nameSuggestions';
export const quickSuggestionsForPaths = 'quickSuggestionsForPaths';
export const autoImportSuggestions = 'autoImportSuggestions.enabled';
export const typeScriptSuggestions = 'suggestions.enabled';
export function getConfigurationForResource(
resource: vscode.Uri
@@ -254,6 +256,7 @@ namespace CompletionConfiguration {
useCodeSnippetsOnMethodSuggest: typeScriptConfig.get<boolean>(CompletionConfiguration.useCodeSnippetsOnMethodSuggest, false),
quickSuggestionsForPaths: typeScriptConfig.get<boolean>(CompletionConfiguration.quickSuggestionsForPaths, true),
autoImportSuggestions: typeScriptConfig.get<boolean>(CompletionConfiguration.autoImportSuggestions, true),
typeScriptSuggestions: typeScriptConfig.get<boolean>(CompletionConfiguration.typeScriptSuggestions, true),
nameSuggestions: vscode.workspace.getConfiguration('javascript', resource).get(CompletionConfiguration.nameSuggestions, true)
};
}
@@ -605,7 +608,9 @@ function shouldExcludeCompletionEntry(
completionConfiguration: CompletionConfiguration
) {
return (
(!completionConfiguration.nameSuggestions && element.kind === PConst.Kind.warning)
// if TypeScript suggestions turned off, exclude every suggestion
!completionConfiguration.typeScriptSuggestions
|| (!completionConfiguration.nameSuggestions && element.kind === PConst.Kind.warning)
|| (!completionConfiguration.quickSuggestionsForPaths &&
(element.kind === PConst.Kind.directory || element.kind === PConst.Kind.script))
|| (!completionConfiguration.autoImportSuggestions && element.hasAction)