aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_assists/src/handlers/inline_local_variable.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_assists/src/handlers/inline_local_variable.rs')
-rw-r--r--crates/ra_assists/src/handlers/inline_local_variable.rs23
1 files changed, 15 insertions, 8 deletions
diff --git a/crates/ra_assists/src/handlers/inline_local_variable.rs b/crates/ra_assists/src/handlers/inline_local_variable.rs
index 259839535..f1bd8b46d 100644
--- a/crates/ra_assists/src/handlers/inline_local_variable.rs
+++ b/crates/ra_assists/src/handlers/inline_local_variable.rs
@@ -7,7 +7,7 @@ use test_utils::mark;
7 7
8use crate::{ 8use crate::{
9 assist_context::{AssistContext, Assists}, 9 assist_context::{AssistContext, Assists},
10 AssistId, 10 AssistId, AssistKind,
11}; 11};
12 12
13// Assist: inline_local_variable 13// Assist: inline_local_variable
@@ -110,13 +110,20 @@ pub(crate) fn inline_local_variable(acc: &mut Assists, ctx: &AssistContext) -> O
110 let init_in_paren = format!("({})", &init_str); 110 let init_in_paren = format!("({})", &init_str);
111 111
112 let target = bind_pat.syntax().text_range(); 112 let target = bind_pat.syntax().text_range();
113 acc.add(AssistId("inline_local_variable"), "Inline variable", target, move |builder| { 113 acc.add(
114 builder.delete(delete_range); 114 AssistId("inline_local_variable"),
115 for (desc, should_wrap) in refs.iter().zip(wrap_in_parens) { 115 AssistKind::RefactorInline,
116 let replacement = if should_wrap { init_in_paren.clone() } else { init_str.clone() }; 116 "Inline variable",
117 builder.replace(desc.file_range.range, replacement) 117 target,
118 } 118 move |builder| {
119 }) 119 builder.delete(delete_range);
120 for (desc, should_wrap) in refs.iter().zip(wrap_in_parens) {
121 let replacement =
122 if should_wrap { init_in_paren.clone() } else { init_str.clone() };
123 builder.replace(desc.file_range.range, replacement)
124 }
125 },
126 )
120} 127}
121 128
122#[cfg(test)] 129#[cfg(test)]