Skip to content

Commit b6c29e0

Browse files
authored
Merge pull request rust-lang#20845 from A4-Tacks/migrate-add-braces
Migrate `add_braces` assist, because edit_in_place uses ted
2 parents e1a923a + b2566ff commit b6c29e0

File tree

1 file changed

+39
-4
lines changed
  • src/tools/rust-analyzer/crates/ide-assists/src/handlers

1 file changed

+39
-4
lines changed

src/tools/rust-analyzer/crates/ide-assists/src/handlers/add_braces.rs

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use either::Either;
22
use syntax::{
33
AstNode,
4-
ast::{self, edit_in_place::Indent, syntax_factory::SyntaxFactory},
4+
ast::{self, edit::AstNodeEdit, syntax_factory::SyntaxFactory},
55
};
66

77
use crate::{AssistContext, AssistId, Assists};
@@ -43,10 +43,10 @@ pub(crate) fn add_braces(acc: &mut Assists, ctx: &AssistContext<'_>) -> Option<(
4343
let make = SyntaxFactory::with_mappings();
4444
let mut editor = builder.make_editor(expr.syntax());
4545

46-
let block_expr = make.block_expr(None, Some(expr.clone()));
47-
block_expr.indent(expr.indent_level());
46+
let new_expr = expr.reset_indent().indent(1.into());
47+
let block_expr = make.block_expr(None, Some(new_expr));
4848

49-
editor.replace(expr.syntax(), block_expr.syntax());
49+
editor.replace(expr.syntax(), block_expr.indent(expr.indent_level()).syntax());
5050

5151
editor.add_mappings(make.finish_with_mappings());
5252
builder.add_file_edits(ctx.vfs_file_id(), editor);
@@ -171,6 +171,41 @@ fn foo() {
171171
);
172172
}
173173

174+
#[test]
175+
fn multiple_indent() {
176+
check_assist(
177+
add_braces,
178+
r#"
179+
fn foo() {
180+
{
181+
match n {
182+
Some(n) $0=> foo(
183+
29,
184+
30,
185+
),
186+
_ => ()
187+
};
188+
}
189+
}
190+
"#,
191+
r#"
192+
fn foo() {
193+
{
194+
match n {
195+
Some(n) => {
196+
foo(
197+
29,
198+
30,
199+
)
200+
},
201+
_ => ()
202+
};
203+
}
204+
}
205+
"#,
206+
);
207+
}
208+
174209
#[test]
175210
fn no_assist_for_match_with_braces() {
176211
check_assist_not_applicable(

0 commit comments

Comments
 (0)