feat: Make private editable completions configurable, disable by default

This commit is contained in:
Lukas Wirth 2022-02-23 16:02:54 +01:00
parent 789f2b9cb6
commit 2a7793d912
7 changed files with 22 additions and 2 deletions

View file

@ -13,6 +13,7 @@ pub struct CompletionConfig {
pub enable_postfix_completions: bool,
pub enable_imports_on_the_fly: bool,
pub enable_self_on_the_fly: bool,
pub enable_private_editable: bool,
pub add_call_parenthesis: bool,
pub add_call_argument_snippets: bool,
pub snippet_cap: Option<SnippetCap>,

View file

@ -360,6 +360,9 @@ impl<'a> CompletionContext<'a> {
None => return Visible::No,
};
if !vis.is_visible_from(self.db, module.into()) {
if !self.config.enable_private_editable {
return Visible::No;
}
// If the definition location is editable, also show private items
let root_file = defining_crate.root_file(self.db);
let source_root_id = self.db.file_source_root(root_file);

View file

@ -64,6 +64,7 @@ pub(crate) const TEST_CONFIG: CompletionConfig = CompletionConfig {
enable_postfix_completions: true,
enable_imports_on_the_fly: true,
enable_self_on_the_fly: true,
enable_private_editable: true,
add_call_parenthesis: true,
add_call_argument_snippets: true,
snippet_cap: SnippetCap::new(true),