aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_assists/src/handlers/move_guard.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_assists/src/handlers/move_guard.rs')
-rw-r--r--crates/ra_assists/src/handlers/move_guard.rs29
1 files changed, 18 insertions, 11 deletions
diff --git a/crates/ra_assists/src/handlers/move_guard.rs b/crates/ra_assists/src/handlers/move_guard.rs
index 7edcf0748..7f3aaf4f7 100644
--- a/crates/ra_assists/src/handlers/move_guard.rs
+++ b/crates/ra_assists/src/handlers/move_guard.rs
@@ -3,7 +3,7 @@ use ra_syntax::{
3 SyntaxKind::WHITESPACE, 3 SyntaxKind::WHITESPACE,
4}; 4};
5 5
6use crate::{AssistContext, AssistId, Assists}; 6use crate::{AssistContext, AssistId, AssistKind, Assists};
7 7
8// Assist: move_guard_to_arm_body 8// Assist: move_guard_to_arm_body
9// 9//
@@ -40,17 +40,23 @@ pub(crate) fn move_guard_to_arm_body(acc: &mut Assists, ctx: &AssistContext) ->
40 let buf = format!("if {} {{ {} }}", guard_conditions.syntax().text(), arm_expr.syntax().text()); 40 let buf = format!("if {} {{ {} }}", guard_conditions.syntax().text(), arm_expr.syntax().text());
41 41
42 let target = guard.syntax().text_range(); 42 let target = guard.syntax().text_range();
43 acc.add(AssistId("move_guard_to_arm_body"), "Move guard to arm body", target, |edit| { 43 acc.add(
44 match space_before_guard { 44 AssistId("move_guard_to_arm_body"),
45 Some(element) if element.kind() == WHITESPACE => { 45 AssistKind::RefactorExtract,
46 edit.delete(element.text_range()); 46 "Move guard to arm body",
47 } 47 target,
48 _ => (), 48 |edit| {
49 }; 49 match space_before_guard {
50 Some(element) if element.kind() == WHITESPACE => {
51 edit.delete(element.text_range());
52 }
53 _ => (),
54 };
50 55
51 edit.delete(guard.syntax().text_range()); 56 edit.delete(guard.syntax().text_range());
52 edit.replace_node_and_indent(arm_expr.syntax(), buf); 57 edit.replace_node_and_indent(arm_expr.syntax(), buf);
53 }) 58 },
59 )
54} 60}
55 61
56// Assist: move_arm_cond_to_match_guard 62// Assist: move_arm_cond_to_match_guard
@@ -101,6 +107,7 @@ pub(crate) fn move_arm_cond_to_match_guard(acc: &mut Assists, ctx: &AssistContex
101 let target = if_expr.syntax().text_range(); 107 let target = if_expr.syntax().text_range();
102 acc.add( 108 acc.add(
103 AssistId("move_arm_cond_to_match_guard"), 109 AssistId("move_arm_cond_to_match_guard"),
110 AssistKind::RefactorRewrite,
104 "Move condition to match guard", 111 "Move condition to match guard",
105 target, 112 target,
106 |edit| { 113 |edit| {