diff options
-rw-r--r-- | cli/args/flags.rs | 27 | ||||
-rw-r--r-- | cli/main.rs | 5 | ||||
-rw-r--r-- | cli/tools/lint.rs | 8 |
3 files changed, 36 insertions, 4 deletions
diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 72841df74..d06a17a06 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -1584,7 +1584,6 @@ Ignore linting a file by adding an ignore comment at the top of the file: .num_args(1..) .action(ArgAction::Append) .use_value_delimiter(true) - .conflicts_with("rules") .help("Use set of rules with a tag"), ) .arg( @@ -4157,6 +4156,32 @@ mod tests { let r = flags_from_vec(svec![ "deno", "lint", + "--rules", + "--rules-tags=recommended" + ]); + assert_eq!( + r.unwrap(), + Flags { + subcommand: DenoSubcommand::Lint(LintFlags { + files: FileFlags { + include: vec![], + ignore: vec![], + }, + rules: true, + maybe_rules_tags: Some(svec!["recommended"]), + maybe_rules_include: None, + maybe_rules_exclude: None, + json: false, + compact: false, + watch: Default::default(), + }), + ..Flags::default() + } + ); + + let r = flags_from_vec(svec![ + "deno", + "lint", "--rules-tags=", "--rules-include=ban-untagged-todo,no-undef", "--rules-exclude=no-const-assign" diff --git a/cli/main.rs b/cli/main.rs index 70db8f147..cdbd878d6 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -140,7 +140,10 @@ async fn run_subcommand(flags: Flags) -> Result<i32, AnyError> { DenoSubcommand::Lsp => spawn_subcommand(async { lsp::start().await }), DenoSubcommand::Lint(lint_flags) => spawn_subcommand(async { if lint_flags.rules { - tools::lint::print_rules_list(lint_flags.json); + tools::lint::print_rules_list( + lint_flags.json, + lint_flags.maybe_rules_tags, + ); Ok(()) } else { tools::lint::lint(flags, lint_flags).await diff --git a/cli/tools/lint.rs b/cli/tools/lint.rs index 4a622f0a0..f5e9db6e9 100644 --- a/cli/tools/lint.rs +++ b/cli/tools/lint.rs @@ -202,8 +202,12 @@ fn collect_lint_files(files: &FilesConfig) -> Result<Vec<PathBuf>, AnyError> { .collect_files(&files.include) } -pub fn print_rules_list(json: bool) { - let lint_rules = rules::get_recommended_rules(); +pub fn print_rules_list(json: bool, maybe_rules_tags: Option<Vec<String>>) { + let lint_rules = get_configured_rules(LintRulesConfig { + exclude: None, + include: None, + tags: maybe_rules_tags, + }); if json { let json_rules: Vec<serde_json::Value> = lint_rules |