aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_assists/src/assists/add_import.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-10-27 14:35:37 +0000
committerAleksey Kladov <[email protected]>2019-10-27 14:35:37 +0000
commitcda6355de23825c201d02e6062cb2dd414e98bf9 (patch)
tree54c4a26d7a6688a89515cdc97ec02c1a9f9103bf /crates/ra_assists/src/assists/add_import.rs
parent9e638c9f3ee68784cd93ec0458b0c92c18776f06 (diff)
simplify AssistCtx API
We never actually use ability to create multiple actions out of a single context
Diffstat (limited to 'crates/ra_assists/src/assists/add_import.rs')
-rw-r--r--crates/ra_assists/src/assists/add_import.rs12
1 files changed, 5 insertions, 7 deletions
diff --git a/crates/ra_assists/src/assists/add_import.rs b/crates/ra_assists/src/assists/add_import.rs
index 7aa66b1fe..c522d6a5a 100644
--- a/crates/ra_assists/src/assists/add_import.rs
+++ b/crates/ra_assists/src/assists/add_import.rs
@@ -39,7 +39,7 @@ pub fn auto_import_text_edit(
39 } 39 }
40} 40}
41 41
42pub(crate) fn add_import(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { 42pub(crate) fn add_import(ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> {
43 let path: ast::Path = ctx.find_node_at_offset()?; 43 let path: ast::Path = ctx.find_node_at_offset()?;
44 // We don't want to mess with use statements 44 // We don't want to mess with use statements
45 if path.syntax().ancestors().find_map(ast::UseItem::cast).is_some() { 45 if path.syntax().ancestors().find_map(ast::UseItem::cast).is_some() {
@@ -53,7 +53,7 @@ pub(crate) fn add_import(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist>
53 } 53 }
54 54
55 let module = path.syntax().ancestors().find_map(ast::Module::cast); 55 let module = path.syntax().ancestors().find_map(ast::Module::cast);
56 let anchor = match module.and_then(|it| it.item_list()) { 56 let position = match module.and_then(|it| it.item_list()) {
57 Some(item_list) => item_list.syntax().clone(), 57 Some(item_list) => item_list.syntax().clone(),
58 None => { 58 None => {
59 let current_file = path.syntax().ancestors().find_map(ast::SourceFile::cast)?; 59 let current_file = path.syntax().ancestors().find_map(ast::SourceFile::cast)?;
@@ -61,11 +61,9 @@ pub(crate) fn add_import(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist>
61 } 61 }
62 }; 62 };
63 63
64 ctx.add_action(AssistId("add_import"), format!("import {}", fmt_segments(&segments)), |edit| { 64 ctx.add_assist(AssistId("add_import"), format!("import {}", fmt_segments(&segments)), |edit| {
65 apply_auto_import(&anchor, &path, &segments, edit.text_edit_builder()); 65 apply_auto_import(&position, &path, &segments, edit.text_edit_builder());
66 }); 66 })
67
68 ctx.build()
69} 67}
70 68
71fn collect_path_segments_raw( 69fn collect_path_segments_raw(