aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_assists/src/assists
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-09-28 18:09:57 +0100
committerAleksey Kladov <[email protected]>2019-09-28 18:10:53 +0100
commit0840ec038b2822a424acf238d8db5af569f99a21 (patch)
treec40067afaffe2c7c1b974af668c078bc6d3b3341 /crates/ra_assists/src/assists
parent5dbbfda34ae423229487595fd0ae9e727ae42906 (diff)
migrate add impl items to the new editing API
Diffstat (limited to 'crates/ra_assists/src/assists')
-rw-r--r--crates/ra_assists/src/assists/add_missing_impl_members.rs15
1 files changed, 7 insertions, 8 deletions
diff --git a/crates/ra_assists/src/assists/add_missing_impl_members.rs b/crates/ra_assists/src/assists/add_missing_impl_members.rs
index 3fce4a5b7..c2e3eb06b 100644
--- a/crates/ra_assists/src/assists/add_missing_impl_members.rs
+++ b/crates/ra_assists/src/assists/add_missing_impl_members.rs
@@ -4,7 +4,7 @@ use ra_syntax::{
4 SmolStr, 4 SmolStr,
5}; 5};
6 6
7use crate::{ast_editor::AstEditor, Assist, AssistCtx, AssistId}; 7use crate::{Assist, AssistCtx, AssistId};
8 8
9#[derive(PartialEq)] 9#[derive(PartialEq)]
10enum AddMissingImplMembersMode { 10enum AddMissingImplMembersMode {
@@ -79,14 +79,13 @@ fn add_missing_impl_members_inner(
79 ast::ImplItem::FnDef(def) => edit::strip_attrs_and_docs(add_body(def).into()), 79 ast::ImplItem::FnDef(def) => edit::strip_attrs_and_docs(add_body(def).into()),
80 _ => edit::strip_attrs_and_docs(it), 80 _ => edit::strip_attrs_and_docs(it),
81 }); 81 });
82 let mut ast_editor = AstEditor::new(impl_item_list); 82 let new_impl_item_list = impl_item_list.append_items(items);
83 83 let cursor_position = {
84 ast_editor.append_items(items); 84 let first_new_item = new_impl_item_list.impl_items().nth(n_existing_items).unwrap();
85 85 first_new_item.syntax().text_range().start()
86 let first_new_item = ast_editor.ast().impl_items().nth(n_existing_items).unwrap(); 86 };
87 let cursor_position = first_new_item.syntax().text_range().start();
88 ast_editor.into_text_edit(edit.text_edit_builder());
89 87
88 edit.replace_ast(impl_item_list, new_impl_item_list);
90 edit.set_cursor(cursor_position); 89 edit.set_cursor(cursor_position);
91 }); 90 });
92 91