diff options
| author | Philipp Krones <hello@philkrones.com> | 2023-10-06 17:35:45 +0200 |
|---|---|---|
| committer | Philipp Krones <hello@philkrones.com> | 2023-10-06 17:35:45 +0200 |
| commit | 8ebed4cc1a2e21844c58f3b0bfbad1a069bb09b6 (patch) | |
| tree | 917baf90e5136e5f6beca54bbc49ff775a1b9877 /src | |
| parent | 9de3e6c9281e284f81515345330fb74b0c4ad312 (diff) | |
| download | rust-8ebed4cc1a2e21844c58f3b0bfbad1a069bb09b6.tar.gz rust-8ebed4cc1a2e21844c58f3b0bfbad1a069bb09b6.zip | |
Merge commit 'b105fb4c39bc1a010807a6c076193cef8d93c109' into clippyup
Diffstat (limited to 'src')
| -rw-r--r-- | src/driver.rs | 55 | ||||
| -rw-r--r-- | src/main.rs | 63 |
2 files changed, 64 insertions, 54 deletions
diff --git a/src/driver.rs b/src/driver.rs index 1d89477dcc1..d47767faed9 100644 --- a/src/driver.rs +++ b/src/driver.rs @@ -26,6 +26,8 @@ use std::ops::Deref; use std::path::Path; use std::process::exit; +use anstream::println; + /// If a command-line option matches `find_arg`, then apply the predicate `pred` on its value. If /// true, then return it. The parameter is assumed to be either `--arg=value` or `--arg value`. fn arg_value<'a, T: Deref<Target = str>>( @@ -162,39 +164,15 @@ impl rustc_driver::Callbacks for ClippyCallbacks { } } +#[allow(clippy::ignored_unit_patterns)] fn display_help() { - println!( - "\ -Checks a package to catch common mistakes and improve your Rust code. - -Usage: - cargo clippy [options] [--] [<opts>...] - -Common options: - -h, --help Print this message - --rustc Pass all args to rustc - -V, --version Print version info and exit - -For the other options see `cargo check --help`. - -To allow or deny a lint from the command line you can use `cargo clippy --` -with: - - -W --warn OPT Set lint warnings - -A --allow OPT Set lint allowed - -D --deny OPT Set lint denied - -F --forbid OPT Set lint forbidden - -You can use tool lints to allow or deny lints from your code, eg.: - - #[allow(clippy::needless_lifetimes)] -" - ); + println!("{}", help_message()); } const BUG_REPORT_URL: &str = "https://github.com/rust-lang/rust-clippy/issues/new?template=ice.yml"; #[allow(clippy::too_many_lines)] +#[allow(clippy::ignored_unit_patterns)] pub fn main() { let handler = EarlyErrorHandler::new(ErrorOutputType::default()); @@ -236,6 +214,7 @@ pub fn main() { if orig_args.iter().any(|a| a == "--version" || a == "-V") { let version_info = rustc_tools_util::get_version_info!(); + println!("{version_info}"); exit(0); } @@ -292,3 +271,25 @@ pub fn main() { } })) } + +#[must_use] +fn help_message() -> &'static str { + color_print::cstr!( + "Checks a file to catch common mistakes and improve your Rust code. +Run <cyan>clippy-driver</> with the same arguments you use for <cyan>rustc</> + +<green,bold>Usage</>: + <cyan,bold>clippy-driver</> <cyan>[OPTIONS] INPUT</> + +<green,bold>Common options:</> + <cyan,bold>-h</>, <cyan,bold>--help</> Print this message + <cyan,bold>-V</>, <cyan,bold>--version</> Print version info and exit + <cyan,bold>--rustc</> Pass all arguments to <cyan>rustc</> + +<green,bold>Allowing / Denying lints</> +You can use tool lints to allow or deny lints from your code, e.g.: + + <yellow,bold>#[allow(clippy::needless_lifetimes)]</> +" + ) +} diff --git a/src/main.rs b/src/main.rs index 26b655076cf..bbf7d22c850 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,37 +6,14 @@ use std::env; use std::path::PathBuf; use std::process::{self, Command}; -const CARGO_CLIPPY_HELP: &str = "Checks a package to catch common mistakes and improve your Rust code. - -Usage: - cargo clippy [options] [--] [<opts>...] - -Common options: - --no-deps Run Clippy only on the given crate, without linting the dependencies - --fix Automatically apply lint suggestions. This flag implies `--no-deps` and `--all-targets` - -h, --help Print this message - -V, --version Print version info and exit - --explain LINT Print the documentation for a given lint - -For the other options see `cargo check --help`. - -To allow or deny a lint from the command line you can use `cargo clippy --` -with: - - -W --warn OPT Set lint warnings - -A --allow OPT Set lint allowed - -D --deny OPT Set lint denied - -F --forbid OPT Set lint forbidden - -You can use tool lints to allow or deny lints from your code, e.g.: - - #[allow(clippy::needless_lifetimes)] -"; +use anstream::println; +#[allow(clippy::ignored_unit_patterns)] fn show_help() { - println!("{CARGO_CLIPPY_HELP}"); + println!("{}", help_message()); } +#[allow(clippy::ignored_unit_patterns)] fn show_version() { let version_info = rustc_tools_util::get_version_info!(); println!("{version_info}"); @@ -168,6 +145,38 @@ where } } +#[must_use] +pub fn help_message() -> &'static str { + color_print::cstr!( +"Checks a package to catch common mistakes and improve your Rust code. + +<green,bold>Usage</>: + <cyan,bold>cargo clippy</> <cyan>[OPTIONS] [--] [<<ARGS>>...]</> + +<green,bold>Common options:</> + <cyan,bold>--no-deps</> Run Clippy only on the given crate, without linting the dependencies + <cyan,bold>--fix</> Automatically apply lint suggestions. This flag implies <cyan>--no-deps</> and <cyan>--all-targets</> + <cyan,bold>-h</>, <cyan,bold>--help</> Print this message + <cyan,bold>-V</>, <cyan,bold>--version</> Print version info and exit + <cyan,bold>--explain [LINT]</> Print the documentation for a given lint + +See all options with <cyan,bold>cargo check --help</>. + +<green,bold>Allowing / Denying lints</> + +To allow or deny a lint from the command line you can use <cyan,bold>cargo clippy --</> with: + + <cyan,bold>-W</> / <cyan,bold>--warn</> <cyan>[LINT]</> Set lint warnings + <cyan,bold>-A</> / <cyan,bold>--allow</> <cyan>[LINT]</> Set lint allowed + <cyan,bold>-D</> / <cyan,bold>--deny</> <cyan>[LINT]</> Set lint denied + <cyan,bold>-F</> / <cyan,bold>--forbid</> <cyan>[LINT]</> Set lint forbidden + +You can use tool lints to allow or deny lints from your code, e.g.: + + <yellow,bold>#[allow(clippy::needless_lifetimes)]</> +" + ) +} #[cfg(test)] mod tests { use super::ClippyCmd; |
