diff options
| author | roife <roifewu@gmail.com> | 2024-01-16 21:42:29 +0800 |
|---|---|---|
| committer | roife <roifewu@gmail.com> | 2024-01-16 21:42:29 +0800 |
| commit | 7c94c29648bb6cbd7300a736862b8263ff04bc7f (patch) | |
| tree | 1f09d34ff9a67e9d818b1988625d0999b034930e | |
| parent | 0a8c7841e0023e45a5d001ad2222f554875a5476 (diff) | |
| download | rust-7c94c29648bb6cbd7300a736862b8263ff04bc7f.tar.gz rust-7c94c29648bb6cbd7300a736862b8263ff04bc7f.zip | |
fix: make let_stmts inserted in inline_call correctly indented
| -rw-r--r-- | crates/ide-assists/src/handlers/inline_call.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/crates/ide-assists/src/handlers/inline_call.rs b/crates/ide-assists/src/handlers/inline_call.rs index 2eb7089b7c3..7bbb9213411 100644 --- a/crates/ide-assists/src/handlers/inline_call.rs +++ b/crates/ide-assists/src/handlers/inline_call.rs @@ -484,12 +484,10 @@ fn inline( body = make::block_expr(let_stmts, Some(body.into())).clone_for_update(); } } else if let Some(stmt_list) = body.stmt_list() { - ted::insert_all( - ted::Position::after( - stmt_list.l_curly_token().expect("L_CURLY for StatementList is missing."), - ), - let_stmts.into_iter().map(|stmt| stmt.syntax().clone().into()).collect(), - ); + let position = stmt_list.l_curly_token().expect("L_CURLY for StatementList is missing."); + let_stmts.into_iter().rev().for_each(|let_stmt| { + ted::insert(ted::Position::after(position.clone()), let_stmt.syntax().clone()); + }); } let original_indentation = match node { |
