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.rs19
1 files changed, 12 insertions, 7 deletions
diff --git a/crates/ide-assists/src/handlers/unmerge_imports.rs b/crates/ide-assists/src/handlers/unmerge_imports.rs
index accb5c28d6..115e8c36bc 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,31 @@ 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 new_use = make.use_(
+ let mut editor = builder.make_editor(use_.syntax());
+ let new_use = editor.make().use_(
use_.attrs(),
use_.visibility(),
- make.use_tree(path, tree.use_tree_list(), tree.rename(), tree.star_token().is_some()),
+ editor.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);
// 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);
})
}