@@ -36,29 +36,25 @@ pub(crate) fn unmerge_use(acc: &mut Assists, ctx: &AssistContext<'_>) -> Option<
3636 let old_parent_range = use_. syntax ( ) . parent ( ) ?. text_range ( ) ;
3737 let new_parent = use_. syntax ( ) . parent ( ) ?;
3838
39+ // If possible, explain what is going to be done.
40+ let label = match tree. path ( ) . and_then ( |path| path. first_segment ( ) ) {
41+ Some ( name) => format ! ( "Unmerge use of `{name}`" ) ,
42+ None => "Unmerge use" . into ( ) ,
43+ } ;
44+
3945 let target = tree. syntax ( ) . text_range ( ) ;
40- acc. add (
41- AssistId ( "unmerge_use" , AssistKind :: RefactorRewrite ) ,
42- "Unmerge use" ,
43- target,
44- |builder| {
45- let new_use = make:: use_ (
46- use_. visibility ( ) ,
47- make:: use_tree (
48- path,
49- tree. use_tree_list ( ) ,
50- tree. rename ( ) ,
51- tree. star_token ( ) . is_some ( ) ,
52- ) ,
53- )
54- . clone_for_update ( ) ;
55-
56- tree. remove ( ) ;
57- ted:: insert ( Position :: after ( use_. syntax ( ) ) , new_use. syntax ( ) ) ;
58-
59- builder. replace ( old_parent_range, new_parent. to_string ( ) ) ;
60- } ,
61- )
46+ acc. add ( AssistId ( "unmerge_use" , AssistKind :: RefactorRewrite ) , label, target, |builder| {
47+ let new_use = make:: use_ (
48+ use_. visibility ( ) ,
49+ make:: use_tree ( path, tree. use_tree_list ( ) , tree. rename ( ) , tree. star_token ( ) . is_some ( ) ) ,
50+ )
51+ . clone_for_update ( ) ;
52+
53+ tree. remove ( ) ;
54+ ted:: insert ( Position :: after ( use_. syntax ( ) ) , new_use. syntax ( ) ) ;
55+
56+ builder. replace ( old_parent_range, new_parent. to_string ( ) ) ;
57+ } )
6258}
6359
6460fn resolve_full_path ( tree : & ast:: UseTree ) -> Option < ast:: Path > {
0 commit comments