]> git.lizzy.rs Git - rust.git/blobdiff - Configurations.md
Merge pull request #2213 from topecongiro/issue-2212
[rust.git] / Configurations.md
index 6516784c481fb59a495bfef022eee93d66838b59..7726193fafe24c7ba6a644a9b283ce3445a988f7 100644 (file)
@@ -6,7 +6,6 @@ A possible content of `rustfmt.toml` or `.rustfmt.toml` might look like this:
 
 ```toml
 indent_style = "Block"
-array_width = 80
 reorder_imported_names = true
 ```
 
@@ -14,41 +13,6 @@ reorder_imported_names = true
 
 Below you find a detailed visual guide on all the supported configuration options of rustfmt:
 
-## `array_horizontal_layout_threshold`
-
-How many elements array must have before rustfmt uses horizontal layout.  
-Use this option to prevent a huge array from being vertically formatted.
-
-- **Default value**: `0`
-- **Possible values**: any positive integer
-
-**Note:** A value of `0` results in [`indent_style`](#indent_style) being applied regardless of a line's width.
-
-#### `0` (default):
-
-```rust
-// Each element will be placed on its own line.
-let a = vec![
-    0,
-    1,
-    2,
-    3,
-    4,
-    ...
-    999,
-    1000,
-];
-```
-
-#### `1000`:
-
-```rust
-// Each element will be placed on the same line as much as possible.
-let a = vec![
-    0, 1, 2, 3, 4, ...
-    ..., 999, 1000,
-];
-```
 
 ## `indent_style`
 
@@ -150,7 +114,7 @@ fn lorem(ipsum: usize,
 }
 ```
 
-### Functaion calls
+### Function calls
 
 #### `"Block"` (default):
 
@@ -246,7 +210,7 @@ let lorem = Lorem { ipsum: dolor,
                     sit: amet, };
 ```
 
-See also: [`struct_lit_multiline_style`](#struct_lit_multiline_style), [`indent_style`](#indent_style).
+See also: [`struct_lit_single_line`](#struct_lit_single_line), [`indent_style`](#indent_style).
 
 ### Where predicates
 
@@ -277,28 +241,10 @@ fn lorem<Ipsum, Dolor, Sit, Amet>() -> T
 }
 ```
 
-See also: [`where_density`](#where_density), [`where_layout`](#where_layout).
-
-## `array_width`
-
-Maximum width of an array literal before falling back to vertical formatting
-
-- **Default value**: `60`
-- **Possible values**: any positive integer
-
-**Note:** A value of `0` results in [`indent_style`](#indent_style) being applied regardless of a line's width.
-
-#### Lines shorter than `array_width`:
-```rust
-let lorem = vec!["ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit"];
-```
-
-#### Lines longer than `array_width`:
-See [`indent_style`](#indent_style).
 
-## `attributes_on_same_line_as_field`
+## `same_line_attributes`
 
-Try to put attributes on the same line as fields
+Try to put attributes on the same line as fields and variants
 
 - **Default value**: `true`
 - **Possible values**: `true`, `false`
@@ -311,6 +257,12 @@ struct Lorem {
     #[serde(rename = "Dolor")] dolor: usize,
     #[serde(rename = "Amet")] amet: usize,
 }
+
+enum Lorem {
+    #[serde(skip_serializing)] Ipsum,
+    #[serde(skip_serializing)] Dolor,
+    #[serde(skip_serializing)] Amet,
+}
 ```
 
 #### `false`:
@@ -324,11 +276,20 @@ struct Lorem {
     #[serde(rename = "Amet")]
     amet: usize,
 }
+
+enum Lorem {
+    #[serde(skip_serializing)]
+    Ipsum,
+    #[serde(skip_serializing)]
+    Dolor,
+    #[serde(skip_serializing)]
+    Amet,
+}
 ```
 
-## `attributes_on_same_line_as_variant`
+## `use_small_heuristics`
 
-Try to put attributes on the same line as variants
+Whether to use different formatting for items and expressions if they satisfy a heuristic notion of 'small'.
 
 - **Default value**: `true`
 - **Possible values**: `true`, `false`
@@ -337,9 +298,25 @@ Try to put attributes on the same line as variants
 
 ```rust
 enum Lorem {
-    #[serde(skip_serializing)] Ipsum,
-    #[serde(skip_serializing)] Dolor,
-    #[serde(skip_serializing)] Amet,
+    Ipsum,
+    Dolor(bool),
+    Sit { amet: Consectetur, adipiscing: Elit },
+}
+
+fn main() {
+    lorem(
+        "lorem",
+        "ipsum",
+        "dolor",
+        "sit",
+        "amet",
+        "consectetur",
+        "adipiscing",
+    );
+
+    let lorem = Lorem { ipsum: dolor, sit: amet };
+
+    let lorem = if ipsum { dolor } else { sit };
 }
 ```
 
@@ -347,12 +324,27 @@ enum Lorem {
 
 ```rust
 enum Lorem {
-    #[serde(skip_serializing)]
     Ipsum,
-    #[serde(skip_serializing)]
-    Dolor,
-    #[serde(skip_serializing)]
-    Amet,
+    Dolor(bool),
+    Sit {
+        amet: Consectetur,
+        adipiscing: Elit,
+    },
+}
+
+fn main() {
+    lorem("lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing");
+
+    let lorem = Lorem {
+        ipsum: dolor,
+        sit: amet,
+    };
+
+    let lorem = if ipsum {
+        dolor
+    } else {
+        sit
+    };
 }
 ```
 
@@ -423,44 +415,7 @@ let lorem = ipsum.dolor()
                  .elit();
 ```
 
-See also [`chain_width`](#chain_width).
-
-## `chain_width`
-
-Maximum length of a chain to fit on a single line
-
-- **Default value**: `60`
-- **Possible values**: any positive integer
-
-#### Lines shorter than `chain_width`:
-```rust
-let lorem = ipsum.dolor().sit().amet().consectetur().adipiscing().elit();
-```
-
-#### Lines longer than `chain_width`:
-See [`chain_indent`](#chain_indent).
-
-## `chain_split_single_child`
-
-Split a chain with a single child if its length exceeds [`chain_width`](#chain_width).
-
-- **Default value**: `false`
-- **Possible values**: `false`, `true`
-
-#### `false` (default):
-
-```rust
-let files = fs::read_dir("tests/coverage/source").expect("Couldn't read source dir");
-```
-
-#### `true`:
-
-```rust
-let files = fs::read_dir("tests/coverage/source")
-    .expect("Couldn't read source dir");
-```
 
-See also [`chain_width`](#chain_width).
 
 ## `combine_control_expr`
 
@@ -681,7 +636,7 @@ See also [`comment_width`](#comment_width).
 Argument density in functions
 
 - **Default value**: `"Tall"`
-- **Possible values**: `"Compressed"`, `"CompressedIfEmpty"`, `"Tall"`, `"Vertical"`
+- **Possible values**: `"Compressed"`, `"Tall"`, `"Vertical"`
 
 #### `"Tall"` (default):
 
@@ -741,35 +696,6 @@ trait Lorem {
 }
 ```
 
-#### `"CompressedIfEmpty"`:
-
-```rust
-trait Lorem {
-    fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet);
-
-    fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet) {
-        // body
-    }
-
-    fn lorem(
-        ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet, consectetur: Consectetur,
-        adipiscing: Adipiscing, elit: Elit,
-    );
-
-    fn lorem(
-        ipsum: Ipsum,
-        dolor: Dolor,
-        sit: Sit,
-        amet: Amet,
-        consectetur: Consectetur,
-        adipiscing: Adipiscing,
-        elit: Elit,
-    ) {
-        // body
-    }
-}
-```
-
 #### `"Vertical"`:
 
 ```rust
@@ -806,47 +732,16 @@ trait Lorem {
 }
 ```
 
-## `fn_args_paren_newline`
-
-If function argument parenthesis goes on a newline
-
-- **Default value**: `false`
-- **Possible values**: `true`, `false`
-
-#### `false` (default):
-
-```rust
-fn lorem(
-    ipsum: Ipsum,
-    dolor: Dolor,
-    sit: Sit,
-    amet: Amet,
-) -> DolorSitAmetConsecteturAdipiscingElitLoremIpsumDolorSitAmetConsecteturAdipiscingElit {
-    // body
-}
-```
-
-#### `true`:
-
-```rust
-fn lorem
-    (
-    ipsum: Ipsum,
-    dolor: Dolor,
-    sit: Sit,
-    amet: Amet,
-) -> DolorSitAmetConsecteturAdipiscingElitLoremIpsumDolorSitAmetConsecteturAdipiscingElit {
-    // body
-}
-```
 
-## `fn_brace_style`
+## `brace_style`
 
-Brace style for functions
+Brace style for items
 
 - **Default value**: `"SameLineWhere"`
 - **Possible values**: `"AlwaysNextLine"`, `"PreferSameLine"`, `"SameLineWhere"`
 
+### Functions
+
 #### `"SameLineWhere"` (default):
 
 ```rust
@@ -905,27 +800,54 @@ where
 }
 ```
 
-## `fn_call_width`
+### Structs and enums
 
-Maximum width of the args of a function call before falling back to vertical formatting
+#### `"SameLineWhere"` (default):
 
-- **Default value**: `60`
-- **Possible values**: any positive integer
+```rust
+struct Lorem {
+    ipsum: bool,
+}
+
+struct Dolor<T>
+    where T: Eq
+{
+    sit: T,
+}
+```
 
-**Note:** A value of `0` results in vertical formatting being applied regardless of a line's width.
+#### `"AlwaysNextLine"`:
 
-#### Function call shorter than `fn_call_width`:
 ```rust
-lorem("lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit");
+struct Lorem
+{
+    ipsum: bool,
+}
+
+struct Dolor<T>
+    where T: Eq
+{
+    sit: T,
+}
 ```
 
-#### Function call longer than `fn_call_width`:
+#### `"PreferSameLine"`:
+
+```rust
+struct Lorem {
+    ipsum: bool,
+}
+
+struct Dolor<T>
+    where T: Eq {
+    sit: T,
+}
+```
 
-See [`indent_style`](#indent_style).
 
-## `fn_empty_single_line`
+## `empty_item_single_line`
 
-Put empty-body functions on a single line
+Put empty-body functions and impls on a single line
 
 - **Default value**: `true`
 - **Possible values**: `true`, `false`
@@ -934,6 +856,8 @@ Put empty-body functions on a single line
 
 ```rust
 fn lorem() {}
+
+impl Lorem {}
 ```
 
 #### `false`:
@@ -941,52 +865,13 @@ fn lorem() {}
 ```rust
 fn lorem() {
 }
-```
-
-See also [`control_brace_style`](#control_brace_style).
-
-## `fn_return_indent`
-
-Location of return type in function declaration
-
-- **Default value**: `"WithArgs"`
-- **Possible values**: `"WithArgs"`, `"WithWhereClause"`
 
-#### `"WithArgs"` (default):
-
-```rust
-fn lorem(ipsum: Ipsum,
-         dolor: Dolor,
-         sit: Sit,
-         amet: Amet,
-         consectetur: Consectetur,
-         adipiscing: Adipiscing)
-         -> Elit
-    where Ipsum: Eq
-{
-    // body
+impl Lorem {
 }
-
 ```
 
-#### `"WithWhereClause"`:
-
-```rust
-fn lorem(ipsum: Ipsum,
-         dolor: Dolor,
-         sit: Sit,
-         amet: Amet,
-         consectetur: Consectetur,
-         adipiscing: Adipiscing)
-    -> Elit
-    where Ipsum: Eq
-{
-    // body
-}
-
-```
+See also [`brace_style`](#brace_style), [`control_brace_style`](#control_brace_style).
 
-**Note**: This option only takes effect when `indent_style` is set to `"Visual"`.
 
 ## `fn_single_line`
 
@@ -1046,17 +931,6 @@ extern {
 }
 ```
 
-## `force_format_strings`
-
-Always format string literals
-
-- **Default value**: `false`
-- **Possible values**: `true`, `false`
-
-See [`format_strings`](#format_strings).
-
-See also [`max_width`](#max_width).
-
 ## `format_strings`
 
 Format string literals where necessary
@@ -1078,7 +952,7 @@ let lorem =
      adipiscing elit lorem ipsum dolor sit";
 ```
 
-See also [`force_format_strings`](#force_format_strings), [`max_width`](#max_width).
+See also [`max_width`](#max_width).
 
 ## `hard_tabs`
 
@@ -1105,58 +979,6 @@ fn lorem() -> usize {
 
 See also: [`tab_spaces`](#tab_spaces).
 
-## `impl_empty_single_line`
-
-Put empty-body implementations on a single line
-
-- **Default value**: `true`
-- **Possible values**: `true`, `false`
-
-#### `true` (default):
-
-```rust
-impl Lorem {}
-```
-
-#### `false`:
-
-```rust
-impl Lorem {
-}
-```
-
-See also [`item_brace_style`](#item_brace_style).
-
-## `indent_match_arms`
-
-Indent match arms instead of keeping them at the same indentation level as the match keyword
-
-- **Default value**: `true`
-- **Possible values**: `true`, `false`
-
-#### `true` (default):
-
-```rust
-match lorem {
-    Lorem::Ipsum => (),
-    Lorem::Dolor => (),
-    Lorem::Sit => (),
-    Lorem::Amet => (),
-}
-```
-
-#### `false`:
-
-```rust
-match lorem {
-Lorem::Ipsum => (),
-Lorem::Dolor => (),
-Lorem::Sit => (),
-Lorem::Amet => (),
-}
-```
-
-See also: [`match_block_trailing_comma`](#match_block_trailing_comma), [`wrap_match_arms`](#wrap_match_arms).
 
 ## `imports_indent`
 
@@ -1239,103 +1061,13 @@ use foo::{aaa,
           fff};
 ```
 
-## `item_brace_style`
 
-Brace style for structs and enums
+## `match_block_trailing_comma`
 
-- **Default value**: `"SameLineWhere"`
-- **Possible values**: `"AlwaysNextLine"`, `"PreferSameLine"`, `"SameLineWhere"`
+Put a trailing comma after a block based match arm (non-block arms are not affected)
 
-#### `"SameLineWhere"` (default):
-
-```rust
-struct Lorem {
-    ipsum: bool,
-}
-
-struct Dolor<T>
-    where T: Eq
-{
-    sit: T,
-}
-```
-
-#### `"AlwaysNextLine"`:
-
-```rust
-struct Lorem
-{
-    ipsum: bool,
-}
-
-struct Dolor<T>
-    where T: Eq
-{
-    sit: T,
-}
-```
-
-#### `"PreferSameLine"`:
-
-```rust
-struct Lorem {
-    ipsum: bool,
-}
-
-struct Dolor<T>
-    where T: Eq {
-    sit: T,
-}
-```
-
-## `match_arm_forces_newline`
-
-Consistently put match arms (block based or not) in a newline.
-
-- **Default value**: `false`
-- **Possible values**: `true`, `false`
-
-#### `false` (default):
-
-```rust
-match x {
-    // a non-empty block
-    X0 => {
-        f();
-    }
-    // an empty block
-    X1 => {}
-    // a non-block
-    X2 => println!("ok"),
-}
-```
-
-#### `true`:
-
-```rust
-match x {
-    // a non-empty block
-    X0 => {
-        f();
-    }
-    // an empty block
-    X1 =>
-        {}
-    // a non-block
-    X2 => {
-        println!("ok")
-    }
-}
-```
-
-See also: [`wrap_match_arms`](#wrap_match_arms).
-
-## `match_block_trailing_comma`
-
-Put a trailing comma after a block based match arm (non-block arms are not affected)
-
-- **Default value**: `false`
-- **Possible values**: `true`, `false`
+- **Default value**: `false`
+- **Possible values**: `true`, `false`
 
 #### `false` (default):
 
@@ -1359,40 +1091,7 @@ match lorem {
 }
 ```
 
-See also: [`indent_match_arms`](#indent_match_arms), [`trailing_comma`](#trailing_comma), [`wrap_match_arms`](#wrap_match_arms).
-
-## `match_pattern_separator_break_point`
-
-Put a match sub-patterns' separator (`|`) in front or back.
-
-- **Default value**: `"Back"`
-- **Possible values**: `"Back"`, `"Front"`
-
-#### `"Back"` (default):
-
-```rust
-match m {
-    Variant::Tag |
-    Variant::Tag2 |
-    Variant::Tag3 |
-    Variant::Tag4 |
-    Variant::Tag5 |
-    Variant::Tag6 => {}
-}
-```
-
-#### `Front`:
-
-```rust
-match m {
-    Variant::Tag
-    | Variant::Tag2
-    | Variant::Tag3
-    | Variant::Tag4
-    | Variant::Tag5
-    | Variant::Tag6 => {}
-}
-```
+See also: [`trailing_comma`](#trailing_comma), [`match_arm_blocks`](#match_arm_blocks).
 
 ## `max_width`
 
@@ -1426,9 +1125,9 @@ pub enum Foo {}
 pub enum Foo {}
 ```
 
-## `multiline_closure_forces_block`
+## `force_multiline_blocks`
 
-Force multiline closure bodies to be wrapped in a block
+Force multiline closure and match arm bodies to be wrapped in a block
 
 - **Default value**: `false`
 - **Possible values**: `false`, `true`
@@ -1440,6 +1139,13 @@ result.and_then(|maybe_value| match maybe_value {
     None => ...,
     Some(value) => ...,
 })
+
+match lorem {
+    None => if ipsum {
+        println!("Hello World");
+    },
+    Some(dolor) => ...,
+}
 ```
 
 #### `true`:
@@ -1452,29 +1158,7 @@ result.and_then(|maybe_value| {
         Some(value) => ...,
     }
 })
-```
-
-## `multiline_match_arm_forces_block`
-
-Force multiline match arm bodies to be wrapped in a block
 
-- **Default value**: `false`
-- **Possible values**: `false`, `true`
-
-#### `false` (default):
-
-```rust
-match lorem {
-    None => if ipsum {
-        println!("Hello World");
-    },
-    Some(dolor) => ...,
-}
-```
-
-#### `true`:
-
-```rust
 match lorem {
     None => {
         if ipsum {
@@ -1485,6 +1169,7 @@ match lorem {
 }
 ```
 
+
 ## `newline_style`
 
 Unix or Windows line endings
@@ -1690,30 +1375,6 @@ it contains a `#X` (with `X` being a number) in parentheses following the
 
 See also [`report_todo`](#report_todo).
 
-## `single_line_if_else_max_width`
-
-Maximum line length for single line if-else expressions.
-
-- **Default value**: `50`
-- **Possible values**: any positive integer
-
-**Note:** A value of `0` results in if-else expressions being broken regardless of their line's width.
-
-#### Lines shorter than `single_line_if_else_max_width`:
-```rust
-let lorem = if ipsum { dolor } else { sit };
-```
-
-#### Lines longer than `single_line_if_else_max_width`:
-```rust
-let lorem = if ipsum {
-    dolor
-} else {
-    sit
-};
-```
-
-See also: [`control_brace_style`](#control_brace_style).
 
 ## `skip_children`
 
@@ -1722,88 +1383,9 @@ Don't reformat out of line modules
 - **Default value**: `false`
 - **Possible values**: `true`, `false`
 
-## `space_after_bound_colon`
-
-Leave a space after the colon in a trait or lifetime bound
-
-- **Default value**: `true`
-- **Possible values**: `true`, `false`
-
-#### `true` (default):
-
-```rust
-fn lorem<T: Eq>(t: T) {
-    // body
-}
-```
-
-#### `false`:
-
-```rust
-fn lorem<T:Eq>(t: T) {
-    // body
-}
-```
-
-See also: [`space_before_bound`](#space_before_bound).
-
-## `struct_field_align_threshold`
-
-The maximum diff of width between struct fields to be aligned with each other.
-
-- **Default value** : 0
-- **Possible values**: any positive integer
-
-#### `0` (default):
-
-```rust
-struct Foo {
-    x: u32,
-    yy: u32,
-    zzz: u32,
-}
-```
-
-#### `20`:
-
-```rust
-struct Foo {
-    x:   u32,
-    yy:  u32,
-    zzz: u32,
-}
-```
-
-## `space_after_struct_lit_field_colon`
-
-Leave a space after the colon in a struct literal field
-
-- **Default value**: `true`
-- **Possible values**: `true`, `false`
-
-#### `true` (default):
-
-```rust
-let lorem = Lorem {
-    ipsum: dolor,
-    sit: amet,
-};
-```
-
-#### `false`:
-
-```rust
-let lorem = Lorem {
-    ipsum:dolor,
-    sit:amet,
-};
-```
-
-See also: [`space_before_struct_lit_field_colon`](#space_before_struct_lit_field_colon).
+## `space_after_colon`
 
-## `space_after_type_annotation_colon`
-
-Leave a space after the colon in a type annotation
+Leave a space after the colon.
 
 - **Default value**: `true`
 - **Possible values**: `true`, `false`
@@ -1812,23 +1394,29 @@ Leave a space after the colon in a type annotation
 
 ```rust
 fn lorem<T: Eq>(t: T) {
-    let ipsum: Dolor = sit;
+    let lorem: Dolor = Lorem {
+        ipsum: dolor,
+        sit: amet,
+    };
 }
 ```
 
 #### `false`:
 
 ```rust
-fn lorem<T: Eq>(t:T) {
-    let ipsum:Dolor = sit;
+fn lorem<T:Eq>(t:T) {
+    let lorem:Dolor = Lorem {
+        ipsum:dolor,
+        sit:amet,
+    };
 }
 ```
 
-See also: [`space_before_type_annotation`](#space_before_type_annotation).
+See also: [`space_before_colon`](#space_before_colon).
 
-## `space_before_bound`
+## `space_before_colon`
 
-Leave a space before the colon in a trait or lifetime bound
+Leave a space before the colon.
 
 - **Default value**: `false`
 - **Possible values**: `true`, `false`
@@ -1837,71 +1425,54 @@ Leave a space before the colon in a trait or lifetime bound
 
 ```rust
 fn lorem<T: Eq>(t: T) {
-    let ipsum: Dolor = sit;
+    let lorem: Dolor = Lorem {
+        ipsum: dolor,
+        sit: amet,
+    };
 }
 ```
 
 #### `true`:
 
 ```rust
-fn lorem<T : Eq>(t: T) {
-    let ipsum: Dolor = sit;
+fn lorem<T : Eq>(t : T) {
+    let lorem : Dolor = Lorem {
+        ipsum : dolor,
+        sit : amet,
+    };
 }
 ```
 
-See also: [`space_after_bound_colon`](#space_after_bound_colon).
-
-## `space_before_struct_lit_field_colon`
-
-Leave a space before the colon in a struct literal field
-
-- **Default value**: `false`
-- **Possible values**: `true`, `false`
-
-#### `false` (default):
-
-```rust
-let lorem = Lorem {
-    ipsum: dolor,
-    sit: amet,
-};
-```
-
-#### `true`:
-
-```rust
-let lorem = Lorem {
-    ipsum : dolor,
-    sit : amet,
-};
-```
-
-See also: [`space_after_struct_lit_field_colon`](#space_after_struct_lit_field_colon).
+See also: [`space_after_colon`](#space_after_colon).
 
-## `space_before_type_annotation`
+## `struct_field_align_threshold`
 
-Leave a space before the colon in a type annotation
+The maximum diff of width between struct fields to be aligned with each other.
 
-- **Default value**: `false`
-- **Possible values**: `true`, `false`
+- **Default value** : 0
+- **Possible values**: any positive integer
 
-#### `false` (default):
+#### `0` (default):
 
 ```rust
-fn lorem<T: Eq>(t: T) {
-    let ipsum: Dolor = sit;
+struct Foo {
+    x: u32,
+    yy: u32,
+    zzz: u32,
 }
 ```
 
-#### `true`:
+#### `20`:
 
 ```rust
-fn lorem<T: Eq>(t : T) {
-    let ipsum : Dolor = sit;
+struct Foo {
+    x:   u32,
+    yy:  u32,
+    zzz: u32,
 }
 ```
 
-See also: [`space_after_type_annotation_colon`](#space_after_type_annotation_colon).
+```
 
 ## `spaces_around_ranges`
 
@@ -1922,7 +1493,7 @@ let lorem = 0..10;
 let lorem = 0 .. 10;
 ```
 
-## `spaces_within_angle_brackets`
+## `spaces_within_parens_and_brackets`
 
 Put spaces within non-empty generic arguments
 
@@ -1945,9 +1516,9 @@ fn lorem< T: Eq >(t: T) {
 }
 ```
 
-See also: [`spaces_within_parens`](#spaces_within_parens), [`spaces_within_square_brackets`](#spaces_within_square_brackets).
+See also: [`spaces_within_parens_and_brackets`](#spaces_within_parens_and_brackets), [`spaces_within_parens_and_brackets`](#spaces_within_parens_and_brackets).
 
-## `spaces_within_parens`
+## `spaces_within_parens_and_brackets`
 
 Put spaces within non-empty parentheses
 
@@ -1970,9 +1541,9 @@ fn lorem<T: Eq>( t: T ) {
 }
 ```
 
-See also: [`spaces_within_angle_brackets`](#spaces_within_angle_brackets), [`spaces_within_square_brackets`](#spaces_within_square_brackets).
+See also: [`spaces_within_parens_and_brackets`](#spaces_within_parens_and_brackets), [`spaces_within_parens_and_brackets`](#spaces_within_parens_and_brackets).
 
-## `spaces_within_square_brackets`
+## `spaces_within_parens_and_brackets`
 
 Put spaces within non-empty square brackets
 
@@ -1991,22 +1562,22 @@ let lorem: [usize; 2] = [ipsum, dolor];
 let lorem: [ usize; 2 ] = [ ipsum, dolor ];
 ```
 
-See also: [`spaces_within_parens`](#spaces_within_parens), [`spaces_within_angle_brackets`](#spaces_within_angle_brackets).
+See also: [`spaces_within_parens_and_brackets`](#spaces_within_parens_and_brackets), [`spaces_within_parens_and_brackets`](#spaces_within_parens_and_brackets).
 
-## `struct_lit_multiline_style`
+## `struct_lit_single_line`
 
-Multiline style on literal structs
+Put small struct literals on a single line
 
-- **Default value**: `"PreferSingle"`
-- **Possible values**: `"ForceMulti"`, `"PreferSingle"`
+- **Default value**: `true`
+- **Possible values**: `true`, `false`
 
-#### `"PreferSingle"` (default):
+#### `true` (default):
 
 ```rust
 let lorem = Lorem { ipsum: dolor, sit: amet };
 ```
 
-#### `"ForceMulti"`:
+#### `false`:
 
 ```rust
 let lorem = Lorem {
@@ -2015,56 +1586,8 @@ let lorem = Lorem {
 };
 ```
 
-See also: [`indent_style`](#indent_style), [`struct_lit_width`](#struct_lit_width).
-
-## `struct_lit_width`
-
-Maximum width in the body of a struct lit before falling back to vertical formatting
-
-- **Default value**: `18`
-- **Possible values**: any positive integer
-
-**Note:** A value of `0` results in vertical formatting being applied regardless of a line's width.
-
-#### Lines shorter than `struct_lit_width`:
-```rust
-let lorem = Lorem { ipsum: dolor, sit: amet };
-```
-
-#### Lines longer than `struct_lit_width`:
-See [`indent_style`](#indent_style).
-
-See also: [`struct_lit_multiline_style`](#struct_lit_multiline_style), [`indent_style`](#indent_style).
-
-## `struct_variant_width`
-
-Maximum width in the body of a struct variant before falling back to vertical formatting
+See also: [`indent_style`](#indent_style).
 
-- **Default value**: `35`
-- **Possible values**: any positive integer
-
-**Note:** A value of `0` results in vertical formatting being applied regardless of a line's width.
-
-#### Struct variants shorter than `struct_variant_width`:
-```rust
-enum Lorem {
-    Ipsum,
-    Dolor(bool),
-    Sit { amet: Consectetur, adipiscing: Elit },
-}
-```
-
-#### Struct variants longer than `struct_variant_width`:
-```rust
-enum Lorem {
-    Ipsum,
-    Dolor(bool),
-    Sit {
-        amet: Consectetur,
-        adipiscing: Elit,
-    },
-}
-```
 
 ## `tab_spaces`
 
@@ -2097,35 +1620,6 @@ fn lorem() {
 
 See also: [`hard_tabs`](#hard_tabs).
 
-## `take_source_hints`
-
-Retain some formatting characteristics from the source code
-
-- **Default value**: `false`
-- **Possible values**: `true`, `false`
-
-#### `false` (default):
-
-```rust
-lorem
-    .ipsum()
-    .dolor(|| { sit.amet().consectetur().adipiscing().elit(); });
-```
-
-#### `true`:
-
-```rust
-lorem
-    .ipsum()
-    .dolor(|| {
-               sit.amet()
-                   .consectetur()
-                   .adipiscing()
-                   .elit();
-           });
-```
-
-Note: This only applies if the call chain within the inner closure had already been formatted on separate lines before running rustfmt.
 
 ## `trailing_comma`
 
@@ -2241,163 +1735,6 @@ let lorem = try!(ipsum.map(|dolor|dolor.sit()));
 let lorem = ipsum.map(|dolor| dolor.sit())?;
 ```
 
-## `where_density`
-
-Density of a where clause.
-
-- **Default value**: `"Vertical"`
-- **Possible values**: `"Compressed"`, `"CompressedIfEmpty"`, `"Tall"`, `"Vertical"`
-
-#### `"Vertical"` (default):
-
-```rust
-trait Lorem {
-    fn ipsum<Dolor>(dolor: Dolor) -> Sit
-    where
-        Dolor: Eq;
-
-    fn ipsum<Dolor>(dolor: Dolor) -> Sit
-    where
-        Dolor: Eq,
-    {
-        // body
-    }
-}
-```
-
-**Note:** `where_density = "Vertical"` currently produces the same output as `where_density = "Tall"`.
-
-#### `"CompressedIfEmpty"`:
-
-```rust
-trait Lorem {
-    fn ipsum<Dolor>(dolor: Dolor) -> Sit
-    where Dolor: Eq;
-
-    fn ipsum<Dolor>(dolor: Dolor) -> Sit
-    where
-        Dolor: Eq,
-    {
-        // body
-    }
-}
-```
-
-#### `"Compressed"`:
-
-```rust
-trait Lorem {
-    fn ipsum<Dolor>(dolor: Dolor) -> Sit
-    where Dolor: Eq;
-
-    fn ipsum<Dolor>(dolor: Dolor) -> Sit
-    where Dolor: Eq {
-        // body
-    }
-}
-```
-
-#### `"Tall"`:
-
-```rust
-trait Lorem {
-    fn ipsum<Dolor>(dolor: Dolor) -> Sit
-    where
-        Dolor: Eq;
-
-    fn ipsum<Dolor>(dolor: Dolor) -> Sit
-    where
-        Dolor: Eq,
-    {
-        // body
-    }
-}
-```
-
-**Note:** `where_density = "Tall"` currently produces the same output as `where_density = "Vertical"`.
-
-See also: [`where_layout`](#where_layout), [`indent_style`](#indent_style).
-
-## `where_layout`
-
-Element layout inside a where clause
-
-- **Default value**: `"Vertical"`
-- **Possible values**: `"Horizontal"`, `"HorizontalVertical"`, `"Mixed"`, `"Vertical"`
-
-#### `"Vertical"` (default):
-
-```rust
-fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
-    where Ipsum: IpsumDolorSitAmet,
-          Dolor: DolorSitAmetConsectetur
-{
-    // body
-}
-
-fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
-    where Ipsum: IpsumDolorSitAmet,
-          Dolor: DolorSitAmetConsectetur,
-          Sit: SitAmetConsecteturAdipiscing,
-          Amet: AmetConsecteturAdipiscingElit
-{
-    // body
-}
-```
-
-#### `"Horizontal"`:
-
-```rust
-fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
-    where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur
-{
-    // body
-}
-
-fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
-    where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur, Sit: SitAmetConsecteturAdipiscing, Amet: AmetConsecteturAdipiscingElit
-{
-    // body
-}
-```
-
-#### `"HorizontalVertical"`:
-
-```rust
-fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
-    where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur
-{
-    // body
-}
-
-fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
-    where Ipsum: IpsumDolorSitAmet,
-          Dolor: DolorSitAmetConsectetur,
-          Sit: SitAmetConsecteturAdipiscing,
-          Amet: AmetConsecteturAdipiscingElit
-{
-    // body
-}
-```
-
-#### `"Mixed"`:
-
-```rust
-fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
-    where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur
-{
-    // body
-}
-
-fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
-    where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur,
-          Sit: SitAmetConsecteturAdipiscing, Amet: AmetConsecteturAdipiscingElit
-{
-    // body
-}
-```
-
-See also: [`where_density`](#where_density), [`indent_style`](#indent_style).
 
 ## `wrap_comments`
 
@@ -2422,7 +1759,7 @@ Break comments to fit on the line
 // commodo consequat.
 ```
 
-## `wrap_match_arms`
+## `match_arm_blocks`
 
 Wrap the body of arms in blocks when it does not fit on the same line with the pattern of arms
 
@@ -2450,7 +1787,7 @@ match lorem {
 }
 ```
 
-See also: [`indent_match_arms`](#indent_match_arms), [`match_block_trailing_comma`](#match_block_trailing_comma).
+See also: [`match_block_trailing_comma`](#match_block_trailing_comma).
 
 ## `write_mode`