Commit Graph

314 Commits

Author SHA1 Message Date
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
Nick Cameron
4738d284f2 Merge pull request #309 from marcusklaas/array-literals
Format array literals
2015-09-13 09:20:37 +12:00
Marcus Klaas
ffa7e8d599 Prevent generation of bogus comment in some function calls
This would happen when the callee contained parentheses.
2015-09-12 14:31:51 +02:00
Marcus Klaas
7deee6daf5 Format array literals 2015-09-12 00:06:17 +02:00
Nick Cameron
764793b2e6 Merge pull request #307 from marcusklaas/function-arg-ty
Rewrite types in function arguments
2015-09-12 10:01:53 +12:00
Marcus Klaas
436f8663e3 Add regression test for bad continue span 2015-09-11 23:32:13 +02:00
Marcus Klaas
623d6c972a Rewrite types in function arguments 2015-09-11 12:32:34 +02:00
Marcus Klaas
7f576b0602 General cleanup after rebase 2015-09-11 00:53:21 +02:00
Marcus Klaas
03c660633f Refine chain breaking heuristics
Don't make a single line chain when it is was multi line in the source; allow overflow of the last chain element onto the next lines without breaking the chain.
2015-09-11 00:53:01 +02:00
Marcus Klaas
48d17f54d3 Rebase onto master 2015-09-11 00:53:01 +02:00
Marcus Klaas
a9814149c9 Align dots in chained expressions 2015-09-11 00:53:01 +02:00
Marcus Klaas
95ef9dedb4 Escape quotes in string literals 2015-09-11 00:53:01 +02:00
Marcus Klaas
8e471ece31 Add some tests for match blocks 2015-09-11 00:53:01 +02:00
Marcus Klaas
abe8e7de99 Add tests for chain expressions 2015-09-11 00:53:01 +02:00
Marcus Klaas
749a9689be Break chains that don't start with path expressions 2015-09-11 00:52:57 +02:00
Marcus Klaas
659c9b9037 Update indentation heuristics for single arg functions 2015-09-11 00:52:20 +02:00
Marcus Klaas
c680bb4030 Implement basic chain formatting 2015-09-11 00:52:16 +02:00
Sinh Pham
e7a5f9327e Add diff write mode https://github.com/nrc/rustfmt/issues/261 2015-09-10 18:30:07 -04:00
Marcus Klaas
582aa4f2fe Format closures' return types 2015-09-08 20:56:33 +02:00
Nick Cameron
db79a5aec5 Merge pull request #260 from cburgdorf/struct_lit_force_multiline
Implements struct_lit_force_multiline
2015-09-08 17:01:28 +12:00
Christoph Burgdorf
33c5776d30 Implements struct_lit_force_multiline
With struct_lit_force_multiline set to true
rustfmt won't ever mangle multiple struct properties
into one line.

Fixes #253
2015-09-08 01:25:44 +02:00
Marcus Klaas de Vries
156263a3c4 Merge pull request #251 from marcusklaas/rewrite-list
Add failure mode to `write_list`
2015-09-07 22:23:33 +02:00
Marcus Klaas
d05a41c773 Add failure mode to write_list 2015-09-07 20:35:25 +02:00
Sinh Pham
94a26f3c9c Fix https://github.com/nrc/rustfmt/issues/278 2015-09-07 00:30:46 -04:00
Marcus Klaas
c3cb348169 Fix qself rewrites without explicit casts 2015-09-06 23:18:27 +02:00
Marcus Klaas de Vries
072c54beba Merge pull request #265 from nrc/unsafe_one_line
Single line unsafe blocks
2015-09-06 22:44:06 +02:00
Nick Cameron
8750399ef4 Merge pull request #248 from sinhpham/unicode_string_lit
Unicode string lit
2015-09-07 08:01:06 +12:00
Nick Cameron
e0c197cab4 Single line unsafe blocks 2015-09-07 07:31:02 +12:00
Marcus Klaas
ba0e0e6ac1 Add regression test for trait reference formatting 2015-09-04 13:58:56 +02:00
Nick Cameron
17302f8967 Merge pull request #246 from nrc/bugs2
Format <foo + 'bar> nicely
2015-09-04 17:07:34 +12:00
Nick Cameron
fb9e051fd8 Format <foo + 'bar> nicely 2015-09-04 17:04:54 +12:00
Sinh Pham
61f642f6f8 Support unicode in string literals. 2015-09-03 23:41:25 -04:00
Marcus Klaas
336759d592 Add regression test for bad break span 2015-09-03 20:15:24 +02:00
Nick Cameron
183dac91a3 Fix a bug where struct lits nested in fn calls were over-indented 2015-09-02 15:36:17 +12:00
Nick Cameron
ce4d5aa39c Fix a bug with alignment in one-line match arms 2015-09-02 14:45:56 +12:00
Nick Cameron
a5f8b37eeb Format match expressions properly when they appear on an overflowing line. 2015-09-02 14:29:47 +12:00
Nick Cameron
97e92b35cc Preserve some whitespace between struct fields etc. 2015-09-02 14:11:19 +12:00
Nick Cameron
fae93abbda Support struct-like layouts for fn args 2015-09-02 09:41:08 +12:00
Nick Cameron
f81485d9d6 Rename fn_args_layout to fn_args_density 2015-09-02 08:56:37 +12:00
Nick Cameron
6ca2756a82 Merge pull request #238 from nrc/fn-decl
Customisation of function decls
2015-09-02 08:00:28 +12:00
Nick Cameron
8d81aa1991 Support where clauses on the same line as the function decl where it all fits on one line. 2015-09-02 07:59:54 +12:00
Marcus Klaas
1ae2d417b8 Remove faulty shortcut in rewrite_string_lit
Rustfmt would leave the literal unchanged when it did not exceed the column limit in its original position, not considering its position after formatting.
2015-09-01 20:42:07 +02:00
Sinh Pham
55fe34a00f Format strings option https://github.com/nrc/rustfmt/issues/202 2015-09-01 08:14:52 -04:00
Nick Cameron
6216dce14e Support where clause predicates at different indentations 2015-09-01 19:04:41 +12:00
Nick Cameron
02a01350ff Support where predicates on the same line 2015-09-01 18:53:16 +12:00
Nick Cameron
6f3c329500 Support non-indented where clauses 2015-09-01 18:38:12 +12:00
Nick Cameron
fc2fb8be43 Support different indent styles for generics 2015-09-01 18:20:17 +12:00
Nick Cameron
0413c47a09 Support different tabbing of function args
(Although, frankly anything other than visual is deeply wrong).
2015-09-01 17:22:00 +12:00
Nick Cameron
89cda8d43a Option to pack fn args on fewer lines 2015-09-01 17:06:41 +12:00
Marcus Klaas
a896d91ff6 Fix offset for unary operations
Fixes https://github.com/nrc/rustfmt/issues/227.
2015-08-31 19:15:40 +02:00
Marcus Klaas
adeafb3e45 Refactor diff handling in tests
This splits the generation and display of mismatches. Mismatches now include a few lines of context. Finally, diffs are now coloured.
2015-08-30 22:31:26 +02:00
Gaëtan Cassiers
7a828e2043 Add unittest for #115 2015-08-28 22:59:36 +02:00
Sinh Pham
145a90da05 Fix #201 2015-08-28 06:44:13 -04:00
Gaëtan Cassiers
5e445697ce Implement Rewrite for [ast::Attribute] 2015-08-27 22:29:07 +02:00
Simon Bernier St-Pierre
9ead47151e Add project-specific configuration file support 2015-08-25 19:05:30 -04:00
Marcus Klaas
d92dd3d915 Prevent nested if-else from being put on a single line.
This is done using a pretty terribad hack, introducing an extra function parameter and some code duplication. Unfortunately, there seem to be few alternatives.
2015-08-25 22:52:33 +02:00
Marcus Klaas
b7a71250f4 Implement single line if-else formatting 2015-08-25 22:09:46 +02:00
Marcus Klaas
120fd2426e Format assignment 2015-08-25 21:43:13 +02:00
Gaëtan Cassiers
76ea7e3b64 Fix #190 for submodules 2015-08-24 22:01:01 +02:00
cassiersg
cf046b734c Merge pull request #200 from sinhpham/master
Fix https://github.com/nrc/rustfmt/issues/190
2015-08-24 19:06:02 +02:00
Sinh Pham
49cae9c485 Fix https://github.com/nrc/rustfmt/issues/190 2015-08-23 08:37:43 -04:00
Nick Cameron
8319e33573 Merge pull request #198 from marcusklaas/parameterized-paths-matter
Fix bug in path formatting
2015-08-23 19:52:39 +12:00
Léo Stefanesco
8b78568388 Add test for raw strings 2015-08-22 21:20:31 +02:00
Marcus Klaas
150c333e6c Fix bug in path formatting 2015-08-21 16:28:32 +02:00
Marcus Klaas
c8fd23ca68 Refactor closure formatting routine 2015-08-20 23:05:41 +02:00
Marcus Klaas
a75017e50e Add additional tests for closures 2015-08-20 22:08:51 +02:00
Marcus Klaas
5fcd313b08 Format closures 2015-08-19 23:15:56 +02:00
Nick Cameron
43ad7ad7a0 Re-jig binop formatting
and misc other fixes from the reviews.
2015-08-20 08:18:02 +12:00
Nick Cameron
81f2e449d7 Handle span error with continue
This should be properly addressed by #184, but requires a change to the rustc parser, so this patch just works around the issue.
2015-08-20 08:11:14 +12:00
Nick Cameron
ae1eec81af Rewrite match expressions (continued). 2015-08-20 08:11:14 +12:00
Nick Cameron
d10629d8a5 Allow {} to remain. 2015-08-20 08:08:11 +12:00
Nick Cameron
dc2544712c Rewrite match expressions 2015-08-20 08:08:11 +12:00
Marcus Klaas
8e22a73cb7 Add option to override single configuration lines for tests 2015-08-19 21:51:03 +02:00
Marcus Klaas
10a80bb8be Add an option to forgo backups 2015-08-19 21:31:27 +02:00
Marcus Klaas
41bca58100 Format paths 2015-08-16 22:53:06 +02:00
Marcus Klaas
82b27fc4ab Correctly format typed self in function arguments 2015-08-14 11:56:27 +02:00
Gaëtan Cassiers
0e10329dc7 Separate modules and files listing of reformatting
As suggested in #141
Closes #156
2015-08-02 13:07:27 +02:00
Marcus Klaas
0f640b06dd Properly format unsafe blocks 2015-08-02 12:40:02 +02:00
Nick Cameron
ed889e01db Merge pull request #144 from marcusklaas/single-use
Format simple imports
2015-07-26 09:38:07 +12:00
Gaëtan Cassiers
efda914ab9 Add regression tests for binOps 2015-07-25 23:28:31 +02:00
Marcus Klaas
397d0d3d72 Format simple imports 2015-07-25 23:17:56 +02:00
Gaëtan Cassiers
30b16bc474 Move 'use' to Rewrite
Implements Rewrite for ViewPath

Behavior change: always use max_width instead of ideal_width for use
list rewrite. I think it looks better, was also suggested by @nrc in
https://github.com/nrc/rustfmt/issues/82#issuecomment-105314265
2015-07-25 19:00:38 +02:00
Gaëtan Cassiers
ff301efa4e Fix width computation in rewrite_binary_op
Operator width was counted twice.
2015-07-25 18:58:16 +02:00
Nick Cameron
8461e8a0a8 Merge pull request #147 from marcusklaas/even-more-expr
Format if expressions & loops
2015-07-25 09:51:59 +12:00
Nick Cameron
4aa24f5962 Merge pull request #158 from marcusklaas/modules
Use new module code from libsyntax
2015-07-25 09:48:58 +12:00
Marcus Klaas
3aa03dcc25 Use new module code from libsyntax 2015-07-24 19:25:01 +02:00
Marcus Klaas
c4101de53d Refactor some things; add extra tests. 2015-07-24 19:00:14 +02:00
Marcus Klaas
d7fe47d858 Preserve box syntax 2015-07-23 23:08:41 +02:00
Marcus Klaas
d13fc2289a Fix underflow bug in rewrite_call
Fixes https://github.com/nrc/rustfmt/issues/148.
Now properly propagates the rewrite failure instead of panicking. Added regression test from servo code. This example will be properly rewritten when https://github.com/nrc/rustfmt/issues/17 is addressed.
2015-07-22 23:43:24 +02:00
Marcus Klaas
500fb78a33 Format unnamed function arguments 2015-07-20 20:07:54 +02:00
Marcus Klaas
2fa6220f57 Format all the loops! 2015-07-19 23:43:32 +02:00
Marcus Klaas
2fda8dd883 Format if-let-else expressions 2015-07-19 23:43:03 +02:00