diff options
Diffstat (limited to 'crates/ra_assists')
-rw-r--r-- | crates/ra_assists/src/ast_editor.rs | 26 | ||||
-rw-r--r-- | crates/ra_assists/src/auto_import.rs | 4 | ||||
-rw-r--r-- | crates/ra_assists/src/change_visibility.rs | 2 | ||||
-rw-r--r-- | crates/ra_assists/src/introduce_variable.rs | 4 |
4 files changed, 16 insertions, 20 deletions
diff --git a/crates/ra_assists/src/ast_editor.rs b/crates/ra_assists/src/ast_editor.rs index cabb3d862..de0529b32 100644 --- a/crates/ra_assists/src/ast_editor.rs +++ b/crates/ra_assists/src/ast_editor.rs | |||
@@ -212,21 +212,17 @@ impl AstEditor<ast::FnDef> { | |||
212 | } | 212 | } |
213 | 213 | ||
214 | pub fn strip_attrs_and_docs(&mut self) { | 214 | pub fn strip_attrs_and_docs(&mut self) { |
215 | loop { | 215 | while let Some(start) = self |
216 | if let Some(start) = self | 216 | .ast() |
217 | .ast() | 217 | .syntax() |
218 | .syntax() | 218 | .children_with_tokens() |
219 | .children_with_tokens() | 219 | .find(|it| it.kind() == ATTR || it.kind() == COMMENT) |
220 | .find(|it| it.kind() == ATTR || it.kind() == COMMENT) | 220 | { |
221 | { | 221 | let end = match start.next_sibling_or_token() { |
222 | let end = match start.next_sibling_or_token() { | 222 | Some(el) if el.kind() == WHITESPACE => el, |
223 | Some(el) if el.kind() == WHITESPACE => el, | 223 | Some(_) | None => start, |
224 | Some(_) | None => start, | 224 | }; |
225 | }; | 225 | self.ast = self.replace_children(RangeInclusive::new(start, end), iter::empty()); |
226 | self.ast = self.replace_children(RangeInclusive::new(start, end), iter::empty()); | ||
227 | } else { | ||
228 | break; | ||
229 | } | ||
230 | } | 226 | } |
231 | } | 227 | } |
232 | } | 228 | } |
diff --git a/crates/ra_assists/src/auto_import.rs b/crates/ra_assists/src/auto_import.rs index 1566cf179..9617beb5c 100644 --- a/crates/ra_assists/src/auto_import.rs +++ b/crates/ra_assists/src/auto_import.rs | |||
@@ -334,7 +334,7 @@ fn best_action_for_target<'b, 'a: 'b>( | |||
334 | .filter_map(ast::UseItem::use_tree) | 334 | .filter_map(ast::UseItem::use_tree) |
335 | .map(|u| walk_use_tree_for_best_action(&mut storage, None, u, target)) | 335 | .map(|u| walk_use_tree_for_best_action(&mut storage, None, u, target)) |
336 | .fold(None, |best, a| { | 336 | .fold(None, |best, a| { |
337 | best.and_then(|best| Some(*ImportAction::better(&best, &a))).or(Some(a)) | 337 | best.and_then(|best| Some(*ImportAction::better(&best, &a))).or_else(|| Some(a)) |
338 | }); | 338 | }); |
339 | 339 | ||
340 | match best_action { | 340 | match best_action { |
@@ -347,7 +347,7 @@ fn best_action_for_target<'b, 'a: 'b>( | |||
347 | let anchor = container | 347 | let anchor = container |
348 | .children() | 348 | .children() |
349 | .find(|n| n.range().start() < anchor.range().start()) | 349 | .find(|n| n.range().start() < anchor.range().start()) |
350 | .or(Some(anchor)); | 350 | .or_else(|| Some(anchor)); |
351 | 351 | ||
352 | return ImportAction::add_new_use(anchor, false); | 352 | return ImportAction::add_new_use(anchor, false); |
353 | } | 353 | } |
diff --git a/crates/ra_assists/src/change_visibility.rs b/crates/ra_assists/src/change_visibility.rs index 620f534b5..4eb24d27f 100644 --- a/crates/ra_assists/src/change_visibility.rs +++ b/crates/ra_assists/src/change_visibility.rs | |||
@@ -59,7 +59,7 @@ fn vis_offset(node: &SyntaxNode) -> TextUnit { | |||
59 | }) | 59 | }) |
60 | .next() | 60 | .next() |
61 | .map(|it| it.range().start()) | 61 | .map(|it| it.range().start()) |
62 | .unwrap_or(node.range().start()) | 62 | .unwrap_or_else(|| node.range().start()) |
63 | } | 63 | } |
64 | 64 | ||
65 | fn change_vis(mut ctx: AssistCtx<impl HirDatabase>, vis: &ast::Visibility) -> Option<Assist> { | 65 | fn change_vis(mut ctx: AssistCtx<impl HirDatabase>, vis: &ast::Visibility) -> Option<Assist> { |
diff --git a/crates/ra_assists/src/introduce_variable.rs b/crates/ra_assists/src/introduce_variable.rs index fb7333c8c..28467d341 100644 --- a/crates/ra_assists/src/introduce_variable.rs +++ b/crates/ra_assists/src/introduce_variable.rs | |||
@@ -57,9 +57,9 @@ pub(crate) fn introduce_variable(mut ctx: AssistCtx<impl HirDatabase>) -> Option | |||
57 | if text.starts_with("\r\n") { | 57 | if text.starts_with("\r\n") { |
58 | buf.push_str("\r\n"); | 58 | buf.push_str("\r\n"); |
59 | buf.push_str(text.trim_start_matches("\r\n")); | 59 | buf.push_str(text.trim_start_matches("\r\n")); |
60 | } else if text.starts_with("\n") { | 60 | } else if text.starts_with('\n') { |
61 | buf.push_str("\n"); | 61 | buf.push_str("\n"); |
62 | buf.push_str(text.trim_start_matches("\n")); | 62 | buf.push_str(text.trim_start_matches('\n')); |
63 | } else { | 63 | } else { |
64 | buf.push_str(text); | 64 | buf.push_str(text); |
65 | } | 65 | } |