Skip to content

Commit 27964cc

Browse files
Merge #3052
3052: Rename add import assist r=matklad a=SomeoneToIgnore Based on the https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/2.20assists.20with.20the.20same.20action.20name/near/187655643 and the related discussion. Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2 parents 3e1d977 + 740a26b commit 27964cc

File tree

9 files changed

+96
-104
lines changed

9 files changed

+96
-104
lines changed

crates/ra_assists/src/doc_tests/generated.rs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//! Generated file, do not edit by hand, see `crate/ra_tools/src/codegen`
1+
//! Generated file, do not edit by hand, see `xtask/src/codegen`
22
33
use super::check;
44

@@ -160,21 +160,6 @@ impl Trait<u32> for () {
160160
)
161161
}
162162

163-
#[test]
164-
fn doctest_add_import() {
165-
check(
166-
"add_import",
167-
r#####"
168-
fn process(map: std::collections::<|>HashMap<String, String>) {}
169-
"#####,
170-
r#####"
171-
use std::collections::HashMap;
172-
173-
fn process(map: HashMap<String, String>) {}
174-
"#####,
175-
)
176-
}
177-
178163
#[test]
179164
fn doctest_add_new() {
180165
check(
@@ -591,6 +576,21 @@ fn handle(action: Action) {
591576
)
592577
}
593578

579+
#[test]
580+
fn doctest_replace_qualified_name_with_use() {
581+
check(
582+
"replace_qualified_name_with_use",
583+
r#####"
584+
fn process(map: std::collections::<|>HashMap<String, String>) {}
585+
"#####,
586+
r#####"
587+
use std::collections::HashMap;
588+
589+
fn process(map: HashMap<String, String>) {}
590+
"#####,
591+
)
592+
}
593+
594594
#[test]
595595
fn doctest_split_import() {
596596
check(

crates/ra_assists/src/handlers/auto_import.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use ra_syntax::{
77

88
use crate::{
99
assist_ctx::{ActionBuilder, Assist, AssistCtx},
10-
auto_import_text_edit, AssistId,
10+
insert_use_statement, AssistId,
1111
};
1212
use std::collections::BTreeSet;
1313

@@ -78,7 +78,7 @@ pub(crate) fn auto_import(ctx: AssistCtx) -> Option<Assist> {
7878
fn import_to_action(import: ModPath, position: &SyntaxNode, anchor: &SyntaxNode) -> ActionBuilder {
7979
let mut action_builder = ActionBuilder::default();
8080
action_builder.label(format!("Import `{}`", &import));
81-
auto_import_text_edit(position, anchor, &import, action_builder.text_edit_builder());
81+
insert_use_statement(position, anchor, &import, action_builder.text_edit_builder());
8282
action_builder
8383
}
8484

crates/ra_assists/src/handlers/add_import.rs renamed to crates/ra_assists/src/handlers/replace_qualified_name_with_use.rs

Lines changed: 56 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ use crate::{
1212
AssistId,
1313
};
1414

15-
/// This function produces sequence of text edits into edit
16-
/// to import the target path in the most appropriate scope given
17-
/// the cursor position
18-
pub fn auto_import_text_edit(
15+
/// Creates and inserts a use statement for the given path to import.
16+
/// The use statement is inserted in the scope most appropriate to the
17+
/// the cursor position given, additionally merged with the existing use imports.
18+
pub fn insert_use_statement(
1919
// Ideally the position of the cursor, used to
2020
position: &SyntaxNode,
2121
// The statement to use as anchor (last resort)
@@ -37,9 +37,9 @@ pub fn auto_import_text_edit(
3737
}
3838
}
3939

40-
// Assist: add_import
40+
// Assist: replace_qualified_name_with_use
4141
//
42-
// Adds a use statement for a given fully-qualified path.
42+
// Adds a use statement for a given fully-qualified name.
4343
//
4444
// ```
4545
// fn process(map: std::collections::<|>HashMap<String, String>) {}
@@ -50,7 +50,7 @@ pub fn auto_import_text_edit(
5050
//
5151
// fn process(map: HashMap<String, String>) {}
5252
// ```
53-
pub(crate) fn add_import(ctx: AssistCtx) -> Option<Assist> {
53+
pub(crate) fn replace_qualified_name_with_use(ctx: AssistCtx) -> Option<Assist> {
5454
let path: ast::Path = ctx.find_node_at_offset()?;
5555
// We don't want to mess with use statements
5656
if path.syntax().ancestors().find_map(ast::UseItem::cast).is_some() {
@@ -72,9 +72,13 @@ pub(crate) fn add_import(ctx: AssistCtx) -> Option<Assist> {
7272
}
7373
};
7474

75-
ctx.add_assist(AssistId("add_import"), format!("Import {}", fmt_segments(&segments)), |edit| {
76-
apply_auto_import(&position, &path, &segments, edit.text_edit_builder());
77-
})
75+
ctx.add_assist(
76+
AssistId("replace_qualified_name_with_use"),
77+
"Replace qualified path with use",
78+
|edit| {
79+
replace_with_use(&position, &path, &segments, edit.text_edit_builder());
80+
},
81+
)
7882
}
7983

8084
fn collect_path_segments_raw(
@@ -107,12 +111,6 @@ fn collect_path_segments_raw(
107111
Some(segments.len() - oldlen)
108112
}
109113

110-
fn fmt_segments(segments: &[SmolStr]) -> String {
111-
let mut buf = String::new();
112-
fmt_segments_raw(segments, &mut buf);
113-
buf
114-
}
115-
116114
fn fmt_segments_raw(segments: &[SmolStr], buf: &mut String) {
117115
let mut iter = segments.iter();
118116
if let Some(s) = iter.next() {
@@ -558,7 +556,7 @@ fn make_assist_add_nested_import(
558556
}
559557
}
560558

561-
fn apply_auto_import(
559+
fn replace_with_use(
562560
container: &SyntaxNode,
563561
path: &ast::Path,
564562
target: &[SmolStr],
@@ -567,7 +565,7 @@ fn apply_auto_import(
567565
let action = best_action_for_target(container.clone(), path.syntax().clone(), target);
568566
make_assist(&action, target, edit);
569567
if let Some(last) = path.segment() {
570-
// Here we are assuming the assist will provide a correct use statement
568+
// Here we are assuming the assist will provide a correct use statement
571569
// so we can delete the path qualifier
572570
edit.delete(TextRange::from_to(
573571
path.syntax().text_range().start(),
@@ -603,9 +601,9 @@ mod tests {
603601
use super::*;
604602

605603
#[test]
606-
fn test_auto_import_add_use_no_anchor() {
604+
fn test_replace_add_use_no_anchor() {
607605
check_assist(
608-
add_import,
606+
replace_qualified_name_with_use,
609607
"
610608
std::fmt::Debug<|>
611609
",
@@ -617,9 +615,9 @@ Debug<|>
617615
);
618616
}
619617
#[test]
620-
fn test_auto_import_add_use_no_anchor_with_item_below() {
618+
fn test_replace_add_use_no_anchor_with_item_below() {
621619
check_assist(
622-
add_import,
620+
replace_qualified_name_with_use,
623621
"
624622
std::fmt::Debug<|>
625623
@@ -638,9 +636,9 @@ fn main() {
638636
}
639637

640638
#[test]
641-
fn test_auto_import_add_use_no_anchor_with_item_above() {
639+
fn test_replace_add_use_no_anchor_with_item_above() {
642640
check_assist(
643-
add_import,
641+
replace_qualified_name_with_use,
644642
"
645643
fn main() {
646644
}
@@ -659,9 +657,9 @@ Debug<|>
659657
}
660658

661659
#[test]
662-
fn test_auto_import_add_use_no_anchor_2seg() {
660+
fn test_replace_add_use_no_anchor_2seg() {
663661
check_assist(
664-
add_import,
662+
replace_qualified_name_with_use,
665663
"
666664
std::fmt<|>::Debug
667665
",
@@ -674,9 +672,9 @@ fmt<|>::Debug
674672
}
675673

676674
#[test]
677-
fn test_auto_import_add_use() {
675+
fn test_replace_add_use() {
678676
check_assist(
679-
add_import,
677+
replace_qualified_name_with_use,
680678
"
681679
use stdx;
682680
@@ -694,9 +692,9 @@ impl Debug<|> for Foo {
694692
}
695693

696694
#[test]
697-
fn test_auto_import_file_use_other_anchor() {
695+
fn test_replace_file_use_other_anchor() {
698696
check_assist(
699-
add_import,
697+
replace_qualified_name_with_use,
700698
"
701699
impl std::fmt::Debug<|> for Foo {
702700
}
@@ -711,9 +709,9 @@ impl Debug<|> for Foo {
711709
}
712710

713711
#[test]
714-
fn test_auto_import_add_use_other_anchor_indent() {
712+
fn test_replace_add_use_other_anchor_indent() {
715713
check_assist(
716-
add_import,
714+
replace_qualified_name_with_use,
717715
"
718716
impl std::fmt::Debug<|> for Foo {
719717
}
@@ -728,9 +726,9 @@ impl Debug<|> for Foo {
728726
}
729727

730728
#[test]
731-
fn test_auto_import_split_different() {
729+
fn test_replace_split_different() {
732730
check_assist(
733-
add_import,
731+
replace_qualified_name_with_use,
734732
"
735733
use std::fmt;
736734
@@ -747,9 +745,9 @@ impl io<|> for Foo {
747745
}
748746

749747
#[test]
750-
fn test_auto_import_split_self_for_use() {
748+
fn test_replace_split_self_for_use() {
751749
check_assist(
752-
add_import,
750+
replace_qualified_name_with_use,
753751
"
754752
use std::fmt;
755753
@@ -766,9 +764,9 @@ impl Debug<|> for Foo {
766764
}
767765

768766
#[test]
769-
fn test_auto_import_split_self_for_target() {
767+
fn test_replace_split_self_for_target() {
770768
check_assist(
771-
add_import,
769+
replace_qualified_name_with_use,
772770
"
773771
use std::fmt::Debug;
774772
@@ -785,9 +783,9 @@ impl fmt<|> for Foo {
785783
}
786784

787785
#[test]
788-
fn test_auto_import_add_to_nested_self_nested() {
786+
fn test_replace_add_to_nested_self_nested() {
789787
check_assist(
790-
add_import,
788+
replace_qualified_name_with_use,
791789
"
792790
use std::fmt::{Debug, nested::{Display}};
793791
@@ -804,9 +802,9 @@ impl nested<|> for Foo {
804802
}
805803

806804
#[test]
807-
fn test_auto_import_add_to_nested_self_already_included() {
805+
fn test_replace_add_to_nested_self_already_included() {
808806
check_assist(
809-
add_import,
807+
replace_qualified_name_with_use,
810808
"
811809
use std::fmt::{Debug, nested::{self, Display}};
812810
@@ -823,9 +821,9 @@ impl nested<|> for Foo {
823821
}
824822

825823
#[test]
826-
fn test_auto_import_add_to_nested_nested() {
824+
fn test_replace_add_to_nested_nested() {
827825
check_assist(
828-
add_import,
826+
replace_qualified_name_with_use,
829827
"
830828
use std::fmt::{Debug, nested::{Display}};
831829
@@ -842,9 +840,9 @@ impl Debug<|> for Foo {
842840
}
843841

844842
#[test]
845-
fn test_auto_import_split_common_target_longer() {
843+
fn test_replace_split_common_target_longer() {
846844
check_assist(
847-
add_import,
845+
replace_qualified_name_with_use,
848846
"
849847
use std::fmt::Debug;
850848
@@ -861,9 +859,9 @@ impl Display<|> for Foo {
861859
}
862860

863861
#[test]
864-
fn test_auto_import_split_common_use_longer() {
862+
fn test_replace_split_common_use_longer() {
865863
check_assist(
866-
add_import,
864+
replace_qualified_name_with_use,
867865
"
868866
use std::fmt::nested::Debug;
869867
@@ -880,9 +878,9 @@ impl Display<|> for Foo {
880878
}
881879

882880
#[test]
883-
fn test_auto_import_use_nested_import() {
881+
fn test_replace_use_nested_import() {
884882
check_assist(
885-
add_import,
883+
replace_qualified_name_with_use,
886884
"
887885
use crate::{
888886
ty::{Substs, Ty},
@@ -903,9 +901,9 @@ fn foo() { lower<|>::trait_env() }
903901
}
904902

905903
#[test]
906-
fn test_auto_import_alias() {
904+
fn test_replace_alias() {
907905
check_assist(
908-
add_import,
906+
replace_qualified_name_with_use,
909907
"
910908
use std::fmt as foo;
911909
@@ -922,9 +920,9 @@ impl Debug<|> for Foo {
922920
}
923921

924922
#[test]
925-
fn test_auto_import_not_applicable_one_segment() {
923+
fn test_replace_not_applicable_one_segment() {
926924
check_assist_not_applicable(
927-
add_import,
925+
replace_qualified_name_with_use,
928926
"
929927
impl foo<|> for Foo {
930928
}
@@ -933,19 +931,19 @@ impl foo<|> for Foo {
933931
}
934932

935933
#[test]
936-
fn test_auto_import_not_applicable_in_use() {
934+
fn test_replace_not_applicable_in_use() {
937935
check_assist_not_applicable(
938-
add_import,
936+
replace_qualified_name_with_use,
939937
"
940938
use std::fmt<|>;
941939
",
942940
);
943941
}
944942

945943
#[test]
946-
fn test_auto_import_add_use_no_anchor_in_mod_mod() {
944+
fn test_replace_add_use_no_anchor_in_mod_mod() {
947945
check_assist(
948-
add_import,
946+
replace_qualified_name_with_use,
949947
"
950948
mod foo {
951949
mod bar {

0 commit comments

Comments
 (0)