aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_assists/src/assists/add_import.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_assists/src/assists/add_import.rs')
-rw-r--r--crates/ra_assists/src/assists/add_import.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/crates/ra_assists/src/assists/add_import.rs b/crates/ra_assists/src/assists/add_import.rs
index bf6cfe865..96a494c93 100644
--- a/crates/ra_assists/src/assists/add_import.rs
+++ b/crates/ra_assists/src/assists/add_import.rs
@@ -1,4 +1,4 @@
1use hir::{self, db::HirDatabase}; 1use hir::{self, db::HirDatabase, ModPath};
2use ra_syntax::{ 2use ra_syntax::{
3 ast::{self, NameOwner}, 3 ast::{self, NameOwner},
4 AstNode, Direction, SmolStr, 4 AstNode, Direction, SmolStr,
@@ -21,9 +21,10 @@ pub fn auto_import_text_edit(
21 // The statement to use as anchor (last resort) 21 // The statement to use as anchor (last resort)
22 anchor: &SyntaxNode, 22 anchor: &SyntaxNode,
23 // The path to import as a sequence of strings 23 // The path to import as a sequence of strings
24 target: &[SmolStr], 24 path_to_import: &ModPath,
25 edit: &mut TextEditBuilder, 25 edit: &mut TextEditBuilder,
26) { 26) {
27 let target = path_to_import.to_string().split("::").map(SmolStr::new).collect::<Vec<_>>();
27 let container = position.ancestors().find_map(|n| { 28 let container = position.ancestors().find_map(|n| {
28 if let Some(module) = ast::Module::cast(n.clone()) { 29 if let Some(module) = ast::Module::cast(n.clone()) {
29 return module.item_list().map(|it| it.syntax().clone()); 30 return module.item_list().map(|it| it.syntax().clone());
@@ -32,8 +33,8 @@ pub fn auto_import_text_edit(
32 }); 33 });
33 34
34 if let Some(container) = container { 35 if let Some(container) = container {
35 let action = best_action_for_target(container, anchor.clone(), target); 36 let action = best_action_for_target(container, anchor.clone(), &target);
36 make_assist(&action, target, edit); 37 make_assist(&action, &target, edit);
37 } 38 }
38} 39}
39 40