]> git.lizzy.rs Git - rust.git/commitdiff
Use format_to! to make logic a bit nicer
authorMatt Hall <matthew@quickbeam.me.uk>
Sat, 20 Feb 2021 17:11:04 +0000 (17:11 +0000)
committerMatt Hall <matthew@quickbeam.me.uk>
Sat, 20 Feb 2021 17:11:04 +0000 (17:11 +0000)
crates/assists/src/handlers/move_module_to_file.rs

index 1f2d8f20fb8f7ee97598e94f871659dafaecbd6a..91c395c1b2067cef13848b290315302bcafdf288 100644 (file)
@@ -1,5 +1,6 @@
 use ast::{edit::IndentLevel, VisibilityOwner};
 use ide_db::base_db::AnchoredPathBuf;
+use stdx::format_to;
 use syntax::{
     ast::{self, edit::AstNodeEdit, NameOwner},
     AstNode, TextRange,
@@ -36,8 +37,6 @@ pub(crate) fn move_module_to_file(acc: &mut Assists, ctx: &AssistContext) -> Opt
 
     let module_def = ctx.sema.to_def(&module_ast)?;
     let parent_module = module_def.parent(ctx.db())?;
-    let vis_str =
-        if let Some(v) = module_ast.visibility() { v.to_string() + " " } else { "".to_string() };
 
     acc.add(
         AssistId("move_module_to_file", AssistKind::RefactorExtract),
@@ -61,10 +60,13 @@ pub(crate) fn move_module_to_file(acc: &mut Assists, ctx: &AssistContext) -> Opt
                 items
             };
 
-            builder.replace(
-                module_ast.syntax().text_range(),
-                format!("{}mod {};", vis_str, module_name),
-            );
+            let mut buf = String::new();
+            if let Some(v) = module_ast.visibility() {
+                format_to!(buf, "{} ", v);
+            }
+            format_to!(buf, "mod {};", module_name);
+
+            builder.replace(module_ast.syntax().text_range(), buf);
 
             let dst = AnchoredPathBuf { anchor: ctx.frange.file_id, path };
             builder.create_file(dst, contents);