diff options
Diffstat (limited to 'cli/args/flags.rs')
-rw-r--r-- | cli/args/flags.rs | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 07b60331e..22c7d8e6d 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -199,6 +199,7 @@ pub struct UninstallFlags { pub struct LintFlags { pub files: FileFlags, pub rules: bool, + pub fix: bool, pub maybe_rules_tags: Option<Vec<String>>, pub maybe_rules_include: Option<Vec<String>>, pub maybe_rules_exclude: Option<Vec<String>>, @@ -2006,6 +2007,12 @@ Ignore linting a file by adding an ignore comment at the top of the file: .defer(|cmd| { cmd .arg( + Arg::new("fix") + .long("fix") + .help("Fix any linting errors for rules that support it") + .action(ArgAction::SetTrue), + ) + .arg( Arg::new("rules") .long("rules") .help("List available rules") @@ -3622,6 +3629,7 @@ fn lint_parse(flags: &mut Flags, matches: &mut ArgMatches) { Some(f) => f.collect(), None => vec![], }; + let fix = matches.get_flag("fix"); let rules = matches.get_flag("rules"); let maybe_rules_tags = matches .remove_many::<String>("rules-tags") @@ -3642,6 +3650,7 @@ fn lint_parse(flags: &mut Flags, matches: &mut ArgMatches) { include: files, ignore, }, + fix, rules, maybe_rules_tags, maybe_rules_include, @@ -5015,6 +5024,7 @@ mod tests { include: vec!["script_1.ts".to_string(), "script_2.ts".to_string(),], ignore: vec![], }, + fix: false, rules: false, maybe_rules_tags: None, maybe_rules_include: None, @@ -5042,6 +5052,7 @@ mod tests { include: vec!["script_1.ts".to_string(), "script_2.ts".to_string()], ignore: vec![], }, + fix: false, rules: false, maybe_rules_tags: None, maybe_rules_include: None, @@ -5070,6 +5081,7 @@ mod tests { include: vec!["script_1.ts".to_string(), "script_2.ts".to_string()], ignore: vec![], }, + fix: false, rules: false, maybe_rules_tags: None, maybe_rules_include: None, @@ -5085,8 +5097,12 @@ mod tests { } ); - let r = - flags_from_vec(svec!["deno", "lint", "--ignore=script_1.ts,script_2.ts"]); + let r = flags_from_vec(svec![ + "deno", + "lint", + "--fix", + "--ignore=script_1.ts,script_2.ts" + ]); assert_eq!( r.unwrap(), Flags { @@ -5095,6 +5111,7 @@ mod tests { include: vec![], ignore: vec!["script_1.ts".to_string(), "script_2.ts".to_string()], }, + fix: true, rules: false, maybe_rules_tags: None, maybe_rules_include: None, @@ -5116,6 +5133,7 @@ mod tests { include: vec![], ignore: vec![], }, + fix: false, rules: true, maybe_rules_tags: None, maybe_rules_include: None, @@ -5142,6 +5160,7 @@ mod tests { include: vec![], ignore: vec![], }, + fix: false, rules: true, maybe_rules_tags: Some(svec!["recommended"]), maybe_rules_include: None, @@ -5169,6 +5188,7 @@ mod tests { include: vec![], ignore: vec![], }, + fix: false, rules: false, maybe_rules_tags: Some(svec![""]), maybe_rules_include: Some(svec!["ban-untagged-todo", "no-undef"]), @@ -5190,6 +5210,7 @@ mod tests { include: vec!["script_1.ts".to_string()], ignore: vec![], }, + fix: false, rules: false, maybe_rules_tags: None, maybe_rules_include: None, @@ -5218,6 +5239,7 @@ mod tests { include: vec!["script_1.ts".to_string()], ignore: vec![], }, + fix: false, rules: false, maybe_rules_tags: None, maybe_rules_include: None, @@ -5247,6 +5269,7 @@ mod tests { include: vec!["script_1.ts".to_string()], ignore: vec![], }, + fix: false, rules: false, maybe_rules_tags: None, maybe_rules_include: None, |