3 releases
0.1.0 | Feb 3, 2022 |
---|
#24 in #rustfmt
12KB
100 lines
::prettyplease-cli
or: How I learned to Stop Worrying and Trim the Comments.
Unofficial and basic CLI wrapper around the ::prettyplease
library.
This can be used as a poorman's substitute of rustfmt
, mainly for generated
code.
⚠️ Warning: comments are lost ⚠️
Indeed, ::prettyplease
only operates off a ::syn::File
(by design). And
a ::syn::File
is an AST[^1] parsed representation of a file of source code.
Such AST does not include comments.
[^1]: Abstract Syntax Tree
This means that piping the contents of a source file into
::syn::parse_file()
and then into ::prettyplease::unparse()
results in
loss of comments; and this is exactly what this CLI tool does.
- Note, however, that doc-comments are preserved, since those are part of Rust's AST.
Installation
cargo install prettyplease-cli
## You may add `--no-default-features` to speed up the compilation
## if you are not interested in the `--check` mode showing pretty line diffs.
Usage
Unofficial CLI wrapper around `::prettyplease::unparse` to format files and trim comments.
This modifies them IN PLACE, unless the `--check` flag is passed.
USAGE:
prettyplease-fmt [OPTION] <files…>
OPTIONS:
--check Runs in 'check' mode. Exits with 0 if input is formatted
correctly. Exits with 1 if formatting is required, printing
a diff unless the `check-shows-diffs` Cargo feature were
disabled at compile-time.
-h, --help Shows this very message.
See https://crates.io/crates/prettyplease for more info about the formatting itself.
Missing features / FIXME
-
Preserve comments, somehow;
-
Accept files and/or globs for directory traversal;
-
Handle files in parallel.
Dependencies
~1.6–2.8MB
~55K SLoC