Unnamed repository; edit this file 'description' to name the repository.
Remove add_tabstop_before_token and adapt generate_derive assist
bit-aloo 11 days ago
parent 7beb765 · commit ad5f320
-rw-r--r--crates/ide-assists/src/handlers/generate_derive.rs11
-rw-r--r--crates/ide-db/src/source_change.rs2
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());