diff options
| author | Giga Bowser <45986823+Giga-Bowser@users.noreply.github.com> | 2024-11-22 09:49:19 -0500 |
|---|---|---|
| committer | Giga Bowser <45986823+Giga-Bowser@users.noreply.github.com> | 2024-12-06 10:02:34 -0500 |
| commit | 418ad88045b0a7862508293662eb30f5aeff4b75 (patch) | |
| tree | 5f54a9f481912809f901fa6909f5bcd79bbefabf /src/tools/rust-analyzer/crates | |
| parent | ff6b0205123fef6c5c73fd068576d7ac30fafb16 (diff) | |
| download | rust-418ad88045b0a7862508293662eb30f5aeff4b75.tar.gz rust-418ad88045b0a7862508293662eb30f5aeff4b75.zip | |
feat: Migrate `flip_trait_bound` assist to `SyntaxEditor`
Diffstat (limited to 'src/tools/rust-analyzer/crates')
| -rw-r--r-- | src/tools/rust-analyzer/crates/ide-assists/src/handlers/flip_trait_bound.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/tools/rust-analyzer/crates/ide-assists/src/handlers/flip_trait_bound.rs b/src/tools/rust-analyzer/crates/ide-assists/src/handlers/flip_trait_bound.rs index 70b5efcb645..03366bd8616 100644 --- a/src/tools/rust-analyzer/crates/ide-assists/src/handlers/flip_trait_bound.rs +++ b/src/tools/rust-analyzer/crates/ide-assists/src/handlers/flip_trait_bound.rs @@ -23,11 +23,11 @@ pub(crate) fn flip_trait_bound(acc: &mut Assists, ctx: &AssistContext<'_>) -> Op let plus = ctx.find_token_syntax_at_offset(T![+])?; // Make sure we're in a `TypeBoundList` - ast::TypeBoundList::cast(plus.parent()?)?; + let parent = ast::TypeBoundList::cast(plus.parent()?)?; let (before, after) = ( - non_trivia_sibling(plus.clone().into(), Direction::Prev)?, - non_trivia_sibling(plus.clone().into(), Direction::Next)?, + non_trivia_sibling(plus.clone().into(), Direction::Prev)?.into_node()?, + non_trivia_sibling(plus.clone().into(), Direction::Next)?.into_node()?, ); let target = plus.text_range(); @@ -35,9 +35,11 @@ pub(crate) fn flip_trait_bound(acc: &mut Assists, ctx: &AssistContext<'_>) -> Op AssistId("flip_trait_bound", AssistKind::RefactorRewrite), "Flip trait bounds", target, - |edit| { - edit.replace(before.text_range(), after.to_string()); - edit.replace(after.text_range(), before.to_string()); + |builder| { + let mut editor = builder.make_editor(parent.syntax()); + editor.replace(before.clone(), after.clone_for_update()); + editor.replace(after.clone(), before.clone_for_update()); + builder.add_file_edits(ctx.file_id(), editor); }, ) } |
