Stéphane Campinas
ab7f4e19eb
rewrite_comment: fix block fallback when failing to rewrite an itemized block
...
Close #3224
2018-12-02 00:22:36 +01:00
Stéphane Campinas
d03d9a45ef
end expressions like return/continue/break with a semicolon
...
Close #3213
2018-11-29 20:39:07 +01:00
Stéphane Campinas
40174e9481
fix the visitor's starting position when visiting a labelled block
...
Close #3217
2018-11-28 22:50:17 +01:00
Nick Cameron
bbc380b1e6
Merge pull request #3221 from alexreg/cosmetic-1
...
Cosmetic improvements
2018-11-28 15:29:18 +13:00
Alexander Regueiro
7fb5c0b0c9
Cosmetic improvements
2018-11-27 23:03:09 +00:00
Nick Cameron
378994b858
Add a version option
2018-11-27 14:18:14 +13:00
Stéphane Campinas
a2da636ab3
allow to run a rustfmt command from cargo-fmt even when there is no target
2018-11-26 20:39:12 +01:00
Nick Cameron
b9f4624ca6
fixup minor bugs
2018-11-19 14:09:29 +13:00
Nick Cameron
3d01fc186a
Merge pull request #3177 from kestred/kstenerson/preserve-brace-leading-ws
...
Format brace-delimited macros with a space after the name
2018-11-19 13:35:09 +13:00
Seiichi Uchida
1dd54e67a1
Prefer to break arguments over putting output type on the next line ( #3190 )
2018-11-18 21:31:40 +09:00
Kevin Stenerson
bc5124e016
Always enforce exactly one space between macro!
and braces ({}
)
2018-11-17 11:53:11 -07:00
Kevin Stenerson
1a3bc79c68
Preserve possibly one whitespace for brace macros
2018-11-16 14:57:43 -07:00
Matthias Krüger
3aa153398a
fix a few clippy warnings
...
types.rs:
fix single_char_pattern (use character patters instead of string for .ends_with() and .starts_with()
patterns.rs
expr.rs
file_lines.rs:
fix into_iter_on_ref_ptr (use iter() or iter_mut() instead of into_iter()
tests/mod.rs:
check_files(): take Option<PathBuf> by reference
2018-11-16 22:25:33 +01:00
Nick Cameron
dd7add784b
Don't align comments on extern crate
s
...
Closes #3128
2018-11-15 21:38:01 +13:00
Stéphane Campinas
a4e97fa17b
compute the span after a struct-like item based on the ident description
2018-11-13 21:10:30 +01:00
Stéphane Campinas
d121d7205f
fix logic for adding or not a newline after a missed span
2018-11-09 20:50:07 +01:00
Nick Cameron
4e2f741917
Merge pull request #3175 from kestred/kstenerson/delimited-overflow
...
Add config option to more aggressively allow overflow
2018-11-09 15:46:23 +13:00
Kevin Stenerson
97843377ee
Replace always true conditionals with true
2018-11-08 19:26:12 -07:00
Nick Cameron
6efc963245
Merge pull request #3188 from scampi/issue3124
...
do not add a newline after a missed span if it is the end of a block comment
2018-11-09 15:26:05 +13:00
Nick Cameron
c4cc479fcd
Merge pull request #3183 from scampi/issue3182
...
do not wrap comments in doctest to avoid failing doctest runs
2018-11-09 15:14:44 +13:00
Stéphane Campinas
f570438e75
do not add a newline after a missed span if it is the end of a block comment
2018-11-08 22:44:59 +01:00
Seiichi Uchida
9534dfc062
Cargo update ( #3186 )
...
Update `rustc-ap-*` crates to 290.0.0.
2018-11-08 23:16:13 +09:00
Alan Du
3986e690d1
Do not count /*/ as both start and end comment ( #3185 )
2018-11-08 14:28:08 +09:00
Stéphane Campinas
a5043a81be
do not wrap comments in doctest to avoid failing doctest runs
2018-11-07 16:48:39 +01:00
Stéphane Campinas
9467033a8e
fix the logic for retaining a comment before the arrow in a match
2018-11-07 15:00:33 +01:00
Kevin Stenerson
cd8bb50aea
Trim the indentation on macros which heuristically appear to use block-style indentation ( #3178 )
2018-11-07 17:49:53 +09:00
Kevin Stenerson
25b828d35f
Add config option to more aggressively allow overflow
2018-11-05 21:12:40 -07:00
Nick Cameron
16d5f507b6
Merge pull request #3172 from scampi/issue3153
...
trim the start of a line when wrapping an item in preparation for formatting
2018-11-06 10:23:30 +13:00
Stéphane Campinas
5a2ebdddcc
trim the start of a line when wrapping an item in preparation for formatting
2018-11-05 20:22:06 +01:00
Rémy Rakic
83d1d9aa14
normalize_doc_attributes: remove leading whitespace from the doc comment opener
...
Remove possible whitespace from the `CommentStyle::opener()` so that the literal itself has control over the comment's leading spaces.
This is most useful for tools, such as bindgen, to allow for example: machine-readable comments with precise syntax rules, or idempotently round-tripping between the proc-macro API and rustfmt.
2018-11-05 18:24:36 +01:00
Stéphane Campinas
7132fe03a0
fix alignment of a struct's fields with the visual style
...
- rewrite_with_alignment was called from the expr module with the wrong
shape that missed the extra offset needed for the visual style
- rewrite_with_alignment was indenting the given shape although that
should have been the caller's responsability
2018-11-04 23:41:21 +01:00
Nick Cameron
8506f5e5ce
Merge pull request #3159 from scampi/issue-3132
...
The method trim_left_preserve_layout didn't handle tabs properly.
2018-10-31 14:33:11 +13:00
Nick Cameron
2c471a559f
Merge pull request #3152 from topecongiro/do-not-override-edition-in-rustfmt-toml
...
Use edition in rustfmt.toml when no command line argument is passed
2018-10-31 13:31:24 +13:00
Stéphane Campinas
2d718a3fc2
The method trim_left_preserve_layout didn't handle tabs properly.
...
This is fixed by taking the method macros::indent_macro_snippet which
essentially does the same: it indents a paragraph while preserving the
layout.
2018-10-30 20:24:03 +01:00
Emilio Cobos Álvarez
4a82252f03
missed-spans: Fix bogus check.
...
I don't really know what it's trying to do, but forgetting about everything
you've seen before when you see whitespace followed by a semicolon doesn't look
right to me, and absolutely no tests were hitting that.
This check was introduced in 5ecdd072d6
, however
it was wrong even at that point, and now rustfmt still passes that test,
regardless of macro name.
Fixes #3154 .
2018-10-30 03:21:28 +01:00
Seiichi Uchida
6fa804deba
Use edition in rustfmt.toml when no command line argument is passed
2018-10-29 22:53:29 +09:00
Nick Cameron
1f64f4012f
Merge pull request #3141 from dfyz/issue-2810
...
Try to fix formatting failures on Windows (issue #2810 )
2018-10-29 11:29:51 +13:00
Nick Cameron
bdd40493ca
Merge pull request #3144 from otavio/issues-3143
...
cargo-fmt: Fix splitting of targets across editions
2018-10-29 11:22:05 +13:00
Ivan Komarov
00a20bceff
Fix formatting failures on Windows
...
When newline_style is set to Windows, an empty line inside of a macro
results in `\r` being passed to the `fold()` in `MacroBranch::rewrite()`.
`\r` is technically not an empty string, so we try to indent it, leaving
trailing whitespaces behind, even though that was not intended
(as far as I can see).
This commit replaces the `!l.is_empty()` check with calling
`is_empty_line()`, since trying to indent any whitespace-only string
will probably result in problematic trailing whitespaces.
Fixes : #2810
2018-10-28 02:37:55 +03:00
Otavio Salvador
12275f2e6a
cargo-fmt: Fix splitting of targets across editions
...
When I reworked the code, it ended not generating the complete list of
need targets. Fix it.
Fixes : #3143 .
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-27 16:13:22 -03:00
Otavio Salvador
3efca8a596
cargo-fmt: Add --edition when printing the command
...
By mistake, it was forgotten to print out the edition in use when
printing the rustcmd command. Fix it.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-27 11:49:48 -03:00
Seiichi Uchida
5ca90edc5b
Do not remove path disambiugator inside macro
2018-10-27 11:22:40 +09:00
Nick Cameron
8fb1b179bf
Merge pull request #3140 from matthiaskrgr/redundant_clones
...
fix clippy::redundant_clones warnings.
2018-10-27 12:29:59 +13:00
Matthias Krüger
68638508d4
fix clippy::redundant_clones warnings.
2018-10-26 14:45:25 +02:00
Seiichi Uchida
7093bbe2ff
Simplify handling parens on generic bound trait
2018-10-26 16:39:35 +09:00
Otavio Salvador
9c3ae2d951
Stabilize edition
configuration option
...
Refs: #3104 .
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-24 22:49:17 -03:00
Nick Cameron
6739dbe77d
Merge pull request #3129 from otavio/issue-3104
...
cargo-fmt: detect Rust edition in use
2018-10-25 13:39:40 +13:00
Otavio Salvador
de0b661bfa
cargo-fmt: Take into account the edition for each target
...
When formatting the crate, with `cargo fmt`, it parses each target
with the specific Rust edition.
Fixes : #3104 .
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-24 10:01:08 -03:00
Stéphane Campinas
2f5d864c08
keep track of lines which formatting was disabled in order to prevent indentation which would cause code right-shifting
2018-10-24 12:11:11 +02:00
Stéphane Campinas
9c75a15f4c
Fix handling of code that is annotated with rustfmt::skip.
...
A rustfmt::skip'ed block is indented although original lines are
returned. In order to resolve this, the leading whitespaces are trimmed
on each line while retaining the layout; this leaves the skipped code
to be indented as necessary by the caller.
2018-10-24 12:11:11 +02:00
JoshBrudnak
799005f6ae
Treat crates non-alphabetically Fixes : #3118
2018-10-23 07:10:00 -04:00
Otavio Salvador
e41fcb137c
rustfmt: add support to specify the Rust edition as argument
...
The new `--edition` command line argument allow the setting of the
desired Rust edition to be used.
Refs: #3104 .
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-23 02:33:38 -03:00
Otavio Salvador
2eab9714e4
lib: export config::Edition so it can be used externally
...
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-23 02:33:36 -03:00
Otavio Salvador
584d871494
config: use 2015 as default Edition
...
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-23 02:33:33 -03:00
Otavio Salvador
e9fa99d8b8
rustfmt: avoid duplicating the error handling for --emit
...
There is no need to produce the error message again as it is already
produced by the helper method that does the emit mode validation.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-23 02:33:25 -03:00
Nick Cameron
825207dd2e
Merge pull request #3126 from topecongiro/issue-3117
...
Use correct width when formatting type on local statement
2018-10-23 10:35:32 +13:00
Seiichi Uchida
086c183447
Use correct width when formatting type on local statement
2018-10-22 22:20:51 +09:00
Matthias Krüger
b25f974c0d
fix a few typos found via codespell.
2018-10-19 12:28:00 +02:00
Matthias Krüger
8c996331cc
fix a couple of clippy lint warnings
...
simplify a comparison with "true"
fn can_be_overflowed: remove unused lifetime
fn rewrite_pairs_one_line: pass "list" by reference (it is not consumed in the function)
fn span_for_token_stream: pass "token_stream" by reference since it is not consumed
use tool lints for clippy suppressions
2018-10-19 01:11:28 +02:00
Nick Cameron
e633f2b3f5
Merge pull request #3109 from scampi/issue-3038
...
force a newline after the `if` condition if there is a different indentation level
2018-10-18 19:56:17 +13:00
Nick Cameron
4bb84f6002
Remove NLL feature
...
And do some refactoring in comments.rs
Closes #3107
2018-10-18 15:39:11 +13:00
Nick Cameron
613dfcc521
Remove various feature flags
2018-10-18 15:38:57 +13:00
Seiichi Uchida
8c4e92a14e
Catch parser panic in format_snippet ( #3103 )
2018-10-17 14:21:04 +09:00
Stéphane Campinas
30c06da781
force a newline after the if
condition if there is a different
...
indentation level
2018-10-15 23:24:35 +02:00
Nick Cameron
c09d7ef088
Merge pull request #3106 from sinkuu/clippy
...
Clippy and cleanups
2018-10-16 09:09:56 +13:00
Nick Cameron
5f02be6294
Merge pull request #3102 from nrc/arm-guard-newline
...
Only put `{` on a newline in a match arm where necessary
2018-10-16 09:06:15 +13:00
Nick Cameron
bc4414e53c
Merge pull request #3101 from nrc/pair-newline
...
Simplify multi-lining binop exprs
2018-10-16 09:01:40 +13:00
Shotaro Yamada
6c964fd030
Reduce allocations
2018-10-15 23:59:08 +09:00
Shotaro Yamada
6fb188bd43
Use concat() instead of join("")
2018-10-15 23:59:08 +09:00
Shotaro Yamada
6380f88527
Cleanup
2018-10-15 23:59:08 +09:00
Shotaro Yamada
751bcf5fa0
Clippy
2018-10-15 23:59:08 +09:00
Shotaro Yamada
d55729987f
Use UnOp::to_string
2018-10-15 23:59:08 +09:00
Shotaro Yamada
094e687e42
Remove an unsafe code
2018-10-15 23:58:59 +09:00
Daniele D'Orazio
075aa909cd
try to fix comment bad wrapping ( #3099 )
2018-10-15 11:18:37 +09:00
Nick Cameron
e29fd7bebe
Only put {
on a newline in a match arm where necessary
...
Fixes #3005
2018-10-15 14:06:52 +13:00
Nick Cameron
51ddac33c5
Merge pull request #3096 from otavio/use-bytecount-count
...
utils: rewrite `count_newlines` using `bytecount::count`
2018-10-15 11:07:58 +12:00
Nick Cameron
cbd568083d
Fixup formatting
2018-10-15 11:52:27 +13:00
Nick Cameron
b81b902821
Simplify situations in which the last sub-expr in a bin-op can go multiline without making the whole expr multiline
...
Fixes #3034
2018-10-15 11:48:12 +13:00
Otavio Salvador
e203057db0
utils: rewrite count_newlines
using bytecount::count
...
This uses a optimized byte count and also makes use of SIMD
instructions to optimize the processing of the byte arrays.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-14 18:27:35 -03:00
Nick Cameron
a6ef302236
Merge pull request #3100 from topecongiro/issue-3092
...
Fix poor formatting of empty trait with generic bounds
2018-10-15 08:07:59 +12:00
Nick Cameron
2f8c1fea72
Merge pull request #3093 from scampi/issue2633
...
do not vertically align list items in case the tactic is Horizontal
2018-10-15 07:57:39 +12:00
Nick Cameron
945fb504b1
Merge pull request #3091 from topecongiro/issue-3060
...
Do not add parens around lifetimes
2018-10-15 07:40:34 +12:00
Seiichi Uchida
5f5d04283c
Use correct width
...
When rewriting trait bounds on the next line, we do not want to add an extra
indentation. However, the max width should be smaller.
2018-10-14 21:47:55 +09:00
Seiichi Uchida
fdfb489c48
Add a correct indent before trait's closing brace with empty body
2018-10-14 21:47:55 +09:00
Seiichi Uchida
c4a8cdcdf1
Merge pull request #3095 from otavio/avoid-overflow-control-flow-expr
...
Avoid control flow expressions conditions to go multi line
2018-10-14 21:03:27 +09:00
Seiichi Uchida
8dfdca9390
Merge pull request #3094 from otavio/avoid-unwrap-or
...
Replace `.unwrap_or` with `.map_or` in few places
2018-10-14 21:02:39 +09:00
Otavio Salvador
ef59b34cd7
Avoid control flow expressions conditions to go multi line
...
Extends the multi line condition to over other control flow
expressions, it now covers: `if`, `if let`, `for`, `loop`, `while`,
`while let` and `match`.
Refs: #3029
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-13 14:12:43 -03:00
Stéphane Campinas
8f7a0470b0
handle lines prefixed with a # inside code blocks
2018-10-13 09:57:43 +02:00
Otavio Salvador
6d7fef078e
bin: replace .unwrap_or
with .map_or
...
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-12 20:22:10 -03:00
Otavio Salvador
5d4ed07f1c
config: replace .unwrap_or
with .map_or
...
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-12 20:21:48 -03:00
Otavio Salvador
2e9a97a84d
expr: replace .unwrap_or
with .map_or
...
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-12 20:21:22 -03:00
Otavio Salvador
8feeddf1f8
Only combine match
if its condition expression fits in a single line
...
This improves the formatting and reading of code avoiding the
condition expression to be rewrite, if it goes multi line.
Fixes : #3029 .
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-12 20:12:45 -03:00
Otavio Salvador
b144adf3be
closures: replace .unwrap_or
with .map_or
...
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-12 20:07:25 -03:00
Stéphane Campinas
78d9091aff
do not vertically align list items in case the tactic is Horizontal
2018-10-12 20:41:56 +02:00
Seiichi Uchida
0ac68c9477
Do not add parens around lifetimes
...
Parens should be added only around trait objects.
2018-10-13 00:42:25 +09:00
Nick Cameron
8b709c0019
Add attr_fn_like_width
to the width heuristics
...
It is a bit larger than than `fn_call_width` which we used previously, so fewer attributes get reformatted.
Closes #2929
2018-10-12 15:20:42 +13:00
Nick Cameron
b82949b36e
Merge pull request #3089 from topecongiro/format-comment
...
Add format_doc_comments
2018-10-12 09:55:45 +12:00
Seiichi Uchida
b2de574848
Add format_doc_comments
2018-10-11 23:34:36 +09:00
Seiichi Uchida
0f6607bb8a
Merge pull request #3088 from otavio/fix-misleading-comment
...
rewrite: adjust comment as it refers to `is_if_else_block`
2018-10-11 22:52:17 +09:00
Otavio Salvador
6391b7ab35
rewrite: adjust comment as it refers to is_if_else_block
...
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-11 10:37:15 -03:00