Skip to content

Commit 3a5147e

Browse files
committed
fix(assist): delete trailing whitespaces
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
1 parent 7ee1a77 commit 3a5147e

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

crates/ide_assists/src/handlers/unwrap_result_return_type.rs

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use ide_db::helpers::{for_each_tail_expr, node_ext::walk_expr, FamousDefs};
2+
use itertools::Itertools;
23
use syntax::{
34
ast::{self, Expr},
45
match_ast, AstNode, TextRange, TextSize,
@@ -73,7 +74,7 @@ pub(crate) fn unwrap_result_return_type(acc: &mut Assists, ctx: &AssistContext)
7374
ret_type.syntax().text_range().start(),
7475
ret_type.syntax().text_range().end() + TextSize::from(1u32),
7576
);
76-
builder.replace(text_range, "")
77+
builder.delete(text_range)
7778
} else {
7879
builder.replace(
7980
type_ref.syntax().text_range(),
@@ -88,14 +89,24 @@ pub(crate) fn unwrap_result_return_type(acc: &mut Assists, ctx: &AssistContext)
8889
let arg_list = ret_expr_arg.syntax().children().find_map(ast::ArgList::cast);
8990
if let Some(arg_list) = arg_list {
9091
if is_unit_type {
91-
builder.replace(ret_expr_arg.syntax().text_range(), "");
92+
match ret_expr_arg.syntax().prev_sibling_or_token() {
93+
// Useful to delete the entire line without leaving trailing whitespaces
94+
Some(whitespace) => {
95+
let new_range = TextRange::new(
96+
whitespace.text_range().start(),
97+
ret_expr_arg.syntax().text_range().end(),
98+
);
99+
builder.delete(new_range);
100+
}
101+
None => {
102+
builder.delete(ret_expr_arg.syntax().text_range());
103+
}
104+
}
92105
} else {
93-
let new_ret_expr = arg_list
94-
.args()
95-
.map(|arg| arg.to_string())
96-
.collect::<Vec<String>>()
97-
.join(", ");
98-
builder.replace(ret_expr_arg.syntax().text_range(), new_ret_expr);
106+
builder.replace(
107+
ret_expr_arg.syntax().text_range(),
108+
arg_list.args().join(", "),
109+
);
99110
}
100111
}
101112
}
@@ -158,7 +169,6 @@ fn foo() -> Result<(), Box<dyn Error$0>> {
158169
"#,
159170
r#"
160171
fn foo() {
161-
162172
}
163173
"#,
164174
);

0 commit comments

Comments
 (0)