about summary refs log tree commit diff
path: root/src/tools/rust-analyzer
diff options
context:
space:
mode:
authorDavid Kurilla <130074511+davidkurilla@users.noreply.github.com>2024-11-06 14:45:00 +0000
committerDavid Kurilla <130074511+davidkurilla@users.noreply.github.com>2024-11-06 14:45:00 +0000
commitc588849044a09ba5e3c7dd74a31cd8038342f6cb (patch)
tree5bcd154ee8811e940e4e6cd090ea0376593e638d /src/tools/rust-analyzer
parent20864efcdfeec1a5c43085cb7cf69e2df326a45c (diff)
downloadrust-c588849044a09ba5e3c7dd74a31cd8038342f6cb.tar.gz
rust-c588849044a09ba5e3c7dd74a31cd8038342f6cb.zip
feat: convert add_braces to SyntaxFactory SyntaxEditor abstraction
Diffstat (limited to 'src/tools/rust-analyzer')
-rw-r--r--src/tools/rust-analyzer/crates/ide-assists/src/handlers/add_braces.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/tools/rust-analyzer/crates/ide-assists/src/handlers/add_braces.rs b/src/tools/rust-analyzer/crates/ide-assists/src/handlers/add_braces.rs
index 2f4a263ee07..c96ae7a16bc 100644
--- a/src/tools/rust-analyzer/crates/ide-assists/src/handlers/add_braces.rs
+++ b/src/tools/rust-analyzer/crates/ide-assists/src/handlers/add_braces.rs
@@ -1,5 +1,5 @@
 use syntax::{
-    ast::{self, edit::AstNodeEdit, make},
+    ast::{self, edit::AstNodeEdit, make, syntax_factory::SyntaxFactory}, syntax_editor::SyntaxEditor,
     AstNode,
 };
 
@@ -39,12 +39,19 @@ pub(crate) fn add_braces(acc: &mut Assists, ctx: &AssistContext<'_>) -> Option<(
         },
         expr.syntax().text_range(),
         |builder| {
+
+            let make = SyntaxFactory::new();
+            let mut editor = builder.make_editor(&expr.syntax());
+
             let block_expr = AstNodeEdit::indent(
-                &make::block_expr(None, Some(expr.clone())),
+                &make.block_expr(None, Some(expr.clone())),
                 AstNodeEdit::indent_level(&expr),
             );
 
-            builder.replace(expr.syntax().text_range(), block_expr.syntax().text());
+            editor.replace(expr.syntax(), block_expr.syntax());
+
+            editor.add_mappings(make.finish_with_mappings());
+            builder.add_file_edits(ctx.file_id(), editor);
         },
     )
 }