Commit graph

999 commits

Author SHA1 Message Date
Nick Cameron
6546aaf5ec Merge pull request #1767 from topecongiro/range-with-floating-literal
Add a space before range if lhs ends with dot
2017-07-05 15:46:43 +12:00
Nick Cameron
734de8b2b7 Merge pull request #1765 from topecongiro/v-alignment/struct-field
Add vertical alignment option for struct fields
2017-07-05 12:11:52 +12:00
topecongiro
183e3482e5 Add a space before range if lhs ends with dot 2017-07-04 20:23:57 +09:00
Nick Cameron
2400f39f98 Merge pull request #1757 from topecongiro/rfc/combine-array
Rfc: Combine Array
2017-07-04 18:22:32 +12:00
Nick Cameron
960dd3242a Merge pull request #1756 from topecongiro/closure_block_indent_threshold
Use correct one line budget in rewrite_closure_block
2017-07-04 18:21:11 +12:00
topecongiro
2ed6feca83 Update tests
Now structs.rs has no overflowing max_width :)
2017-07-03 18:55:11 +09:00
topecongiro
bd991851c8 Format source codes 2017-07-03 18:54:26 +09:00
topecongiro
c762cf9b43 Update tests 2017-06-29 11:01:22 +09:00
topecongiro
0199e08367 Use correct one line budget in rewrite_closure_block 2017-06-28 10:56:29 +09:00
topecongiro
5f77581763 Put multi-lined index on the next line if it fits in one line 2017-06-26 07:57:06 +09:00
topecongiro
eeb5599b4b Do not add trailing comma inside macro invocation unless there already is 2017-06-23 13:43:43 +09:00
topecongiro
f062544cdd Update tests inside macro.rs
I moved around some tests in order to prevent rustfmt from failing to format
tests after macro invocations whose arguments cannot be parsed as expressions.
2017-06-23 13:03:37 +09:00
topecongiro
b5a13602d9 Update tests 2017-06-20 22:35:16 +09:00
Seiichi Uchida
f74be44b1c Merge pull request #1732 from olson-sean-k/issue-1377
Keep brace on same line as `match` when using `ClosingNextLine`.
2017-06-20 12:07:03 +09:00
Nick Cameron
1ebbc3cd68 Merge pull request #1734 from topecongiro/raw-string-literal
Allow extending a chain after raw string literal
2017-06-20 12:29:25 +12:00
Nick Cameron
779f037c8d Merge pull request #1728 from topecongiro/trailing-comma
Apply config.trailing_comma wherever possible
2017-06-20 12:22:58 +12:00
Sean Olson
ea1df1777b Modify control_brace_sytle test to ensure match braces are formatted correctly. 2017-06-19 08:12:15 -07:00
Seiichi Uchida
b99f3cb447 Allow extending a chain after raw string literal 2017-06-19 22:06:08 +09:00
topecongiro
512c8c1edf Apply config.trailing_comma wherever possible 2017-06-19 16:00:04 +09:00
topecongiro
ec4b439484 Disallow overflowing closure if there are multiple closures in args 2017-06-19 12:07:20 +09:00
topecongiro
482675cf58 Update tests 2017-06-19 11:25:21 +09:00
Seiichi Uchida
6afb0e856c Avoid line break when rhs of assignment is an invalid macro 2017-06-18 14:25:21 +09:00
Nick Cameron
be18e7af90 Merge pull request #1717 from topecongiro/type-and-generics
Refactor format against types and generics
2017-06-18 15:57:34 +12:00
Seiichi Uchida
4d11faff4b Update tests 2017-06-18 02:16:27 +09:00
topecongiro
0440c2c377 Update tests 2017-06-17 16:57:00 +09:00
topecongiro
e31f5eceac Use correct span for Infer type inside closure header 2017-06-17 15:35:29 +09:00
topecongiro
897d7bdcb9 Add a test for #1697 2017-06-17 15:26:59 +09:00
topecongiro
9b73490491 Update tests 2017-06-17 15:26:59 +09:00
Nick Cameron
06f351664b Merge pull request #1705 from topecongiro/issue-1703
Preserve comments inside attributes
2017-06-17 16:58:11 +12:00
topecongiro
f60a810730 Preserve comments inside attributes 2017-06-17 05:44:54 +09:00
topecongiro
4a5871eccc Use correct indentaion for vec! with semicolon 2017-06-16 13:57:37 +09:00
Nick Cameron
c5538d2a58 Merge pull request #1692 from topecongiro/chain/last-item
Allow overflowing the last item of chain only if it is multi-lined
2017-06-16 13:24:03 +12:00
topecongiro
208ff15954 Format source codes 2017-06-16 08:49:49 +09:00
topecongiro
e7240f5e24 Add and remove comments 2017-06-16 08:28:12 +09:00
topecongiro
0d5768964b Format source codes and add a test 2017-06-16 07:36:31 +09:00
topecongiro
de10113c74 Update tests
Add more patterns and types
2017-06-15 16:55:31 +09:00
Nick Cameron
a1fdc32d99 Merge pull request #1673 from topecongiro/get-tests-passing-again
Get tests passing again
2017-06-15 10:39:29 +12:00
Nick Cameron
2dde4547fc Merge pull request #1666 from topecongiro/tuple-type
Block indent tuple type when fn_call_style is Block
2017-06-15 10:01:00 +12:00
topecongiro
b8f11a4e3c Format source codes 2017-06-14 20:39:07 +09:00
Robin Stocker
a13db07b03 Add back cargo-fmt binary (#1670)
When there are no `[[bin]]` sections, all the binaries in `src/bin` are
automatically picked up. When a section is added, that is no longer the
case, so all the binaries need to be specified explicitly.
2017-06-14 14:16:51 +10:00
topecongiro
dacb1ba050 Update tests 2017-06-14 09:30:04 +09:00
topecongiro
6047179ab0 Update tests 2017-06-14 00:09:17 +09:00
Nick Cameron
18ccd0190e Rebasing 2017-06-13 14:49:47 +12:00
Nick Cameron
6f30d9e7c9 Reformat tests 2017-06-13 14:42:54 +12:00
topecongiro
f084a8af96 Fix excessive indentation in trait where clause when using Rfc style 2017-06-13 10:18:55 +09:00
Nick Cameron
5531a93b57 Merge pull request #1657 from topecongiro/issue-1656
Put match arm's guard on new line if it exceeds max width
2017-06-13 11:58:16 +12:00
Nick Cameron
5d78d1fe00 Merge pull request #1655 from topecongiro/issue-1652
Use correct indent for return type when it goes multi line
2017-06-13 11:57:30 +12:00
Nick Cameron
c07925f498 Merge pull request #1647 from topecongiro/refactor-impl-format
Refactor impl format
2017-06-13 11:55:33 +12:00
Nick Cameron
6ed3077651 Merge pull request #1654 from topecongiro/over-long-lines
Use block indent for args of macro if single line args exceeds max width
2017-06-13 09:41:59 +12:00
topecongiro
57fc39305d Put guard on newline if it exceeds max width 2017-06-12 17:25:38 +09:00
topecongiro
d269189f19 Use correct indent for return type when it goes multi line 2017-06-12 16:23:10 +09:00
topecongiro
9ad499786d Use block indent for args if single line args exceeds max width 2017-06-12 15:58:27 +09:00
Nick Cameron
272b0b6f49 Merge pull request #1649 from topecongiro/issue-1648
Add offset to struct literal fields when `struct_lit_style` is `"Visual"`
2017-06-12 10:39:28 +12:00
topecongiro
e94fcfcd39 Update tests 2017-06-11 23:27:02 +09:00
Seiichi Uchida
f2838595d5 Add visual offset when using struct_lit_style is Visual 2017-06-10 22:20:11 +09:00
topecongiro
bd80077be8 Add format_trait_ref_then_update_result 2017-06-10 21:07:38 +09:00
topecongiro
9eefc6fc8d Share codes when rewriting generics 2017-06-10 18:31:01 +09:00
topecongiro
c92064c30a Force brace on new line if the signature ends with comment 2017-06-09 16:15:31 +09:00
est31
4665943b51 Fix the pub-restricted tests 2017-06-06 07:32:07 +02:00
Nick Cameron
2dc1de9307 Update a test 2017-06-06 07:32:06 +02:00
topecongiro
27da80324c Implement catch 2017-06-06 07:32:06 +02:00
Nick Cameron
8ac9245df4 Merge pull request #1634 from topecongiro/impl-rewrite-attribute
Implement Rewrite trait for syntax::ast::Attribute
2017-06-06 17:11:10 +12:00
topecongiro
7be703a637 Implement Rewrite trait for syntax::ast::Attribute 2017-06-06 13:55:34 +09:00
Nick Cameron
6a9d7dab0d Merge pull request #1637 from est31/master
Add config options for spaces around the colon in struct literal fields
2017-06-06 16:20:16 +12:00
Nick Cameron
130aa70e3a Merge pull request #1621 from topecongiro/combining
Combine more expressions
2017-06-06 14:52:48 +12:00
est31
aa4cd311bb Add config options for spaces around the colon in struct literal fields
In Rust, colons are used for three purposes:

* Type annotations, including type ascription
* Trait bounds
* Struct literal fields

This commit adds options for the last missing of the three purposes,
struct literal fields.
2017-06-06 03:50:58 +02:00
topecongiro
41b7cc6a73 Set combine_control_expr to false by default and true in rfc-rustfmt 2017-06-05 15:31:44 +09:00
Nick Cameron
d04ab9e5ba Merge pull request #1630 from topecongiro/issue-1115
Allow comments after attributes on enum fields
2017-06-05 11:41:52 +12:00
Nick Cameron
14a1ea8193 Merge pull request #1629 from topecongiro/issue-982
Use recover_comment_removed in rewrite_static
2017-06-05 11:37:21 +12:00
topecongiro
d7de5b7656 Allow comments after attributes on enum fields 2017-06-04 23:27:21 +09:00
topecongiro
62d200d9cf Update tests 2017-06-04 19:35:29 +09:00
topecongiro
d54634bd7c Use recover_comment_removed in rewrite_static 2017-06-04 18:44:08 +09:00
Nick Cameron
3e25e628a1 Merge pull request #1619 from topecongiro/config/format_if_else_cond_comment
Add format_if_else_cond_comment config option
2017-06-04 15:26:26 +12:00
Nick Cameron
6f1cb950d6 Merge pull request #1628 from topecongiro/issue-1113
Preserve the layout of comment after return type
2017-06-04 11:40:37 +12:00
Nick Cameron
3090086000 Merge pull request #1627 from topecongiro/issue-1624
Refactor vertical layout of function definition with options
2017-06-04 11:34:25 +12:00
topecongiro
15e936bfc7 Preserve the layout of comment after return type 2017-06-04 06:59:55 +09:00
Seiichi Uchida
dd13761f85 Organize vertical layout of function definition 2017-06-03 23:18:39 +09:00
Seiichi Uchida
d21792a730 Put opening paren next to multi line generic 2017-06-03 23:16:29 +09:00
Seiichi Uchida
08b5375776 Forbid trailing comma at the end of args of variadic functions 2017-06-03 15:03:08 +09:00
topecongiro
aadd3e11f4 Unindent comment on top of else 2017-06-02 11:58:58 +09:00
Nick Cameron
cdc3f9321c Rename the Style::Default option to Legacy 2017-06-02 11:44:38 +12:00
Nick Cameron
0480f7e105 Merge pull request #1620 from topecongiro/rfc-if
Use correct line budget when using Rfc control style
2017-06-02 11:36:16 +12:00
topecongiro
fbd4b87329 Use correct one line budget when using Rfc control style 2017-06-01 19:59:50 +09:00
Seiichi Uchida
789abf063d Use block indent style when visual indent failed 2017-06-01 12:08:20 +09:00
Nick Cameron
4d0ee80e61 Merge pull request #1609 from topecongiro/nested-tuple
Put a space between nested tuple field
2017-05-31 11:58:03 +12:00
topecongiro
b63e3aaa83 Put a space between nested tuple field 2017-05-30 20:40:05 +09:00
Nick Cameron
cfa3d59974 Merge pull request #1608 from topecongiro/issue-1598
Fix index bug in write_snippet_inner
2017-05-30 15:28:44 +12:00
topecongiro
33a7357543 Fix index bug in write_snippet_inner 2017-05-30 10:53:48 +09:00
topecongiro
924a9b5cb6 Allow longer custom comment 2017-05-30 08:46:25 +09:00
Nick Cameron
b79094262f Merge pull request #1604 from topecongiro/comment-group
Format comments with different opening in different manner
2017-05-30 08:53:22 +12:00
topecongiro
bcebe9e7de Use different style when rewriting comment with different opener 2017-05-29 11:28:48 +09:00
Nick Cameron
9b79cb5c22 Merge pull request #1602 from topecongiro/attributes-on-expressions
Allow attributes on expressions
2017-05-28 18:34:50 +12:00
topecongiro
72c04facd2 Add tests for issues which can be closed on the current master
This PR adds tests for #325, #1092,  #1214, #1278, #1329 and #1427.
2017-05-28 13:24:05 +09:00
topecongiro
99c2eab5ac Allow attributes on expressions 2017-05-28 11:44:41 +09:00
Seiichi Uchida
4402412b78 Allow attributes in generics of impl 2017-05-27 23:59:29 +09:00
Nick Cameron
8ac3fc36cc Merge pull request #1597 from topecongiro/comments-after-attributes
Allow comments after attributes of struct fields
2017-05-27 13:47:42 +12:00
Nick Cameron
aad250e20e Merge pull request #1596 from topecongiro/issue-1595
Add a trailing comma if the last arg ends with comment
2017-05-27 13:38:14 +12:00
Nick Cameron
2dc4298b71 Merge pull request #1593 from topecongiro/issue-1439
Allow comments after where clause
2017-05-27 13:34:50 +12:00
Nick Cameron
4e5df80c03 Merge pull request #1588 from topecongiro/nesting-macro
Allow macro to be nested like function call
2017-05-27 13:28:47 +12:00
topecongiro
b6c503ac32 Allow comments after attributes of struct fields 2017-05-27 09:36:25 +09:00
topecongiro
67e8a690ff Add a trailing comma if the last arg ends with comment 2017-05-27 07:33:06 +09:00
topecongiro
dab14b4485 Allow comments after where clause 2017-05-27 02:07:58 +09:00
topecongiro
fcffe854b8 Allow default associated types 2017-05-26 17:17:12 +09:00
topecongiro
554605d47c Format source codes and add tests 2017-05-26 16:40:19 +09:00
topecongiro
0869bca85a Put closing paren on the next line when the last arg contains comment 2017-05-26 13:15:10 +09:00
Nick Cameron
3d135ebba4 Merge pull request #1586 from topecongiro/minor
Fix minor bugs
2017-05-26 08:43:52 +12:00
Seiichi Uchida
92270ba191 Add offset when rewriting index 2017-05-25 23:01:41 +09:00
Seiichi Uchida
189b6bd7bb Update tests 2017-05-25 22:55:33 +09:00
topecongiro
986abc24b4 Add a test for #1380 2017-05-25 16:30:45 +09:00
topecongiro
86856491bc Format source codes 2017-05-25 16:08:08 +09:00
topecongiro
2580d7a310 Add chain_split_single_child option 2017-05-25 16:07:56 +09:00
topecongiro
c69608a7e0 Allow the last elem in chain to overflow 2017-05-25 15:50:46 +09:00
topecongiro
635fdc662a Format source codes 2017-05-25 15:50:46 +09:00
topecongiro
c8ad521c9f Decide whether args fit in a single line inside rewrite_call_args 2017-05-25 06:10:00 +09:00
Nick Cameron
93c556c6ba Merge pull request #1578 from topecongiro/poor/macro
Use original code snippet for macro which contains invalid syntax
2017-05-24 11:43:10 +12:00
topecongiro
e3eec44690 Return original snippet when macro contains invalid syntax 2017-05-24 07:24:31 +09:00
topecongiro
04bb5d8929 Format source codes 2017-05-24 00:07:02 +09:00
topecongiro
ec33121aaf Format source codes 2017-05-23 22:13:29 +09:00
topecongiro
f83c22f24f Add trailing comma to a single arg in multiline 2017-05-23 13:26:59 +09:00
topecongiro
b4cd9584b3 Implement combining for tuple and block 2017-05-23 12:51:32 +09:00
topecongiro
2c15204f0c Update tests 2017-05-23 12:51:13 +09:00
topecongiro
dc8d3aa23a Update tests 2017-05-23 11:39:31 +09:00
topecongiro
13af774e55 Fix weird indentaion in chain 2017-05-23 11:37:12 +09:00
topecongiro
d16a0a399e Implement 'vec![expr; expr]' 2017-05-23 11:32:09 +09:00
Michael Killough
bce1f309b7 Merge branch 'master' of https://github.com/rust-lang-nursery/rustfmt into config 2017-05-19 16:10:27 +07:00
Ben Boeckel
8ca699ce26 config: fix suffices -> suffixes typo
Fixes #1477.
2017-05-18 08:03:47 -04:00
Seiichi Uchida
c0fae6a82a Merge pull request #1562 from flier/reorder_imports_in_group
reorder imports in group
2017-05-18 17:53:23 +09:00
Michael Killough
c3c2e823cb Merge branch 'master' of https://github.com/rust-lang-nursery/rustfmt into config 2017-05-18 13:05:19 +07:00
Flier Lu
1077a100a1 reorder imports in group 2017-05-18 13:26:34 +08:00
Michael Killough
222bac1397 Provide config.set().item(value) API.
This API isn't fantastic, but it's the best I can come up with without
something like `concat_idents!()`. There are relatively few places where
config is set, to hopefully the ugliness isn't disastrous.

Change previous occurences of `config.item = value` to this new API,
rather than using `config.override_value()`. Undo the changes to
`override_value()`, as it's no longer important to propogate the error
to the caller. Add a test for the new interface.
2017-05-18 11:42:32 +07:00
topecongiro
cfff3bd91e Use multiline when signature does not fit single line 2017-05-17 16:31:09 +09:00
Nick Cameron
6a70e9c22c Merge pull request #1559 from topecongiro/poor/chain
Allow the last element in chain to go multiline
2017-05-17 17:43:42 +12:00
topecongiro
d7b6f1199f Format source codes 2017-05-16 23:24:38 +09:00
Michael Killough
dcd3c0ed2e Add test for issue #1366.
As the comments in the issue state: it appears to work now, so this test
should just stop any regressions.

The second example in the issue description will format to the first,
which is then a fixed-point.
2017-05-16 16:17:46 +07:00
Michael Killough
c0bdbfa531 Switch to accessing config items via method.
Preparation for #865, which proposes adding a flag which outputs which
config options are used during formatting.

This PR should not make any difference to functionality. A lot of this
was search-and-replace.

Some areas worthy of review/discussion:

 - The method for each config item returns a clone of the underlying
   value. We can't simply return an immutable reference, as lots of
   places in the code expect to be able to pass the returned value as
   `bool` (not `&bool). It would be nice if the `bool` items could
   return a copy, but the more complex types a borrowed reference... but
   unfortunately, I couldn't get the macro to do this.
 - A few places (mostly tests and `src/bin/rustfmt.rs`) were overriding
   config items by modifying the fields of the `Config` struct directly.
   They now use the existing `override_value()` method, which has been
   modified to return a `Result` for use by `src/bin/rustfmt.rs`. This
   benefits of this are that the complex `file_lines` and `write_mode`
   strings are now parsed in one place (`Config.override_value`) instead
   of multiple. The disadvantages are that it moves the compile-time
   checks for config names to become run-time checks.
2017-05-16 15:47:09 +07:00
Seiichi Uchida
79ba34c607 Use offset_left for rewrite_unary_prefix 2017-05-15 22:55:01 +09:00
Nick Cameron
d1682b3473 Merge pull request #1510 from fintelia/better-filelines
Better file_lines
2017-05-15 09:19:18 +12:00
Nick Cameron
0ebd5775d7 Merge pull request #1550 from topecongiro/issue-1547
Prevent rewriting closure block to expr inside macro
2017-05-15 08:46:14 +12:00
Jonathan Behrens
4d2f6a29a7
Add and improve tests of file_lines 2017-05-13 13:45:35 -04:00
Seiichi Uchida
7ec78711f2 Prevent rewriting closure block to expr inside macro 2017-05-13 18:32:25 +09:00
Seiichi Uchida
d0a094eefb Merge pull request #1546 from topecongiro/bug/range-full
Add a missing trailing comma before elipses
2017-05-13 17:40:47 +09:00
topecongiro
4aa64674c9 Add a missing trailing comma before elipses 2017-05-13 07:23:34 +09:00
Seiichi Uchida
56515dd4d6 Merge pull request #1543 from topecongiro/field-attr
Support struct_field_attributes
2017-05-12 20:08:36 +09:00
topecongiro
744fa427e2 Support struct_field_attributes 2017-05-12 17:58:38 +09:00
topecongiro
384ce46eef Use vertical layout when args len is larger than fn_call_width 2017-05-12 16:30:26 +09:00
topecongiro
ba1a7b9e7f Try multi-line only when fn_call_style is Block and rewriting function call 2017-05-12 10:33:05 +09:00
Nick Cameron
1eec103516 Merge pull request #1523 from topecongiro/poor-formatting/fn_call_style
Use multiline when args exceeds max_width in fn_call_style = "block"
2017-05-10 08:27:24 +12:00
topecongiro
30a8050559 Use multiline when args exceeds max_width in fn_call_style = "block" 2017-05-10 00:27:57 +09:00
topecongiro
9d96c33d59 Inherit alignment to last else 2017-05-09 17:33:45 +09:00
Nick Cameron
35e1ca73fc Merge pull request #1519 from topecongiro/poor-formatting/if-else
Remove visual_indent when rewriting else block
2017-05-09 15:21:29 +12:00
topecongiro
0248e9869d Apply closure exception to match in args 2017-05-09 08:28:05 +09:00
topecongiro
f36411c339 Remove visual_indent when rewriting else block 2017-05-09 08:11:05 +09:00
topecongiro
d062d79fb5 Use block indent when visual indent failed 2017-05-08 08:07:18 +09:00
Nick Cameron
459b4449a6 Merge pull request #1442 from topecongiro/poor-formatting/trailing-comma
Remove comma from function definition with a single argument
2017-05-08 10:45:03 +12:00
topecongiro
2ee8e730a6 Add fallback path 2017-05-07 13:13:44 +09:00
Nick Cameron
75a13868da Block format control flow discriminant expressions and binops
Fixes #1450

Adds control_style option
2017-05-05 14:37:13 +12:00
topecongiro
ca0225730f Update tests 2017-05-05 10:22:20 +09:00
topecongiro
e7c6d34854 Use SeperatorTactic::Never for a single argument 2017-05-04 14:47:50 +09:00
topecongiro
b48f4e03b3 Add tests for issues which can be closed on master 2017-05-04 14:32:13 +09:00
Nick Cameron
8579c1db0e Merge pull request #1495 from topecongiro/poor-formatting/closure
Fix weird indentation inside closures
2017-05-04 17:15:58 +12:00
Sheng Hau
51815effbe Format macros in trait item position 2017-05-04 00:10:03 +08:00
topecongiro
6d14ac84a4 Update tests 2017-05-03 11:30:17 +09:00
Nick Cameron
59d66c3ae8 Merge pull request #1453 from topecongiro/bug/empty-struct-with-comment
Handle empty tuple struct def with comment properly
2017-05-02 13:49:15 +12:00
topecongiro
93dae1a34d Add test for empty tuple struct with comment 2017-05-02 10:21:39 +09:00
Seiichi Uchida
19599b9a01 Use block when arm exceeds max_width 2017-05-02 10:15:31 +09:00
Nick Cameron
b4794dbd9f Fixup tests 2017-05-02 11:42:38 +12:00
Nick Cameron
674d15e057 Merge pull request #1481 from regexident/system-error
Improve error message for missing source/target test file
2017-05-02 11:17:48 +12:00
Nick Cameron
5071c41cf8 Merge pull request #1471 from regexident/type_punctuation_density
Made `type_punctuation_density` apply too all `+` in types
2017-05-02 11:17:35 +12:00
Vincent Esche
42dbe482e3 Made type_punctuation_density apply too all + in types 2017-05-02 01:03:46 +02:00
Nick Cameron
4ad17b1efb Merge pull request #1482 from regexident/configs-tests
Add source/target tests for each config option
2017-05-02 11:00:09 +12:00
Nick Cameron
7fb288f0b3 Merge pull request #1487 from topecongiro/issue1470
Use block indent when visual indent exceeds max_width
2017-05-02 10:45:23 +12:00
Nick Cameron
c546f1b396 Merge pull request #1454 from topecongiro/match
Format nested mathces properly.
2017-05-02 10:40:31 +12:00
Vincent Esche
4385b8063d Improve error message for missing source/target test file 2017-05-01 23:34:00 +02:00
Vincent Esche
16b91be3e6 Add source/target tests for each config option 2017-05-01 15:58:04 +02:00
Seiichi Uchida
c7e9bcadaa Use block indent when visual indent exceeds max_width 2017-05-01 18:52:43 +09:00
topecongiro
9befcded8c Add tests for visual indent struct tuple 2017-05-01 15:57:08 +09:00
topecongiro
3d2cd681ae Use 'first_line_width' 2017-05-01 15:36:40 +09:00
Nick Cameron
5d9a35050d Remove where_indent option 2017-05-01 16:05:38 +12:00
Nick Cameron
fba5af2a7d Merge pull request #1469 from topecongiro/bug/chains
Remove a bug when calculating the length of the chain
2017-05-01 15:48:53 +12:00
Nick Cameron
6a19c93f2a Merge pull request #1461 from DarkEld3r/1447-line-length-in-chars
Fix line length calculation (should be in chars, not bytes)
2017-05-01 13:15:28 +12:00
topecongiro
02cf515be6 Format source codes 2017-04-24 16:50:11 +09:00
Stanislav Tkach
b53aeebbcf Fix line length calculation (should be in chars, not bytes) 2017-04-19 17:49:03 +03:00
topecongiro
0614e94d0d Format source codes 2017-04-15 18:42:45 +09:00
Nick Cameron
bdcb8d663e Merge pull request #1438 from topecongiro/poor-formatting/method-chains
Lookup the last element of 'subexpr_list' instead of the first one
2017-04-06 21:26:13 +12:00
Nick Cameron
ee9daade35 Fix a bug with overlong function calls 2017-04-06 21:17:22 +12:00
Nick Cameron
a7183766b9 Test fallout 2017-04-06 13:06:11 +12:00
topecongiro
8d22e85e48 Lookup the last element of 'subexpr_list' instead of the first one
Closes #1217, #1236, #1389 and #1434.
2017-04-06 09:26:25 +09:00
Nick Cameron
b3a4ba570e Merge pull request #1432 from topecongiro/parse-config
Print error and usage when decoding config file failed
2017-04-06 11:30:33 +12:00
Ryan1729
822b266a3d add tests that fail because of comma insertion
Signed-off-by: Ryan1729 <Ryan1729@gmail.com>
2017-04-03 16:15:11 -06:00
topecongiro
6af0968511 Change return type of 'from_toml' from 'Config' to 'Result<Config>'
Closes #1426.
2017-04-03 13:58:46 +09:00
topecongiro
34b90d8716 Check existence of pre comment explicitly
This commit fixes #1428.
2017-03-31 21:57:29 +09:00
Nick Cameron
4f226eb909 Merge pull request #1424 from topecongiro/long-struct
Split long fields in structs
2017-03-31 08:42:40 +13:00
topecongiro
3a1ffa7db7 Split long fields in structs
This commit splits long fields in structs.
Closes #1412.
2017-03-30 13:37:34 +09:00
Fabian Zaiser
6ecc18c7de Omit space before '\n' + comment (fixes #457) 2017-03-28 16:32:12 +02:00
Nick Cameron
5305bc8436 test fallout 2017-03-28 11:25:59 +13:00
Nick Cameron
a079b87e7c Use a char len heuristic rather than item count for chain_one_line_max 2017-03-28 11:12:15 +13:00
Nick Cameron
91bbe0ff8b Test fallout 2017-03-28 11:01:44 +13:00
Nick Cameron
8bca85c4b6 Support block indent for function calls
Uses the `fn_call_style` option.

Fixes #1358
2017-03-28 10:43:46 +13:00
Nick Cameron
f53d5dd90c Merge pull request #1409 from alobb/1408-empty-tuple-enum-decl
Prevent conversion of empty tuples to unit structs
2017-03-27 14:28:41 +13:00
Aaron Lobb
548de69d2d Prevent conversion of empty tuples to unit structs
Fixes #1408
2017-03-26 15:47:48 -07:00
C4K3
abca1deded Add indent_match_arms option (#1404)
Makes it optional whether to indent arms in match expressions. Setting this
to false may be desirable for people wishing to avoid double-indents, in
that if the match arm is a block, the block will cause an extra indentation
level, and if it isn't a block but just a single line, it's still easy to
see the logic at a glance.

This style is preferred in certain other languages with switch statements,
e.g. Linux style C and the most common Java style.
2017-03-26 18:32:29 +13:00
Aaron Lobb
0dd0cc1941 Break use statements into multiple lines (#1407)
This fixes how line lengths for use statements with multiple
items don't extend beyond the maximum line length.

Fixes #1400
2017-03-26 18:21:43 +13:00
Jon Gjengset
f96e56c3a0 Avoid extra comma in vertical single-field struct patterns (#1403)
* Add (failing) test for #1397

* Fix for #1397

Specifically, we end up double-adding a trailing comma for single-member
struct patterns that are arranged vertically. One is added by write_list
(since such structs return true for needs_trailing_separator), and
another is added by the if in the old code.
2017-03-26 18:16:45 +13:00
Nick Cameron
488c0b9546 Test and source fallout 2017-03-22 09:25:26 +13:00
Nick Cameron
4bb31a7231 Block indenting for struct lit patterns
Now follows struct_lit_style (and most other struct_lit_ options).

Required a fair bit of refactoring and bug fixes.

Fixes #1311
2017-03-22 09:25:26 +13:00
Nick Cameron
d4c5d572c8 Unify fn_args_layout and fn_arg_indent
Closes #1390
2017-03-20 11:59:08 +13:00
Nick Cameron
21ff1d43ba Unify a bunch of option types into IndentStyle 2017-03-20 11:46:39 +13:00
Nick Cameron
c986e895bb Remove FnArgLayoutStyle::BlockAlways 2017-03-20 11:35:53 +13:00
Nick Cameron
ce7b0aacd0 Remove BlockIndentStyle::Inherit 2017-03-20 11:23:44 +13:00
Nick Cameron
0cb6f56647 Block formatting for arrays
Fixes #1331
2017-03-20 10:26:19 +13:00
Nick Cameron
0c93e7dacf Merge branch 'master' of github.com:rust-lang-nursery/rustfmt 2017-03-13 11:43:12 +13:00
Nick Cameron
ed10bf9532 Trailing comma for functions with empty bodies 2017-03-13 11:42:41 +13:00
Nick Cameron
4df405a768 Line breaking around generics in tuple structs 2017-03-13 11:25:46 +13:00
C4K3
ab832fa4bb config: Rename ideal_width -> comment_width (#1370)
Since the config option only affects comment widths, and the previous
name has led to some confusion (see #1321, #1152).
2017-03-13 09:07:33 +13:00
Nick Cameron
4b60d94a99 Check we can put the where clause on one line when we think we can
Fixes #1362
2017-03-10 09:45:26 +13:00
Nick Cameron
70085fca84 Try harder to format function sigs
Fixes #1363
2017-03-10 09:26:14 +13:00
Nick Cameron
e3aad6ee83 Be smarter about finding the span for .. in patterns
Fixes #1319
2017-03-09 15:49:58 +13:00
Nick Cameron
d107ca12b8 Use trailing commas if block formatting fn args
Fixes #1330
2017-03-09 14:47:29 +13:00
Nick Cameron
6025492245 Implement where_style Rfc 2017-03-09 14:21:20 +13:00
Nick Cameron
e7489356c6 Format glob imports
Fixes #1356
2017-03-08 10:12:42 +13:00
Nick Cameron
e5638e0cb5 More space for qself paths
Fixes #1349
2017-03-07 14:53:10 +13:00
Nick Cameron
981b031c9f Treat new blocks like existing ones in closures
Fixes #1355
2017-03-07 14:30:01 +13:00
Nick Cameron
b9ab3ef9da Test fallout 2017-03-07 11:28:25 +13:00
Nick Cameron
33b83ae7df Formatting fallout
Also fixes a minor bug when we break a line after `if` and used to leave a trailing space
2017-03-07 09:50:41 +13:00
Nick Cameron
c9ac348759 Fix failing test 2017-03-02 15:03:32 +13:00
Nick Cameron
f2eac0513f Fix trailing comma tests 2017-03-02 14:27:33 +13:00
Nick Cameron
248f2aba56 Merge branch 'master' of github.com:rust-lang-nursery/rustfmt 2017-03-02 14:27:02 +13:00
Marcus Ball
b8da53ad78 Fix wrap_match_arms resulting in a missing comma (#1307)
* Fix match arms missing comma with "wrap_match_arms = false"

* remove assert; use body_suffix for comma

* basic test case for issue 1127
2017-03-01 09:46:10 +13:00
Nick Cameron
eff665c5c4 Merge pull request #1334 from gypsydave5/fix_1255
Fix #1255 - incorrect removal of `default` on associated types
2017-02-27 11:57:58 +13:00
David Wickes
4f91f02ad1 Test for #1255
Default annotation incorrectly removed on associated type.
2017-02-26 22:27:46 +00:00
Igor Gnatenko
3323056893 bump regex to 0.2
Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
2017-02-26 15:09:31 +01:00
Nick Cameron
fbb2370d66 Some tests 2017-02-24 10:43:53 +13:00
Nick Cameron
6a58d91239 Coalesce trailing comma options 2017-02-24 10:31:23 +13:00
Nick Cameron
7ad352239a Fix width bug for long patterns in match arms
Fixes failing test
2017-02-24 07:52:46 +13:00
Nick Cameron
db10a0b9b2 Merge pull request #1325 from C4K3/master
Add error_on_line_overflow option
2017-02-23 14:46:24 +13:00
Nick Cameron
a7612cc773 more fallout 2017-02-23 13:15:48 +13:00
Nick Cameron
ba1202f6b3 test fallout 2017-02-23 13:15:48 +13:00
Sebastian Blunt
235f33b230
Make tests fail if rustfmt encounters an error
Previously tests would not fail if they encountered an error such as
LineOverflow or TrailingWhitespace. Making the tests error out will fix
this mismatch between running rustfmt for real and running the tests.

This also modifies all tests that previously contained errors so that
they no longer contain errors (in almost all of the tests this is
accomplished by setting error_on_line_overflow = false).
2017-02-19 19:57:02 +01:00
sinkuu
fad74c8ac9 Support field-init-shorthand (#1308) 2017-02-13 07:16:11 +13:00
Craig M. Brandenburg
f2c867d067 New disable_all_formatting config option (#1297)
* New `disable_all_formatting` config option

* Resolve code review comments
2017-02-07 17:11:47 +13:00
Trevor Spiteri
6810c762df Handle multiline condition in let if else (fixes #1239) 2017-01-31 23:35:57 +01:00
Nick Cameron
e56ef44a3a Do not format string lits by default 2017-01-27 08:11:59 +13:00
Nick Cameron
1f3100d7bb Make string lit formatting fallible
This allows expressions containing string lits to wrap their content

Fixes #1282
2017-01-27 08:04:52 +13:00
Nick Cameron
2261947f6e Catch attributes before comments
Closes #1280
Closes #1284
2017-01-26 15:10:47 +13:00
Nick Cameron
6572874965 Update to latest Syntex
As a side-effect of the Path changes, we are now a bit more aggressive about normalising paths.
2017-01-20 08:20:49 +13:00
Nick Cameron
49e86a1e65 Handle semicolons in macro statements
Fixes #1279
2017-01-18 10:38:46 +13:00
Nick Cameron
0b1d78bae1 Try hard to format impl signatures
Fixes #1249
2017-01-17 13:08:36 +13:00
Nick Cameron
29e8913695 Fix bug in identifying comments
Fixes 1233
2017-01-17 12:01:10 +13:00
Nick Cameron
0218a41d73 Add a more lightweight method for rewriting comments when we are not normalising
Fixes #652
2017-01-17 10:17:48 +13:00
Nick Cameron
d948485371 Allow empty blocks on one line in more places
In particular if they contain only a single-line comment.

Fixes #493
2017-01-16 16:37:58 +13:00
Nick Cameron
846d7ad387 make rustfmt-normalize_comments false by default 2017-01-16 14:50:27 +13:00
Nick Cameron
5349336192 Refactor if/else formatting
Removes else_if_brace_style from config options. Use control_brace_style instead.
2017-01-11 18:14:41 +13:00
Nick Cameron
9be2971274 Refactor pairs/binops 2017-01-11 12:06:23 +13:00
sinkuu
7e2fcc27e1 Fix #1258 (#1266)
* Fix #1258

* Add test
2017-01-09 16:11:12 +13:00
Stepan Koltsov
ad46f9af95 Do not ignore space_before_bound in where clause (#1267) 2017-01-09 15:58:06 +13:00
Nick Cameron
21c085261b Remove self from use foo::bar::self;
Also adds the `normalize_imports` config option.

Fixes #1252
2017-01-06 17:02:56 +13:00
Nick Cameron
6ecf5b8e84 If a string goes over-width, give up formatting it
Logic here is that the original might be better and at best we'll only make it a different kind of bad.

Fixes #1237
2017-01-06 16:35:28 +13:00
Nick Cameron
32cb839855 Macros in types are possible
Fixes #1234
2017-01-06 16:06:09 +13:00
sinkuu
1358f1ac80 Fix #1259 (#1263)
* Use `Indent::block_indent` instead of adding `config.tab_spaces`

* Fix #1259 impl block closing brace placement
2017-01-04 09:20:02 +13:00
Erick Tryzelaar
e67ffcfb21 Update to the latest syntex module
One notable feature is this this adds support for the experimental
`let x = loop { ... break $expr; }` syntax. This also includes a
test for formatting all the break and continue variations.
2016-12-23 11:20:07 -08:00
Luke Clifton
56469a8745 Don't drop opening brace on long line matches. (#1228)
* Don't drop opening brace on long line matches.

Fixes #1225

* Added a test case for long match arms with braces on newline.
2016-11-28 13:47:38 +13:00
Luke Clifton
6bf1382927 Indent open brace for impl when nested. (#1227)
* Indent open brace for impl when nested.

Fixes #1226

* Added test case for indented impl with brace on newline
2016-11-28 13:47:07 +13:00
Nick Cameron
d3eba76e4d update Serde, etc.
Lots of changes to how closures work
2016-11-21 11:02:18 +13:00
Bekh-Ivanov Aleksey
935286755c Stripping trailing commas and spaces from vec! elements (#1219)
* Stripping trailing commas and spaces from `vec!` elements

* Stripping trailing commas and spaces ONLY from `vec!` elements

* Added comment
2016-11-14 17:42:15 +13:00
Martin Wohli
6c32c02952 fix #1216: panic on comment starting with //* 2016-11-13 09:36:43 +01:00
Marcus Klaas
5fc9fa3770 Condense suffix strings of simple wildcards in patterns 2016-11-07 21:38:20 +01:00
Fraser Hutchison
aef665aa21 Fixes a few doc typos. 2016-11-03 04:22:16 +00:00
Fraser Hutchison
f933d31115 Fixes #1184 where reordering import items could cause a panic.
Also extends an existing test to avoid regression.
2016-11-03 04:21:47 +00:00
Nick Cameron
8494d5f89c Merge pull request #1200 from efyang/strayspace
Remove extra whitespace after macro calls
2016-10-28 09:14:37 +13:00
Edward Yang
5ecdd072d6 Remove extra whitespace after macro calls 2016-10-27 02:40:08 -05:00
Edward Yang
1c83c76015 Stop extra newlines from being added after block comments (#1185) 2016-10-25 08:45:15 +13:00
Mikko Rantanen
4b1c669037 Add spaces_within_square_brackets config option. (#1191)
* Add spaces_within_square_brackets config option.

Enabling the config enforces spaces within various array/slice brackets.

* Fixed budget-calculations for [] spacing
2016-10-18 09:09:49 +13:00
Nick Cameron
23f01eddac Merge pull request #1188 from Rantanen/master
Add support for spaces_within_angle_brackets
2016-10-14 11:38:39 +13:00
Josh Chase
903e30b503 Quick fix for "impl Trait"
* Remove "TODO" conversion
* Add a couple of simple test cases

Fix courtesy of @signaraiona
2016-10-13 12:30:16 -07:00
Mikko Rantanen
d68d43c0a5 Added test for for< 'a > 2016-10-13 22:28:58 +03:00
Mikko Rantanen
636a828772 Add support for spaces_within_angle_brackets
Enabling the config adds spaces within type arguments: <>
2016-10-13 19:28:18 +03:00
Mikko Rantanen
7be202fa3c Add support for spaces_within_parens config (#1187)
* Add support for spaces_within_parens config

* Changes based on review comments
2016-10-13 14:34:08 +13:00
Philip Craig
c4a7a7108e Preserve macro formatting if we can't rewrite it 2016-10-03 14:14:56 +10:00
Florian Gilcher
b8f7ec3dcc Add custom comments (#1179)
* Add custom comments

This allows users to use custom comments such as

```
//@ this is a custom comment
//@ with multiple lines
```

without having them destroyed by rustfmt.

* Fix issues with empty lines

* Check non-whitespace right after custom comments
2016-09-30 08:34:46 +13:00
sinkuu
2dfa96bc9a Fix #775
rewrite_tuple referring config.max_width where given width should be
used
2016-09-20 14:06:28 +09:00
Nick Cameron
3ff7e83457 Merge pull request #1156 from sinkuu/break_if_let
Prefer line break at `=`/`in`
2016-09-19 18:51:21 +12:00
Nick Cameron
e1d7b8ea01 Merge pull request #1162 from sinkuu/fix1040
Fix #1040
2016-09-19 14:35:42 +12:00
Nick Cameron
fb8a1903cf Merge pull request #1161 from sinkuu/fix550
Fix #550: `if` nested in tuple is indented oddly
2016-09-19 08:49:38 +12:00
sinkuu
b6bffa6596 Prevent line breaking at = or in after trivial patterns 2016-09-17 13:03:14 +09:00
sinkuu
079f39d07f Fix #550: if nested in tuple is indented oddly 2016-09-17 10:46:20 +09:00
est31
c6243c950e Improve comment rewriting with normalize_comments == false
Only change multiline comments of the form

```rust
/*
 * Text
 */
```

while not affecting comments of the form

```rust
/*
Text
*/
```

when normalize_comments is off. In the first case,
we have a known character we can align against, while
we don't have one in the second case.

Before, we have converted the second form into the first,
but this is against the spirit of normalize_comments being
turned off.

Fixes #956
2016-09-17 03:41:11 +02:00
est31
efd3e5c091 Add three new options for spaces 2016-09-17 02:22:13 +02:00
Nick Cameron
4418fab4f2 Update to latest Syntex
+ Cargo update
+ 0.6.2 release
2016-09-16 15:28:02 +12:00
sinkuu
b446e31739 Fix #1040 2016-09-10 13:08:32 +09:00
sinkuu
bf078566d7 Fix #1021: Handle .. in tuple / tuple struct patterns 2016-09-09 19:56:34 +09:00
dawirstejeck
a5d7073bf5 Split impl at 'for' if a line break is needed (#1148)
* Split impl at 'for' if a line break is needed

* Fix formatting

* Improve comments

* Skip second try if there is no 'for'

* Restore intentional trailing whitespace

* Change test source to be incorrectly formatted

* Restore more missing trailing whitespace

* Remove too much whitespace...

Really should learn how to use git revert.
2016-09-06 17:11:56 +12:00
Nick Cameron
bce26d51bd Merge pull request #1134 from sinkuu/issue977
Fix #977
2016-08-29 07:07:48 +12:00
sinkuu
130c593544 Fix #977 2016-08-28 16:40:03 +09:00
Stuart Dootson
61042e6e4d Fix issue 1124 - detect start of output rather than start of input file when writing output source file (#1133)
* Change required to prevent a trailing space at the end of a separate module being propagated

* Detect the start of the output file rather than the start of the input file when deciding whether to output preceding snippets - this stops unnecessary whitespace and blank lines from being inserted when spans and statements are output in an order other than that from the input file.

* Add code to prevent space from being added with the prefix snippet if a) the snippet is entirely horizontal whitespace, or b) the snippet contains whitespace  followed by a newline. This prevents trailing spaces at the end of a line from being added.

* Tests for this issue

* Tidy up `match` statements

* Add test with blank lines between `use` statements
2016-08-25 08:32:04 +12:00
Nick Cameron
e1759ae295 Merge pull request #1123 from juicejitsu/807
Don't emit filename in diff mode, add filename to diff metadata
2016-08-10 21:52:46 +12:00
Stuart Dootson
4029b0e704 Fix #1120 - rework how the use list prefix is determined. (#1121)
* Fix #1120 - rework how the use list prefix is determined.

* Added test commentary & another test case
2016-08-10 18:13:27 +12:00
juicejitsu
a0de408198 Don't emit filename in diff mode, add filename to diff metadata 2016-08-09 18:21:04 -07:00
Stuart Dootson
5dda986a2c Add commentary 2016-08-09 22:11:27 +02:00
Stuart Dootson
4055e272da Reformat the source to actually pass the tests! 2016-08-09 22:10:48 +02:00
Stuart Dootson
cb0b7108ca Add test case for issue #1111, by adding another route by which a test file's config can be located 2016-08-08 23:13:45 +02:00