diff options
author | Andrea Pretto <[email protected]> | 2019-02-11 17:07:21 +0000 |
---|---|---|
committer | Andrea Pretto <[email protected]> | 2019-02-11 17:07:21 +0000 |
commit | 5c9c0d3ae2735b4b32a44742bac800ca616fdde8 (patch) | |
tree | 8ad5dc9a548915729bcc87085a1a145d4ba2a00a /crates/ra_assists/src/flip_comma.rs | |
parent | af62fde57fe58f4aa06608568dc26535731800a0 (diff) |
ra_assists: assist "providers" can produce multiple assists
Diffstat (limited to 'crates/ra_assists/src/flip_comma.rs')
-rw-r--r-- | crates/ra_assists/src/flip_comma.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/crates/ra_assists/src/flip_comma.rs b/crates/ra_assists/src/flip_comma.rs index 33da58f17..08644d720 100644 --- a/crates/ra_assists/src/flip_comma.rs +++ b/crates/ra_assists/src/flip_comma.rs | |||
@@ -6,15 +6,17 @@ use ra_syntax::{ | |||
6 | 6 | ||
7 | use crate::{AssistCtx, Assist, non_trivia_sibling}; | 7 | use crate::{AssistCtx, Assist, non_trivia_sibling}; |
8 | 8 | ||
9 | pub(crate) fn flip_comma(ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 9 | pub(crate) fn flip_comma(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { |
10 | let comma = ctx.leaf_at_offset().find(|leaf| leaf.kind() == COMMA)?; | 10 | let comma = ctx.leaf_at_offset().find(|leaf| leaf.kind() == COMMA)?; |
11 | let prev = non_trivia_sibling(comma, Direction::Prev)?; | 11 | let prev = non_trivia_sibling(comma, Direction::Prev)?; |
12 | let next = non_trivia_sibling(comma, Direction::Next)?; | 12 | let next = non_trivia_sibling(comma, Direction::Next)?; |
13 | ctx.build("flip comma", |edit| { | 13 | ctx.add_action("flip comma", |edit| { |
14 | edit.target(comma.range()); | 14 | edit.target(comma.range()); |
15 | edit.replace(prev.range(), next.text()); | 15 | edit.replace(prev.range(), next.text()); |
16 | edit.replace(next.range(), prev.text()); | 16 | edit.replace(next.range(), prev.text()); |
17 | }) | 17 | }); |
18 | |||
19 | ctx.build() | ||
18 | } | 20 | } |
19 | 21 | ||
20 | #[cfg(test)] | 22 | #[cfg(test)] |