Skip to content

Commit d250aa7

Browse files
bors[bot]matklad
andauthored
Merge #10015
10015: internal: more declarative re-indentation API r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
2 parents ceecf85 + d1cd81f commit d250aa7

File tree

3 files changed

+14
-14
lines changed

3 files changed

+14
-14
lines changed

crates/ide_assists/src/handlers/convert_iter_for_each_to_for.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,7 @@ pub(crate) fn convert_iter_for_each_to_for(acc: &mut Assists, ctx: &AssistContex
6161
_ => make::block_expr(Vec::new(), Some(body)),
6262
}
6363
.clone_for_update();
64-
block.reset_indent();
65-
block.indent(indent);
64+
block.reindent_to(indent);
6665

6766
let expr_for_loop = make::expr_for_loop(param, receiver, block);
6867
builder.replace(range, expr_for_loop.to_string())

crates/ide_assists/src/handlers/inline_call.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use hir::{HasSource, PathResolution, TypeInfo};
33
use ide_db::{defs::Definition, path_transform::PathTransform, search::FileReference};
44
use itertools::izip;
55
use syntax::{
6-
ast::{self, edit::AstNodeEdit, ArgListOwner},
6+
ast::{self, edit_in_place::Indent, ArgListOwner},
77
ted, AstNode,
88
};
99

@@ -217,11 +217,11 @@ pub(crate) fn inline_(
217217
}
218218

219219
let original_indentation = expr.indent_level();
220-
let replacement = body.reset_indent().indent(original_indentation);
220+
body.reindent_to(original_indentation);
221221

222-
let replacement = match replacement.tail_expr() {
223-
Some(expr) if replacement.statements().next().is_none() => expr,
224-
_ => ast::Expr::BlockExpr(replacement),
222+
let replacement = match body.tail_expr() {
223+
Some(expr) if body.statements().next().is_none() => expr,
224+
_ => ast::Expr::BlockExpr(body),
225225
};
226226
builder.replace_ast(expr, replacement);
227227
},

crates/syntax/src/ast/edit_in_place.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -487,15 +487,16 @@ pub trait Indent: AstNode + Clone + Sized {
487487
fn indent_level(&self) -> IndentLevel {
488488
IndentLevel::from_node(self.syntax())
489489
}
490-
fn indent(&self, level: IndentLevel) {
491-
level.increase_indent(self.syntax());
490+
fn indent(&self, by: IndentLevel) {
491+
by.increase_indent(self.syntax());
492492
}
493-
fn dedent(&self, level: IndentLevel) {
494-
level.decrease_indent(self.syntax());
493+
fn dedent(&self, by: IndentLevel) {
494+
by.decrease_indent(self.syntax());
495495
}
496-
fn reset_indent(&self) {
497-
let level = IndentLevel::from_node(self.syntax());
498-
self.dedent(level);
496+
fn reindent_to(&self, target_level: IndentLevel) {
497+
let current_level = IndentLevel::from_node(self.syntax());
498+
self.dedent(current_level);
499+
self.indent(target_level)
499500
}
500501
}
501502

0 commit comments

Comments
 (0)