Commit Graph

3301 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
topecongiro
75cf0be87b Add a test for #2479 2018-02-23 23:18:54 +09:00
topecongiro
0d8636f229 Allow meta item's value to exceed max width 2018-02-23 23:15:29 +09:00
topecongiro
b17c522650 Add doc comment to rewrite_first_group_attrs 2018-02-23 22:58:46 +09:00
topecongiro
eea5dcac46 Add a test for #2414
Closes #2414.
2018-02-23 22:53:16 +09:00
topecongiro
391ed68ad4 Move type punctuation tests under config dir 2018-02-23 22:53:16 +09:00
topecongiro
e2e653bc8f Remove unused tests 2018-02-23 22:53:16 +09:00
topecongiro
94188f5a28 Remove unused tests 2018-02-23 22:53:16 +09:00
topecongiro
871a18ac13 Mention that doc.rs is a part of multiple.rs 2018-02-23 22:53:16 +09:00
topecongiro
128925dcb4 Use visual indent style in where-clause.rs 2018-02-23 22:53:16 +09:00
topecongiro
758c54e9d5 Update big-impl tests
big-impl.rs and big-impl-rfc.rs is identical. One of them should use visual
indent style, and their file name should reflect that.
2018-02-23 22:53:16 +09:00
topecongiro
ecfb9c9526 Move items-related stuffs to item mod from visitor mod
Move `rewrite_extern_crate`, is_mod_decl`, `is_use_item` and `is_extern_crate`.
2018-02-23 22:37:10 +09:00
topecongiro
a8852fd787 Move filter_inline_attrs() to attr mod from visitor mod 2018-02-23 22:32:39 +09:00
topecongiro
529fed0c34 Add attr module 2018-02-23 22:30:05 +09:00
topecongiro
34f6408ea2 Update Configurations.md 2018-02-23 21:55:16 +09:00
topecongiro
5f49587a2c Update configuration tests
This commit adds following functionalities to `configuration_snippet_tests`:

1. Error if there is an unknown configuration option in Configuration.md.
2. Error if there are multiple guides for the same configuration option in
   Configuration.md.
3. Error if an user-facing configuration option does not have its guide in
   Configuration.md.

We will be able to catch outdated Configuration.md. Should prevent issues
like #2459.
2018-02-23 21:54:59 +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