mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-20 08:38:56 +01:00
Add setting to disable all path based sugestions in js/ts
The new `javascript.suggest.paths` and `typescript.suggest.paths` settings replace `typescript.quickSuggestionsForPaths`. These settings should disable all path based suggestions from js/ts The old `quickSuggestionsForPath` setting is now marked deprecated and is not being migrated to these new settings as it has different semantics. It was originally designed just to disable quick suggestions for paths but it does not work properly when using TypeScript 2.9+
This commit is contained in:
@@ -236,14 +236,14 @@ class ApplyCompletionCodeActionCommand implements Command {
|
||||
interface CompletionConfiguration {
|
||||
readonly useCodeSnippetsOnMethodSuggest: boolean;
|
||||
readonly nameSuggestions: boolean;
|
||||
readonly quickSuggestionsForPaths: boolean;
|
||||
readonly pathSuggestions: boolean;
|
||||
readonly autoImportSuggestions: boolean;
|
||||
}
|
||||
|
||||
namespace CompletionConfiguration {
|
||||
export const useCodeSnippetsOnMethodSuggest = 'useCodeSnippetsOnMethodSuggest';
|
||||
export const nameSuggestions = 'nameSuggestions';
|
||||
export const quickSuggestionsForPaths = 'quickSuggestionsForPaths';
|
||||
export const pathSuggestions = 'suggest.paths';
|
||||
export const autoImportSuggestions_deprecated = 'autoImportSuggestions.enabled';
|
||||
export const autoImportSuggestions = 'suggest.autoImports';
|
||||
|
||||
@@ -258,7 +258,7 @@ namespace CompletionConfiguration {
|
||||
|
||||
return {
|
||||
useCodeSnippetsOnMethodSuggest: typeScriptConfig.get<boolean>(CompletionConfiguration.useCodeSnippetsOnMethodSuggest, false),
|
||||
quickSuggestionsForPaths: typeScriptConfig.get<boolean>(CompletionConfiguration.quickSuggestionsForPaths, true),
|
||||
pathSuggestions: config.get<boolean>(CompletionConfiguration.pathSuggestions, true),
|
||||
autoImportSuggestions: config.get<boolean>(CompletionConfiguration.autoImportSuggestions, typeScriptConfig.get<boolean>(CompletionConfiguration.autoImportSuggestions_deprecated, true)),
|
||||
nameSuggestions: vscode.workspace.getConfiguration('javascript', resource).get(CompletionConfiguration.nameSuggestions, true)
|
||||
};
|
||||
@@ -304,7 +304,7 @@ class TypeScriptCompletionItemProvider implements vscode.CompletionItemProvider
|
||||
const line = document.lineAt(position.line);
|
||||
const completionConfiguration = CompletionConfiguration.getConfigurationForResource(this.modeId, document.uri);
|
||||
|
||||
if (!this.shouldTrigger(context, completionConfiguration, line, position)) {
|
||||
if (!this.shouldTrigger(context, line, position)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -466,7 +466,6 @@ class TypeScriptCompletionItemProvider implements vscode.CompletionItemProvider
|
||||
|
||||
private shouldTrigger(
|
||||
context: vscode.CompletionContext,
|
||||
config: CompletionConfiguration,
|
||||
line: vscode.TextLine,
|
||||
position: vscode.Position
|
||||
): boolean {
|
||||
@@ -480,10 +479,6 @@ class TypeScriptCompletionItemProvider implements vscode.CompletionItemProvider
|
||||
}
|
||||
|
||||
if (context.triggerCharacter === '/') {
|
||||
if (!config.quickSuggestionsForPaths) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// make sure we are in something that looks like an import path
|
||||
const pre = line.text.slice(0, position.character);
|
||||
if (!pre.match(/\b(from|import)\s*["'][^'"]*$/) && !pre.match(/\b(import|require)\(['"][^'"]*$/)) {
|
||||
@@ -609,8 +604,8 @@ function shouldExcludeCompletionEntry(
|
||||
) {
|
||||
return (
|
||||
(!completionConfiguration.nameSuggestions && element.kind === PConst.Kind.warning)
|
||||
|| (!completionConfiguration.quickSuggestionsForPaths &&
|
||||
(element.kind === PConst.Kind.directory || element.kind === PConst.Kind.script))
|
||||
|| (!completionConfiguration.pathSuggestions &&
|
||||
(element.kind === PConst.Kind.directory || element.kind === PConst.Kind.script || element.kind === PConst.Kind.externalModuleName))
|
||||
|| (!completionConfiguration.autoImportSuggestions && element.hasAction)
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user