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
Nathan Ridge
899169a1d2
Apply space_before_type_annotation to struct ctors ( #1109 )
2016-08-05 01:30:53 -04:00
Nick Cameron
fe69e975e3
Merge pull request #1110 from HighCommander4/issue1109a
...
Add two new whitespace options (#1109 )
2016-08-04 10:58:32 +12:00
Nathan Ridge
4b999a99c0
Add two new whitespace options ( #1109 )
...
* An option to leave a space before the colon in a type annotation
* An option to leave a space before the colon in a trait or lifetime bound
2016-08-03 01:11:39 -04:00
Julien Blanchard
b4e49ddbf5
Fix imports with absolute paths
2016-08-01 10:10:04 +02:00
dawirstejeck
22de7ced28
Fix overlong function signature ( #1089 )
...
* Fix issue-1049
* Add testcase suggested by pepyakin
* Fix last commit
* Handle special case
* Remove debugging println
* Fix grammar in comment
* Change word in comment
* Add test for long func without ret type
* Add one more test
2016-08-01 16:25:00 +12:00
dawirstejeck
e76cb6a907
Fix overlong impl ( #1091 )
...
* Fix issue-1048
* Take possible where-clause into account
* Move test to existing test set
* Fix wrong variable name
2016-07-26 17:34:11 +12:00
Stuart Dootson
78b52ec3e1
Add use
declaration re-ordering ( #1104 )
...
* Add config options for combinations of lines and items
* Reordering of import lines implemented.
* Changed nested matches to tuple pattern matching
* Added ordering of path list items to the ordering of use declarations
* Move `format_imports` and `format_import` methods to `imports.rs`
* Add comment to explain how `use` declarations are split off while walking through a module
* Change `ImportReordering` config option to separate boolean options
2016-07-26 17:20:01 +12:00
sinkuu
0dc3fc7a2c
Fix formatting empty block comments (/**/
)
...
issue #1086
2016-07-09 22:56:50 +09:00
Nick Cameron
664bf3eae7
Merge pull request #1054 from sanxiyn/loop-width
...
Fix width computation in Loop::rewrite
2016-06-14 08:32:02 +02:00
Seo Sanghyeon
921b563847
Fix width computation in Loop::rewrite
2016-06-12 20:37:15 +09:00
Kamal Marhubi
5361f61110
Include git commit and worktree status in version output ( #1060 )
...
This will help in debugging issues as rustfmt gets more users.
If the working tree is clean, output looks like
$ target/debug/rustfmt -V
0.5.0 (9f5ed3b)
If the working tree is dirty, output looks like
$ target/debug/rustfmt -V
0.5.0 (9f5ed3b worktree dirty)
If git is unavailable, output looks like
$ target/debug/rustfmt -V
0.5.0 (git commit unavailable)
To avoid rebuilds on changing tests, the build script will only rerun if
files under src/ are changed. This means the actual git status may show
changed files and this would not show up in the version. This should not
be an issue as files not in src/ should not affect the build output.
2016-06-12 10:38:03 +02:00
Marcus Klaas
88fdf9a6e3
Fix integer underflow in extra_offset
2016-06-10 16:17:10 +02:00
Nick Cameron
3d4bc8c84a
Merge pull request #1033 from marcusklaas/assignment-break
...
Add test for general assignment breaks
2016-06-05 18:06:08 +01:00
Marcus Klaas
05188deadc
Add test for general assignment breaks
2016-06-04 11:00:01 +02:00
Marcus Klaas
b3488c6186
Fix constraints on pattern formatting of else arms
2016-06-03 23:18:19 +02:00
Nick Cameron
0087306761
Merge pull request #1016 from rust-lang-nursery/try-double-indent
...
Treat chains with just expr? specially.
2016-06-01 12:28:36 +01:00
lqd
b6263735b1
Add support for the default
keyword ( #1025 )
...
Adds support for Defaultness on impl methods.
Fixes #945
2016-05-31 19:48:49 +02:00
Kamal Marhubi
9fa5a91fc5
visitor: Handle specified line ranges in visit_stmt
...
This commit adds a very rough implementation of handling the specified
line ranges in `config.file_lines_map` for statements. It reformats a
statement if its span is fully contained in the set of lines specified
for the file.
The implementation here is intended as a proof of concept, and
demonstration that the machinery added in the preceding commits is
functional. A final implementation would likely hook in via the
`Rewrite` trait.
Refs #434
2016-05-31 01:33:11 +02:00
Marcus Klaas
98c0570a28
Format non-statement if-else expressions on a single line
2016-05-29 17:58:38 +02:00
Nick Cameron
bbb6038b92
Treat chains with just expr? specially.
...
Fixes #1004
2016-05-29 09:32:48 +01:00
Kamal Marhubi
66cac1f3e9
Handle pub(restricted) ( #1013 )
...
* Handle pub(restricted)
This commit properly handles pub(restricted) as introduced in RFC 1422
[0]. The syntax support was added in #971 , but they were not correctly
formatted.
[0] https://github.com/rust-lang/rfcs/blob/master/text/1422-pub-restricted.md
Fixes #970
* Drop #[inline] attribute on format_visibility
* Make newly non-failing functions return String
The change to `format_visibiilty` means that `format_header` and
`format_unit_struct` can no longer fail. Their return type is updated to
reflect that.
2016-05-28 00:58:25 +02:00
Nick Cameron
6e01fac285
Merge pull request #1008 from rust-lang-nursery/hrtb
...
Don't ignore universal quantification in function types
2016-05-28 10:08:00 +12:00
Nick Cameron
0fae34dfa1
Don't ignore universal quantification in function types
...
Fixes #1006
2016-05-27 15:09:04 -07:00
Nick Cameron
d633e831ba
Merge pull request #1009 from rust-lang-nursery/fn-args-1
...
Fix off by 2 error in function sigs
2016-05-28 10:04:04 +12:00
Nick Cameron
882ef8cc82
Fix off by 2 error in function sigs
...
Fixes #1000
This is a little conservative in some cases, but better than being wrong in others.
2016-05-27 15:05:15 -07:00
Nick Cameron
d6bcfceb7e
Don't put a newline before ?
when it is the second sub-expression in a chain ( #1012 )
...
Fixes #1003
2016-05-27 10:33:19 +02:00
Nick Cameron
775de8a62b
Optionally put short struct variants on one line ( #997 )
...
Closes #418
2016-05-18 22:38:49 +02:00
Nick Cameron
9589cac62d
Format inline attributes on out-of-line modules ( #996 )
...
Fixes #838
2016-05-18 22:36:59 +02:00
Srinivas Reddy Thatiparthy
952a6beb51
change normalise spelling to American version - normalize as American english is more common across programming community
2016-05-15 22:24:46 +05:30
Nick Cameron
9b05461666
Write each file as it is formatted ( #991 )
...
The old behaviour stored everything in memory until we were finished. Now we write as soon as we can.
This gives better behaviour when formatting large programs, since there is some progress indication. It also opens the door to optimising memory use by not storing everything in memory unless it is required (which it still might be). That is left as future work though.
2016-05-15 11:41:05 +02:00
Marcus Klaas
eae2921e14
Bootstrap it. Hard.
2016-05-12 21:50:43 +02:00
Marcus Klaas
cd158cecc8
Add try macro to try shorthand conversion tests
2016-05-12 21:15:06 +02:00
Marcus Klaas
ee7b5805fc
Format try shorthand
2016-05-09 20:07:59 +02:00
Aaron Gallagher
96d59366fc
Don't misplace the :: on associated items.
...
The rewritten location of the :: on global paths for qpaths was wrong.
2016-05-02 17:11:22 -07:00
Nick Cameron
c696dcf8da
Handle attributes on modules ( #968 )
...
* Handle attributes (including doc comments) on inline modules
Closes #22
Closes #684
* Tweak the rules for changing indentation in comments (to do it less often).
2016-05-02 10:54:25 +02:00
Nick Cameron
de2b8d98ea
Merge pull request #960 from rust-lang-nursery/big-closures
...
Block indent large closures and field/method chains
2016-04-28 09:49:08 +12:00
Nick Cameron
fcd2021583
Add visual indent tests for chains
2016-04-28 08:08:54 +12:00
Nick Cameron
9188ec0f7f
Bail out on recovered errors. ( #965 )
...
Closes #915
Closes #930
Closes #931
2016-04-27 21:08:44 +02:00
Nick Cameron
a9c3108c9c
Change defaults and update tests and source
...
New defaults are `Tabbed` for `chain_indent` and `chain_base_indent`, and `5` for `closure_block_indent_threshold`.
2016-04-22 19:18:48 +12:00
Nick Cameron
9761cf71d8
Tests
2016-04-22 18:53:39 +12:00
mrBliss
b0755581ca
Format visibility of associated consts ( #953 )
...
Fixes #951 .
2016-04-19 20:19:14 +02:00
Marcus Klaas
f364a7ec43
Add option to force explicit extern ABI's
2016-04-18 18:39:40 +02:00
Thia Wyrod
d773cc5327
Added loop/match brace style control option
...
This adds Allman style loop/match braces as an alternative to the current
default style.
2016-04-17 14:52:04 -06:00
Thia Wyrod
5bd6036218
Added option to configure if/else brace style
2016-04-17 14:48:51 -06:00
Marcus Klaas
63f0fc9641
Fix off-by-one error in pattern formatting
2016-04-16 22:42:52 +02:00
Nick Cameron
41e037da7e
Merge pull request #941 from marcusklaas/type-ascription
...
Format type ascription
2016-04-16 16:42:56 +12:00
Marcus Klaas
d98e22c971
Check length of break and continue expressions
2016-04-15 18:11:29 +02:00
Marcus Klaas
45a83d18cc
Format type ascription
2016-04-15 17:56:43 +02:00
Nick Cameron
7a758ea20a
Fix closures again ( #937 )
...
* Fix closures again
Closes #934
Oh god, the rules for parsing closures are even more messed up than I thought - whether or not there is an inner block or depends not only on if there are braces, but also if there is a return type for the closure (!) and if there are statements in the block.
* Fix overflow
2016-04-15 10:52:08 +02:00
Nick Cameron
e1d33df302
Merge pull request #923 from matklad/proper-exit-code
...
return non-zero exit code if there are errors
2016-04-15 13:50:10 +12:00
Aleksey Kladov
77350e49b5
return non-zero exit code if there were errors
2016-04-15 02:51:50 +03:00
Nick Cameron
7bda8659ec
Merge pull request #935 from marcusklaas/issue-770
...
Add regression test for issue 770
2016-04-15 08:13:26 +12:00
Marcus Klaas de Vries
320df84e96
Fix brace indentation for impl items ( #927 )
2016-04-14 20:42:38 +02:00
Marcus Klaas
ba9d64aba5
Add regression test for issue 770
2016-04-14 20:41:23 +02:00
Nick Cameron
c7780fdfd8
Be careful about where we change braces in closures
...
And some general refactoring of closure code.
Fixes #863
2016-04-14 09:05:42 +12:00
Nick Cameron
09440b55ef
Merge pull request #921 from matklad/more-unification
...
unify format_string and format_file
2016-04-12 11:05:06 +12:00
Nick Cameron
eadc878de0
Handle variadic function types
...
Closes #842
2016-04-12 10:47:35 +12:00
Nick Cameron
2f5f0a454a
Merge pull request #912 from rust-lang-nursery/pat-simple-mixed
...
Change the logic around breaking multiple patterns in match arms
2016-04-12 10:47:08 +12:00
Nick Cameron
ce97bc08be
Merge pull request #896 from erikjohnston/fn_arg_one_line
...
Add fn_arg_one_line option
2016-04-12 10:44:01 +12:00
Nick Cameron
5dc3283e49
Reviewer comments - mostly fix rewrite_guard
2016-04-12 10:30:57 +12:00
Nick Cameron
afc8be1d79
Change the logic around breaking multiple patterns in match arms
...
Refactor to use the list code, don't preserve original stacking-ness, base vertical vs mixed formatting on complexity of the patterns.
Closes #386
2016-04-12 09:23:37 +12:00
Aleksey Kladov
dc1fc4be0f
unify format_string and format_file
2016-04-11 22:56:54 +03:00
Nick Cameron
492b26cf04
Empty structs and struct lits ( #920 )
...
* Handle empty struct lits
Closes #835
* Don't crash on empty struct defs.
Not a great fix, but better than crashing.
2016-04-11 21:05:54 +02:00
Nick Cameron
7ac354fd09
Don't be so aggressie about line-breaking strings ( #911 )
...
We will no longer break in the middle of words, only at whitespace or punctuation.
This means we sometimes over-run, but that seems better than some of the bad splits we see.
Closes #369
2016-04-11 20:45:47 +02:00
Nick Cameron
19849fea15
Update the world
2016-04-08 15:51:06 +12:00
Erik Johnston
4c9dd747bf
Fix long generic indent
2016-04-07 20:29:05 +01:00
Erik Johnston
4edc6f1a4e
Add variant to fn_args_layout
2016-04-07 20:01:16 +01:00
Erik Johnston
615848339b
Merge branch 'master' of github.com:nrc/rustfmt into fn_arg_one_line
2016-04-07 19:53:19 +01:00
Aleksey Kladov
07cf62fc42
simplify tests
...
* change layout so that test group `foo` has source files in
`test/foo/source` and target files in `test/foo/target`.
* use significant comments to specify write mode instead of threading
Option<WriteMode>
2016-04-05 02:45:39 +03:00
Aleksey Kladov
ac4532e161
use format_input function in tests
2016-04-03 00:32:24 +03:00
Aleksey Kladov
255231d9ed
don't read config twice during tests
2016-04-02 23:41:25 +03:00
Erik Johnston
57847e451a
Add fn_arg_one_line option
...
If set, arguments will be kept on one line if they fit. Currently only
applies when `fn_args_layout` is set to `Block`.
This commit also fixes a bug where newlines were inserted inbetween
argument brackets when there were no arguments and `fn_args_layout` was
set to `Block`.
2016-04-02 00:25:35 +01:00
Erik Johnston
8219d15291
Fix incorrect indent with fn_args_layout: Block
...
The closing parenthesis for the arg list was written on a new line
without first applying the appropriate indent.
2016-04-01 23:01:49 +01:00
Nick Cameron
5b11d2e80f
Merge pull request #892 from marcusklaas/closed-ranges
...
Format closed ranges
2016-03-31 13:47:09 +13:00
Marcus Klaas de Vries
50820c6a43
Merge pull request #883 from marcusklaas/macro-with-name
...
Properly format macro's with an extra ident
2016-03-30 02:03:28 +02:00
Marcus Klaas
9eee93306a
Format closed ranges
2016-03-29 23:58:45 +02:00
Marcus Klaas
9e5c0390a0
Properly format macro's with an extra ident
2016-03-29 23:16:40 +02:00
Nick Cameron
cfc9f70116
Merge pull request #885 from marcusklaas/empty-trait-type-params
...
Remove trailing whitespace for fn types /w non-unit return
2016-03-29 08:17:52 +13:00
Nick Cameron
7d66861b82
Merge pull request #882 from marcusklaas/empty-makro-issues
...
Fix issues with empty macros with curly braces
2016-03-29 08:14:27 +13:00
Marcus Klaas
0142191e51
Remove trailing whitespace for fn types /w non-unit return
2016-03-27 20:40:23 +02:00
Marcus Klaas
0e0cf976c9
Fix issues with empty macros with curly braces
2016-03-27 13:44:40 +02:00
Marcus Klaas
03bf1ceeb9
Fix tuple destructuring in impl fns
2016-03-27 13:07:28 +02:00
Marcus Klaas de Vries
8fd95df54a
Merge pull request #868 from rust-lang-nursery/tuple-wide
...
Don't apply the function args heuristic to tuple lits.
2016-03-24 14:57:24 +01:00
Marcus Klaas de Vries
ca757183fe
Merge pull request #864 from Venti-/fn-density
...
Add option for vertical function argument list
2016-03-22 10:14:04 +01:00
Marcus Klaas de Vries
6f2bb908bb
Merge pull request #866 from rust-lang-nursery/empty-extern
...
Keep empty extern blocks on one line
2016-03-16 18:06:25 +01:00
Connor Brewster
0a665aaceb
Fixed nitpicks
...
Removed unneeded comment
Commented line wrapping conditions
Removed prefix param on `rewrite_associated_type`
Merged `rewrite_associated_static` into `rewrite_static`
Added extra tests
2016-03-15 14:08:12 -06:00
Connor Brewster
54a9f0ebd0
Readded spaces to source test
2016-03-14 20:11:39 -06:00
Connor Brewster
2793b4090c
Added tests
2016-03-14 20:05:20 -06:00
Nick Cameron
9d8ce54428
Don't apply the function args heuristic to tuple lits.
...
Closes #450
Closes #510
2016-03-14 20:51:06 +13:00
Nick Cameron
96a2f25788
Keep empty extern blocks on one line
...
Closes #462
2016-03-14 18:55:55 +13:00
Ari Koivula
8d299210a6
Add independent test for Vertical rustfmt-fn_args_density
2016-03-14 04:03:33 +02:00
Ari Koivula
f4171e97eb
Add test for vertical fn_args_density
2016-03-14 02:02:37 +02:00
Connor Brewster
3163071c75
Updated to latest rustfmt
2016-03-12 11:09:27 -07:00
Connor Brewster
35dfcc0078
Adding trait formatting
...
trait header formatting finished
generic formatting finished
added basic trait bounds formatting
2016-03-11 14:18:30 -07:00
Amanieu d'Antras
ef03dcaa7f
Add a test for #850
2016-03-09 02:44:01 -08:00
Vincent Esche
a0567d4063
Fix for issue #811 (falsely inserted "::" in paths with parameterized trait cast).
2016-03-01 16:39:43 +01:00
Nick Cameron
d86cfb357a
Format all patterns (well, except macros)
...
Fixes #18
Fixes #672
2016-02-12 14:59:13 +13:00
Kamal Marhubi
14dbac5fd7
config: Use write_mode from config
...
This commit tidies up handling of `write_mode` by setting it in the
config at the start, and removing the `write_mode` parameter threaded
throughout the formatting process.
2016-02-08 22:52:44 -05:00
Nick Cameron
a6d70547e0
Merge pull request #799 from kamalmarhubi/const-instead-of-static
...
cleanup: Use const instead of static
2016-02-03 19:26:38 +13:00
Marcus Klaas de Vries
9c969ca6fb
Merge pull request #786 from rust-lang-nursery/str-leave
...
Don't reformat strings if we don't have to.
2016-02-03 06:11:01 +01:00
Kamal Marhubi
8b601812a6
cleanup: Use const instead of static
2016-02-01 23:40:45 -05:00
Kamal Marhubi
2b991bc260
tests: Use Result::expect() throughout
...
`Result::expect()` was added in Rust 1.4. Using it tidies up the code,
and also helps by printing error details, eg, printing syntax error
details if a regex fails to compile. It adds a colon followed by the
`Debug` output from any error, making the periods in messages
unnecessary.
2016-01-31 13:10:09 -05:00
Nick Cameron
a0e85f9a5f
Put empty modules on one line
...
Fixes #463
2016-01-28 19:53:41 +13:00
Nick Cameron
02302d2800
Don't reformat strings if we don't have to.
...
Specifically if no line exceeds the allowed width and we aren't moving the string to a new offset
2016-01-28 19:14:08 +13:00
DarkDrek
feb09a42f5
Fix #784
2016-01-27 02:18:05 +01:00
Nick Cameron
4344c51c80
Merge pull request #783 from jwazny/issue-588
...
Added where_trailing_comma option.
2016-01-26 22:23:05 +13:00
Jeremy Wazny
d23628c91b
Added tests.
2016-01-26 16:55:51 +11:00
Jeremy Wazny
d82d3b2cd1
Added where_trailing_comma option.
...
The default is 'false', since a lot of the time there's only a single
predicate.
2016-01-26 12:42:11 +11:00
Kevin Yeh
7fc70a1753
Add item macro tests
2016-01-24 13:11:18 -06:00
Kevin Yeh
f01ed6f507
Format item macros
2016-01-22 13:43:18 -06:00
Nick Cameron
81516fe8ca
Merge pull request #745 from markstory/checkstyle-output
...
RFC implementation of checkstyle output
2016-01-22 17:48:39 +13:00
Mark Story
e9e5621307
Extract helper functions for testing.
...
These functions help reduce duplication in the test harness and make it
easier to add tests for other write-modes in the future.
2016-01-21 22:28:17 -05:00
Mark Story
9c275833fc
Get checkstyle tests passing.
...
Fix up the checkstyle test so they pass. There is still an issue with
the content, but I think that is caused by a problem with how diffs are
being calculated presently.
2016-01-20 00:07:01 -05:00
Mark Story
66d4faf53f
Start tests for checkstyle.
...
They don't yet pass, I've clearly misunderstood the existing tests.
2016-01-18 22:44:10 -05:00
Nick Cameron
f0ca7aec24
Fix an off-by-one error due to the comma in a struct lit field
...
Also allows splitting the field expression on a new line after the field name.
Fixes #698
2016-01-14 20:26:15 +13:00
Victor M. Suarez
4f8938c616
Allow for setting of write-mode via config file. FIxes #215
...
Also from @marcusklaas:
Refactor code output functions
Specifically, `write_all_files` no longer returns a HashMap. It would sometimes
contain items, and sometimes be empty. When "fixed" newlines are required, this
must now be done with a separate call. The tests use this strategy and should now pass!
2016-01-12 18:12:48 -05:00
Marcus Klaas de Vries
ba465e0fc2
Merge pull request #766 from ConnorGBrewster/fix-#489
...
Added option for tighter punctuation in types. fixes #489
2016-01-12 22:52:34 +01:00
Marcus Klaas de Vries
4cefecb495
Merge pull request #768 from DarkDrek/amend-to-fix-#447
...
fixes parsing issue #767
2016-01-12 21:53:19 +01:00
Connor Brewster
7f8b9bd356
Added test case
2016-01-12 13:51:32 -07:00
Marcus Klaas de Vries
b99e8eda29
Merge pull request #757 from ConnorGBrewster/fix-#650
...
Fix for #650
2016-01-12 21:17:45 +01:00
DarkDrek
937e26d4e1
fixes parsing issue #767
2016-01-12 21:13:59 +01:00
Connor Brewster
d7a3256d40
If where is on the same line as the impl, { is put on the same line fixes #650
...
factored if clause into a separate function
2016-01-11 21:26:45 -07:00
DarkDrek
20ccc7bf8e
Removed the failing test part since it will work when #754 is accepted
2016-01-12 03:09:19 +01:00
DarkDrek
4da91e7df2
Handle more possible comment position for if else
...
Extended the test with the new possiblecomment positions
2016-01-12 03:08:48 +01:00
DarkDrek
b0eb0f5daa
Keep comments between if and else blocks. Fixes #447
2016-01-12 03:08:16 +01:00
Connor Brewster
6b741a7194
Where clause is on same line as fn if fn is empty fix-#760
...
only applies if fn_empty_single_line is set to true
2016-01-10 22:06:06 -07:00
Gaëtan Cassiers
9f98f725cb
Detect when comments disappear
...
When the reformatted code doesn't contain the same quantity of comments
as the original code, use the original code instead of the reformatted
code.
This is done for all expressions and `let` statements.
This should be used at the finest grained level possible, to avoid that
a small disappearing comment prevents a big chunk of code to be
reformatted.
Kind of fixes (avoid disappearing comments, but prevents a good
formatting is such case) #285 #225 #563 #743
2016-01-10 15:20:58 +01:00
Seo Sanghyeon
16b348dd9c
Add commas after skipped arms when needed
2016-01-08 22:15:54 +09:00
Seo Sanghyeon
f9f7235c1b
Trailing commas for wildcard arms
2016-01-06 11:02:01 +09:00
Marcus Klaas de Vries
0698f0255a
Merge pull request #732 from utkarshkukreti/update-diff-to-0.1.8
...
Update diff to 0.1.8
2015-12-28 17:45:56 +01:00
Utkarsh Kukreti
15e6b7d335
Add tests for #606 .
2015-12-28 17:23:34 +05:30
Marcus Klaas
291aa1b228
Make fn argument formatting more resilient for complex self types
2015-12-27 14:25:37 +01:00
Nick Cameron
71508b310b
Merge pull request #728 from marcusklaas/typed-mut-self
...
format typed mut self
2015-12-27 09:18:20 +13:00
Marcus Klaas
954dd0869e
Preserve mutability for typed self arguments
2015-12-25 19:07:51 +01:00
Marcus Klaas
1e80fd2dcd
Prevent incorrect backslash removal in strings
2015-12-25 18:50:40 +01:00
Aleksey Kladov
e3123ce88c
test ignored out of line modules
...
tests #719
2015-12-24 00:15:29 +03:00
Nick Cameron
8983037db6
Merge pull request #695 from marcusklaas/string-rewrite-backslash
...
Prevent backslash stripping in string literals
2015-12-14 07:50:56 +13:00
Marcus Klaas
8cccf45d43
Prevent backslash stripping in string literals
2015-12-12 16:25:01 +01:00
Marcus Klaas
2636fed5f3
Don't panic on function return type rewrite failure
2015-12-12 15:41:10 +01:00
Nick Cameron
f8cb1baadd
Add normalise_comments option.
...
So block comments are not converted to line comments
2015-12-10 09:29:03 +13:00
Nick Cameron
585b071aa1
Merge pull request #678 from marcusklaas/length-one-tuplez
...
Fixed named arguments in bare function types
2015-12-07 09:01:38 +13:00
Nick Cameron
db72e0390c
Merge pull request #664 from marcusklaas/fix-reformat-failurez
...
Don't include failed item rewrites in missed spans
2015-12-07 08:33:02 +13:00
Nick Cameron
397449b292
Merge pull request #668 from marcusklaas/regression-tests
...
Regression tests
2015-12-07 08:10:06 +13:00
Nick Cameron
f569144bbf
Merge pull request #666 from marcusklaas/matches-5000
...
Break function headers earlier
2015-12-07 08:07:23 +13:00
Marcus Klaas
97e4e7e5ba
Fixed named arguments in bare function types
2015-12-06 01:11:26 +01:00
Marcus Klaas
ea6ce22a16
Add regression test for overlong trait methods
2015-12-02 21:08:09 +01:00
Marcus Klaas
9734bd05af
Add regression test for backslash stripping
2015-12-02 21:03:41 +01:00
Markus Westerlind
a6b0d475f4
Don't remove where clauses in type aliases
2015-12-02 20:11:17 +01:00
Markus Westerlind
ae9ad7b288
Fix formatting of type aliases where '=' is at or close to the max width
2015-12-02 20:11:10 +01:00
Marcus Klaas de Vries
e677f05805
Merge pull request #659 from Marwes/where_clause
...
Fix where clauses not taking the width of the line into account
2015-12-02 19:06:24 +01:00
Marcus Klaas
76f303f369
Break function headers earlier
...
Closes rustfmt#295.
2015-12-01 22:09:37 +01:00
Bryce Van Dyk
7ce887abcf
Update trailing comma match logic, add tests
...
Updates the traling comma code to attempt to handle multiline non-block bodies when
adding traling commas to blocks. Also add and update tests to cover better
the interactions between trailing commas and wrapping match arms.
2015-12-01 20:10:57 +13:00
Marcus Klaas
0fb9611786
Don't include failed item rewrites in missed spans
2015-11-30 23:12:50 +01:00
Bryce Van Dyk
2a430a8947
Trailing commas for match block arms
...
Attempt to implement an option for trailing commas for block based match arms (issue
173). Put in place test files to verify this behaviour.
2015-11-30 21:51:20 +13:00
Markus Westerlind
937467c358
Fix where clauses not taking the width of the line into account
...
Fixes #630
2015-11-27 09:27:41 +01:00
Markus Westerlind
c61d6d4c3a
Format type aliases
...
Fixes #486
2015-11-26 21:04:49 +01:00
Kevin Yeh
f5fac4c54f
Fix empty trim_newline panic, add impl macro test
2015-11-24 14:37:31 -06:00
Kevin Yeh
c408245e5d
Add impl newline tests
2015-11-24 13:02:55 -06:00
Kevin Yeh
b6dc8a3f76
Keep comments in empty impl bodies
2015-11-24 12:55:32 -06:00
Nick Cameron
d405fdc236
Fix a bug with nested impls
2015-11-24 09:37:52 +13:00
Marcus Klaas de Vries
5a3f5bc1f6
Merge pull request #646 from rust-lang-nursery/mulit-file
...
Handle multiply-referenced files
2015-11-23 21:35:09 +01:00
Nick Cameron
2661592d59
Handle multiply-referenced files
...
Fixes #645
2015-11-23 15:22:00 +13:00
Nick Cameron
40eb3ea857
Merge pull request #641 from marcusklaas/fix-doc-commentz
...
Correct doc comment indentation for struct fields
2015-11-23 13:58:19 +13:00
Nick Cameron
e3f39941de
Types which can be return types for function types
...
Fixes #643
2015-11-23 13:55:53 +13:00
Nick Cameron
e86872c95b
tests
2015-11-23 13:09:00 +13:00
Nick Cameron
b577f95e3c
Reformatting due to changes
2015-11-23 13:09:00 +13:00
Marcus Klaas
4b4dd170d8
Correct doc comment indentation for struct fields
...
Fix https://github.com/rust-lang-nursery/rustfmt/issues/572 .
2015-11-22 22:55:57 +01:00
Nick Cameron
ba936766c6
Take rustfmt_skip attribute into account on modules
...
Closes #632
2015-11-23 09:20:53 +13:00
Nick Cameron
b9832f2e9f
Merge pull request #638 from marcusklaas/visual-struct-last-comment
...
Fix last comment for visually formatted struct lits
2015-11-23 07:23:58 +13:00
Marcus Klaas
2b0a25a539
Fix last comment for visually formatted struct lits
2015-11-22 17:41:54 +01:00
Marcus Klaas
840012b5e0
Format bare function types
...
Fix https://github.com/rust-lang-nursery/rustfmt/issues/616 .
Fix https://github.com/rust-lang-nursery/rustfmt/issues/276 .
Close https://github.com/rust-lang-nursery/rustfmt/issues/350 .
2015-11-22 16:07:38 +01:00
Marcus Klaas
559f00ba99
Fix up indentation of function style paths
...
Fixes https://github.com/rust-lang-nursery/rustfmt/issues/105 .
2015-11-22 14:48:30 +01:00
Marcus Klaas de Vries
a871405f45
Merge pull request #633 from marcusklaas/mod-comment
...
Rewrite module declarations
2015-11-21 21:24:29 +01:00
Marcus Klaas
49e2a146b1
Rewrite module declarations
2015-11-21 21:06:29 +01:00
Marcus Klaas de Vries
2a159e05ac
Merge pull request #635 from Marwes/long_field_access
...
Fix long field accesses not being broken onto separate lines
2015-11-21 21:04:34 +01:00
Markus Westerlind
465662a691
Fix long field accesses not being broken onto separate lines
...
Fixes #512
2015-11-21 01:05:31 +01:00
Nick Cameron
7809e3bb18
Merge pull request #634 from Marwes/block_comment_crlf
...
Avoid adding an extra newline after block comments
2015-11-21 12:47:53 +13:00
Markus Westerlind
ad7dc420cd
Avoid adding an extra newline after block comments
...
When block comments were rewritten to line comments they check if a new line needs to be added and adds one if needed. It only checked for '\n' however which would cause a newline to be added even if the comment was ended by "\r\n"
2015-11-20 23:31:05 +01:00
Marcus Klaas
9fe3c08abc
Add option to disable (un)wrapping of match arms
2015-11-20 21:50:25 +01:00
Marcus Klaas
7b0cceafee
Force chains to adhere to restrictions
2015-11-20 21:09:34 +01:00
Marcus Klaas
6e1f77664d
Unwrap match arms that are simple blocks
2015-11-20 21:05:18 +01:00
Marcus Klaas
8f3a29d1a7
Blockify multiline match arms
2015-11-20 21:05:10 +01:00
Nick Cameron
3533f72c45
Merge pull request #618 from zyphrus/master
...
Comments in structs use appropriate style
2015-11-20 18:14:26 +13:00
Kevin Yeh
15ec5b2912
Fix empty body format, add fn_empty_single_line option, refactor block tests
2015-11-19 20:45:02 -06:00
David Barnett
b3f41e82fc
Use tactic instead of config
...
Add mixed test
Mixed is unreachable as there is no input combination that could get
to this value
2015-11-20 10:37:00 +13:00
Kevin Yeh
fbd1398c92
Implement Rewrite for ast::Stmt
2015-11-19 14:23:56 -06:00
Kevin Yeh
4d7de5a16e
Support single-line functions
...
By default, places functions with empty bodies on one line.
If the function has only one expression or statement that fits on one line, the 'fn_single_line' option can be used.
2015-11-19 14:23:56 -06:00
Pavel Sountsov
1056006790
Properly follow the brace styles.
2015-11-18 22:34:14 -08:00
David Barnett
e44a7a2800
Test for single arm in struct
2015-11-18 23:30:23 +13:00
Pavel Sountsov
a96a69b708
Comments.
...
- Move the option
- Add some more tests (don't pass yet)
2015-11-16 23:18:07 -08:00
David Barnett
30aec386f4
Comments in structs use appropriate style
...
Fixes #491
2015-11-17 11:57:49 +13:00
Pavel Sountsov
8658774ad2
Implement initial option for brace style for non-fn items.
2015-11-15 11:55:18 -08:00
Eli Friedman
2fff041b43
Pass in whether an ast::Path is in an expression context.
...
This gets rid of a slightly nasty hack involving scanning the source
expression for a ":".
2015-11-14 13:54:57 -08:00
Thorben Kroeger
d4be6a43e9
new config 'chain_indent'
2015-11-14 21:50:40 +01:00
Nick Cameron
2cf2230002
Merge pull request #596 from marcusklaas/where-indent
...
Fix brace indentation after where clause
2015-11-14 10:04:04 +13:00
Marcus Klaas
c93c771e71
Fix span issue with generic method calls
2015-11-13 14:53:34 +01:00
Marcus Klaas
d32245a13d
Fix brace indentation after where clause
2015-11-13 14:31:20 +01:00
Marcus Klaas de Vries
b6120b39ab
Merge pull request #571 from nrc/semi
...
Don't strip semi-colons from expressions with non-void type since it …
2015-11-10 08:43:29 +01:00
Marcus Klaas de Vries
e0e24c4e76
Merge pull request #573 from nrc/doom_panic
...
Format tuple structs better
2015-11-09 20:17:50 +01:00
Nick Cameron
b7d61254a7
Option to disable line breaking in comments
...
Set to false by default for now, since we are having a lot of problems with comments. We should set to true once we have a better algorithm.
2015-11-10 08:03:01 +13:00
Nick Cameron
bcda2824a2
Format tuple structs better
...
closes #546
2015-11-09 19:00:04 +13:00
Nick Cameron
3dc0b804f1
Don't strip semi-colons from expressions with non-void type since it can change semantics
2015-11-09 13:23:19 +13:00
Florian Zeitz
2aa35f0f6d
Honor "enum_trailing_comma" option. Fixes #556
2015-11-03 23:57:31 +01:00
Eli Friedman
1c235de97d
Fix crash speculatively parsing macro arguments as expressions.
...
The problem is essentially that if we try to parse a token tree using a
CodeMap different from the one the tree was originally parsed with,
spans become nonsense. Since CodeMaps can't be cloned, we're basically
forced to use the original ParseSess for additional parsing.
Ideally, rustfmt would be a bit more clever and figure out how to parse
macro arguments based on the definition of the macro itself, rather than
just guessing that a particular token sequence looks like an expression,
but this is good enough for now.
Fixes #538 .
2015-10-27 23:41:32 -07:00
Marcus Klaas
d122ad5adc
Address some issues with multiline patterns in let statements
2015-10-24 13:13:15 +02:00
Ravi Shankar
7f7d763175
tests for coverage mode
2015-10-24 15:22:45 +05:30
Ravi Shankar
d135217db2
show rustfmt coverage!
2015-10-24 15:22:37 +05:30
Nick Cameron
efa5df39a5
Merge pull request #530 from marcusklaas/match-inner-block
...
Bump match inner block indent a level
2015-10-24 11:22:50 +13:00
Nick Cameron
0c1360a77c
Merge pull request #529 from marcusklaas/pattern-indent
...
Fix indentation for enum-style patterns
2015-10-24 11:15:01 +13:00
Nick Cameron
45bcf59bde
Merge pull request #528 from marcusklaas/chain-idempotence
...
Restore idempotence for chain formatting
2015-10-24 11:14:24 +13:00
Alex Crichton
4121b503e9
Add test for a macro not containing an exprssion
2015-10-23 13:46:14 -07:00
Alex Crichton
579fb34417
Remove dependence on rustc/rustc_driver, use syntex
...
Instead just parse manually with the `syntex_syntax` crate which is a clone of
libsyntax on crates.io which builds on stable Rust.
2015-10-23 13:46:14 -07:00
Marcus Klaas
b41965539a
Bump match inner block indent a level
2015-10-23 21:39:26 +02:00
Marcus Klaas
ae5d7e6ba4
Fix indentation for enum-style patterns
2015-10-23 20:44:46 +02:00
Marcus Klaas
0bb979bb85
Restore idempotence for chain formatting
2015-10-23 20:37:45 +02:00
Marcus Klaas de Vries
7e76fad1f5
Merge pull request #485 from marcusklaas/floaters2
...
Deal with floaters
2015-10-22 22:33:24 +02:00
Marcus Klaas
2d267b16d1
Deal with floating links in chains
2015-10-22 22:30:01 +02:00
Eli Friedman
e720218ffb
Improve handling of commas after match arms.
...
Fixes #507 . Fixes #508 .
2015-10-21 14:35:45 -07:00
Eli Friedman
be9e7dc689
Don't use visit::walk_*
. Instead, recurse by hand.
...
This is much more straightforward to understand given how rustfmt
rewriting works, and it avoids walking into expressions in unexpected
places.
Fixes #513 . Fixes #514 .
2015-10-21 13:46:13 -07:00
Tim Kuehn
6b4ef7457a
Fix doc comment regression and add tests.
2015-10-20 02:13:14 -07:00
Marcus Klaas
e8447a8210
Fix large block comments
2015-10-19 23:06:36 +02:00
Marcus Klaas
11756d2ef8
Refactor enum formatting
2015-10-19 21:28:05 +02:00
Marcus Klaas de Vries
754925e132
Merge pull request #484 from marcusklaas/patternz
...
Format some patterns
2015-10-19 20:20:29 +02:00
Marcus Klaas
ca023ba9b7
Format some patterns
2015-10-19 20:15:36 +02:00
Marcus Klaas
7e0456b852
Format visibility for statics and consts
2015-10-19 20:08:03 +02:00
Marcus Klaas de Vries
8a9bbd9d7c
Merge pull request #487 from marcusklaas/konsts-n-statix
...
Format constants and static variables
2015-10-18 23:03:01 +02:00
Marcus Klaas
8e2a910021
Fix indentation for function arguments
2015-10-18 22:22:41 +02:00
Marcus Klaas
1a7d39041e
Format constants and static variables
2015-10-18 21:36:26 +02:00
Nick Cameron
d326a29b4b
Merge pull request #479 from marcusklaas/moar-types
...
Format more type variants
2015-10-18 15:40:11 +13:00
Nick Cameron
d7019ce897
Merge pull request #474 from marcusklaas/fn-indent
...
Properly indent pub fns in extern blocks
2015-10-18 15:19:32 +13:00
Marcus Klaas
01937061a9
Format more type variants
2015-10-17 16:05:59 +02:00
Marcus Klaas
5407202fdf
Properly indent pub fns in extern blocks
2015-10-16 23:05:11 +02:00
Marcus Klaas
a9bd695723
Format vec! macro using brackets
2015-10-16 22:55:42 +02:00
Marcus Klaas de Vries
dfa8ae4048
Merge pull request #464 from marcusklaas/semicolonz
...
Force semicolons after break/continue/return. Remove after blocks.
2015-10-15 21:03:38 +02:00
Marcus Klaas
b039e3a8c3
Force semicolons after break/continue/return. Remove after blocks.
2015-10-15 19:55:42 +02:00
Marcus Klaas
dba08bf898
Indent uncontinued chains to block level
2015-10-14 19:41:29 +02:00
Gaurav Saxena
af00f3ffe6
added semicolons to break statements
2015-10-13 02:17:51 -04:00
Marcus Klaas
e6af5d2c83
Use visual block indentation for array literals
2015-10-12 21:14:12 +02:00
Marcus Klaas
b768d27f03
Format variadic arguments
2015-10-11 20:57:44 +02:00
Nick Cameron
aed558fce4
Handle multi-line return types and multi-line tuples
...
Closes #409
2015-10-10 14:55:31 +13:00
Sinh Pham
f075fd01ab
Fix https://github.com/nrc/rustfmt/issues/430
2015-10-08 22:49:16 -07:00
Nick Cameron
3ca8d3677a
Merge pull request #429 from marcusklaas/method-calls2
...
Try "overflowing" the final function argument when it's a closure
2015-10-09 12:27:37 +13:00
Marcus Klaas
ccd404ac6f
Try "overflowing" the final function argument when it's a closure
...
This means that we try formatting the last argument of a function call with block
indentation instead of visual indentation when it is a closure and its first line
fits on the same line as the first arguments.
2015-10-08 23:40:33 +02:00
Marcus Klaas de Vries
e7a6795509
Merge pull request #420 from mwiczer/Issue270
...
Fix https://github.com/nrc/rustfmt/issues/270
2015-10-08 23:38:04 +02:00
mwiczer
5162282b60
Support pre- and post-comments for enums
...
Use lists to format enum variants rather than special formatting.
Add tests for enums mostly around block comments.
2015-10-08 17:22:57 -04:00
Nick Cameron
6600cd341a
Format inner and outer attributes separately.
...
Actually just skips inner attributes, because its a pain to track them, and lets missed spans handle them.
Closes #413
2015-10-08 17:20:19 +13:00
Bryce Van Dyk
8be1d1926e
Fix path issue with tests on Windows
...
The code that manipulates paths to try and find files in the target dir
was not handling windows file seperators correctly. The code has been
updated to use the path module, and hopefully will play nicer across
operating systems.
2015-10-08 01:10:07 +13:00
Marcus Klaas de Vries
7ea589d7b4
Merge pull request #403 from marcusklaas/casts
...
Format casts, indices and repeated elements
2015-10-05 19:26:14 +02:00
Marcus Klaas de Vries
251af6e161
Merge pull request #398 from sezna/master
...
Fix https://github.com/nrc/rustfmt/issues/389
2015-10-02 21:15:10 +02:00
sezna
2f7acf00e5
Added punctuation preference
...
Create test.rs
Delete test.rs
Fixed compile error.
Trying a possible fix on an arithmetic overflow
another try at the test failure...
passed all tests.
Added tests and cleaned up logic as per nrc's critiques
Delete string.rs.old
Delete string.rs.bk
Made changes as per nrc's requests.
Update string_punctuation.rs
Update string_punctuation.rs
fixed logical redundancy
2015-10-02 08:37:21 -05:00
Marcus Klaas
ca0b860688
Format repeated element array literals
2015-10-02 12:00:28 +02:00
Marcus Klaas
ad2e3b8e2b
Format indices
2015-10-02 11:47:03 +02:00
Marcus Klaas
603f2034a5
Format type casts
2015-10-02 11:31:40 +02:00
Tim Kuehn
6c6e7194c2
Fix 1-tuple regression.
...
Add test to prevent future regressions.
2015-10-01 11:06:49 -07:00
Marcus Klaas de Vries
7b40bfa8d5
Merge pull request #380 from sinhpham/fix_377
...
Fix https://github.com/nrc/rustfmt/issues/377
2015-09-29 19:40:24 +02:00
Marcus Klaas de Vries
10eb21d020
Merge pull request #384 from nrc/where-empty
...
Option for putting the where clause on the same line as the function …
2015-09-28 19:43:25 +02:00
Sinh Pham
220ecdaf71
Fix https://github.com/nrc/rustfmt/issues/377
2015-09-27 17:03:48 -04:00
Marcus Klaas
30aefa6dc7
Prevent arithmetic overflow handling match arm comments
2015-09-27 22:11:17 +02:00
Nick Cameron
840af4f84d
Option for putting the where clause on the same line as the function if the body is empty.
2015-09-28 08:46:05 +13:00
Nick Cameron
9139a8040c
Merge pull request #379 from marcusklaas/enum-quik-fix
...
Fix variant name duplication on rewrite failure
2015-09-28 07:51:09 +13:00
Marcus Klaas
a673fef844
Fix variant name duplication on rewrite failure
2015-09-27 17:23:37 +02:00
Marcus Klaas de Vries
0f485aabd6
Merge pull request #374 from nrc/fix-fn
...
Use max width for function decls, not ideal width
2015-09-27 14:52:08 +02:00
Marcus Klaas de Vries
afee62e476
Merge pull request #370 from marcusklaas/match-arm-delining
...
Improve heuristics for match arm body placement
2015-09-27 12:00:57 +02:00
Marcus Klaas
2eb67827a7
Add extra tests for match arm placement
2015-09-27 11:58:26 +02:00
Nick Cameron
ba51535a74
Fixup tests
2015-09-27 19:39:58 +13:00
Nick Cameron
bc59f83f02
Use max width for function decls, etc.
...
We were using ideal width + leeway before. This means we can remove leeway from the config. We could remove ideal_width too, but I want to use it for comments.
2015-09-27 19:34:35 +13:00
Nick Cameron
dad4626517
Merge pull request #368 from nrc/struct-wide
...
Use a width heuristic for struct lits
2015-09-27 10:50:50 +13:00
Marcus Klaas
2d4a0cbe3b
Fix match arm indentation bug
2015-09-26 23:18:57 +02:00
Marcus Klaas
078fff068a
Improve heuristics for match arm body placement
2015-09-26 22:35:53 +02:00
Nick Cameron
e4c15b4e1c
Fix tests
2015-09-26 18:35:17 +12:00
Nick Cameron
3a9e4f0540
add test
2015-09-26 18:27:51 +12:00
Nick Cameron
b2e7da0aa0
Format imports with aliases.
...
Closes #366
2015-09-26 18:12:25 +12:00
Nick Cameron
8dfcb9bcdd
Fix tests
2015-09-26 13:58:12 +12:00
Nick Cameron
e161de0daa
Merge pull request #352 from nrc/ty_parens_fix
...
Formatting of some types
2015-09-26 13:50:00 +12:00
Nick Cameron
92fbb80097
Formatting of some types
...
Closes #341
2015-09-26 13:48:02 +12:00
Marcus Klaas
5db17ca703
Use the maximum available width in struct formatting
...
Previously, we'd use an approximation for the maximum width since the configuration wasn't available in `write_list`.
2015-09-25 16:56:22 +02:00
Eli Friedman
19e887c309
Add support for formatting AddrOf (unary "&").
2015-09-24 01:13:57 -07:00
Nick Cameron
d941fe20b4
Merge pull request #358 from eefriedman/rewrite-return
...
Add support for formatting "return" expressions.
2015-09-24 18:19:37 +12:00
Eli Friedman
69da1a78de
Add support for formatting "return" expressions.
...
Fixes #303 .
2015-09-23 23:12:04 -07:00
Scyptnex
f1dfab5a29
fix for #355 and test cases
2015-09-24 12:01:48 +10:00
Scyptnex
19d1ec1dec
Fixes #339 and #272
2015-09-24 10:22:06 +10:00
Nick Cameron
5e18b03bb9
Merge pull request #345 from Manishearth/fix-match
...
Handle comments in match better (fixes #344 )
2015-09-22 17:00:18 +12:00
Manish Goregaokar
106f7251fb
Add tests, reformat expr
2015-09-22 09:35:50 +05:30
Marcus Klaas
71faa8984d
Format foreign functions and statics
2015-09-21 20:02:45 +02:00
Marcus Klaas de Vries
fa67e0359a
Merge pull request #334 from marcusklaas/sparse-mods
...
Place the closing brace of an inline mod on a new line
2015-09-21 19:42:36 +02:00
Marcus Klaas
5ee6304d8d
Fix struct overflows
2015-09-20 18:45:25 +02:00
Sebastian Ullrich
9bd502ad54
Fix negative overflow and missing '..' on struct lit base exprs
2015-09-20 15:47:21 +02:00
Marcus Klaas
f8e74bfa2c
Place the closing brace of an inline mod on a new line
2015-09-20 14:22:12 +02:00
Pavel Sountsov
05c8c28935
Add some tests for hard tab mode.
2015-09-19 10:36:46 -07:00
Marcus Klaas
e72d488281
Refactor test code
...
No longer use callbacks or thread::catch_panic; reduce stdout spew; guard against rustfmt breaking the column limit.
2015-09-18 22:34:46 +02:00
Marcus Klaas
ad7af22278
Add regression test for non-returning functions
2015-09-17 21:35:56 +02:00
Marcus Klaas
f751356910
Format macro invocations
2015-09-16 20:26:14 +02:00
Nick Cameron
e4cca21a10
Preserve unsafe blocks in closures
...
Fixes #321
2015-09-15 17:47:18 +12:00
Nick Cameron
99ffb5af99
Add a test for dodgy spans around >>
...
Closes #242
2015-09-15 11:43:44 +12:00