mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-25 04:23:25 +00:00
feat: Make private editable completions configurable, disable by default
This commit is contained in:
parent
789f2b9cb6
commit
2a7793d912
7 changed files with 22 additions and 2 deletions
|
@ -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>,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -161,13 +161,15 @@ config_data! {
|
|||
}
|
||||
}"#,
|
||||
/// Whether to show postfix snippets like `dbg`, `if`, `not`, etc.
|
||||
completion_postfix_enable: bool = "true",
|
||||
completion_postfix_enable: bool = "true",
|
||||
/// Toggles the additional completions that automatically add imports when completed.
|
||||
/// Note that your client must specify the `additionalTextEdits` LSP client capability to truly have this feature enabled.
|
||||
completion_autoimport_enable: bool = "true",
|
||||
/// Toggles the additional completions that automatically show method calls and field accesses
|
||||
/// with `self` prefixed to them when inside a method.
|
||||
completion_autoself_enable: bool = "true",
|
||||
completion_autoself_enable: bool = "true",
|
||||
/// Enables completions of private items and fields that are defined in the current workspace even if they are not visible at the current position.
|
||||
completion_privateEditable_enable: bool = "false",
|
||||
|
||||
/// Whether to show native rust-analyzer diagnostics.
|
||||
diagnostics_enable: bool = "true",
|
||||
|
@ -875,6 +877,7 @@ impl Config {
|
|||
enable_imports_on_the_fly: self.data.completion_autoimport_enable
|
||||
&& completion_item_edit_resolve(&self.caps),
|
||||
enable_self_on_the_fly: self.data.completion_autoself_enable,
|
||||
enable_private_editable: self.data.completion_privateEditable_enable,
|
||||
add_call_parenthesis: self.data.completion_addCallParenthesis,
|
||||
add_call_argument_snippets: self.data.completion_addCallArgumentSnippets,
|
||||
insert_use: self.insert_use_config(),
|
||||
|
|
|
@ -134,6 +134,7 @@ fn integrated_completion_benchmark() {
|
|||
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),
|
||||
|
@ -171,6 +172,7 @@ fn integrated_completion_benchmark() {
|
|||
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),
|
||||
|
|
|
@ -213,6 +213,11 @@ Note that your client must specify the `additionalTextEdits` LSP client capabili
|
|||
Toggles the additional completions that automatically show method calls and field accesses
|
||||
with `self` prefixed to them when inside a method.
|
||||
--
|
||||
[[rust-analyzer.completion.privateEditable.enable]]rust-analyzer.completion.privateEditable.enable (default: `false`)::
|
||||
+
|
||||
--
|
||||
Enables completions of private items and fields that are defined in the current workspace even if they are not visible at the current position.
|
||||
--
|
||||
[[rust-analyzer.diagnostics.enable]]rust-analyzer.diagnostics.enable (default: `true`)::
|
||||
+
|
||||
--
|
||||
|
|
|
@ -643,6 +643,11 @@
|
|||
"default": true,
|
||||
"type": "boolean"
|
||||
},
|
||||
"rust-analyzer.completion.privateEditable.enable": {
|
||||
"markdownDescription": "Enables completions of private items and fields that are defined in the current workspace even if they are not visible at the current position.",
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
"rust-analyzer.diagnostics.enable": {
|
||||
"markdownDescription": "Whether to show native rust-analyzer diagnostics.",
|
||||
"default": true,
|
||||
|
|
Loading…
Reference in a new issue