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
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
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
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
Seiichi Uchida
131f11a6e5
Add a test for #3139
2018-10-27 11:22:18 +09:00
Seiichi Uchida
2d0487164f
Add a test for #3137
2018-10-26 16:36:01 +09: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
Nick Cameron
c3ad58c381
Remove the source test file
2018-10-24 18:13:26 +13:00
JoshBrudnak
ce54aea4c8
Added test for crate non-alphabetizing
2018-10-23 19:00:42 -04: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
cf44c079c1
Add a test for #3117
2018-10-22 22:20:48 +09:00
Matthias Krüger
b25f974c0d
fix a few typos found via codespell.
2018-10-19 12:28:00 +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
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
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
Daniele D'Orazio
075aa909cd
try to fix comment bad wrapping ( #3099 )
2018-10-15 11:18:37 +09:00
Nick Cameron
e2be62c7a5
Add test (issue 3005)
2018-10-15 14:09:31 +13:00
Nick Cameron
7be173eb8c
add test
2018-10-15 12:09:53 +13: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
476992a15d
Add a test for #3092
2018-10-14 21:47:50 +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
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
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
6b33043e06
Add a test for #3060
2018-10-13 00:42:22 +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
Seiichi Uchida
b2de574848
Add format_doc_comments
2018-10-11 23:34:36 +09: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
Stéphane Campinas
c0b7222e2d
handle itemized items inside comments
2018-10-09 00:44:59 +02: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
Seiichi Uchida
a925bdf092
Add a test for #3031 and update test
...
No combining for an item-like macro argument.
2018-10-08 13:50:00 +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
Ivan Molodetskikh
dee68434e6
Overflow Visual functions even with one argument
2018-10-06 16:32:38 +03:00
Ivan Molodetskikh
6dc9b96651
Add a test for #3049
2018-10-06 16:32:27 +03:00
Ivan Molodetskikh
cbaed838d5
No trailing comma in struct literals (Visual)
2018-10-06 10:59:47 +03:00
Ivan Molodetskikh
cfe20fe585
Add a test for #3066
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
efe24bd7e7
Add a test for #3030
2018-10-01 00:06:37 +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
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
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
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
ec32c961d3
Add a test for #3040
2018-09-21 00:57:46 +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
594774b4e5
Update tests
2018-09-19 23:19:24 +09:00
Seiichi Uchida
8021b29405
Add a test for #3006
2018-09-19 22:33:25 +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
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
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
0c73b9414b
add test ensuring only doc = "" attributes are normalized to comments
...
The other shapes of doc attributes shouldn't be normalized or modified.
2018-09-13 02:40:24 +02:00
Rémy Rakic
cbc58410d9
add tests interleaving doc attrib comments and regular comments
2018-09-13 02:27:09 +02:00
Rémy Rakic
171e656f64
add non-regression test to existing attributes
...
when `normalize_doc_attributes` is on, they shouldn't be affected
2018-09-13 01:10:57 +02:00
Rémy Rakic
4af0888648
add non-regression test to existing doc attributes
...
when `normalize_doc_attributes` is off, they shouldn't be normalized to a doc comment
2018-09-13 01:06:02 +02:00
Rémy Rakic
43f813867c
add test with multiple levels of indents
2018-09-13 01:02:11 +02: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
Ivan Molodetskikh
2f03a31e1a
Add a visual fn type alias test
2018-09-11 12:34:21 +03:00
Ivan Molodetskikh
abcdc0fadd
Add a test for #2985
2018-09-11 11:09:31 +03:00
Ivan Molodetskikh
f116baeed7
Add a test for match flattening
2018-09-11 08:54:43 +03:00
Ivan Molodetskikh
bc03234e25
Add a test for #2496
2018-09-11 08:54:43 +03:00
Seiichi Uchida
9674e12a5c
Add a test for #3009
2018-09-11 13:30:36 +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
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
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
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
Seiichi Uchida
08e282877a
Handle raw identifiers in chain
2018-09-01 16:18:27 +09:00
Ivan Molodetskikh
430f848c75
Add a test for #2922
2018-08-31 16:25:01 +03:00
Ivan Molodetskikh
098a5391f0
Add a test for #2930
2018-08-31 15:25:08 +03:00
Seiichi Uchida
ba9e159722
Update tests
2018-08-31 18:20:28 +09:00
Seiichi Uchida
1b8f0ff1b6
Add a test for #2907
2018-08-31 18:10:47 +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
topecongiro
67480422b9
Handle raw string literal without any sharps
2018-08-31 10:49:39 +09:00
topecongiro
c903119d8d
Add a test for #2642
2018-08-31 10:37:22 +09:00
Seiichi Uchida
d8301050a5
Add a test for #2956
2018-08-30 23:38:40 +09: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
3585706fa2
Merge branch 'master' of https://github.com/rust-lang-nursery/rustfmt into fix-optional-arg-condensing
2018-08-27 13:44:56 -04:00
Seiichi Uchida
e1069403ca
Add a test for #2969
2018-08-27 16:12:11 +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
Seiichi Uchida
e5a41e5682
Add a test for #2953
2018-08-26 13:19:44 +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
04d804c365
Rename CodeMap/FileMap to SourceMap/SourceFile
...
#2946
2018-08-23 17:10:46 -04:00
Nick Cameron
8573df602a
Merge pull request #2925 from scampi/issue539
...
discard trailing blank comments
2018-08-23 10:13:56 +12:00
Seiichi Uchida
dfe4eef8fc
Remove an invalid attribute from a test
...
This has become a parser error.
2018-08-19 00:26:56 +09: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
71dc033fca
Add a test for #2919
2018-08-16 07:49:50 +09:00
Seiichi Uchida
996dbbf960
Add a test for slice patterns
2018-08-12 23:55:34 +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
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
Seiichi Uchida
19ebfd122c
Update test
2018-08-06 08:10:04 +09:00
Seiichi Uchida
7bccc4473c
Add a test for chains with comment
2018-08-05 21:04:06 +09:00
Seiichi Uchida
c19569c5d3
Add a test for #2896
2018-08-05 10:50:24 +09:00
Seiichi Uchida
cf13534150
Add a test for #2884
2018-08-04 09:59:19 +09:00
Seiichi Uchida
8069efbe10
Add a test for #2888
2018-08-03 20:06:29 +09:00
Nick Cameron
9c34986bab
Add some tests I forgot about earlier
2018-08-01 10:41:16 +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
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
87c4bd5a94
Add a test for #2863
2018-07-26 21:35:48 +09:00
Seiichi Uchida
b7c443e948
Add and update tests for trait with paren
2018-07-25 18:27:02 +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
1b69ed9ae4
Rename test files
2018-07-25 18:16:10 +09:00
Seiichi Uchida
6b8c6f5e0f
Add a test for #2859
2018-07-25 08:33:41 +09:00
Seiichi Uchida
d512240206
Add tests for #2830 and #2857
2018-07-25 07:13:51 +09:00
Seiichi Uchida
a2b40bd70f
Add a test for associated existential type
2018-07-25 00:42:19 +09:00
Seiichi Uchida
6eb0bf2bb9
Add a simple test for exitential type
2018-07-25 00:29:45 +09:00
Nick Cameron
dcf9f61635
Add tests
...
Closes #2773
Closes #2786
2018-07-24 15:46:39 +12:00
Nick Cameron
4fa2969c39
fixup tests
2018-07-24 15:46:39 +12:00
Nick Cameron
6899471497
Check for comments after the =>
in a match arm
...
Closes #2188
2018-07-20 16:05:18 +12:00
Nick Cameron
90c5792565
Set rustfmt-format_macro_matchers to false by default
...
cc #2543
2018-07-18 12:09:50 +12:00
Michael Bebenita
c2ae39e77a
Add max_width option for all heuristics.
...
This is useful when working with very small max_widths like 79 chars.
2018-07-17 13:17:36 -04:00
Nick Cameron
b28a0cd6e6
Fix an anomaly with comments and array literals
...
Closes #2842
2018-07-17 15:40:19 +12:00
Stéphane Campinas
472a2ed0f6
fix rewrite_string when a line feed is present in a sequence of whitespaces, resulting in strange formatting
2018-07-14 19:22:31 +02:00
Nick Cameron
229a55248b
address reviewer comments
2018-07-12 22:21:07 +12:00
Nick Cameron
7a76e5b1b4
Add test for #2802
2018-07-12 21:37:28 +12:00
Nick Cameron
486f8fd8e7
Fixup formatting of tests and source
2018-07-12 21:37:28 +12:00
Seiichi Uchida
25f83b14c7
Add a test for async closures
2018-07-09 23:20:30 +09:00
Nick Cameron
d5cb93216b
Merge pull request #2822 from topecongiro/issue-2782
...
Avoid panicking on deeply nested expressions
2018-07-01 14:38:30 +12:00
topecongiro
a0206f53d2
Add a test for #2782
2018-07-01 10:40:47 +09:00