3036 Commits

Author SHA1 Message Date
topecongiro
f310b924ea Format lazy_static! macro
Some macros like `lazy_static!` cannot be parsed as a valid AST. Therefore, we
need to parse them manually to be able to format them. Obviously this method
will not scale, we will never be able to cover every macro in the entire
ecosystem. That being said, I think it will not hurt to be able to format macros
that are popular (such as `lazy_static!`) as long as rustfmt will not produce
broken code when the macro has syntax that is not expected.
2018-02-24 01:05:19 +09:00
topecongiro
ebfc3af92a Update a test for lazy_static! 2018-02-24 01:04:54 +09:00
topecongiro
72e26a12bc Add a test for formatting lazy_static! 2018-02-24 01:04:36 +09:00
Nick Cameron
cc2c7433e2
Merge pull request #2480 from topecongiro/issue-2476
Avoid drifting macro body which is unformattable
2018-02-23 13:39:56 +13:00
topecongiro
8531d70c77 Cargo clippy 2018-02-23 09:07:35 +09:00
topecongiro
9cdac82d42 Cargo fmt and update a test 2018-02-23 08:14:22 +09:00
topecongiro
5ccc23f920 Call wrap_str to make sure that the formatting macro body worked 2018-02-23 08:13:57 +09:00
topecongiro
cb0097f7d8 Use multiple lines for function calls with 0 arg which exceeds max width
e.g.

foo(
)
2018-02-23 08:12:48 +09:00
topecongiro
c5a8878f7e Continue formatting function calls even if it does not fit in a single line
We may be able to format it using multiple lines.
2018-02-23 08:11:10 +09:00
topecongiro
093633ecb7 Update tests for #2438 and #2476 2018-02-23 08:10:17 +09:00
topecongiro
f09480432d Remove macros.rs 2018-02-23 08:08:12 +09:00
Nick Cameron
de2d53dfa1
Merge pull request #2478 from csmoe/explict-version-info
Explict version info
2018-02-21 20:41:20 +13:00
csmoe
e87c2caea3 Merge branch 'explict-version-info' of https://github.com/csmoe/rustfmt into explict-version-info 2018-02-21 13:15:04 +08:00
csmoe
f82e935b96 option_env and commit_info 2018-02-21 13:13:39 +08:00
csmoe
c1fa46759c option_env 2018-02-21 11:42:29 +08:00
Nick Cameron
33e47dc17f
Merge pull request #2477 from davidalber/unignore-configuration-snippet-tests
Removing ignore attribute
2018-02-21 16:29:45 +13:00
David Alber
f11e76989b Removing ignore attribute 2018-02-20 18:48:07 -08:00
Nick Cameron
b060f6473e
Merge pull request #2471 from topecongiro/issue-2470
Return the original snippet if the attribute contains invalid syntax
2018-02-21 11:53:23 +13:00
Nick Cameron
42af13245f
Merge pull request #2472 from davidalber/fix-reorder-extern-crates-in-group-examples
Update `reorder_extern_crates*` Configuration.md snippets
2018-02-21 11:52:46 +13:00
David Alber
7739cf8f46 Modifying reorder_extern_crates example to show effect on groups 2018-02-19 22:32:44 -08:00
David Alber
00cab7e74c Fixing the documentation for reorder_extern_crates_in_group 2018-02-19 22:32:44 -08:00
Seiichi Uchida
6c1e1dd720
Merge pull request #2469 from davidalber/fix-struct-lit-single-line-config-snippet
Using shorter example for `struct_lit_single_line` option
2018-02-20 14:53:28 +09:00
topecongiro
b4c85d1bcb Return the original snippet if the attribute contains invalid syntax
This allows us to keep formatting the macro def with attributes that become
invalid syntax when the `$` is replaced with `z`, e.g. `#[doc = $expr]`.
2018-02-20 14:48:46 +09:00
csmoe
ef05a2d2f1 explict version informations 2018-02-19 17:17:27 +08:00
David Alber
73b13e0abe Using shorter example for struct_lit_single_line option 2018-02-18 23:17:36 -08:00
Nick Cameron
be79f5e433
Merge pull request #2468 from topecongiro/perf
Apply optimization suggested by perf
2018-02-19 18:42:47 +13:00
Nick Cameron
377bb5c97f
Merge pull request #2467 from topecongiro/issue-2466
Skip formatting macro_rules! that are not using {}
2018-02-19 18:37:59 +13:00
topecongiro
37f82a0c95 Skip formatting macro_rules! that are not using {} 2018-02-19 14:08:33 +09:00
topecongiro
36e8eb6893 Use push-approach over format! in rewrite_segment 2018-02-19 12:55:12 +09:00
topecongiro
57f182cd10 Clean up 2018-02-19 12:55:12 +09:00
topecongiro
125e7124e7 Use Indent::to_string_with_newline to avoid unnecessary allocation 2018-02-19 12:55:12 +09:00
topecongiro
9d47e7370e Use SnippetProvider to implement SpanUtils over CodeMap
`SnippetProvider::span_to_snippet` avoids allocating a `String` so it is more
efficient than `CodeMap::span_to_snippet`.
2018-02-19 12:55:12 +09:00
topecongiro
f0519c8001 Avoid running lookup_line_range when file_lines are not specified 2018-02-19 12:52:40 +09:00
topecongiro
bd813251f1 Avoid allocating small strings in combine_strs_with_missing_comments 2018-02-19 12:52:40 +09:00
topecongiro
61c6c591e4 Avoid using pretty printer if possible
Setting a pretty printer adds noticeable overhead.

We can replace the usage in `ast:Lifetime::rewrite` by simply converting `Ident`
to string.
We can do the same thing for a macro path as long as it is not nested, which
should hold for most cases.
2018-02-19 12:52:40 +09:00
topecongiro
d7d9850c42 Do not inspect code for issues or todos when not required 2018-02-19 12:52:40 +09:00
topecongiro
80bf3da17d Use debug_assert_eq! to avoid comparing PathBuf on release
Comparing `PathBuf` adds noticeable overhead, avoid it in release build.
2018-02-19 12:52:40 +09:00
topecongiro
15c7e1c52a Replace lookup_char_pos with lookup_line
`lookup_char_pos` wastes time on fetching unused information. We only need a
`FileMap` and line numbers, so `lookup_line` is enough.
2018-02-19 12:52:40 +09:00
Nick Cameron
383e7e9955
Merge pull request #2465 from karyon/fix_2346
Fix #2346: empty comments should not have any trailing space added
2018-02-19 11:45:49 +13:00
Nick Cameron
25f2dffc1c
Merge pull request #2461 from topecongiro/reorder-mod
Refactoring: add `reorder` modules
2018-02-19 09:13:52 +13:00
Nick Cameron
cbf524f9e9
Merge pull request #2464 from topecongiro/beginning-vert
Format a match arm with the beginning vertical bar
2018-02-19 08:45:21 +13:00
Johannes Linke
8e36d54202 Fix #2346: empty comments should not have any trailing space added 2018-02-18 12:50:10 +01:00
topecongiro
ea3c01e337 Format a match arm with the beginning vertical bar 2018-02-18 10:31:11 +09:00
Seiichi Uchida
263104a365
Merge pull request #2463 from Razican/typo_fix
Fixed small typo in configuration help
2018-02-18 09:35:30 +09:00
Razican
4ca3592006
Fixed small typo in configuration help 2018-02-17 21:00:26 +01:00
Seiichi Uchida
c32eb1fe34 Add TODO 2018-02-18 03:00:59 +09:00
Seiichi Uchida
333e3e1247 Get rid of macro 2018-02-18 02:59:54 +09:00
Seiichi Uchida
a915916f24 Rename fns 2018-02-18 02:06:29 +09:00
topecongiro
e992c09e1f Get rid of format_imports 2018-02-18 01:38:31 +09:00
topecongiro
8427b80f57 Move reorder-related stuffs in visitor mod to reorder mod 2018-02-18 01:38:31 +09:00