Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/generate_deref.rs')
-rw-r--r--crates/ide-assists/src/handlers/generate_deref.rs10
1 files changed, 4 insertions, 6 deletions
diff --git a/crates/ide-assists/src/handlers/generate_deref.rs b/crates/ide-assists/src/handlers/generate_deref.rs
index 5534dc1cd3..a5bdf80ac7 100644
--- a/crates/ide-assists/src/handlers/generate_deref.rs
+++ b/crates/ide-assists/src/handlers/generate_deref.rs
@@ -2,7 +2,7 @@ use hir::{ModPath, ModuleDef};
use ide_db::{FileId, RootDatabase, famous_defs::FamousDefs};
use syntax::{
Edition,
- ast::{self, AstNode, HasName, edit::AstNodeEdit, syntax_factory::SyntaxFactory},
+ ast::{self, AstNode, HasName, edit::AstNodeEdit},
syntax_editor::Position,
};
@@ -138,7 +138,8 @@ fn generate_edit(
trait_path: ModPath,
edition: Edition,
) {
- let make = SyntaxFactory::with_mappings();
+ let editor = edit.make_editor(strukt.syntax());
+ let make = editor.make();
let strukt_adt = ast::Adt::Struct(strukt.clone());
let trait_ty = make.ty(&trait_path.display(db, edition).to_string());
@@ -195,15 +196,12 @@ fn generate_edit(
let body = make.assoc_item_list(assoc_items);
let indent = strukt.indent_level();
- let impl_ = generate_trait_impl_intransitive_with_item(&make, &strukt_adt, trait_ty, body)
+ let impl_ = generate_trait_impl_intransitive_with_item(make, &strukt_adt, trait_ty, body)
.indent(indent);
-
- let mut editor = edit.make_editor(strukt.syntax());
editor.insert_all(
Position::after(strukt.syntax()),
vec![make.whitespace(&format!("\n\n{indent}")).into(), impl_.syntax().clone().into()],
);
- editor.add_mappings(make.finish_with_mappings());
edit.add_file_edits(file_id, editor);
}