diff options
author | Aleksey Kladov <[email protected]> | 2019-10-27 14:35:37 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-10-27 14:35:37 +0000 |
commit | cda6355de23825c201d02e6062cb2dd414e98bf9 (patch) | |
tree | 54c4a26d7a6688a89515cdc97ec02c1a9f9103bf /crates/ra_assists/src/assists/add_import.rs | |
parent | 9e638c9f3ee68784cd93ec0458b0c92c18776f06 (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.rs | 12 |
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 | ||
42 | pub(crate) fn add_import(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 42 | pub(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 | ||
71 | fn collect_path_segments_raw( | 69 | fn collect_path_segments_raw( |