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
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
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
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
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
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
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
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
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
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
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
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
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
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
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