Unnamed repository; edit this file 'description' to name the repository.
Remove add_tabstop_before_token and adapt generate_derive assist
| -rw-r--r-- | crates/ide-assists/src/handlers/generate_derive.rs | 11 | ||||
| -rw-r--r-- | crates/ide-db/src/source_change.rs | 2 |
2 files changed, 6 insertions, 7 deletions
diff --git a/crates/ide-assists/src/handlers/generate_derive.rs b/crates/ide-assists/src/handlers/generate_derive.rs index f293e956bc..ba6bb5c70b 100644 --- a/crates/ide-assists/src/handlers/generate_derive.rs +++ b/crates/ide-assists/src/handlers/generate_derive.rs @@ -42,9 +42,9 @@ pub(crate) fn generate_derive(acc: &mut Assists, ctx: &AssistContext<'_, '_>) -> }; acc.add(AssistId::generate("generate_derive"), "Add `#[derive]`", target, |edit| { + let editor = edit.make_editor(nominal.syntax()); match derive_attr { None => { - let editor = edit.make_editor(nominal.syntax()); let make = editor.make(); let derive = make.attr_outer(make.meta_token_tree( @@ -79,16 +79,15 @@ pub(crate) fn generate_derive(acc: &mut Assists, ctx: &AssistContext<'_, '_>) -> let tabstop_before = edit.make_tabstop_before(cap); editor.add_annotation(delimiter, tabstop_before); - edit.add_file_edits(ctx.vfs_file_id(), editor); } Some(_) => { + let delimiter = delimiter.expect("Right delim token could not be found."); + let tabstop_before = edit.make_tabstop_before(cap); // Just move the cursor. - edit.add_tabstop_before_token( - cap, - delimiter.expect("Right delim token could not be found."), - ); + editor.add_annotation(delimiter, tabstop_before); } }; + edit.add_file_edits(ctx.vfs_file_id(), editor); }) } diff --git a/crates/ide-db/src/source_change.rs b/crates/ide-db/src/source_change.rs index 25d8ae0971..553aa3ae80 100644 --- a/crates/ide-db/src/source_change.rs +++ b/crates/ide-db/src/source_change.rs @@ -386,7 +386,7 @@ impl SourceChangeBuilder { assert!(token.parent().is_some()); self.add_snippet(PlaceSnippet::Before(token.into())); } - + /// Adds a snippet to move the cursor selected over `node` pub fn add_placeholder_snippet(&mut self, _cap: SnippetCap, node: impl AstNode) { assert!(node.syntax().parent().is_some()); |