diff options
| author | David Kurilla <130074511+davidkurilla@users.noreply.github.com> | 2024-11-06 14:45:00 +0000 |
|---|---|---|
| committer | David Kurilla <130074511+davidkurilla@users.noreply.github.com> | 2024-11-06 14:45:00 +0000 |
| commit | c588849044a09ba5e3c7dd74a31cd8038342f6cb (patch) | |
| tree | 5bcd154ee8811e940e4e6cd090ea0376593e638d /src/tools/rust-analyzer | |
| parent | 20864efcdfeec1a5c43085cb7cf69e2df326a45c (diff) | |
| download | rust-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.rs | 13 |
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); }, ) } |
