Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/unmerge_imports.rs')
-rw-r--r--crates/ide-assists/src/handlers/unmerge_imports.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/crates/ide-assists/src/handlers/unmerge_imports.rs b/crates/ide-assists/src/handlers/unmerge_imports.rs
index accb5c28d6..520b106bd9 100644
--- a/crates/ide-assists/src/handlers/unmerge_imports.rs
+++ b/crates/ide-assists/src/handlers/unmerge_imports.rs
@@ -1,6 +1,6 @@
use syntax::{
AstNode, SyntaxKind,
- ast::{self, HasAttrs, HasVisibility, edit::IndentLevel, make, syntax_factory::SyntaxFactory},
+ ast::{self, HasAttrs, HasVisibility, edit::IndentLevel, make},
syntax_editor::{Element, Position, Removable},
};
@@ -41,26 +41,27 @@ pub(crate) fn unmerge_imports(acc: &mut Assists, ctx: &AssistContext<'_>) -> Opt
let target = tree.syntax().text_range();
acc.add(AssistId::refactor_rewrite("unmerge_imports"), label, target, |builder| {
- let make = SyntaxFactory::with_mappings();
+ let editor = builder.make_editor(use_.syntax());
+ let make = editor.make();
let new_use = make.use_(
use_.attrs(),
use_.visibility(),
make.use_tree(path, tree.use_tree_list(), tree.rename(), tree.star_token().is_some()),
);
- let mut editor = builder.make_editor(use_.syntax());
// Remove the use tree from the current use item
- tree.remove(&mut editor);
+ tree.remove(&editor);
// Insert a newline and indentation, followed by the new use item
editor.insert_all(
Position::after(use_.syntax()),
vec![
- make.whitespace(&format!("\n{}", IndentLevel::from_node(use_.syntax())))
+ editor
+ .make()
+ .whitespace(&format!("\n{}", IndentLevel::from_node(use_.syntax())))
.syntax_element(),
new_use.syntax().syntax_element(),
],
);
- editor.add_mappings(make.finish_with_mappings());
builder.add_file_edits(ctx.vfs_file_id(), editor);
})
}