diff options
author | Aleksey Kladov <[email protected]> | 2019-09-28 18:09:57 +0100 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-09-28 18:10:53 +0100 |
commit | 0840ec038b2822a424acf238d8db5af569f99a21 (patch) | |
tree | c40067afaffe2c7c1b974af668c078bc6d3b3341 /crates/ra_assists/src/assists | |
parent | 5dbbfda34ae423229487595fd0ae9e727ae42906 (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.rs | 15 |
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 | ||
7 | use crate::{ast_editor::AstEditor, Assist, AssistCtx, AssistId}; | 7 | use crate::{Assist, AssistCtx, AssistId}; |
8 | 8 | ||
9 | #[derive(PartialEq)] | 9 | #[derive(PartialEq)] |
10 | enum AddMissingImplMembersMode { | 10 | enum 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 | ||