Merge pull request #2148 from topecongiro/audit-option/brace_style

Combine fn_brace_style and item_brace_style
This commit is contained in:
Nick Cameron 2017-11-14 16:57:09 +13:00 committed by GitHub
commit 6a6e9a22bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 99 additions and 101 deletions

View File

@ -840,13 +840,15 @@ fn lorem
}
```
## `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,6 +907,50 @@ where
}
```
### Structs and enums
#### `"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,
}
```
## `fn_call_width`
Maximum width of the args of a function call before falling back to vertical formatting
@ -1125,7 +1171,7 @@ impl Lorem {
}
```
See also [`item_brace_style`](#item_brace_style).
See also [`brace_style`](#brace_style).
## `indent_match_arms`
@ -1239,55 +1285,6 @@ use foo::{aaa,
fff};
```
## `item_brace_style`
Brace style for structs and enums
- **Default value**: `"SameLineWhere"`
- **Possible values**: `"AlwaysNextLine"`, `"PreferSameLine"`, `"SameLineWhere"`
#### `"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.

View File

@ -547,9 +547,7 @@ create_config! {
"Maximum width in the body of a struct variant before falling back to vertical formatting";
force_explicit_abi: bool, true, false, "Always print the abi for extern items";
newline_style: NewlineStyle, NewlineStyle::Unix, false, "Unix or Windows line endings";
fn_brace_style: BraceStyle, BraceStyle::SameLineWhere, false, "Brace style for functions";
item_brace_style: BraceStyle, BraceStyle::SameLineWhere, false,
"Brace style for structs and enums";
brace_style: BraceStyle, BraceStyle::SameLineWhere, false, "Brace style for items";
control_brace_style: ControlBraceStyle, ControlBraceStyle::AlwaysSameLine, false,
"Brace style for control flow constructs";
impl_empty_single_line: bool, true, false, "Put empty-body implementations on a single line";

View File

@ -314,7 +314,7 @@ impl<'a> FmtVisitor<'a> {
rewrite_fn_base(&context, indent, ident, fn_sig, span, newline_brace, true)?;
// 2 = ` {`
if self.config.fn_brace_style() == BraceStyle::AlwaysNextLine || force_newline_brace
if self.config.brace_style() == BraceStyle::AlwaysNextLine || force_newline_brace
|| last_line_width(&result) + 2 > self.shape().width
{
newline_brace = true;
@ -440,7 +440,7 @@ impl<'a> FmtVisitor<'a> {
let generics_str = format_generics(
&self.get_context(),
generics,
self.config.item_brace_style(),
self.config.brace_style(),
if enum_def.variants.is_empty() {
BracePos::ForceSameLine
} else {
@ -595,7 +595,7 @@ pub fn format_impl(
let where_clause_str = rewrite_where_clause(
context,
&generics.where_clause,
context.config.item_brace_style(),
context.config.brace_style(),
Shape::legacy(where_budget, offset.block_only()),
context.config.where_density(),
"{",
@ -641,7 +641,7 @@ pub fn format_impl(
}
result.push_str(&where_clause_str);
match context.config.item_brace_style() {
match context.config.brace_style() {
_ if last_line_contains_single_line_comment(&result) => result.push_str(&sep),
BraceStyle::AlwaysNextLine => result.push_str(&sep),
BraceStyle::PreferSameLine => result.push(' '),
@ -784,7 +784,7 @@ fn format_impl_ref_and_type(
let curly_brace_overhead = if generics.where_clause.predicates.is_empty() {
// If there is no where clause adapt budget for type formatting to take space and curly
// brace into account.
match context.config.item_brace_style() {
match context.config.brace_style() {
BraceStyle::AlwaysNextLine => 0,
_ => 2,
}
@ -994,7 +994,7 @@ pub fn format_trait(context: &RewriteContext, item: &ast::Item, offset: Indent)
let where_clause_str = rewrite_where_clause(
context,
&generics.where_clause,
context.config.item_brace_style(),
context.config.brace_style(),
Shape::legacy(where_budget, offset.block_only()),
where_density,
"{",
@ -1038,7 +1038,7 @@ pub fn format_trait(context: &RewriteContext, item: &ast::Item, offset: Indent)
}
}
match context.config.item_brace_style() {
match context.config.brace_style() {
_ if last_line_contains_single_line_comment(&result) => {
result.push('\n');
result.push_str(&offset.to_string(context.config));
@ -1103,7 +1103,7 @@ fn format_unit_struct(context: &RewriteContext, p: &StructParts, offset: Indent)
format_generics(
context,
generics,
context.config.item_brace_style(),
context.config.brace_style(),
BracePos::None,
offset,
mk_sp(generics.span.lo(), hi),
@ -1135,7 +1135,7 @@ pub fn format_struct_struct(
Some(g) => format_generics(
context,
g,
context.config.item_brace_style(),
context.config.brace_style(),
if fields.is_empty() {
BracePos::ForceSameLine
} else {
@ -1148,8 +1148,7 @@ pub fn format_struct_struct(
None => {
// 3 = ` {}`, 2 = ` {`.
let overhead = if fields.is_empty() { 3 } else { 2 };
if (context.config.item_brace_style() == BraceStyle::AlwaysNextLine
&& !fields.is_empty())
if (context.config.brace_style() == BraceStyle::AlwaysNextLine && !fields.is_empty())
|| context.config.max_width() < overhead + result.len()
{
format!("\n{}{{", offset.block_only().to_string(context.config))
@ -1279,7 +1278,7 @@ fn format_tuple_struct(
rewrite_where_clause(
context,
&generics.where_clause,
context.config.item_brace_style(),
context.config.brace_style(),
Shape::legacy(where_budget, offset.block_only()),
Density::Compressed,
";",
@ -1365,7 +1364,7 @@ pub fn rewrite_type_alias(
let where_clause_str = rewrite_where_clause(
context,
&generics.where_clause,
context.config.item_brace_style(),
context.config.brace_style(),
Shape::legacy(where_budget, indent),
context.config.where_density(),
"=",
@ -2071,7 +2070,7 @@ fn rewrite_fn_base(
if let Some(where_clause_str) = rewrite_where_clause(
context,
where_clause,
context.config.fn_brace_style(),
context.config.brace_style(),
Shape::legacy(budget, indent),
Density::Compressed,
"{",
@ -2090,7 +2089,7 @@ fn rewrite_fn_base(
let where_clause_str = rewrite_where_clause(
context,
where_clause,
context.config.fn_brace_style(),
context.config.brace_style(),
Shape::indented(indent, context.config),
Density::Tall,
"{",
@ -2386,7 +2385,7 @@ fn newline_for_brace(config: &Config, where_clause: &ast::WhereClause, has_body:
if config.where_single_line() && predicate_count == 1 {
return false;
}
match (config.fn_brace_style(), config.where_density()) {
match (config.brace_style(), config.where_density()) {
(BraceStyle::AlwaysNextLine, _) => true,
(_, Density::Compressed) if predicate_count == 1 => false,
(_, Density::CompressedIfEmpty) if predicate_count == 1 && !has_body => false,

View File

@ -666,7 +666,7 @@ impl<'a> FmtVisitor<'a> {
self.buffer.push_str(&ident.to_string());
if is_internal {
match self.config.item_brace_style() {
match self.config.brace_style() {
BraceStyle::AlwaysNextLine => self.buffer
.push_str(&format!("\n{}{{", self.block_indent.to_string(self.config))),
_ => self.buffer.push_str(" {"),

View File

@ -2,7 +2,7 @@ max_width = 100
comment_width = 80
tab_spaces = 2
newline_style = "Unix"
fn_brace_style = "SameLineWhere"
brace_style = "SameLineWhere"
fn_return_indent = "WithArgs"
fn_args_paren_newline = true
fn_args_density = "Tall"

View File

@ -1,4 +1,4 @@
// rustfmt-fn_brace_style: AlwaysNextLine
// rustfmt-brace_style: AlwaysNextLine
// Function brace style
fn lorem() {

View File

@ -1,4 +1,4 @@
// rustfmt-fn_brace_style: PreferSameLine
// rustfmt-brace_style: PreferSameLine
// Function brace style
fn lorem() {

View File

@ -1,4 +1,4 @@
// rustfmt-fn_brace_style: SameLineWhere
// rustfmt-brace_style: SameLineWhere
// Function brace style
fn lorem() {

View File

@ -1,4 +1,4 @@
// rustfmt-item_brace_style: AlwaysNextLine
// rustfmt-brace_style: AlwaysNextLine
// Item brace style
enum Foo {}

View File

@ -1,4 +1,4 @@
// rustfmt-item_brace_style: PreferSameLine
// rustfmt-brace_style: PreferSameLine
// Item brace style
struct Lorem {

View File

@ -1,4 +1,4 @@
// rustfmt-item_brace_style: SameLineWhere
// rustfmt-brace_style: SameLineWhere
// Item brace style
struct Lorem {

View File

@ -1,5 +1,5 @@
// rustfmt-indent_style: Block
// rustfmt-fn_brace_style: PreferSameLine
// rustfmt-brace_style: PreferSameLine
// Test different indents.
fn foo(a: Aaaaaaaaaaaaaa, b: Bbbbbbbbbbbbbb) {

View File

@ -1,7 +1,7 @@
// rustfmt-normalize_comments: true
// rustfmt-indent_style: Block
// rustfmt-fn_args_density: Vertical
// rustfmt-fn_brace_style: AlwaysNextLine
// rustfmt-brace_style: AlwaysNextLine
// Case with only one variable.
fn foo(a: u8) -> u8 {

View File

@ -1,5 +1,5 @@
// rustfmt-indent_style: Block
// rustfmt-fn_brace_style: PreferSameLine
// rustfmt-brace_style: PreferSameLine
// Test different indents.
fn foo(a: Aaaaaaaaaaaaaa, b: Bbbbbbbbbbbbbb) {

View File

@ -1,4 +1,4 @@
// rustfmt-item_brace_style: AlwaysNextLine
// rustfmt-brace_style: AlwaysNextLine
mod M {
enum A {

View File

@ -1,4 +1,4 @@
// rustfmt-item_brace_style: PreferSameLine
// rustfmt-brace_style: PreferSameLine
mod M {
enum A

View File

@ -1,4 +1,4 @@
// rustfmt-item_brace_style: SameLineWhere
// rustfmt-brace_style: SameLineWhere
mod M {
enum A

View File

@ -1,4 +1,4 @@
// rustfmt-fn_brace_style: AlwaysNextLine
// rustfmt-brace_style: AlwaysNextLine
// Function brace style
fn lorem()

View File

@ -1,4 +1,4 @@
// rustfmt-fn_brace_style: PreferSameLine
// rustfmt-brace_style: PreferSameLine
// Function brace style
fn lorem() {

View File

@ -1,4 +1,4 @@
// rustfmt-fn_brace_style: SameLineWhere
// rustfmt-brace_style: SameLineWhere
// Function brace style
fn lorem() {

View File

@ -1,4 +1,4 @@
// rustfmt-item_brace_style: AlwaysNextLine
// rustfmt-brace_style: AlwaysNextLine
// Item brace style
enum Foo {}
@ -21,5 +21,7 @@ where
mod tests
{
#[test]
fn it_works() {}
fn it_works()
{
}
}

View File

@ -1,4 +1,4 @@
// rustfmt-item_brace_style: PreferSameLine
// rustfmt-brace_style: PreferSameLine
// Item brace style
struct Lorem {

View File

@ -1,4 +1,4 @@
// rustfmt-item_brace_style: SameLineWhere
// rustfmt-brace_style: SameLineWhere
// Item brace style
struct Lorem {

View File

@ -1,5 +1,5 @@
// rustfmt-indent_style: Block
// rustfmt-fn_brace_style: PreferSameLine
// rustfmt-brace_style: PreferSameLine
// Test different indents.
fn foo(a: Aaaaaaaaaaaaaa, b: Bbbbbbbbbbbbbb) {

View File

@ -1,7 +1,7 @@
// rustfmt-normalize_comments: true
// rustfmt-indent_style: Block
// rustfmt-fn_args_density: Vertical
// rustfmt-fn_brace_style: AlwaysNextLine
// rustfmt-brace_style: AlwaysNextLine
// Case with only one variable.
fn foo(a: u8) -> u8
@ -29,7 +29,8 @@ fn foo(
bar()
}
trait Test {
trait Test
{
fn foo(a: u8)
{
}

View File

@ -1,5 +1,5 @@
// rustfmt-indent_style: Block
// rustfmt-fn_brace_style: PreferSameLine
// rustfmt-brace_style: PreferSameLine
// Test different indents.
fn foo(a: Aaaaaaaaaaaaaa, b: Bbbbbbbbbbbbbb) {

View File

@ -1,11 +1,12 @@
// rustfmt-item_brace_style: AlwaysNextLine
// rustfmt-brace_style: AlwaysNextLine
mod x
{
struct X(i8);
impl Y for X
{
fn y(self) -> () {
fn y(self) -> ()
{
println!("ok");
}
}

View File

@ -1,4 +1,4 @@
// rustfmt-item_brace_style: AlwaysNextLine
// rustfmt-brace_style: AlwaysNextLine
mod M
{

View File

@ -1,4 +1,4 @@
// rustfmt-item_brace_style: PreferSameLine
// rustfmt-brace_style: PreferSameLine
mod M {
enum A {

View File

@ -1,4 +1,4 @@
// rustfmt-item_brace_style: SameLineWhere
// rustfmt-brace_style: SameLineWhere
mod M {
enum A {