Skip to content

Commit dc86aa6

Browse files
authored
Fix break multilining (#811)
* Fix `break` multilining * Add some multi-line and more complex array examples * Add an explicit example with paren expression
1 parent 45f9ef9 commit dc86aa6

File tree

3 files changed

+46
-4
lines changed

3 files changed

+46
-4
lines changed

fixtures/small/breaks_actual.rb

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,20 @@
11
loop do
22
break no
33
break
4-
end
4+
break Some::Very::Long::Thing::That::Will::Extend::Over::Multiple::Lines::And::Never::Ends.await_result(workflow_id: workflow_id)
5+
break Some::Very::Long::Thing::That::Will::Extend::Over::Multiple::Lines::And::Never::Ends.await_result(workflow_id: workflow_id), with_a_second_value
6+
break [off_reservation_payment, payment_intent_mode, Return.new(outcome: Outcome::Succeeded, attemptes: off_reservation_payment.attempts + 1)]
7+
break [
8+
off_reservation_payment,
9+
payment_intent_mode,
10+
Return.new(
11+
outcome: Outcome::Succeeded,
12+
attemptes: off_reservation_payment.attempts + 1
13+
)
14+
]
15+
break([
16+
off_reservation_payment,
17+
payment_intent_mode,
18+
Return.new(outcome: Outcome::Succeeded, attemptes: off_reservation_payment.attempts + 1)
19+
])
20+
end

fixtures/small/breaks_expected.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,28 @@
11
loop do
22
break no
33
break
4+
break Some::Very::Long::Thing::That::Will::Extend::Over::Multiple::Lines::And::Never::Ends.await_result(
5+
workflow_id: workflow_id
6+
)
7+
break Some::Very::Long::Thing::That::Will::Extend::Over::Multiple::Lines::And::Never::Ends.await_result(
8+
workflow_id: workflow_id
9+
), with_a_second_value
10+
break [
11+
off_reservation_payment,
12+
payment_intent_mode,
13+
Return.new(outcome: Outcome::Succeeded, attemptes: off_reservation_payment.attempts + 1)
14+
]
15+
break [
16+
off_reservation_payment,
17+
payment_intent_mode,
18+
Return.new(
19+
outcome: Outcome::Succeeded,
20+
attemptes: off_reservation_payment.attempts + 1
21+
)
22+
]
23+
break ([
24+
off_reservation_payment,
25+
payment_intent_mode,
26+
Return.new(outcome: Outcome::Succeeded, attemptes: off_reservation_payment.attempts + 1)
27+
])
428
end

librubyfmt/src/format_prism.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -552,9 +552,11 @@ fn format_break_node<'src>(ps: &mut ParserState<'src>, break_node: prism::BreakN
552552
ps.emit_ident("break");
553553
if let Some(arguments_node) = break_node.arguments() {
554554
ps.with_start_of_line(false, |ps| {
555-
ps.breakable_of(BreakableDelims::for_kw(), |ps| {
556-
format_arguments_node(ps, arguments_node);
557-
});
555+
let arguments = arguments_node.arguments();
556+
let end_offset = arguments.last().unwrap().location().end_offset();
557+
558+
ps.emit_space();
559+
format_list_like_thing(ps, arguments, end_offset, true);
558560
});
559561
}
560562
}

0 commit comments

Comments
 (0)