Nick Cameron
9eb78a3333
Fallout
2017-02-23 13:15:48 +13:00
Nick Cameron
b35906dbce
WIP
2017-02-21 16:35:05 +13:00
Nick Cameron
428339fdc3
Refactor indent and width into Shape struct
2017-01-31 08:35:23 +13:00
Nick Cameron
e018712612
process cfg'ed off modules
...
Fixes #1229
Fixes #1277
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
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
Nick Cameron
d3eba76e4d
update Serde, etc.
...
Lots of changes to how closures work
2016-11-21 11:02:18 +13:00
Fraser Hutchison
aef665aa21
Fixes a few doc typos.
2016-11-03 04:22:16 +00:00
Philip Craig
c4a7a7108e
Preserve macro formatting if we can't rewrite it
2016-10-03 14:14:56 +10:00
Nick Cameron
e1d7b8ea01
Merge pull request #1162 from sinkuu/fix1040
...
Fix #1040
2016-09-19 14:35:42 +12: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
a3c63fdef9
Run clippy
2016-08-29 08:57:27 +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
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
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
Kamal Marhubi
bd10af127e
utils: Move codemap related utilities to a dedicated module
...
This commit adds a `codemap` module, and moves the `CodemapSpanUtils`
added in #857 to it. This is preparation for adding more `Codemap`
specific utilities.
Refs #434
2016-05-31 00:49:26 +02:00
Kamal Marhubi
80c56a01ff
visitor: Add debug log for FmtVisitor::visit_stmt()
2016-05-31 00:43:48 +02:00
Nick Cameron
5436977bd5
Merge pull request #1017 from marcusklaas/tweak-if-else
...
Format non-statement if-else expressions on a single line
2016-05-31 01:57:29 +12:00
Kamal Marhubi
120e1a0b51
deps: Update syntex_syntax to 0.33
...
This bump brings syntex_syntax support for `..` in tuple and tuple
struct patterns, which come from RFC 1492:
https://github.com/rust-lang/rfcs/blob/master/text/1492-dotdot-in-patterns.md
These new patterns are not properly handled in this PR; instead #1021
tracks supporting them.
Refs #1021
2016-05-30 14:53:04 +02:00
Marcus Klaas
98c0570a28
Format non-statement if-else expressions on a single line
2016-05-29 17:58:38 +02: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
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
Daniel Campbell
238fc500ae
Altered FmtVisitor to function correctly on generated code
2016-05-06 13:51:48 +12:00
Nick Cameron
90c0f708f5
Merge pull request #971 from kamalmarhubi/update-syntex-syntax
...
deps: Update syntex_syntax to 0.31.0
2016-05-03 09:19:50 +12: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
Kamal Marhubi
6285d53885
Handle new visibility types more gracefully
2016-05-02 01:05:23 -04:00
Kamal Marhubi
fd38acb86f
deps: Update syntex_syntax to 0.31.0
...
Most of the churn on this bump comes from the `Visibility` enum changing
from
pub enum Visibility {
Public,
Inherited,
}
to
pub enum Visibility {
Public,
Crate,
Restricted { path: P<Path>, id: NodeId },
Inherited,
}
which require taking `Visibility` by reference in most places. The new
variants are not handled at this point.
Refs #970
2016-05-01 23:06:58 -04: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
mrBliss
b0755581ca
Format visibility of associated consts ( #953 )
...
Fixes #951 .
2016-04-19 20:19:14 +02: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
Marcus Klaas
9e5c0390a0
Properly format macro's with an extra ident
2016-03-29 23:16:40 +02: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
7a6eb2197e
Merge branch 'master' of https://github.com/rust-lang-nursery/rustfmt into add-trait-formatting
2016-03-14 20:49:14 -06:00
Connor Brewster
2793b4090c
Added tests
2016-03-14 20:05:20 -06:00
Connor Brewster
7ba43ff06e
Finished implementing impl and trait type/const
2016-03-14 19:52:07 -06:00
Nick Cameron
da65090050
Merge pull request #857 from kamalmarhubi/codemap-ext
...
utils: Add CodeMapExt extension trait for span_* methods
2016-03-14 18:00:51 +13:00
Kamal Marhubi
d82d9fc808
utils: Add CodeMapSpanUtils trait for span_* methods
...
This commit adds a CodeMapSpanUtils extension trait on CodeMap, and
moves some functions to methods there:
- span_after
- span_after_last
- span_before
This better reflects them being lookup methods on the codemap.
2016-03-13 18:14:07 -04:00
Connor Brewster
3163071c75
Updated to latest rustfmt
2016-03-12 11:09:27 -07:00
Connor Brewster
de95b4cefb
Removed unneeded pattern matching
2016-03-11 22:50:30 -07:00
Connor Brewster
34651c4f78
Fixed formatting
2016-03-11 22:41:22 -07:00
Connor Brewster
d24c31f74c
Added support for associated type rewriting
2016-03-11 22:32:08 -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
Kamal Marhubi
589dabda2f
deps: Update syntex_syntax to 0.29.1
2016-03-02 13:08:21 -05: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
a0e85f9a5f
Put empty modules on one line
...
Fixes #463
2016-01-28 19:53:41 +13:00
Kevin Yeh
f01ed6f507
Format item macros
2016-01-22 13:43:18 -06: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
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
e94bd34a06
cargo upgrade, bug fix, and prepare for packaging
2015-12-08 16:19:23 +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
Ms2ger
1ed36a3a6b
Use starts_with to avoid panics.
2015-12-04 16:10:14 +01:00
Marcus Klaas
0fb9611786
Don't include failed item rewrites in missed spans
2015-11-30 23:12:50 +01:00
Markus Westerlind
c61d6d4c3a
Format type aliases
...
Fixes #486
2015-11-26 21:04:49 +01:00
Seo Sanghyeon
2b11d84119
Apply Clippy
2015-11-25 15:39:15 +09: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
Jakko Sikkar
411fa40988
update dependencies and fix compile errors
2015-11-23 20:54:33 +02:00
Nick Cameron
2661592d59
Handle multiply-referenced files
...
Fixes #645
2015-11-23 15:22:00 +13:00
Nick Cameron
9cf8529e33
Implement formatting for impls
...
Fixes #614
2015-11-23 13:09:00 +13:00
Nick Cameron
ba936766c6
Take rustfmt_skip attribute into account on modules
...
Closes #632
2015-11-23 09:20:53 +13:00
Marcus Klaas
1b0ae00488
Extract fn rewrite methods from RewriteVisitor
2015-11-22 13:45:51 +01:00
Marcus Klaas
49e2a146b1
Rewrite module declarations
2015-11-21 21:06:29 +01:00
Kevin Yeh
2e9b6dfab4
Combine rewrite_single_line_fn and rewrite_fn
2015-11-19 20:49:24 -06: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
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
Nick Cameron
56a765ef05
Rustup
2015-11-16 14:16:46 +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
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
d135217db2
show rustfmt coverage!
2015-10-24 15:22:37 +05:30
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
Marcus Klaas
e8447a8210
Fix large block comments
2015-10-19 23:06:36 +02:00
Marcus Klaas
3970748f59
Remove overflow indentation
2015-10-19 23:06:36 +02:00
Marcus Klaas
11756d2ef8
Refactor enum formatting
2015-10-19 21:28:05 +02:00
Marcus Klaas
7e0456b852
Format visibility for statics and consts
2015-10-19 20:08:03 +02:00
Marcus Klaas
3ce425c9ed
Factor out common item indentation idiom
2015-10-18 22:59:39 +02:00
Marcus Klaas
1a7d39041e
Format constants and static variables
2015-10-18 21:36:26 +02:00
Marcus Klaas
b039e3a8c3
Force semicolons after break/continue/return. Remove after blocks.
2015-10-15 19:55:42 +02: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
Marcus Klaas de Vries
5eeae3944e
Merge pull request #404 from marcusklaas/rewrite-list-fmt
...
List formatting refactoring
2015-10-06 22:29:52 +02:00
Marcus Klaas
199d40fa55
Increase default function call width limit
2015-10-06 22:27:11 +02:00
Marcus Klaas
84718b5b90
Format rustfmt's own indices
2015-10-02 11:48:52 +02:00
Nick Cameron
617eed353c
Changes to rustfmt source
2015-09-26 18:29:48 +12:00
Nick Cameron
99d71a164a
Changes to source formatting
2015-09-26 13:58:12 +12:00
Marcus Klaas
a7690cb1e5
Make rewrite_string return Option<String>
2015-09-25 13:01:20 +02:00
Marcus Klaas
71faa8984d
Format foreign functions and statics
2015-09-21 20:02:45 +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
01bdcd0014
Remove unnecessary config parameter from format_missing_with_indent.
2015-09-19 10:44:28 -07:00
Pavel Sountsov
620650219e
Use the block_indent inside visit_expr.
...
This seems to pass all the tests and greatly improves the formatting output
when using hard tabs.
2015-09-19 10:36:46 -07:00
Pavel Sountsov
03e1b27826
Add Indent::none(), remove make_indent.
2015-09-19 10:36:45 -07:00
Pavel Sountsov
d4108a3029
Initial implementation of hard tab indentation.
2015-09-19 10:36:45 -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
f751356910
Format macro invocations
2015-09-16 20:26:14 +02:00
Marcus Klaas
a9814149c9
Align dots in chained expressions
2015-09-11 00:53:01 +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
Marcus Klaas
d05a41c773
Add failure mode to write_list
2015-09-07 20:35:25 +02:00
Andre Bogus
d6c652e33c
code improvements suggested by clippy
2015-09-04 23:39:33 +02:00
Nick Cameron
a5f8b37eeb
Format match expressions properly when they appear on an overflowing line.
2015-09-02 14:29:47 +12:00
Marcus Klaas
85ddf35385
Rustup
...
Fix breakage caused by rust commit 2076cdd
.
2015-09-01 20:28:38 +02:00
Gaëtan Cassiers
5e445697ce
Implement Rewrite for [ast::Attribute]
2015-08-27 22:29:07 +02:00
Simon Bernier St-Pierre
6adb6a1d1a
Fix build on nightly
...
https://github.com/rust-lang/rust/pull/27857
2015-08-25 17:37:48 -04:00
Marcus Klaas
120fd2426e
Format assignment
2015-08-25 21:43:13 +02:00
Ivan Apachev
c7e6d0b54a
Replace uses of x.len() == 0 by x.is_empty() #187
2015-08-25 01:07:48 +03:00
Marcus Klaas
c8fd23ca68
Refactor closure formatting routine
2015-08-20 23:05:41 +02:00
Nick Cameron
a43e2b5ae8
Formatting
2015-08-20 08:11:14 +12:00
Marcus Klaas
41bca58100
Format paths
2015-08-16 22:53:06 +02:00
Gaëtan Cassiers
0eab4bf430
Remove ChangeSet of FmtVisitor
2015-08-02 13:12:51 +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
Marcus Klaas
54a96355dd
Phase out token::get_ident in favour of ToString
...
token::get_ident was removed in rust commit 00a5e66f81
2015-07-31 13:10:19 +02:00
cassiersg
92b3f69934
Add a helper method to format imports
2015-07-25 19:00:38 +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
Nick Cameron
8461e8a0a8
Merge pull request #147 from marcusklaas/even-more-expr
...
Format if expressions & loops
2015-07-25 09:51:59 +12:00
Marcus Klaas
3aa03dcc25
Use new module code from libsyntax
2015-07-24 19:25:01 +02:00
Marcus Klaas
2fa6220f57
Format all the loops!
2015-07-19 23:43:32 +02:00
Nick Cameron
c3375078e5
Merge pull request #137 from nrc/struct-lit-opt
...
Options for formatting struct literals
2015-07-17 06:57:01 +12:00
Nick Cameron
f2bcee9d87
Tidy up some overrunning lines
2015-07-16 14:23:48 +12:00
Nick Cameron
018fa85453
Reformat code to new struct lit style
2015-07-16 14:05:10 +12:00
Marcus Klaas
b473c2bd2a
Format loops
2015-07-15 23:33:01 +02:00
Gaëtan Cassiers
990a123e1c
Run rustfmt on the code
2015-07-03 11:13:28 +02:00
Gaëtan Cassiers
3de366d282
Format modules into separate files
2015-07-03 11:12:21 +02:00
Marcus Klaas
482f200b0b
Update import list formatting
...
Include comments and sort items alphabetically.
2015-06-26 03:43:12 +02:00
Marcus Klaas
0ef5db9496
Format tuple-like structs
2015-06-23 16:54:42 +02:00
Marcus Klaas
d7b49fd76c
Remove global mutable config to allow for concurrency
2015-06-23 13:26:04 +02:00
Nick Cameron
1488d5eadb
Merge pull request #90 from marcusklaas/empty-imports
...
Remove empty list imports
2015-06-22 17:32:55 -07:00
Gaëtan Cassiers
b7ead806f4
Use FromIterator implementation for Option
...
Combined with try_opt!, this avoid an explicit for loop or another macro.
2015-06-23 02:15:46 +02:00
Gaëtan Cassiers
c012d311c4
A basic impl of Rewrite for ast::Expr
2015-06-23 02:15:46 +02:00
Marcus Klaas
27d6558964
Remove empty list imports
2015-06-02 23:55:16 +02:00
Marcus Klaas
90bc40a111
Implement basic enum formatting
2015-06-02 15:52:07 +02:00
Gaëtan Cassiers
113bdaa119
Fix #79
2015-05-25 13:22:10 +02:00
Nick Cameron
e7adf64155
Format structs
2015-05-25 17:07:55 +12:00
Nick Cameron
1a09a6d00a
Use config file for constants
2015-05-23 17:53:53 +12:00
Marcus Klaas
4aa3518703
Format required methods on traits
2015-05-12 02:37:05 +02:00
Nick Cameron
e2a5d94e3f
Merge pull request #68 from marcusklaas/import-breaks
...
Keep import lists on a single line when possible
2015-05-12 09:39:22 +12:00
Oliver Schneider
853b58901b
typo
2015-05-11 15:05:12 +02:00
Marcus Klaas
c790d7d550
Keep import lists on a single line when possible
2015-05-04 22:22:31 +02:00
Marcus Klaas
58a14fbc79
Correctly indent use items and functions
2015-05-04 09:25:20 +02:00
Nick Cameron
0931b7c6df
Merge pull request #45 from tbu-/pr_toowned
...
Change `to_string` to `to_owned` when it just creates a `String` from a `&str`
2015-04-30 21:10:54 +12:00
Tobias Bucher
5247d98d31
Change to_string
to to_owned
when it just creates a String
from a &str
...
This means that it doesn't have to go through the formatting hierarchy and can
just immediately reserve enough memory.
2015-04-30 10:31:42 +02:00
Manish Goregaokar
9398aed82c
Handle pub use ( fixes #23 )
2015-04-30 13:52:28 +05:30
Nick Cameron
f61ad35494
Preserve linebreaks in doc comments
2015-04-29 16:25:52 +12:00
Nick Cameron
16f9057975
Better handle trait items
2015-04-29 15:24:20 +12:00
Nick Cameron
2e485ea086
Better attribute handling
2015-04-29 15:03:15 +12:00
Nick Cameron
40be79304e
Tweak rules around attributes for modules
2015-04-28 22:19:25 +12:00
Nick Cameron
a84287c6b0
Comments in function decls and annotations/doc comments
2015-04-28 20:56:01 +12:00
Nick Cameron
c00970f5e9
Indenting for modules
...
rustfmt now bootstraps!
2015-04-23 18:43:46 +12:00
Nick Cameron
bc7855d347
Idempotent tests and comments in function decls
2015-04-23 16:22:48 +12:00
Nick Cameron
4c869a1b9d
Extract out more files
2015-04-21 21:01:19 +12:00