Skip to content

Commit

Permalink
tests: more visual indent style tests
Browse files Browse the repository at this point in the history
  • Loading branch information
calebcartwright committed Nov 7, 2019
1 parent 79452d5 commit 0a8b110
Show file tree
Hide file tree
Showing 5 changed files with 168 additions and 3 deletions.
1 change: 1 addition & 0 deletions Configurations.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ To enable unstable options, set `unstable_features = true` in `rustfmt.toml` or

Below you find a detailed visual guide on all the supported configuration options of rustfmt:


## `binop_separator`

Where to put a binary operator when a binary expression goes multiline.
Expand Down
5 changes: 4 additions & 1 deletion src/chains.rs
Original file line number Diff line number Diff line change
Expand Up @@ -792,7 +792,10 @@ fn format_chain_item(
}
}
},
_ => Some((orig_result, false)),
_ => Some((
orig_result.clone(),
wrap_str(orig_result, context.config.max_width(), shape).is_none(),
)),
},
(None, None) => Some((context.snippet(item.span).to_owned(), true)),
(Some(orig_result), _) => Some((orig_result, false)),
Expand Down
2 changes: 0 additions & 2 deletions src/config/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,6 @@ create_config! {
ChainsBlockParentElementIndent::Never,
false,
"Determines whether block-like chain parents are indented";
// allow_chain_call_overflow: bool, false, false,
// "Format chains even if it includes a chain call which exceeds the max width";

// Ordering
reorder_imports: bool, true, true, "Reorder import and extern crate statements alphabetically";
Expand Down
49 changes: 49 additions & 0 deletions tests/source/chains_long_items_visual.rs
Original file line number Diff line number Diff line change
@@ -1,19 +1,68 @@
// rustfmt-indent_style: Visual

fn long_parent() {
// Args that do not fit
let bar = baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf").foo().bar().baz();

baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf").foo().bar().baz();

// Long element no args
let bar = bazffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf().foo().bar().baz();

bazffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf().foo().foo().bar().baz();

// Long element with args that fit
let bar = looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnggggggggggggggggggggggggggggggggggggggggggg("ffffffffffffffffffffffffffffffffffff").foo().bar().baz();

asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff("ffffffffffffffffffffffffffffffffffff").foo().bar().baz();
}

fn long_first_child() {
// Args that do not fit
let bar = foo().baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf").foo().bar().baz();

foo().baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf").foo().bar().baz();

// Long element no args
let foo = bar().asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff().foo().bar().baz();

qux().asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff().foo().bar().baz();

// Long element with args that fit
let bar = bar().asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff("abc").foo().bar().baz();

qux().asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff("abc").foo().bar().baz();
}

fn long_inner_child() {
// Args that do not fit
let bar = foo().foo_bar.baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf").foo().bar().baz();

foo().foo_bar.baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf").foo().bar().baz();

// Long element no args
let foo = bar().foo_bar.asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff().foo().bar().baz();

qux().foo_bar.asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff().foo().bar().baz();

// Long element with args that fit
let bar = bar().foo_bar.asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff("abc").foo().bar().baz();

qux().foo_bar.asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff("abc").foo().bar().baz();
}

fn long_tail() {
// Args that do not fit
let bar = foo().foo_bar.foo().bar().baz().baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf");

foo().foo_bar.foo().bar().baz().baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf");

// Log element no args
let foo = bar().foo_bar.foo().bar().baz().asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff();

qux().foo_bar.foo().bar().baz().asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff();

// Long element with args that fit
bar().xxxxxxx.map(|x| x + 5).map(|x| x / 2).fold(0, |acc, x| acc + x).doooooooooooooooooooooooooooooooooooooooooooooooooooooo_stufffffffffffffffffffffffffffffffffffffff("abcdefghadfasdfasdfasdfasdfadf");

let foo = bar().xxxxxxx.map(|x| x + 5).map(|x| x / 2).fold(0, |acc, x| acc + x).doooooooooooooooooooooooooooooooooooooooooooooooooooooo_stufffffffffffffffffffffffffffffffffffffff("abcdefghadfasdfasdfasdfasdfadf");
Expand Down
114 changes: 114 additions & 0 deletions tests/target/chains_long_items_visual.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
// rustfmt-indent_style: Visual

fn long_parent() {
// Args that do not fit
let bar = baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf")
.foo()
.bar()
.baz();

baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf")
.foo()
.bar()
.baz();

// Long element no args
let bar = bazffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf()
.foo()
.bar()
Expand All @@ -11,9 +23,32 @@ fn long_parent() {
.foo()
.bar()
.baz();

// Long element with args that fit
let bar = looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnggggggggggggggggggggggggggggggggggggggggggg("ffffffffffffffffffffffffffffffffffff")
.foo()
.bar()
.baz();

asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff("ffffffffffffffffffffffffffffffffffff")
.foo()
.bar()
.baz();
}

fn long_first_child() {
// Args that do not fit
let bar = foo().baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf")
.foo()
.bar()
.baz();

foo().baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf")
.foo()
.bar()
.baz();

// Long element no args
let foo = bar().asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff()
.foo()
.bar()
Expand All @@ -23,9 +58,88 @@ fn long_first_child() {
.foo()
.bar()
.baz();

// Long element with args that fit
let bar = bar().asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff("abc")
.foo()
.bar()
.baz();

qux().asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff("abc")
.foo()
.bar()
.baz();
}

fn long_inner_child() {
// Args that do not fit
let bar = foo().foo_bar
.baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf")
.foo()
.bar()
.baz();

foo().foo_bar
.baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf")
.foo()
.bar()
.baz();

// Long element no args
let foo = bar().foo_bar
.asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff()
.foo()
.bar()
.baz();

qux().foo_bar
.asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff()
.foo()
.bar()
.baz();

// Long element with args that fit
let bar = bar().foo_bar
.asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff("abc")
.foo()
.bar()
.baz();

qux().foo_bar
.asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff("abc")
.foo()
.bar()
.baz();
}

fn long_tail() {
// Args that do not fit
let bar = foo().foo_bar
.foo()
.bar()
.baz()
.baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf");

foo().foo_bar
.foo()
.bar()
.baz()
.baz("ffffffffffffffffffffffffffffffffffffasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadfasdfasdfasdfadfasdfasdf");

// Log element no args
let foo = bar().foo_bar
.foo()
.bar()
.baz()
.asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff();

qux().foo_bar
.foo()
.bar()
.baz()
.asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff();

// Long element with args that fit
bar().xxxxxxx
.map(|x| x + 5)
.map(|x| x / 2)
Expand Down

0 comments on commit 0a8b110

Please sign in to comment.