提交 b9dbeb90 编写于 作者: D Dave Williams 提交者: Matt Bierner

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
上级 d140d231
......@@ -529,6 +529,12 @@
"type": "boolean",
"default": true,
"description": "%typescript.autoClosingTags%"
},
"typescript.suggestions.enabled": {
"type": "boolean",
"default": true,
"description": "%typescript.suggestions.enabled%",
"scope": "resource"
}
}
},
......
......@@ -65,5 +65,6 @@
"typescript.updateImportsOnFileMove.enabled.prompt": "Prompt on each rename.",
"typescript.updateImportsOnFileMove.enabled.always": "Always update paths automatically.",
"typescript.updateImportsOnFileMove.enabled.never": "Never rename paths and don't prompt.",
"typescript.autoClosingTags": "Enable/disable automatic closing of JSX tags. Requires using TypeScript 3.0 or newer in the workspace."
"typescript.autoClosingTags": "Enable/disable automatic closing of JSX tags. Requires using TypeScript 3.0 or newer in the workspace.",
"typescript.suggestions.enabled": "Enabled/disable autocomplete suggestions based on TypeScript"
}
......@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册