Correctly nest multiline pipeline expressions.
This commit is contained in:
@@ -1030,18 +1030,20 @@ impl<'comments> Formatter<'comments> {
|
||||
_ => self.wrap_expr(expr),
|
||||
};
|
||||
|
||||
let expr = self.operator_side(doc, 4, expr.binop_precedence());
|
||||
let expr = self
|
||||
.operator_side(doc, 4, expr.binop_precedence())
|
||||
.nest(2 * INDENT + 1);
|
||||
|
||||
match printed_comments(comments, true) {
|
||||
None => {
|
||||
let pipe = prebreak("|> ", " |> ").nest(2);
|
||||
let pipe = prebreak("|> ", " |> ").nest(INDENT);
|
||||
docs.push(pipe.append(expr));
|
||||
}
|
||||
Some(comments) => {
|
||||
let pipe = prebreak("|> ", "|> ");
|
||||
docs.push(
|
||||
" ".to_doc()
|
||||
.append(comments.nest(2).append(pipe.append(expr).group())),
|
||||
.append(comments.nest(INDENT).append(pipe.append(expr).group())),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -723,3 +723,28 @@ fn format_trace_callback() {
|
||||
|
||||
assert_fmt(src, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn format_pipe_fn() {
|
||||
let src = indoc! { r#"
|
||||
fn foo() {
|
||||
outputs
|
||||
|> list.any(
|
||||
fn(output) { value.quantity_of(output.value, policy_id, asset_name) == 1 },
|
||||
)
|
||||
}
|
||||
"#};
|
||||
|
||||
let expected = indoc! { r#"
|
||||
fn foo() {
|
||||
outputs
|
||||
|> list.any(
|
||||
fn(output) {
|
||||
value.quantity_of(output.value, policy_id, asset_name) == 1
|
||||
},
|
||||
)
|
||||
}
|
||||
"#};
|
||||
|
||||
assert_fmt(src, expected);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user