Skip to content

Commit cac5153

Browse files
committed
internal: Migrate remove_mut assist to SyntaxEditor
1 parent f7adafc commit cac5153

File tree

1 file changed

+8
-7
lines changed
  • src/tools/rust-analyzer/crates/ide-assists/src/handlers

1 file changed

+8
-7
lines changed

src/tools/rust-analyzer/crates/ide-assists/src/handlers/remove_mut.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use syntax::{SyntaxKind, TextRange, T};
1+
use syntax::{SyntaxKind, T};
22

33
use crate::{AssistContext, AssistId, AssistKind, Assists};
44

@@ -19,19 +19,20 @@ use crate::{AssistContext, AssistId, AssistKind, Assists};
1919
// ```
2020
pub(crate) fn remove_mut(acc: &mut Assists, ctx: &AssistContext<'_>) -> Option<()> {
2121
let mut_token = ctx.find_token_syntax_at_offset(T![mut])?;
22-
let delete_from = mut_token.text_range().start();
23-
let delete_to = match mut_token.next_token() {
24-
Some(it) if it.kind() == SyntaxKind::WHITESPACE => it.text_range().end(),
25-
_ => mut_token.text_range().end(),
26-
};
2722

2823
let target = mut_token.text_range();
2924
acc.add(
3025
AssistId("remove_mut", AssistKind::Refactor),
3126
"Remove `mut` keyword",
3227
target,
3328
|builder| {
34-
builder.delete(TextRange::new(delete_from, delete_to));
29+
let mut editor = builder.make_editor(&mut_token.parent().unwrap());
30+
match mut_token.next_token() {
31+
Some(it) if it.kind() == SyntaxKind::WHITESPACE => editor.delete(it),
32+
_ => (),
33+
}
34+
editor.delete(mut_token);
35+
builder.add_file_edits(ctx.file_id(), editor);
3536
},
3637
)
3738
}

0 commit comments

Comments
 (0)