diff options
Diffstat (limited to 'crates/ra_analysis/src/completion')
-rw-r--r-- | crates/ra_analysis/src/completion/mod.rs | 7 | ||||
-rw-r--r-- | crates/ra_analysis/src/completion/reference_completion.rs | 14 |
2 files changed, 14 insertions, 7 deletions
diff --git a/crates/ra_analysis/src/completion/mod.rs b/crates/ra_analysis/src/completion/mod.rs index e5ba92acd..0f154112a 100644 --- a/crates/ra_analysis/src/completion/mod.rs +++ b/crates/ra_analysis/src/completion/mod.rs | |||
@@ -9,6 +9,7 @@ use ra_syntax::{ | |||
9 | }; | 9 | }; |
10 | use ra_db::SyntaxDatabase; | 10 | use ra_db::SyntaxDatabase; |
11 | use rustc_hash::{FxHashMap}; | 11 | use rustc_hash::{FxHashMap}; |
12 | use hir::source_binder; | ||
12 | 13 | ||
13 | use crate::{ | 14 | use crate::{ |
14 | db, | 15 | db, |
@@ -36,7 +37,7 @@ pub(crate) fn completions( | |||
36 | original_file.reparse(&edit) | 37 | original_file.reparse(&edit) |
37 | }; | 38 | }; |
38 | 39 | ||
39 | let module = ctry!(hir::Module::guess_from_position(db, position)?); | 40 | let module = ctry!(source_binder::module_from_position(db, position)?); |
40 | 41 | ||
41 | let mut res = Vec::new(); | 42 | let mut res = Vec::new(); |
42 | let mut has_completions = false; | 43 | let mut has_completions = false; |
@@ -427,7 +428,7 @@ mod tests { | |||
427 | // check_snippet_completion(r" | 428 | // check_snippet_completion(r" |
428 | // <|> | 429 | // <|> |
429 | // ", | 430 | // ", |
430 | // r##"[CompletionItem { label: "tfn", lookup: None, snippet: Some("#[test]\nfn $1() {\n $0\n}") }]"##, | 431 | // r##"[CompletionItem { label: "Test function", lookup: None, snippet: Some("#[test]\nfn test_${1:feature}() {\n$0\n}"##, |
431 | // ); | 432 | // ); |
432 | check_snippet_completion(r" | 433 | check_snippet_completion(r" |
433 | #[cfg(test)] | 434 | #[cfg(test)] |
@@ -435,7 +436,7 @@ mod tests { | |||
435 | <|> | 436 | <|> |
436 | } | 437 | } |
437 | ", | 438 | ", |
438 | r##"[CompletionItem { label: "tfn", lookup: None, snippet: Some("#[test]\nfn $1() {\n $0\n}") }, | 439 | r##"[CompletionItem { label: "Test function", lookup: Some("tfn"), snippet: Some("#[test]\nfn ${1:feature}() {\n$0\n}") }, |
439 | CompletionItem { label: "pub(crate)", lookup: None, snippet: Some("pub(crate) $0") }]"##, | 440 | CompletionItem { label: "pub(crate)", lookup: None, snippet: Some("pub(crate) $0") }]"##, |
440 | ); | 441 | ); |
441 | } | 442 | } |
diff --git a/crates/ra_analysis/src/completion/reference_completion.rs b/crates/ra_analysis/src/completion/reference_completion.rs index e1a2d5241..f483ed045 100644 --- a/crates/ra_analysis/src/completion/reference_completion.rs +++ b/crates/ra_analysis/src/completion/reference_completion.rs | |||
@@ -163,7 +163,7 @@ fn complete_path( | |||
163 | }; | 163 | }; |
164 | let target_module = match def_id.resolve(db)? { | 164 | let target_module = match def_id.resolve(db)? { |
165 | Def::Module(it) => it, | 165 | Def::Module(it) => it, |
166 | Def::Item => return Ok(()), | 166 | _ => return Ok(()), |
167 | }; | 167 | }; |
168 | let module_scope = target_module.scope(db)?; | 168 | let module_scope = target_module.scope(db)?; |
169 | let completions = module_scope.entries().map(|(name, _res)| CompletionItem { | 169 | let completions = module_scope.entries().map(|(name, _res)| CompletionItem { |
@@ -177,9 +177,15 @@ fn complete_path( | |||
177 | 177 | ||
178 | fn complete_mod_item_snippets(acc: &mut Vec<CompletionItem>) { | 178 | fn complete_mod_item_snippets(acc: &mut Vec<CompletionItem>) { |
179 | acc.push(CompletionItem { | 179 | acc.push(CompletionItem { |
180 | label: "tfn".to_string(), | 180 | label: "Test function".to_string(), |
181 | lookup: None, | 181 | lookup: Some("tfn".to_string()), |
182 | snippet: Some("#[test]\nfn $1() {\n $0\n}".to_string()), | 182 | snippet: Some( |
183 | "#[test]\n\ | ||
184 | fn ${1:feature}() {\n\ | ||
185 | $0\n\ | ||
186 | }" | ||
187 | .to_string(), | ||
188 | ), | ||
183 | }); | 189 | }); |
184 | acc.push(CompletionItem { | 190 | acc.push(CompletionItem { |
185 | label: "pub(crate)".to_string(), | 191 | label: "pub(crate)".to_string(), |