summaryrefslogtreecommitdiff
path: root/cli/args/flags.rs
diff options
context:
space:
mode:
authorPig Fang <g-plane@hotmail.com>2024-08-10 00:52:23 +0800
committerGitHub <noreply@github.com>2024-08-09 18:52:23 +0200
commit82884348cb1b424a4c4452ef734bc4e760926b2f (patch)
treea64142bb68dc2509dd9ec421a9a88fcec1e6f65e /cli/args/flags.rs
parent218ee1b1ffebbb53aa82c8ce55e7ee7061342249 (diff)
feat(fmt): support CSS, SCSS, Sass and Less (#24870)
This PR integrates [Malva](https://github.com/g-plane/malva) into `deno fmt`, which introduces the ability to format CSS, SCSS, Sass and Less files. On Linux x64 6.10, this PR increases about 800KiB: ``` ❯ wc -c target/release/deno 125168728 target/release/deno ❯ wc -c target/release/deno 124349456 target/release/deno ```
Diffstat (limited to 'cli/args/flags.rs')
-rw-r--r--cli/args/flags.rs25
1 files changed, 23 insertions, 2 deletions
diff --git a/cli/args/flags.rs b/cli/args/flags.rs
index e28ce549b..acdcaf8a7 100644
--- a/cli/args/flags.rs
+++ b/cli/args/flags.rs
@@ -200,6 +200,7 @@ pub struct FmtFlags {
pub prose_wrap: Option<String>,
pub no_semicolons: Option<bool>,
pub watch: Option<WatchFlags>,
+ pub unstable_css: bool,
pub unstable_yaml: bool,
}
@@ -2018,8 +2019,8 @@ Ignore formatting a file by adding an ignore comment at the top of the file:
// prefer using ts for formatting instead of js because ts works in more scenarios
.default_value("ts")
.value_parser([
- "ts", "tsx", "js", "jsx", "md", "json", "jsonc", "yml", "yaml",
- "ipynb",
+ "ts", "tsx", "js", "jsx", "md", "json", "jsonc", "css", "scss",
+ "sass", "less", "yml", "yaml", "ipynb",
]),
)
.arg(
@@ -2097,6 +2098,13 @@ Ignore formatting a file by adding an ignore comment at the top of the file:
),
)
.arg(
+ Arg::new("unstable-css")
+ .long("unstable-css")
+ .help("Enable formatting CSS, SCSS, Sass and Less files.")
+ .value_parser(FalseyValueParser::new())
+ .action(ArgAction::SetTrue),
+ )
+ .arg(
Arg::new("unstable-yaml")
.long("unstable-yaml")
.help("Enable formatting YAML files.")
@@ -4163,6 +4171,7 @@ fn fmt_parse(flags: &mut Flags, matches: &mut ArgMatches) {
let single_quote = matches.remove_one::<bool>("single-quote");
let prose_wrap = matches.remove_one::<String>("prose-wrap");
let no_semicolons = matches.remove_one::<bool>("no-semicolons");
+ let unstable_css = matches.get_flag("unstable-css");
let unstable_yaml = matches.get_flag("unstable-yaml");
flags.subcommand = DenoSubcommand::Fmt(FmtFlags {
@@ -4175,6 +4184,7 @@ fn fmt_parse(flags: &mut Flags, matches: &mut ArgMatches) {
prose_wrap,
no_semicolons,
watch: watch_arg_parse(matches),
+ unstable_css,
unstable_yaml,
});
}
@@ -5881,6 +5891,7 @@ mod tests {
single_quote: None,
prose_wrap: None,
no_semicolons: None,
+ unstable_css: false,
unstable_yaml: false,
watch: Default::default(),
}),
@@ -5905,6 +5916,7 @@ mod tests {
single_quote: None,
prose_wrap: None,
no_semicolons: None,
+ unstable_css: false,
unstable_yaml: false,
watch: Default::default(),
}),
@@ -5929,6 +5941,7 @@ mod tests {
single_quote: None,
prose_wrap: None,
no_semicolons: None,
+ unstable_css: false,
unstable_yaml: false,
watch: Default::default(),
}),
@@ -5953,6 +5966,7 @@ mod tests {
single_quote: None,
prose_wrap: None,
no_semicolons: None,
+ unstable_css: false,
unstable_yaml: false,
watch: Some(Default::default()),
}),
@@ -5966,6 +5980,7 @@ mod tests {
"fmt",
"--watch",
"--no-clear-screen",
+ "--unstable-css",
"--unstable-yaml"
]);
assert_eq!(
@@ -5983,6 +5998,7 @@ mod tests {
single_quote: None,
prose_wrap: None,
no_semicolons: None,
+ unstable_css: true,
unstable_yaml: true,
watch: Some(WatchFlags {
hmr: false,
@@ -6018,6 +6034,7 @@ mod tests {
single_quote: None,
prose_wrap: None,
no_semicolons: None,
+ unstable_css: false,
unstable_yaml: false,
watch: Some(Default::default()),
}),
@@ -6042,6 +6059,7 @@ mod tests {
single_quote: None,
prose_wrap: None,
no_semicolons: None,
+ unstable_css: false,
unstable_yaml: false,
watch: Default::default(),
}),
@@ -6074,6 +6092,7 @@ mod tests {
single_quote: None,
prose_wrap: None,
no_semicolons: None,
+ unstable_css: false,
unstable_yaml: false,
watch: Some(Default::default()),
}),
@@ -6111,6 +6130,7 @@ mod tests {
single_quote: Some(true),
prose_wrap: Some("never".to_string()),
no_semicolons: Some(true),
+ unstable_css: false,
unstable_yaml: false,
watch: Default::default(),
}),
@@ -6142,6 +6162,7 @@ mod tests {
single_quote: Some(false),
prose_wrap: None,
no_semicolons: Some(false),
+ unstable_css: false,
unstable_yaml: false,
watch: Default::default(),
}),