aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_assists/src/flip_comma.rs
diff options
context:
space:
mode:
authorAndrea Pretto <[email protected]>2019-02-11 17:07:21 +0000
committerAndrea Pretto <[email protected]>2019-02-11 17:07:21 +0000
commit5c9c0d3ae2735b4b32a44742bac800ca616fdde8 (patch)
tree8ad5dc9a548915729bcc87085a1a145d4ba2a00a /crates/ra_assists/src/flip_comma.rs
parentaf62fde57fe58f4aa06608568dc26535731800a0 (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.rs8
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
7use crate::{AssistCtx, Assist, non_trivia_sibling}; 7use crate::{AssistCtx, Assist, non_trivia_sibling};
8 8
9pub(crate) fn flip_comma(ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { 9pub(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)]