1
1
use ast:: { edit:: IndentLevel , VisibilityOwner } ;
2
2
use ide_db:: base_db:: AnchoredPathBuf ;
3
+ use stdx:: format_to;
3
4
use syntax:: {
4
5
ast:: { self , edit:: AstNodeEdit , NameOwner } ,
5
6
AstNode , TextRange ,
@@ -36,8 +37,6 @@ pub(crate) fn move_module_to_file(acc: &mut Assists, ctx: &AssistContext) -> Opt
36
37
37
38
let module_def = ctx. sema . to_def ( & module_ast) ?;
38
39
let parent_module = module_def. parent ( ctx. db ( ) ) ?;
39
- let vis_str =
40
- if let Some ( v) = module_ast. visibility ( ) { v. to_string ( ) + " " } else { "" . to_string ( ) } ;
41
40
42
41
acc. add (
43
42
AssistId ( "move_module_to_file" , AssistKind :: RefactorExtract ) ,
@@ -61,10 +60,13 @@ pub(crate) fn move_module_to_file(acc: &mut Assists, ctx: &AssistContext) -> Opt
61
60
items
62
61
} ;
63
62
64
- builder. replace (
65
- module_ast. syntax ( ) . text_range ( ) ,
66
- format ! ( "{}mod {};" , vis_str, module_name) ,
67
- ) ;
63
+ let mut buf = String :: new ( ) ;
64
+ if let Some ( v) = module_ast. visibility ( ) {
65
+ format_to ! ( buf, "{} " , v) ;
66
+ }
67
+ format_to ! ( buf, "mod {};" , module_name) ;
68
+
69
+ builder. replace ( module_ast. syntax ( ) . text_range ( ) , buf) ;
68
70
69
71
let dst = AnchoredPathBuf { anchor : ctx. frange . file_id , path } ;
70
72
builder. create_file ( dst, contents) ;
0 commit comments