Commit Graph

1471 Commits

Author SHA1 Message Date
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
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
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