diff options
Diffstat (limited to 'crates')
-rw-r--r-- | crates/ide_completion/src/completions/dot.rs | 2 | ||||
-rw-r--r-- | crates/ide_completion/src/config.rs | 1 | ||||
-rw-r--r-- | crates/ide_completion/src/render.rs | 2 | ||||
-rw-r--r-- | crates/ide_completion/src/test_utils.rs | 1 | ||||
-rw-r--r-- | crates/rust-analyzer/src/config.rs | 4 | ||||
-rw-r--r-- | crates/rust-analyzer/src/integrated_benchmarks.rs | 2 | ||||
-rw-r--r-- | crates/rust-analyzer/src/to_proto.rs | 1 |
7 files changed, 11 insertions, 2 deletions
diff --git a/crates/ide_completion/src/completions/dot.rs b/crates/ide_completion/src/completions/dot.rs index 886251639..302c9ccbd 100644 --- a/crates/ide_completion/src/completions/dot.rs +++ b/crates/ide_completion/src/completions/dot.rs | |||
@@ -30,7 +30,7 @@ pub(crate) fn complete_dot(acc: &mut Completions, ctx: &CompletionContext) { | |||
30 | } | 30 | } |
31 | 31 | ||
32 | fn complete_undotted_self(acc: &mut Completions, ctx: &CompletionContext) { | 32 | fn complete_undotted_self(acc: &mut Completions, ctx: &CompletionContext) { |
33 | if !ctx.is_trivial_path { | 33 | if !ctx.is_trivial_path || !ctx.config.enable_self_on_the_fly { |
34 | return; | 34 | return; |
35 | } | 35 | } |
36 | ctx.scope.process_all_names(&mut |name, def| { | 36 | ctx.scope.process_all_names(&mut |name, def| { |
diff --git a/crates/ide_completion/src/config.rs b/crates/ide_completion/src/config.rs index d70ed6c1c..c300ce887 100644 --- a/crates/ide_completion/src/config.rs +++ b/crates/ide_completion/src/config.rs | |||
@@ -10,6 +10,7 @@ use ide_db::helpers::{insert_use::InsertUseConfig, SnippetCap}; | |||
10 | pub struct CompletionConfig { | 10 | pub struct CompletionConfig { |
11 | pub enable_postfix_completions: bool, | 11 | pub enable_postfix_completions: bool, |
12 | pub enable_imports_on_the_fly: bool, | 12 | pub enable_imports_on_the_fly: bool, |
13 | pub enable_self_on_the_fly: bool, | ||
13 | pub add_call_parenthesis: bool, | 14 | pub add_call_parenthesis: bool, |
14 | pub add_call_argument_snippets: bool, | 15 | pub add_call_argument_snippets: bool, |
15 | pub snippet_cap: Option<SnippetCap>, | 16 | pub snippet_cap: Option<SnippetCap>, |
diff --git a/crates/ide_completion/src/render.rs b/crates/ide_completion/src/render.rs index 97dd52851..a49a60711 100644 --- a/crates/ide_completion/src/render.rs +++ b/crates/ide_completion/src/render.rs | |||
@@ -139,7 +139,7 @@ impl<'a> Render<'a> { | |||
139 | let mut item = CompletionItem::new( | 139 | let mut item = CompletionItem::new( |
140 | CompletionKind::Reference, | 140 | CompletionKind::Reference, |
141 | self.ctx.source_range(), | 141 | self.ctx.source_range(), |
142 | receiver.map_or_else(|| name.to_string(), |receiver| format!("{}.{}", receiver, name)), | 142 | receiver.map_or_else(|| name.clone(), |receiver| format!("{}.{}", receiver, name)), |
143 | ); | 143 | ); |
144 | item.kind(SymbolKind::Field) | 144 | item.kind(SymbolKind::Field) |
145 | .detail(ty.display(self.ctx.db()).to_string()) | 145 | .detail(ty.display(self.ctx.db()).to_string()) |
diff --git a/crates/ide_completion/src/test_utils.rs b/crates/ide_completion/src/test_utils.rs index 93c7c872c..b0a4b2026 100644 --- a/crates/ide_completion/src/test_utils.rs +++ b/crates/ide_completion/src/test_utils.rs | |||
@@ -19,6 +19,7 @@ use crate::{item::CompletionKind, CompletionConfig, CompletionItem}; | |||
19 | pub(crate) const TEST_CONFIG: CompletionConfig = CompletionConfig { | 19 | pub(crate) const TEST_CONFIG: CompletionConfig = CompletionConfig { |
20 | enable_postfix_completions: true, | 20 | enable_postfix_completions: true, |
21 | enable_imports_on_the_fly: true, | 21 | enable_imports_on_the_fly: true, |
22 | enable_self_on_the_fly: true, | ||
22 | add_call_parenthesis: true, | 23 | add_call_parenthesis: true, |
23 | add_call_argument_snippets: true, | 24 | add_call_argument_snippets: true, |
24 | snippet_cap: SnippetCap::new(true), | 25 | snippet_cap: SnippetCap::new(true), |
diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs index a67b0bb25..ae78fd4f6 100644 --- a/crates/rust-analyzer/src/config.rs +++ b/crates/rust-analyzer/src/config.rs | |||
@@ -100,6 +100,9 @@ config_data! { | |||
100 | /// Toggles the additional completions that automatically add imports when completed. | 100 | /// Toggles the additional completions that automatically add imports when completed. |
101 | /// Note that your client must specify the `additionalTextEdits` LSP client capability to truly have this feature enabled. | 101 | /// Note that your client must specify the `additionalTextEdits` LSP client capability to truly have this feature enabled. |
102 | completion_autoimport_enable: bool = "true", | 102 | completion_autoimport_enable: bool = "true", |
103 | /// Toggles the additional completions that automatically show method calls and field accesses | ||
104 | /// with `self` prefixed to them when inside a method. | ||
105 | completion_autoself_enable: bool = "true", | ||
103 | 106 | ||
104 | /// Whether to show native rust-analyzer diagnostics. | 107 | /// Whether to show native rust-analyzer diagnostics. |
105 | diagnostics_enable: bool = "true", | 108 | diagnostics_enable: bool = "true", |
@@ -666,6 +669,7 @@ impl Config { | |||
666 | enable_postfix_completions: self.data.completion_postfix_enable, | 669 | enable_postfix_completions: self.data.completion_postfix_enable, |
667 | enable_imports_on_the_fly: self.data.completion_autoimport_enable | 670 | enable_imports_on_the_fly: self.data.completion_autoimport_enable |
668 | && completion_item_edit_resolve(&self.caps), | 671 | && completion_item_edit_resolve(&self.caps), |
672 | enable_self_on_the_fly: self.data.completion_autoself_enable, | ||
669 | add_call_parenthesis: self.data.completion_addCallParenthesis, | 673 | add_call_parenthesis: self.data.completion_addCallParenthesis, |
670 | add_call_argument_snippets: self.data.completion_addCallArgumentSnippets, | 674 | add_call_argument_snippets: self.data.completion_addCallArgumentSnippets, |
671 | insert_use: self.insert_use_config(), | 675 | insert_use: self.insert_use_config(), |
diff --git a/crates/rust-analyzer/src/integrated_benchmarks.rs b/crates/rust-analyzer/src/integrated_benchmarks.rs index 781073fe5..ec36a5f5c 100644 --- a/crates/rust-analyzer/src/integrated_benchmarks.rs +++ b/crates/rust-analyzer/src/integrated_benchmarks.rs | |||
@@ -132,6 +132,7 @@ fn integrated_completion_benchmark() { | |||
132 | let config = CompletionConfig { | 132 | let config = CompletionConfig { |
133 | enable_postfix_completions: true, | 133 | enable_postfix_completions: true, |
134 | enable_imports_on_the_fly: true, | 134 | enable_imports_on_the_fly: true, |
135 | enable_self_on_the_fly: true, | ||
135 | add_call_parenthesis: true, | 136 | add_call_parenthesis: true, |
136 | add_call_argument_snippets: true, | 137 | add_call_argument_snippets: true, |
137 | snippet_cap: SnippetCap::new(true), | 138 | snippet_cap: SnippetCap::new(true), |
@@ -166,6 +167,7 @@ fn integrated_completion_benchmark() { | |||
166 | let config = CompletionConfig { | 167 | let config = CompletionConfig { |
167 | enable_postfix_completions: true, | 168 | enable_postfix_completions: true, |
168 | enable_imports_on_the_fly: true, | 169 | enable_imports_on_the_fly: true, |
170 | enable_self_on_the_fly: true, | ||
169 | add_call_parenthesis: true, | 171 | add_call_parenthesis: true, |
170 | add_call_argument_snippets: true, | 172 | add_call_argument_snippets: true, |
171 | snippet_cap: SnippetCap::new(true), | 173 | snippet_cap: SnippetCap::new(true), |
diff --git a/crates/rust-analyzer/src/to_proto.rs b/crates/rust-analyzer/src/to_proto.rs index f5c8535a2..2b2ef2c60 100644 --- a/crates/rust-analyzer/src/to_proto.rs +++ b/crates/rust-analyzer/src/to_proto.rs | |||
@@ -1178,6 +1178,7 @@ mod tests { | |||
1178 | &ide::CompletionConfig { | 1178 | &ide::CompletionConfig { |
1179 | enable_postfix_completions: true, | 1179 | enable_postfix_completions: true, |
1180 | enable_imports_on_the_fly: true, | 1180 | enable_imports_on_the_fly: true, |
1181 | enable_self_on_the_fly: true, | ||
1181 | add_call_parenthesis: true, | 1182 | add_call_parenthesis: true, |
1182 | add_call_argument_snippets: true, | 1183 | add_call_argument_snippets: true, |
1183 | snippet_cap: SnippetCap::new(true), | 1184 | snippet_cap: SnippetCap::new(true), |