diff options
author | Aleksey Kladov <[email protected]> | 2019-02-24 10:53:35 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-02-24 11:00:00 +0000 |
commit | ef442b8682909f2ab758f55507d4c2e81673cfa1 (patch) | |
tree | ea042b5ff65f74b9f336de62879eefaa7e8ca2bc /crates/ra_assists/src/auto_import.rs | |
parent | f6f160391db945a0dcc2f73b38926d6919f7c566 (diff) |
Assign IDs to assists
Diffstat (limited to 'crates/ra_assists/src/auto_import.rs')
-rw-r--r-- | crates/ra_assists/src/auto_import.rs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/crates/ra_assists/src/auto_import.rs b/crates/ra_assists/src/auto_import.rs index 105c888d5..685dbed06 100644 --- a/crates/ra_assists/src/auto_import.rs +++ b/crates/ra_assists/src/auto_import.rs | |||
@@ -4,7 +4,10 @@ use ra_syntax::{ | |||
4 | ast::{ self, NameOwner }, AstNode, SyntaxNode, Direction, TextRange, | 4 | ast::{ self, NameOwner }, AstNode, SyntaxNode, Direction, TextRange, |
5 | SyntaxKind::{ PATH, PATH_SEGMENT, COLONCOLON, COMMA } | 5 | SyntaxKind::{ PATH, PATH_SEGMENT, COLONCOLON, COMMA } |
6 | }; | 6 | }; |
7 | use crate::assist_ctx::{AssistCtx, Assist, AssistBuilder}; | 7 | use crate::{ |
8 | AssistId, | ||
9 | assist_ctx::{AssistCtx, Assist, AssistBuilder}, | ||
10 | }; | ||
8 | 11 | ||
9 | fn collect_path_segments(path: &ast::Path) -> Option<Vec<&ast::PathSegment>> { | 12 | fn collect_path_segments(path: &ast::Path) -> Option<Vec<&ast::PathSegment>> { |
10 | let mut v = Vec::new(); | 13 | let mut v = Vec::new(); |
@@ -526,6 +529,7 @@ pub(crate) fn auto_import(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist | |||
526 | if let Some(module) = path.syntax().ancestors().find_map(ast::Module::cast) { | 529 | if let Some(module) = path.syntax().ancestors().find_map(ast::Module::cast) { |
527 | if let (Some(item_list), Some(name)) = (module.item_list(), module.name()) { | 530 | if let (Some(item_list), Some(name)) = (module.item_list(), module.name()) { |
528 | ctx.add_action( | 531 | ctx.add_action( |
532 | AssistId("auto_import"), | ||
529 | format!("import {} in mod {}", fmt_segments(&segments), name.text()), | 533 | format!("import {} in mod {}", fmt_segments(&segments), name.text()), |
530 | |edit| { | 534 | |edit| { |
531 | apply_auto_import(item_list.syntax(), path, &segments, edit); | 535 | apply_auto_import(item_list.syntax(), path, &segments, edit); |
@@ -534,9 +538,13 @@ pub(crate) fn auto_import(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist | |||
534 | } | 538 | } |
535 | } else { | 539 | } else { |
536 | let current_file = node.ancestors().find_map(ast::SourceFile::cast)?; | 540 | let current_file = node.ancestors().find_map(ast::SourceFile::cast)?; |
537 | ctx.add_action(format!("import {} in the current file", fmt_segments(&segments)), |edit| { | 541 | ctx.add_action( |
538 | apply_auto_import(current_file.syntax(), path, &segments, edit); | 542 | AssistId("auto_import"), |
539 | }); | 543 | format!("import {} in the current file", fmt_segments(&segments)), |
544 | |edit| { | ||
545 | apply_auto_import(current_file.syntax(), path, &segments, edit); | ||
546 | }, | ||
547 | ); | ||
540 | } | 548 | } |
541 | 549 | ||
542 | ctx.build() | 550 | ctx.build() |