From c588849044a09ba5e3c7dd74a31cd8038342f6cb Mon Sep 17 00:00:00 2001 From: David Kurilla <130074511+davidkurilla@users.noreply.github.com> Date: Wed, 6 Nov 2024 14:45:00 +0000 Subject: [PATCH 1/6] feat: convert add_braces to SyntaxFactory SyntaxEditor abstraction --- .../crates/ide-assists/src/handlers/add_braces.rs | 13 ++++++++++--- 1 file 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 2f4a263ee070..c96ae7a16bc1 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); }, ) } From 421661553fa550fbdb1c011e8930443ae09e5519 Mon Sep 17 00:00:00 2001 From: David Kurilla <130074511+davidkurilla@users.noreply.github.com> Date: Tue, 12 Nov 2024 22:43:48 +0000 Subject: [PATCH 2/6] fix: fix immutable tree error --- .../crates/ide-assists/src/handlers/add_braces.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 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 c96ae7a16bc1..5ffaaebc9ea2 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, syntax_factory::SyntaxFactory}, syntax_editor::SyntaxEditor, + ast::{self, edit::AstNodeEdit, edit_in_place, make, syntax_factory::SyntaxFactory}, syntax_editor::SyntaxEditor, AstNode, }; @@ -43,10 +43,8 @@ pub(crate) fn add_braces(acc: &mut Assists, ctx: &AssistContext<'_>) -> Option<( let make = SyntaxFactory::new(); let mut editor = builder.make_editor(&expr.syntax()); - let block_expr = AstNodeEdit::indent( - &make.block_expr(None, Some(expr.clone())), - AstNodeEdit::indent_level(&expr), - ); + let block_expr = make.block_expr(None, Some(expr.clone())); + block_expr.indent(expr.indent_level()); editor.replace(expr.syntax(), block_expr.syntax()); From 90857446625c7c0be4f623c8617066cd5cd21258 Mon Sep 17 00:00:00 2001 From: David Kurilla <130074511+davidkurilla@users.noreply.github.com> Date: Tue, 12 Nov 2024 23:58:24 +0000 Subject: [PATCH 3/6] fix: fix indentation error --- .../rust-analyzer/crates/ide-assists/src/handlers/add_braces.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5ffaaebc9ea2..9f93f16c0f67 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, edit_in_place, make, syntax_factory::SyntaxFactory}, syntax_editor::SyntaxEditor, + ast::{self, edit_in_place::Indent, make, syntax_factory::SyntaxFactory}, syntax_editor::SyntaxEditor, AstNode, }; From 5458612e0454a812381deef4059bc46260091420 Mon Sep 17 00:00:00 2001 From: David Kurilla <130074511+davidkurilla@users.noreply.github.com> Date: Wed, 13 Nov 2024 00:06:12 +0000 Subject: [PATCH 4/6] fix: remove unused imports --- .../rust-analyzer/crates/ide-assists/src/handlers/add_braces.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 9f93f16c0f67..dfbecc7cffcb 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_in_place::Indent, make, syntax_factory::SyntaxFactory}, syntax_editor::SyntaxEditor, + ast::{self, edit_in_place::Indent, syntax_factory::SyntaxFactory}, AstNode, }; From 34dd288376f0e2268c95ee9492c5a03218c18aa9 Mon Sep 17 00:00:00 2001 From: David Kurilla <130074511+davidkurilla@users.noreply.github.com> Date: Fri, 15 Nov 2024 18:02:16 +0000 Subject: [PATCH 5/6] style: cargo fmt --- .../rust-analyzer/crates/ide-assists/src/handlers/add_braces.rs | 1 - 1 file changed, 1 deletion(-) 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 dfbecc7cffcb..c17d9c5ccd15 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 @@ -39,7 +39,6 @@ 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()); From c627c1a294a95b6775c01bc68c63ad4193ecf91c Mon Sep 17 00:00:00 2001 From: David Kurilla <130074511+davidkurilla@users.noreply.github.com> Date: Fri, 15 Nov 2024 19:08:01 +0000 Subject: [PATCH 6/6] style: remove needless borrow --- .../rust-analyzer/crates/ide-assists/src/handlers/add_braces.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 c17d9c5ccd15..42f615e71daf 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 @@ -40,7 +40,7 @@ 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 mut editor = builder.make_editor(expr.syntax()); let block_expr = make.block_expr(None, Some(expr.clone())); block_expr.indent(expr.indent_level());