1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-25 15:29:32 -05:00

feat(fmt): support vto and njk extensions (#25831)

Fixes #25802

markup_fmt plugin supports some HTML-like formats like Angular, Jinja,
Twig, Nunjucks or Vento, that are not supported by `deno fmt`. This PR
adds support for the extensions `njk` (Nunjucks) and `vto` (Vento).
Angular doesn't have a custom extension (it uses `html` afaik) and Jinja
and Twig are template engines written in Python and PHP respectively so
it doesn't make sense to be supported by Deno.
This commit is contained in:
Óscar Otero 2024-09-23 20:27:58 +02:00 committed by GitHub
parent a7ac89935b
commit 1287739ddf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 26 additions and 2 deletions

View file

@ -265,6 +265,8 @@ fn format_markdown(
| "svelte" | "svelte"
| "vue" | "vue"
| "astro" | "astro"
| "vto"
| "njk"
| "yml" | "yml"
| "yaml" | "yaml"
) { ) {
@ -288,7 +290,7 @@ fn format_markdown(
format_css(&fake_filename, text, fmt_options) format_css(&fake_filename, text, fmt_options)
} }
"html" => format_html(&fake_filename, text, fmt_options), "html" => format_html(&fake_filename, text, fmt_options),
"svelte" | "vue" | "astro" => { "svelte" | "vue" | "astro" | "vto" | "njk" => {
if unstable_options.component { if unstable_options.component {
format_html(&fake_filename, text, fmt_options) format_html(&fake_filename, text, fmt_options)
} else { } else {
@ -460,7 +462,7 @@ pub fn format_file(
format_css(file_path, file_text, fmt_options) format_css(file_path, file_text, fmt_options)
} }
"html" => format_html(file_path, file_text, fmt_options), "html" => format_html(file_path, file_text, fmt_options),
"svelte" | "vue" | "astro" => { "svelte" | "vue" | "astro" | "vto" | "njk" => {
if unstable_options.component { if unstable_options.component {
format_html(file_path, file_text, fmt_options) format_html(file_path, file_text, fmt_options)
} else { } else {
@ -1139,6 +1141,8 @@ fn is_supported_ext_fmt(path: &Path) -> bool {
| "svelte" | "svelte"
| "vue" | "vue"
| "astro" | "astro"
| "vto"
| "njk"
| "md" | "md"
| "mkd" | "mkd"
| "mkdn" | "mkdn"
@ -1197,6 +1201,10 @@ mod test {
assert!(is_supported_ext_fmt(Path::new("foo.VUE"))); assert!(is_supported_ext_fmt(Path::new("foo.VUE")));
assert!(is_supported_ext_fmt(Path::new("foo.astro"))); assert!(is_supported_ext_fmt(Path::new("foo.astro")));
assert!(is_supported_ext_fmt(Path::new("foo.AsTrO"))); assert!(is_supported_ext_fmt(Path::new("foo.AsTrO")));
assert!(is_supported_ext_fmt(Path::new("foo.vto")));
assert!(is_supported_ext_fmt(Path::new("foo.Vto")));
assert!(is_supported_ext_fmt(Path::new("foo.njk")));
assert!(is_supported_ext_fmt(Path::new("foo.NJk")));
assert!(is_supported_ext_fmt(Path::new("foo.yml"))); assert!(is_supported_ext_fmt(Path::new("foo.yml")));
assert!(is_supported_ext_fmt(Path::new("foo.Yml"))); assert!(is_supported_ext_fmt(Path::new("foo.Yml")));
assert!(is_supported_ext_fmt(Path::new("foo.yaml"))); assert!(is_supported_ext_fmt(Path::new("foo.yaml")));

View file

@ -0,0 +1,5 @@
{
"tempDir": true,
"args": "fmt --unstable-component",
"output": "[WILDLINE]badly_formatted.njk\nChecked 1 file\n"
}

View file

@ -0,0 +1,3 @@
<h1> {{ "Hello, world!" | upper }}
</h1>

View file

@ -0,0 +1,5 @@
{
"tempDir": true,
"args": "fmt --unstable-component",
"output": "[WILDLINE]badly_formatted.vto\nChecked 1 file\n"
}

View file

@ -0,0 +1,3 @@
<h1> {{ "Hello, world!" |> toUpperCase }}
</h1>