Commit Graph

3070 Commits

Author SHA1 Message Date
Stéphane Campinas
be0ada27f4 Add comment which refers to an issue on nightly-only test
Co-Authored-By: topecongiro <seuchida@gmail.com>
2019-03-17 12:33:18 +09:00
topecongiro
7fc4e418bf Tweak test settings 2019-03-17 12:33:18 +09:00
topecongiro
d0e96ed331 Do not look for external modules when the input is from stdin 2019-03-17 12:33:18 +09:00
topecongiro
92f57211c1 Support path-clarity submodule 2019-03-17 12:33:13 +09:00
topecongiro
bde77714e6 Disable self_tests on beta channel 2019-03-17 12:21:57 +09:00
Stéphane Campinas
2d5bc69475
remove trailing whitespaces in missing spans 2019-03-16 12:23:02 +01:00
Seiichi Uchida
ce5cccc32c
Update rustc-ap-* crates to 407.0.0 (#3447) 2019-03-14 22:50:53 +09:00
Seiichi Uchida
331a0500ce
Merge pull request #3441 from rchaser53/const-generics
implement for const generics
2019-03-14 22:50:20 +09:00
rchaser53
f0c861bfa9 implement for const generics 2019-03-13 03:58:23 +09:00
Seiichi Uchida
5f3dfe6c51
Format the if expression at the end of the block in a single line (#3338) 2019-03-11 23:18:43 +09:00
rchaser53
40ff078abf fix 'Ident of macro+ident gets duplicated' error 2019-03-10 22:58:34 +09:00
Seiichi Uchida
06fc39f905
Merge pull request #3424 from Xanewok/modified-lines-for-stdin
Support EmitMode::ModifiedLines with stdin input
2019-03-05 20:54:50 +09:00
Igor Matuszewski
fbfda614be Remove redundant closure 2019-03-04 18:32:58 +01:00
Igor Matuszewski
6b993c8b8b Fix stdin_works... test on Windows 2019-03-04 18:28:25 +01:00
Igor Matuszewski
8aa0f44d15 Remove eprintln 2019-03-04 18:19:30 +01:00
Igor Matuszewski
b3c28dba83 Expose ModifiedLines and implement parsing data from the string output
This moves `Modified{Chunks,Lines}` from `src/formatting.rs` to
`src/rustfmt_diff.rs` and reexports it in `src/lib.rs`.

With this, a conversion from `Vec<Mismatch>` to `ModifiedLines` was implemented
and now this implements complementary `Display` and `FromStr`, which
simplified the previously used `output_modified` function and which allows to
parse the raw data emitted with `EmitMode::ModifiedLines`.
2019-03-04 18:19:30 +01:00
Igor Matuszewski
0437bf7a7d Allow for stdin input in EmitMode::ModifiedLines 2019-03-04 18:19:30 +01:00
rchaser53
8e3ef3e3a9 fix not to remove comment in the case of no arg 2019-03-05 00:18:33 +09:00
rchaser53
dec3902076 leave post comment for self 2019-03-02 17:33:43 +09:00
rchaser53
ae7330eea4 leave pre comment for self 2019-02-24 22:05:08 +09:00
rchaser53
be7b3ba2e2 apply inline_attribute_width for extern crate 2019-02-23 13:46:41 +09:00
rchaser53
0e408bf83c add config inline_attribute_width
If the line width is width within config width, attribute is inline.
I don't want to change default rustfmt behavior, so config default value is 0.

- fix description
- fix test comment
- remove unnecessary clone
- remove unnecessary test file
- fix test for β version
- attributes => attribute
2019-02-23 13:40:11 +09:00
Alexander Regueiro
7a3b7c9275 Various cosmetic improvements (#3403) 2019-02-19 11:56:42 +09:00
Stéphane Campinas
e5284b1377
Merge pull request #3334 from rchaser53/issue-3227
fix Inconsistency between  loop  and while
2019-02-15 13:12:42 +01:00
Seiichi Uchida
b58ba97780
Merge pull request #3401 from topecongiro/rustcap
Cargo update
2019-02-14 11:26:05 +09:00
topecongiro
9df1ed6ab4 Cargo update
Update `rustc-ap-*` crates to 373.0.0.
2019-02-14 11:08:05 +09:00
rchaser53
7d9a2ef96d version/2: Align loop and while formatting
The loop and while formatting was diverting as  `loop`
was not being moved to a new, indented block, as `while`
was.

This commit fixes this inconsistency but pins it to version 2
to avoid changing existing code.
2019-02-14 10:06:29 +09:00
topecongiro
96a3df3b5c Format visibility on trait alias 2019-02-12 10:16:12 +09:00
Seiichi Uchida
ce682bdabc
Merge pull request #3335 from h-michael/rust-2018
Rust 2018 idioms
2019-02-11 01:12:38 +09:00
topecongiro
9a7ea6aacb Handle a macro argument with a single keyword
Closes #3331.
2019-02-11 00:34:23 +09:00
Seiichi Uchida
c4611a0e6b
Merge pull request #3326 from scampi/issue-3302
fix formatting of strings within a macro
2019-02-11 00:32:06 +09:00
Stéphane Campinas
b86dd161df
remove unneeded Version import 2019-02-09 14:23:54 +01:00
Hirokazu Hata
8183b949c4 cargo fmt 2019-02-09 16:20:38 +09:00
Hirokazu Hata
4bb90f5cc8 Fix rust_2018_idioms warnings 2019-02-09 16:14:30 +09:00
Hirokazu Hata
e70e6eb273 deny rust_2018_idioms 2019-02-09 15:55:17 +09:00
Hirokazu Hata
c0f93a6ea3 cargo +nightly fix --edition-idioms 2019-02-09 15:53:12 +09:00
Seiichi Uchida
672f352c89
Merge pull request #3325 from topecongiro/rustcap
Update rustc-ap-* crates to 366.0.0
2019-02-08 00:24:57 +09:00
Evgenii
2502939b60 fix review comments 2019-02-07 10:55:55 +03:00
Stéphane Campinas
813aa79567
fix formatting of strings within a macro 2019-02-07 00:05:05 +01:00
Seiichi Uchida
6541f200c9 Fix how we get span of the PathSegment separator 2019-02-06 23:06:47 +09:00
topecongiro
f4f9502ea7 Cargo update
- Update `rustc-ap-*` crates to 366.0.0
- Update the other crates to the latest stable
2019-02-06 23:06:15 +09:00
Evgenii
da2d8a4c57 calculate statement first line properly 2019-02-06 10:05:51 +03:00
Seiichi Uchida
aec0a7c999
Merge pull request #3318 from rchaser53/issue-3314
fix Removed indentation after nested comments error
2019-02-05 14:03:05 +09:00
rchaser53
5fcb7507ca fix Removed indentation after nested comments error 2019-02-05 13:12:45 +09:00
Evgenii
ece629b1cc transition to Rust 2018 2019-02-04 13:30:43 +03:00
Seiichi Uchida
bfcfaf1743
Merge pull request #3308 from topecongiro/issue-2835
Prioritize single_line_fn and empty_item_single_line over brace_style
2019-02-04 00:11:01 +09:00
Seiichi Uchida
efd6fda43f
Merge pull request #3311 from rchaser53/issue-3295
fix "internal error: left behind trailing whitespace" with long lines
2019-02-04 00:10:42 +09:00
rchaser53
c2534f5324 fix "internal error: left behind trailing whitespace" with long lines 2019-02-01 19:58:38 +09:00
topecongiro
0142e961ad Prioritize single_line_fn and empty_item_single_line over brace_style
When either one of these two options are set to `true`, each should take
precedence over the brace_style option.

This commit does not introduce any formatting change to the default
configuration, so no version gate is required.
2019-02-01 00:22:47 +09:00
topecongiro
154ccf6a02 Do not force trailing comma when using mixed layout 2019-01-31 23:44:58 +09:00
Seiichi Uchida
923da60f72
Merge pull request #3298 from topecongiro/issue-3272
Use the same rule between function and macro
2019-01-30 00:36:55 +09:00
topecongiro
181ca427dc Use the same rule with macro and function calls with a single chain 2019-01-28 23:05:42 +09:00
topecongiro
5df0a18849 Avoid putting a long macro call in a single line 2019-01-28 23:05:39 +09:00
Seiichi Uchida
36c9dc646c
Merge pull request #3293 from scampi/issue-3241
Keep leading colons for global paths
2019-01-27 23:14:57 +09:00
Mara Bos
635a4cdcdc Also look in home directory for global config. 2019-01-27 13:22:25 +01:00
Mara Bos
24daa174ca Look for a global rustfmt.toml.
If no rustfmt.toml is found in the usual way, the directory 'rustfmt' in
the user's config directory is checked.

 - $XDG_CONFIG_HOME/rustfmt/ (or $HOME/.config/rustfmt/), or
 - $HOME/Library/Preferences/rustfmt/ on Mac, or
 - %AppData%\rustfmt\ on Windows.
2019-01-27 13:22:25 +01:00
Stéphane Campinas
2125ad272e
fix glob and nested global imports 2019-01-27 12:46:14 +01:00
Seiichi Uchida
203e6d265d
Merge pull request #3294 from rchaser53/issue-3278
change new line point in the case of no args
2019-01-27 16:28:28 +09:00
Seiichi Uchida
35d5ef7828
Apply rustfmt::skip on imports (#3289) 2019-01-27 16:26:09 +09:00
rchaser53
f92f3e3bda add the version gate to the code and test 2019-01-27 14:38:57 +09:00
Matthias Krüger
d44ee75438 update dependencies
update itertools from 0.7 to 0.8
update env_logger from 0.5 to 0.6
update cargo_metadata from 0.6 to 0.7
update bytecount from 0.4 to 0.5
2019-01-27 00:58:46 +01:00
rchaser53
7b996542cc change new line point in the case of no args 2019-01-26 00:16:51 +09:00
Stéphane Campinas
a2bfc026e5
keep leading double-colon to respect the 2018 edition of rust's paths 2019-01-23 00:01:53 +01:00
Nick Cameron
d2e91b5b68
Merge pull request #3284 from scampi/issue-3270
recognize strings inside comments in order to avoid indenting them
2019-01-17 20:22:36 +13:00
Stéphane Campinas
083a20fb1a
version-gate the formatting of commented strings 2019-01-16 23:06:28 +01:00
wada314
a01990c4d0 Use Unicode-standard char width to wrap comments or strings. (#3275) 2019-01-15 08:41:09 +09:00
Stéphane Campinas
503cddeb0f
Merge pull request #3225 from scampi/issue-3224
rewrite_comment: fix block fallback when failing to rewrite an itemized block
2019-01-14 14:41:00 +01:00
Stéphane Campinas
baa62c609e
recognize strings inside comments in order to avoid indenting them
Close #3270
2019-01-10 21:04:16 +01:00
Nick Cameron
2c204c11d1
Merge pull request #3260 from topecongiro/issue-3004
Do not modify original source code inside macro call
2019-01-07 17:39:05 +13:00
David Hewson
a8d2591f0c allow specifying package with -p
currently `cargo fmt -p blah` is rejected but `cargo fmt --package blah` is allowed. both should be allowed
2019-01-01 17:49:55 +00:00
Stéphane Campinas
3b18238009
simplify function to create a string from the itemized block 2018-12-25 23:15:52 +01:00
Seiichi Uchida
996d5e8d6c
Fix shape when formatting return or break expr on statement position (#3259) 2018-12-25 18:20:29 +09:00
wada314
09c9cd4125 Fix issue #3263 (#3264) 2018-12-25 18:03:48 +09:00
Seiichi Uchida
84702bc289
Merge pull request #3266 from wada314/fix-2973
Fix issue #3265
2018-12-25 18:00:45 +09:00
Shohei Wada
d504a66076 Remove a trivial redundant code.
self.base.peek().is_none() case is already catched by the line above.
2018-12-24 17:48:42 +09:00
Shohei Wada
e37f468b21 Change \r detection much simpler. 2018-12-24 07:25:15 +09:00
Shohei Wada
f3f511af1b Fix #2973 in Windows CRLF env. 2018-12-24 06:12:28 +09:00
topecongiro
49568d7f76 Do not modify original source code inside macro call 2018-12-20 01:14:14 +09:00
Stéphane Campinas
e305262493
clarify the version-gate used for the #3229 change 2018-12-19 09:36:47 +01:00
Seiichi Uchida
3f6ea7788b
Merge pull request #3240 from Xanewok/parser-panic
Catch possible tokenizer panics
2018-12-18 11:30:08 +09:00
Seiichi Uchida
d1c7afe080
Merge pull request #3250 from scampi/issue3229
version-gate the trailing semicolon change of return statements inside a match arm
2018-12-18 11:22:45 +09:00
Philipp Hansch
d0785954c8 Fix trim_right/trim_left deprecation warnings (#3252) 2018-12-18 11:21:31 +09:00
Andreas Jonson
653f3ae636 use the rustfmt function to find the bin
makes it possible to execute the test after a release build
2018-12-14 23:32:25 +01:00
Andreas Jonson
836562baf4 remove deprecated dependency assert_cli 2018-12-14 23:32:08 +01:00
Stéphane Campinas
b73a602d6e
version-gate the trailing semicolon change of return statements inside a match arm 2018-12-14 09:54:23 +01:00
Igor Matuszewski
c7ee2a2857 Don't ignore parse error when constructing report 2018-12-13 13:35:15 +01:00
Igor Matuszewski
a2042a6470 Use non-panicking maybe_parser_from_source_str 2018-12-13 13:35:15 +01:00
Igor Matuszewski
10b9afa906 Add test asserting we catch Rust parser panics 2018-12-13 13:35:15 +01:00
kngwyu
fd27eabbb7 Update rustc-ap-syntax to 306.0 2018-12-08 14:39:52 +09:00
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 crates
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
Stéphane Campinas
7003276b73
fixed display message for the LineOverflow error 2018-10-11 09:05:33 +02:00
Nick Cameron
3c9ec96094
Merge pull request #3084 from otavio/issue-1990
Enable `stdin_disable_all_formatting_test` test
2018-10-10 10:40:18 +12:00
Nick Cameron
4895699e88
Merge pull request #3083 from scampi/itemized_blocks
Handle itemized blocks in comments
2018-10-10 10:38:54 +12:00
Stéphane Campinas
375c87820f
rewrite_string: detect when a url is being split and place the new line
after it
2018-10-09 21:47:32 +02:00
Otavio Salvador
2ae1b4804c Enable stdin_disable_all_formatting_test test
Fixes: #1990.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-09 09:06:16 -03:00
Stéphane Campinas
c0b7222e2d
handle itemized items inside comments 2018-10-09 00:44:59 +02:00
Nick Cameron
2f25ae7e57
Merge pull request #3082 from otavio/bump-dependencies
Bump dependencies
2018-10-09 08:01:25 +12:00
Otavio Salvador
0279b7d02c Replace isatty crate with atty
The `isatty` crate has been deprecated and a replacement has been
released for it called `atty`. It offers a nicer API and the code
change to adapt is trivial.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-10-08 14:39:16 -03:00
Stéphane Campinas
8b3788d875
rewrite_string: allow to break on a boundary character that is on edge 2018-10-08 14:48:15 +02:00
Stéphane Campinas
bb7442802a
rewrite_string: retain blank lines that are trailing 2018-10-08 14:48:15 +02:00
Stéphane Campinas
1c6a2e3de8
rewrite_string: take care of blank lines appearing within the last line 2018-10-08 14:48:14 +02:00
Stéphane Campinas
3205e17cc3
rewrite_string: handle newlines in the last line that fits in the shape for cases where line_start is not a whitespace 2018-10-08 14:48:14 +02:00
Stéphane Campinas
2fc1de6b4a
rewrite_string: do not overflow the next line when the line_start is not a whitespace 2018-10-08 14:48:13 +02:00
Stéphane Campinas
f46082fbd8
rewrite_string: trim trailing whitespace in case the last_line fits in the given shape 2018-10-08 14:48:13 +02:00
Seiichi Uchida
70177a08a4 Format a macro call with multile item-like arguments 2018-10-08 13:52:26 +09:00
Seiichi Uchida
baa20dfcf1 Format a macro call with a single item-like argument 2018-10-08 13:50:03 +09:00
Nick Cameron
1b2e72726f
Merge pull request #3078 from YaLTeR/fix-closure-indentation
Fix inconsistent overflow behavior in Visual style
2018-10-08 14:38:49 +13:00
Nick Cameron
832a912f79
Merge pull request #3077 from YaLTeR/fix-extra-commas
Get rid of extra commas in Visual struct literal formatting
2018-10-08 14:37:48 +13:00
Nick Cameron
4dc5557625
Merge pull request #3070 from topecongiro/issue-3030
Format a paren expr with double slash comment
2018-10-08 13:05:36 +13:00
Nick Cameron
80d744973f
Merge pull request #3069 from topecongiro/issue-3003
Consider a multi-lined array as a block-like expression
2018-10-08 13:04:45 +13:00
Nick Cameron
d0c6a6d642
Merge pull request #3067 from topecongiro/refactor-toexpr
Add println!-like heuristic to the fail attribute
2018-10-08 12:38:33 +13:00
Nick Cameron
b32cf4aad8
Merge pull request #3063 from otavio/add-doc-is_doc_comment
comment: Add documentation to `is_doc_comment` public method
2018-10-08 10:41:18 +13:00
Seiichi Uchida
003fc730e6 Fix empty types being inserted to closure
cc https://github.com/rust-lang/rust/pull/54229.
2018-10-07 00:52:06 +09:00
Ivan Molodetskikh
dee68434e6
Overflow Visual functions even with one argument 2018-10-06 16:32:38 +03:00
Ivan Molodetskikh
cbaed838d5
No trailing comma in struct literals (Visual) 2018-10-06 10:59:47 +03:00
Stéphane Campinas
4b26723e55
format_strings: take into account newline occurring within a rewritten line 2018-10-02 00:41:56 +02:00
Seiichi Uchida
70c8e366a6 Format a paren expr with double slash comment 2018-10-01 00:07:18 +09:00
Seiichi Uchida
30048222f2 Consider a multi-lined array as a block-like expression 2018-09-30 23:28:14 +09:00
Seiichi Uchida
4a15875f07 Add a test for #3003
and run cargo fmt.
2018-09-30 23:28:03 +09:00
Seiichi Uchida
6e901c8f37 Format and update test 2018-09-30 08:05:45 +09:00
Seiichi Uchida
d7e1f0006a Put arguments of the fail attribute on the same line as println! 2018-09-30 08:05:45 +09:00
Seiichi Uchida
052ba6c5df Move maybe_get_args_offset to overflow.rs 2018-09-30 08:05:45 +09:00
Seiichi Uchida
63387824b3 Avoid using to_expr as much as possible 2018-09-30 08:05:45 +09:00
Seiichi Uchida
c302409f56 Get rid of ToExpr trait 2018-09-30 08:05:35 +09:00
Seiichi Uchida
755d27a424 Take impl Iterator for overflow routines 2018-09-29 14:33:00 +09:00
Otavio Salvador
301ddd39db comment: Add documentation to is_doc_comment public method
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-09-28 10:01:07 -03:00
Nick Cameron
4c1b0c2241
Merge pull request #3061 from mehcode/feature/default-edition
Fix help message for edition config option
2018-09-28 21:54:29 +12:00
Nick Cameron
3dc6eed601
Merge pull request #2816 from moxian/enum-discrim
Add option to vertically align enum discriminants.
2018-09-28 21:48:57 +12:00
Ryan Leckey
c7377c3555 Fix help message for edition config option 2018-09-27 22:31:17 -07:00
Seiichi Uchida
86fff9eafa
Merge pull request #3050 from andrehjr/empty-impl-body-with-braces-newline
Trait Implementation - Adds a newline before the last brace on impls without a body if the first brace is also on a newline
2018-09-28 11:10:58 +09:00
Stéphane Campinas
2bcc3a9302 do not format a code block in documentation if it is annotated with ignore or text (#3058) 2018-09-28 11:06:29 +09:00
moxian
65ae0b9a09 Change enum align semantics to care about absolute length, rather than difference.
If we're only aligning enum discriminants that are "not too far apart
(length-wise)", then this works really well for enums with
consistently-long or consistently-short idents, but not for the mixed
ones.
However, consistently-long idents is somewhate of an uncommon case and
overlong idents may be allowed to be formatted suboptimally if that
makes mixed-length idents work better (and it does in this case).
2018-09-26 18:47:17 +00:00
moxian
cc22869fb4 Add option to vertically align enum discriminants. 2018-09-26 14:35:38 +00:00
André Luis Leal Cardoso Junior
2727d41ddb Makes brace behavior consistent with empty bodies for traits and impls
Adds a newline before the last brace on impls without a body if the first brace is also on a newline
2018-09-26 09:44:13 -03:00
Nick Cameron
88f3b32e43 Remove unnecessary feature flag 2018-09-25 18:23:17 +12:00
Nick Cameron
ac6871f376
Merge pull request #3048 from emilio/merged-comments
lists: Detect block comment by starting from the end.
2018-09-24 14:22:01 +12:00
Nick Cameron
1e60c6118e
Merge pull request #3045 from scampi/issue2917
Prevent right-shifting of block comments with bare lines.
2018-09-24 14:11:46 +12:00
Emilio Cobos Álvarez
66c15e46ba
lists: Detect block comment by starting from the end.
The issue with the current code is that comments are collapsed, so comments like
the one from the test end up in a string like:

```
"// this is a single line comment\n/* block = */"
```

I chose to fix it by detecting whether we're in a block comment starting from
the end instead, and tested a single-line comment ended in `*/` just for sanity,
ensuring line breaks are not removed in that case, which would break the
formatting.

The right fix eventually is probably to lex the comments properly, but this does
the work for now, I guess :)

Fixes #3025
2018-09-22 12:16:38 +02:00
Stéphane Campinas
5fdb6db136
Prevent right-shifting of block comments with bare lines.
Lines that didn't start with a comment sigil were returned unchanged in
comment::rewrite_comment. Then these unchanged lines were indented in
MacroBranch::rewrite.
2018-09-22 00:09:11 +02:00
Diogo Sousa
98a0ef2436 Fix bug in import where two consecutive module separators were possible.
Fixes #3043.
2018-09-21 18:51:19 +01:00
Seiichi Uchida
f70d139f9c Do not trim a block from expression if its condition will go multi-line 2018-09-21 00:58:47 +09:00
Nick Cameron
cd8549e013
Merge pull request #3036 from topecongiro/issue-2932
Combine chain items only when the item gets orphaned otherwise
2018-09-20 11:36:46 +12:00
Seiichi Uchida
e2b9c66cc9 Cargo fmt 2018-09-19 23:22:26 +09:00
Seiichi Uchida
d4f7e219dc Fix shape for index 2018-09-19 23:21:07 +09:00
Seiichi Uchida
76650174c7 Combine chain items only when the item will get orphaned 2018-09-19 23:20:43 +09:00
Seiichi Uchida
7eca33f8a5 Format generics on associated types 2018-09-19 22:33:28 +09:00
Nick Cameron
829dbfabe9
Merge pull request #3028 from scampi/issue2973
Fix indent computation of a macro with braces.
2018-09-19 11:31:28 +12:00
Nick Cameron
1739041f03
Merge pull request #3002 from lqd/normalize-doc-attributes
normalize_doc_attributes option: convert doc attributes to comments
2018-09-19 11:05:27 +12:00
Nick Cameron
2267c2cddc
Merge pull request #3001 from scampi/issue2977
propagate errors about failing to rewrite a macro
2018-09-19 10:43:21 +12:00
Nick Cameron
14fdf2e6b1
Merge pull request #3014 from PSeitz/master
fixes #2914 by handling BadIssue case
2018-09-19 10:42:16 +12:00
Seiichi Uchida
661bea71c1
Merge pull request #3013 from YaLTeR/fix-issue-2985
Fix wrong shape for last chain items for indent_style = "Visual"
2018-09-18 20:21:21 +09:00
Nathan Sutton
d165533813 Improve error message when failing cargo metadata (#3024) 2018-09-18 20:20:07 +09:00
Seiichi Uchida
abe1e60a73
Merge pull request #3017 from matthiaskrgr/typo
cargo fmt: fix typo in format_crate(): (verison -> version)
2018-09-18 20:17:59 +09:00
Nick Cameron
01c14a2058
Merge pull request #3012 from YaLTeR/fix-issue-2496
Fix match arm block flattening
2018-09-18 21:12:12 +12:00
Stéphane Campinas
c3edf6d3a1
Fix indent computation of a macro with braces.
The leading whitespace of a multine string was taken into account when
computing the `min_prefix_space_width`, even if that line couldn't be
trimmed. The consequence is it was always shifting the macro's content
to the right.
2018-09-18 00:01:51 +02:00
Rémy Rakic
6c96ab7c9a address review comment in Attribute rewrite fn 2018-09-13 01:13:07 +02:00
Rémy Rakic
9f6cf7b72c move config attribute 2018-09-13 00:37:31 +02:00
Matthias Krüger
5947ea607c cargo fmt: fix typo in format_crate(): (verison -> version) 2018-09-12 21:43:31 +02:00
Stéphane Campinas
1befc93ba0
implement Drop from FmtVisitor in order to simplify failures passing 2018-09-12 13:09:07 +02:00
Nick Cameron
81a4235c7f
Merge pull request #3000 from dimbleby/dch/typo
Fix typo in usage text
2018-09-12 15:33:18 +12:00
Nick Cameron
f5f64b3b4a
Merge pull request #2998 from ReapOmen/fix-rustfmt-diff-output
Change `print_diff` to output the correct line number.
2018-09-12 15:32:27 +12:00
Nick Cameron
e39bd35ae1
Merge pull request #3010 from topecongiro/issue-3009
Refactor the corner case of handling long function
2018-09-12 13:55:41 +12:00
Nick Cameron
bba7dbf2d7
Merge pull request #3011 from topecongiro/rustc-ap-syntax
Cargo update
2018-09-12 13:55:06 +12:00
Ivan Molodetskikh
11435c5954
Don't insert a new line when fn has no return type 2018-09-11 12:34:33 +03:00
Pascal Seitz
60c414c857 fixes #2914 by handling BadIssue case 2018-09-11 10:46:39 +02:00
Ivan Molodetskikh
4b4fb557d7
Fix last chain item shape for Visual indent_style 2018-09-11 11:09:31 +03:00
Ivan Molodetskikh
838df8dfb6
Use correct heuristic for match block flattening 2018-09-11 08:54:43 +03:00
Seiichi Uchida
e06f16a0a5 Cargo update 2018-09-11 13:52:46 +09:00
Seiichi Uchida
d8357484ac Refactor the corner case of handling long function 2018-09-11 13:31:37 +09:00
Nick Cameron
77824a24ef
Merge pull request #2988 from YaLTeR/fix-issue-2922
Use correct indent in rewrite_bare_fn with Visual style
2018-09-11 15:50:13 +12:00
Alex Crichton
46e2a2e7c7 Support platforms without a timer
I've dabbled recently in seeing how hard it would be to compile rustfmt to wasm
and then run it in a web browser, and it turns out that it's [not too
hard][wasm]! In addition to patching a few dependencies which already have a
number of patches out rustfmt also needed some modifications to get it to work,
namely avoiding the usage of `Instant::now()` on the "happy path" which doesn't
work on wasm (it just panics).

This commit is an attempt to add a support for this by avoiding using
`Instant::now()` on the wasm target, but panicking if the actual time elapsed is
requested (which doesn't happen unless verbosely logging I believe).

[wasm]: https://alexcrichton.github.io/rustfmt-wasm/
2018-09-09 11:13:15 -07:00
lqd
4b7130dfa1 normalize_doc_attributes option: convert doc attributes to comments
Convert `#![doc]` and `#[doc]` attributes to `//!` and `///` doc comments.
2018-09-07 21:58:35 +02:00
Stéphane Campinas
6f318e3cef
propagate errors about failing to rewrite a macro 2018-09-07 14:48:52 +02:00
David Hotham
90ec5a226f Fix typo in usage text 2018-09-07 09:01:44 +01:00
Robert Bartlensky
992b179d33 Change print_diff to output the correct line number. 2018-09-06 17:18:33 +01:00
Matthias Krüger
e058a3f7e7 fix cargo test --release.
test::verify_check_works was failing in relase mode on my machine.

The problem was it would check for target/debug/rustfmt in release mode instead of
target/release/rustfmt and fail an assert.

This commit fixes it so that cargo check looks for target/debug/rustfmt and
cargo check --release looks for target/release/rustfmt
2018-09-06 02:07:09 +02:00
Nick Cameron
f655671e12
Merge pull request #2983 from topecongiro/issue-2642
Handle raw string literals in CharClasses
2018-09-04 19:11:49 +12:00
topecongiro
1704e24956 Cargo update 2018-09-04 00:17:26 +09:00
Nick Cameron
2291be7fa1
Merge pull request #2992 from max-sixty/clippy2
Clippy 2/2
2018-09-03 13:25:35 +12:00
Nick Cameron
a67208f212
Merge pull request #2986 from topecongiro/issue-2907
Handle chain w/ try operators with spaces
2018-09-03 13:10:50 +12:00
Nick Cameron
5fb9418aec
Merge pull request #2991 from topecongiro/raw-identifier-in-chain
Handle raw identifiers in chain
2018-09-03 13:08:19 +12:00
Maximilian Roos
968affc3e0
final clippy changes 2018-09-01 16:32:38 -04:00
Seiichi Uchida
08e282877a Handle raw identifiers in chain 2018-09-01 16:18:27 +09:00
Ivan Molodetskikh
54f8bcb5a2
Use correct fn args indent for Visual 2018-08-31 16:53:18 +03:00
Ivan Molodetskikh
05b6aaa130
Add debug logging to fn-related functions 2018-08-31 16:52:45 +03:00
Ivan Molodetskikh
6a029974de
Fix shape in rewrite_tuple_in_visual_indent_style 2018-08-31 15:50:41 +03:00
Seiichi Uchida
20aac086d6 Simplify post-comment extraction 2018-08-31 18:20:28 +09:00
Seiichi Uchida
9df1dbe1ac Use trim_tries to extract post comment over simple trim_matches 2018-08-31 18:20:28 +09:00
Seiichi Uchida
612f1af734 Use trim_tries to extract pre-comments over simple trim_matches 2018-08-31 18:20:28 +09:00
Seiichi Uchida
2880d59ec0 Add trim_tries 2018-08-31 18:20:25 +09:00
Ryan Leckey
eec74360dc Accept 2015 and 2018 instead of Edition2015 and Edition2018 for edition option 2018-08-31 00:04:23 -07:00
Maximilian Roos
b1da2a53b4
Merge branch 'master' into clippy2 2018-08-31 00:19:12 -04:00
topecongiro
67480422b9 Handle raw string literal without any sharps 2018-08-31 10:49:39 +09:00
topecongiro
309be479b2 Handle raw string literals in CharClasses 2018-08-31 10:37:46 +09:00
Seiichi Uchida
ad903e08fd Keep formatting fn even if there is an unformattable argument 2018-08-30 23:39:39 +09:00
Nick Cameron
1a6f215fb5
Merge pull request #2975 from max-sixty/clippy
Some clippy changes
2018-08-30 16:43:04 +12:00
Maximilian Roos
7d60e3a1ad
more clippy 2018-08-28 21:57:08 -04:00
Maximilian Roos
df72570b58
set of clippy changes 2018-08-28 00:33:51 -04:00
crw5996
18cd0c4986 Fixed overly complicated code as requested in the code review 2018-08-27 23:08:37 -04:00
crw5996
d832525809 Merge branch 'master' of https://github.com/rust-lang-nursery/rustfmt into fix-use-bug 2018-08-27 23:04:55 -04:00
crw5996
20075306f7 Fixed Issues brought up in PR 2018-08-27 22:59:44 -04:00
crw5996
5d642e8b23 Fixed #2955. Added value to determine whether or not rustfmt has condensed a tuple-struct
Refactored to not use a mutable variable
2018-08-27 15:25:40 -04:00
Seiichi Uchida
0d60f6715d Use span_ends_with_comma to find a trailing comma in an attribute 2018-08-27 16:37:58 +09:00
Nick Cameron
97d29ff2e1
Merge pull request #2942 from crw5996/fix-ellipsis-bug
Fix Issue with ellipsis matching in pattern.rs
2018-08-27 09:44:28 +12:00
Nick Cameron
d456161b67
Merge pull request #2966 from topecongiro/issue-2953
Format in-place expression like assignment
2018-08-27 09:39:08 +12:00
Nick Cameron
454a20ac01
Merge pull request #2948 from CAD97/patch-2
Consider "dev" as nightly for feature (un)gating
2018-08-27 09:23:16 +12:00
Seiichi Uchida
78a0cde5bf Format in-place expression like assignment 2018-08-26 13:20:25 +09:00
Seiichi Uchida
6aae9d870f Remove an unnecessary attribute 2018-08-26 13:20:07 +09:00
Zach Lute
ca19c9a35a Fix build with rust nightly by updating try block syntax. (#2965) 2018-08-26 13:02:24 +09:00
Maximilian Roos
10512a59d0 Impl only use (#2951) 2018-08-24 14:39:05 +09:00
chris
4e748a269e Fixed ellipsis bug where rustfmt was creating code that could not be parsed 2018-08-24 00:58:21 -04:00
cad97
fc1909d311 Reformat 2018-08-23 17:14:19 -04:00
cad97
04d804c365 Rename CodeMap/FileMap to SourceMap/SourceFile
#2946
2018-08-23 17:10:46 -04:00
Christopher Durham
8cc4200b7d
Consider "dev" as nightly for feature (un)gating 2018-08-23 04:28:44 -04:00
Christopher Durham
a15df80e96
Consider "dev" as nightly for feature (un)gating
Closes #2940
2018-08-23 04:24:15 -04:00
Nick Cameron
8573df602a
Merge pull request #2925 from scampi/issue539
discard trailing blank comments
2018-08-23 10:13:56 +12:00
Nick Cameron
f40baaa272
Merge pull request #2935 from topecongiro/rustc-ap-syntax
Cargo update
2018-08-21 20:28:56 +12:00
Nick Cameron
127a480726
Merge pull request #2915 from Xanewok/file-lines-ser-json
Expose FileLines JSON representation
2018-08-21 20:26:25 +12:00
Seiichi Uchida
05a0c8140d Update import path to ThinVec 2018-08-19 00:26:34 +09:00
Stéphane Campinas
2db2327aaf
fix verbose output 2018-08-16 20:00:49 +02:00
Stéphane Campinas
dd14d304ef
discard trailing blank comments 2018-08-16 19:59:32 +02:00
Stéphane Campinas
f23e6aaaf9
fix the identification of a block comment.
Block comments like below were not properly supported:

    /*
       something here but it doesn't start with a star
     */

because of the line that didn't start with a star.
2018-08-16 19:55:15 +02:00
Seiichi Uchida
b318e5a684 Increase the max width by tab width when using format_code_block
since the macro body will be surrounded by fn main block.
2018-08-16 07:49:55 +09:00
Seiichi Uchida
9a5a86164f Reduce the max width by the width of indent 2018-08-16 07:49:55 +09:00
Igor Matuszewski
9d52940dbe Run cargo fmt 2018-08-14 23:23:00 +02:00
Igor Matuszewski
38361c05bc Make file_lines_to_json test deterministic 2018-08-14 23:22:09 +02:00
Igor Matuszewski
4604f46ce8 Expose FileLines JSON representation 2018-08-14 13:33:58 +02:00
Seiichi Uchida
934cf2807d Remove a wildcard parttern from slice patterns 2018-08-12 23:56:09 +09:00
Nick Cameron
66d3924aa8
Merge pull request #2899 from topecongiro/chain-with-comments
Format chains with comment
2018-08-07 15:07:23 +12:00
Seiichi Uchida
a201d856d1 Add comment 2018-08-06 22:34:58 +09:00
Seiichi Uchida
4ad1c66001 Use custom path value if one exists when searching modules 2018-08-06 22:28:05 +09:00
Nick Cameron
803d000ed3
Merge pull request #2900 from topecongiro/combine-attrs
Combine function-like attributes
2018-08-06 19:37:05 +12:00
Nick Cameron
e4d560b914
Merge pull request #2897 from topecongiro/issue-2896
Ignore comment in wrap_str
2018-08-06 19:36:03 +12:00
Nick Cameron
8cd6633499
Merge pull request #2892 from topecongiro/issue-2884
Explicitly handle semicolon after the item in statement position
2018-08-06 19:34:44 +12:00
Nick Cameron
f6a76c443e
Merge pull request #2890 from topecongiro/use-builder-pattern-for-ListFormatting
Use builder pattern for ListFormatting
2018-08-06 19:34:08 +12:00
Seiichi Uchida
b1c241ea72 Combine list-like attributes 2018-08-06 08:10:19 +09:00
Seiichi Uchida
4bbfe0829d Fix chain with many try operators 2018-08-05 21:03:45 +09:00
Seiichi Uchida
e6d814c423 Put comment between chain elements on its original position 2018-08-05 19:55:22 +09:00
Seiichi Uchida
24fccdc45c Factor out functions that extract comments around items 2018-08-05 19:55:03 +09:00
Seiichi Uchida
3ec6de1de8 Add FIXME comment 2018-08-05 15:06:05 +09:00
Seiichi Uchida
49945a14f7 Format 2018-08-05 15:04:48 +09:00
Seiichi Uchida
9e113b5bab Do not handle comment when converting try
As we get faulty span.
2018-08-05 15:03:36 +09:00
Seiichi Uchida
75967f0da2 Add a space before comment that comes after a block-like chain item 2018-08-05 14:37:13 +09:00
Seiichi Uchida
91c058a516 Veto putting a chain with comment in a single line 2018-08-05 14:34:34 +09:00
Seiichi Uchida
caefd218c9 Do not combine short parent and comment 2018-08-05 14:28:20 +09:00
Seiichi Uchida
e6bde923f5 Format comment between chain elements 2018-08-05 14:28:10 +09:00
Seiichi Uchida
844e878d12 Add Comment to ChainItemKind 2018-08-05 14:27:47 +09:00
Seiichi Uchida
fc3ea494ac Make children list in-order
instead of working on reveresed list.
2018-08-05 13:54:28 +09:00
Seiichi Uchida
c480309aad Get correct span 2018-08-05 13:35:33 +09:00
Seiichi Uchida
c20bf454c9 Add Span field to ChainItem 2018-08-05 13:02:24 +09:00
Seiichi Uchida
c5b36f53ae Normalize chain elements
Instead of passing around a list of subexpressions ([`a`, `a.b`, `a.b.c`]),
we now use a list of chain element ([`a`, `.b`, `.c`]). This should make it
easier to extract comments between chain elements.
2018-08-05 11:45:05 +09:00
Seiichi Uchida
2eeb366311 Ignore comment in wrap_str 2018-08-05 10:50:43 +09:00
Seiichi Uchida
2eca09e438 Fix parsing '#'-hiding of rustdoc 2018-08-05 08:44:20 +09:00
Seiichi Uchida
d96e3ca604 Explicitly handle semicolon after the item in statement position 2018-08-04 09:59:38 +09:00
Seiichi Uchida
1a6df18d6f Remove pub(self) 2018-08-04 08:47:48 +09:00
Seiichi Uchida
e5c79bb26b Fix imports 2018-08-03 22:14:45 +09:00
Seiichi Uchida
024c03e81b Use builder pattern for ListFormatting 2018-08-03 22:13:20 +09:00
Seiichi Uchida
1928ae78a2 Regard digits as an upper case character 2018-08-03 20:06:36 +09:00
Nick Cameron
5ed600cbeb
Merge pull request #2879 from RReverser/master
Fix check for unstable features
2018-08-01 10:28:49 +12:00
Nick Cameron
df2e8bb594
Merge pull request #2873 from aloucks/auto-detect-newline-style
Auto-detect newline style by default
2018-08-01 10:06:31 +12:00
Ingvar Stepanyan
593a5c40a4 Use is_nightly helper instead of duplicate code 2018-07-31 11:53:22 +01:00
Ingvar Stepanyan
c25deef110 Fix check for unstable features
These features are registered only on Nightly and so matches.opt_present panics when it's called without the is_nightly guard.
2018-07-31 11:50:09 +01:00
Aaron Loucks
dab572e0b0 Increase capacity for newline conversion buffer 2018-07-30 23:19:46 -04:00
Nick Cameron
ca6b360c8a Emit 0 exit code for --version and similar operations
Fixes #2878
2018-07-31 13:41:49 +12:00
Nick Cameron
d43874113e Warn the user if using an unstable option without --unstable-options
Fixes #2796
2018-07-31 10:02:32 +12:00
Nick Cameron
3c20d8a9e6
Merge pull request #2874 from cavedweller/master
Format Async block and async fn
2018-07-31 08:52:07 +12:00
Benjamin Brittain
46b241004d fix nits 2018-07-29 17:20:21 -07:00
Ben Brittain
fedde3790c Add tests for async & async move 2018-07-29 08:55:36 -07:00
Ben Brittain
0b25f602fd Format Async block and async fn 2018-07-29 08:05:38 -07:00
Aaron Loucks
6ff2a5e0f3 Auto-detect newline style by default 2018-07-29 10:12:31 -04:00
Andrew Audibert
f121b1a3a9 Support raw identifiers in struct expressions 2018-07-28 19:40:52 -07:00
Nick Cameron
69ad879d52
Merge pull request #2864 from topecongiro/issue-2863
Modify the rule for reordering impl items
2018-07-27 16:24:46 +12:00
Nick Cameron
814f6339b4
Merge pull request #2862 from topecongiro/issue-2852
Preserve parens in trait bounds
2018-07-27 16:24:11 +12:00
Seiichi Uchida
7b37776ade Modify the rule for reordering impl items
1. If two items have the same kind, then reorder them based on its ident.
2. Handle existential type.
2018-07-26 21:37:23 +09:00
Seiichi Uchida
e6255ca3de Preserve parens in trait bounds 2018-07-25 18:27:25 +09:00
Nick Cameron
8ff2836eaf
Merge pull request #2861 from topecongiro/issue-2859
Put lifetimes after trait when they gets orphaned
2018-07-25 21:22:25 +12:00
Seiichi Uchida
339fa20973 Veto converting delimiters inside nested macro 2018-07-25 08:58:37 +09:00
Seiichi Uchida
6cecdd681f Put lifetimes after trait when they gets orphaned 2018-07-25 08:44:32 +09:00
Seiichi Uchida
975b3753ba Keep the inside macro context in nested macro call 2018-07-25 07:15:33 +09:00
Seiichi Uchida
6d7a764b3d Remove span from rewrite_generics's parameter
We can just use the span from ast::Generics.
2018-07-25 00:34:46 +09:00
Seiichi Uchida
fc307ff582 Format exitential type 2018-07-25 00:30:01 +09:00
Nick Cameron
43f178bd58 Remove Summary 2018-07-24 21:45:15 +12:00
Nick Cameron
df4fb8a05b Reformatting after rebase 2018-07-24 15:49:35 +12:00
Nick Cameron
f9510a55eb chains: fix visual indent chain layout 2018-07-24 15:46:39 +12:00
Nick Cameron
8618a55834 chains: treat some string lits as blocks 2018-07-24 15:46:39 +12:00
Nick Cameron
481e85cc58 formatting 2018-07-24 15:46:39 +12:00
Nick Cameron
f0fe9c3c4a chains: prefer to use the next line for an expression, if using the same line would introduce an open block or similar
This problem came to light due to the chains changes, but effects other code too. It only happens rarely, e.g.,

before this fix:
```
    match foo {
        MacroArgKind::Delimited(ref delim_tok, ref args) => rewrite_delimited_inner(
            delim_tok,
            args,
        ).map(|(lhs, inner, rhs)| format!("{}{}{}", lhs, inner, rhs)),
    };

```

after:
```
    match foo {
        MacroArgKind::Delimited(ref delim_tok, ref args) => {
            rewrite_delimited_inner(delim_tok, args)
                .map(|(lhs, inner, rhs)| format!("{}{}{}", lhs, inner, rhs))
        }
    }

```
2018-07-24 15:43:29 +12:00
Nick Cameron
5bc27593f4 chains: minor fixups
* remove unnecessary clone
* comment formatting
* fix bug with `?` collection
* respect the heuristic if the root is more than just the parent
2018-07-24 15:43:29 +12:00
Nick Cameron
467b095d48 chains: share code between block and visual formatters 2018-07-24 15:43:29 +12:00
Nick Cameron
f55cadb65a chains: refactor formatting of chain items 2018-07-24 15:43:29 +12:00
Nick Cameron
a56ff9d02f chains: factor into objects 2018-07-24 15:43:29 +12:00
Nick Cameron
86314bf09f chains: more refactoring of visual formatting 2018-07-24 15:43:29 +12:00
Nick Cameron
92701552bc chains: refactor block formatting 2018-07-24 15:43:29 +12:00
Nick Cameron
914e750c9e chains: further simplification 2018-07-24 15:43:29 +12:00
Nick Cameron
38e8b086e8 chains: refactoring
pre-process the expression tree to get a list of chain items.
2018-07-24 15:43:29 +12:00
Nick Cameron
9c82224746 chains: simplify visual formatting a bit 2018-07-24 15:43:29 +12:00
Nick Cameron
d244234607 factor out treatment of 1-length chains
And create `Chain` and `ChainItem` structs
2018-07-24 15:43:29 +12:00
Nick Cameron
a8d5f25572 chains: split handling of chains in block and visual cases
Just refactoring, lots of code dup here, but it should get better...
2018-07-24 15:43:29 +12:00
Nick Cameron
728b0182c5 Changes to chains with block indent
* More often combine a chain item to the previous line (if it is a block)
* Don't indent if the parent is a block

This is not perfect and doesn't pass tests, but I need to refactor to make more
progress
2018-07-24 15:43:29 +12:00
Nick Cameron
d3288841ea Refactoring: factor format_lines and format_project into smaller chunks 2018-07-24 15:17:47 +12:00
Nick Cameron
9fbce1f627 Reorganise formatting.rs 2018-07-24 14:10:09 +12:00