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/assist_ctx.rs | |
parent | 5dbbfda34ae423229487595fd0ae9e727ae42906 (diff) |
migrate add impl items to the new editing API
Diffstat (limited to 'crates/ra_assists/src/assist_ctx.rs')
-rw-r--r-- | crates/ra_assists/src/assist_ctx.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/crates/ra_assists/src/assist_ctx.rs b/crates/ra_assists/src/assist_ctx.rs index c45262efa..cbe12e908 100644 --- a/crates/ra_assists/src/assist_ctx.rs +++ b/crates/ra_assists/src/assist_ctx.rs | |||
@@ -2,7 +2,7 @@ use hir::db::HirDatabase; | |||
2 | use ra_db::FileRange; | 2 | use ra_db::FileRange; |
3 | use ra_fmt::{leading_indent, reindent}; | 3 | use ra_fmt::{leading_indent, reindent}; |
4 | use ra_syntax::{ | 4 | use ra_syntax::{ |
5 | algo::{find_covering_element, find_node_at_offset}, | 5 | algo::{self, find_covering_element, find_node_at_offset}, |
6 | AstNode, SourceFile, SyntaxElement, SyntaxNode, SyntaxToken, TextRange, TextUnit, | 6 | AstNode, SourceFile, SyntaxElement, SyntaxNode, SyntaxToken, TextRange, TextUnit, |
7 | TokenAtOffset, | 7 | TokenAtOffset, |
8 | }; | 8 | }; |
@@ -177,6 +177,12 @@ impl AssistBuilder { | |||
177 | &mut self.edit | 177 | &mut self.edit |
178 | } | 178 | } |
179 | 179 | ||
180 | pub(crate) fn replace_ast<N: AstNode>(&mut self, old: N, new: N) { | ||
181 | for (from, to) in algo::diff(old.syntax(), new.syntax()) { | ||
182 | self.edit.replace(from.text_range(), to.to_string()) | ||
183 | } | ||
184 | } | ||
185 | |||
180 | fn build(self) -> AssistAction { | 186 | fn build(self) -> AssistAction { |
181 | AssistAction { | 187 | AssistAction { |
182 | edit: self.edit.finish(), | 188 | edit: self.edit.finish(), |