Repository: sharkdp/bat
File: src/bin/bat/clap_app.rs (Rust)

Code before:
        .arg(
            Arg::new("squeeze-blank")
                .long("squeeze-blank")
                .short('s')
                .action(ArgAction::SetTrue)
                .help("Squeeze consecutive empty lines.")
                .long_help("Squeeze consecutive empty lines into a single empty line.")
        )
        .arg(
            Arg::new("squeeze-limit")
                .long("squeeze-limit")
                .value_parser(|s: &str| s.parse::<usize>().map_err(|_| "Requires a non-negative number".to_owned()))
                .long_help("Set the maximum number of consecutive empty lines to be printed.")
                .hide_short_help(true)
        )
        .arg(
            Arg::new("strip-ansi")
                .long("strip-ansi")
                .overrides_with("strip-ansi")
                .value_name("when")
                .value_parser(["auto", "always", "never"])
                .default_value("never")
                .hide_default_value(true)
                .help("Strip colors from the input (auto, always, *never*)")
                .long_help("Specify when to strip ANSI escape sequences from the input. \
                The automatic mode will remove escape sequences unless the detect language \
                is plain text. Possible values: auto, always, *never*.")
                .hide_short_help(true)
        )
        .arg(
            Arg::new("style")
                .long("style")
                .value_name("components")
                .overrides_with("style")
                .overrides_with("plain")
                .overrides_with("number")
                // Cannot use claps built in validation because we have to turn off clap's delimiters
                .value_parser(|val: &str| {
                    let mut invalid_vals = val.split(',').filter(|style| {
                        !&[
                            "auto",
                            "full",
                            "default",
                            "plain",
                            "header",
                            "header-filename",
                            "header-filesize",
                            "grid",
                            "rule",
                            "numbers",
                            "snip",

Review comment (security):
```suggestion
                The automatic mode will remove escape sequences unless the syntax highlighting language \
```
"unless the detect language" doesn't quite read right to me. "detected" could work but as it can be explicitly set, I feel calling it "the language used for syntax highlighting" or similar flows better despite being more verbose

Code after:
        .arg(
            Arg::new("squeeze-blank")
                .long("squeeze-blank")
                .short('s')
                .action(ArgAction::SetTrue)
                .help("Squeeze consecutive empty lines.")
                .long_help("Squeeze consecutive empty lines into a single empty line.")
        )
        .arg(
            Arg::new("squeeze-limit")
                .long("squeeze-limit")
                .value_parser(|s: &str| s.parse::<usize>().map_err(|_| "Requires a non-negative number".to_owned()))
                .long_help("Set the maximum number of consecutive empty lines to be printed.")
                .hide_short_help(true)
        )
        .arg(
            Arg::new("strip-ansi")
                .long("strip-ansi")
                .overrides_with("strip-ansi")
                .value_name("when")
                .value_parser(["auto", "always", "never"])
                .default_value("never")
                .hide_default_value(true)
                .help("Strip colors from the input (auto, always, *never*)")
                .long_help("Specify when to strip ANSI escape sequences from the input. \
                The automatic mode will remove escape sequences unless the syntax highlighting \
                language is plain text. Possible values: auto, always, *never*.")
                .hide_short_help(true)
        )
        .arg(
            Arg::new("style")
                .long("style")
                .value_name("components")
                .overrides_with("style")
                .overrides_with("plain")
                .overrides_with("number")
                // Cannot use claps built in validation because we have to turn off clap's delimiters
                .value_parser(|val: &str| {
                    let mut invalid_vals = val.split(',').filter(|style| {
                        !&[
                            "auto",
                            "full",
                            "default",
                            "plain",
                            "header",
                            "header-filename",
                            "header-filesize",
                            "grid",
                            "rule",
                            "numbers",
                            "snip",