summaryrefslogtreecommitdiff
path: root/cli/args/flags.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/args/flags.rs')
-rw-r--r--cli/args/flags.rs27
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,