aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src/completion/completion_context.rs
diff options
context:
space:
mode:
authorBenjamin Coenen <[email protected]>2020-05-24 15:47:35 +0100
committerBenjamin Coenen <[email protected]>2020-05-24 15:47:35 +0100
commit0e814a3b5f5c7d034b0249cfb4391d9fcb9d8e42 (patch)
treef83cdc8f32c9a0110fc695f47b5df5a6868f50af /crates/ra_ide/src/completion/completion_context.rs
parentf4f5fca10175b8d5fdfa36563c103f81b2b0acd3 (diff)
fix textedit range returned for completion when left token is a keyword #4545
Signed-off-by: Benjamin Coenen <[email protected]>
Diffstat (limited to 'crates/ra_ide/src/completion/completion_context.rs')
-rw-r--r--crates/ra_ide/src/completion/completion_context.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/crates/ra_ide/src/completion/completion_context.rs b/crates/ra_ide/src/completion/completion_context.rs
index da336973c..e8bf07d6e 100644
--- a/crates/ra_ide/src/completion/completion_context.rs
+++ b/crates/ra_ide/src/completion/completion_context.rs
@@ -169,7 +169,16 @@ impl<'a> CompletionContext<'a> {
169 match self.token.kind() { 169 match self.token.kind() {
170 // workaroud when completion is triggered by trigger characters. 170 // workaroud when completion is triggered by trigger characters.
171 IDENT => self.original_token.text_range(), 171 IDENT => self.original_token.text_range(),
172 _ => TextRange::empty(self.offset), 172 _ => {
173 // If we haven't characters between keyword and our cursor we take the keyword start range to edit
174 if self.token.kind().is_keyword()
175 && self.offset == self.original_token.text_range().end()
176 {
177 TextRange::empty(self.original_token.text_range().start())
178 } else {
179 TextRange::empty(self.offset)
180 }
181 }
173 } 182 }
174 } 183 }
175 184