Put lhs and rhs of binop on the same line if lhs is short
This commit is contained in:
parent
0e660e4c76
commit
822dd41ad9
1 changed files with 9 additions and 7 deletions
16
src/expr.rs
16
src/expr.rs
|
|
@ -352,13 +352,15 @@ where
|
|||
.and_then(|s| s.sub_width(pp.suffix.len()))
|
||||
.and_then(|rhs_shape| rhs.rewrite(context, rhs_shape));
|
||||
if let Some(ref rhs_result) = rhs_orig_result {
|
||||
// If the rhs looks like block expression, we allow it to stay on the same line
|
||||
// with the lhs even if it is multi-lined.
|
||||
let allow_same_line = rhs_result
|
||||
.lines()
|
||||
.next()
|
||||
.map(|first_line| first_line.ends_with('{'))
|
||||
.unwrap_or(false);
|
||||
// If the length of the lhs is equal to or shorter than the tab width or
|
||||
// the rhs looks like block expression, we put the rhs on the same
|
||||
// line with the lhs even if the rhs is multi-lined.
|
||||
let allow_same_line = lhs_result.len() <= context.config.tab_spaces()
|
||||
|| rhs_result
|
||||
.lines()
|
||||
.next()
|
||||
.map(|first_line| first_line.ends_with('{'))
|
||||
.unwrap_or(false);
|
||||
if !rhs_result.contains('\n') || allow_same_line {
|
||||
let one_line_width = last_line_width(&lhs_result) + pp.infix.len()
|
||||
+ first_line_width(rhs_result) + pp.suffix.len();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue