From 27a83527e12f08dc2c488a2f2beb76f16d32ebdb Mon Sep 17 00:00:00 2001 From: Martin Feckie Date: Thu, 15 Aug 2024 15:36:33 +0800 Subject: [PATCH 1/4] Add glimmer support to template extensions --- crates/oxide/src/fixtures/template-extensions.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/crates/oxide/src/fixtures/template-extensions.txt b/crates/oxide/src/fixtures/template-extensions.txt index c059eff3a9ed..096932b6e3b5 100644 --- a/crates/oxide/src/fixtures/template-extensions.txt +++ b/crates/oxide/src/fixtures/template-extensions.txt @@ -2,6 +2,10 @@ html pug +# Glimmer +gjs +gts + # JS astro cjs From 728784f6907655c1697690428bcb7d7d40e34afd Mon Sep 17 00:00:00 2001 From: Martin Feckie Date: Thu, 15 Aug 2024 15:36:44 +0800 Subject: [PATCH 2/4] Update tests --- crates/oxide/tests/scan_dir.rs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/crates/oxide/tests/scan_dir.rs b/crates/oxide/tests/scan_dir.rs index 7f875ea4ac76..5e13dbf72f8c 100644 --- a/crates/oxide/tests/scan_dir.rs +++ b/crates/oxide/tests/scan_dir.rs @@ -188,7 +188,7 @@ mod scan_dir { ]); assert_eq!(globs, vec![ "index.html", - "src/**/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}", + "src/**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}", "src/a.html", "src/b.html", "src/c.html" @@ -282,37 +282,37 @@ mod scan_dir { "bar.html", "baz.html", "foo.html", - "nested-a/**/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}", + "nested-a/**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}", "nested-a/bar.html", "nested-a/baz.html", "nested-a/foo.html", - "nested-b/**/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}", + "nested-b/**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}", "nested-b/deeply-nested/bar.html", "nested-b/deeply-nested/baz.html", "nested-b/deeply-nested/foo.html", - "nested-c/*/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}", + "nested-c/*/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}", "nested-c/bar.html", "nested-c/baz.html", "nested-c/foo.html", - "nested-c/sibling-folder/**/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}", + "nested-c/sibling-folder/**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}", "nested-c/sibling-folder/bar.html", "nested-c/sibling-folder/baz.html", "nested-c/sibling-folder/foo.html", - "nested-d/*/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}", + "nested-d/*/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}", "nested-d/bar.html", "nested-d/baz.html", "nested-d/foo.html", - "nested-d/very/*/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}", - "nested-d/very/deeply/*/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}", - "nested-d/very/deeply/nested/*/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}", + "nested-d/very/*/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}", + "nested-d/very/deeply/*/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}", + "nested-d/very/deeply/nested/*/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}", "nested-d/very/deeply/nested/bar.html", "nested-d/very/deeply/nested/baz.html", - "nested-d/very/deeply/nested/directory/**/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}", + "nested-d/very/deeply/nested/directory/**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}", "nested-d/very/deeply/nested/directory/again/foo.html", "nested-d/very/deeply/nested/directory/bar.html", "nested-d/very/deeply/nested/directory/baz.html", "nested-d/very/deeply/nested/directory/foo.html", - "nested-d/very/deeply/nested/foo.html" + "nested-d/very/deeply/nested/foo.html", ] ); } From 93636d705d9e60fb41495946acf3bb77fec99634 Mon Sep 17 00:00:00 2001 From: Martin Feckie Date: Thu, 15 Aug 2024 15:37:06 +0800 Subject: [PATCH 3/4] Sort extensions for easier reading --- crates/oxide/src/lib.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/crates/oxide/src/lib.rs b/crates/oxide/src/lib.rs index ca8593e3515c..7caf8faa2461 100644 --- a/crates/oxide/src/lib.rs +++ b/crates/oxide/src/lib.rs @@ -303,17 +303,21 @@ fn resolve_globs(root: &Path, dirs: Vec) -> Vec { } } - let extension_list = found_extensions.into_iter().collect::>().join(","); + let mut extension_list = found_extensions.into_iter().collect::>(); + + extension_list.sort(); + + let extension_list_joined = extension_list.join(","); // Build the globs for all globable directories. let shallow_globs = shallow_globable_directories.iter().map(|path| GlobEntry { base: path.display().to_string(), - pattern: format!("*/*.{{{}}}", extension_list), + pattern: format!("*/*.{{{}}}", extension_list_joined), }); let deep_globs = deep_globable_directories.iter().map(|path| GlobEntry { base: path.display().to_string(), - pattern: format!("**/*.{{{}}}", extension_list), + pattern: format!("**/*.{{{}}}", extension_list_joined), }); shallow_globs.chain(deep_globs).collect::>() From 2170bfb53dfb7513d39492bb96d9ee17a31ab2db Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Thu, 15 Aug 2024 09:20:49 -0400 Subject: [PATCH 4/4] Update variable name --- crates/oxide/src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/oxide/src/lib.rs b/crates/oxide/src/lib.rs index 7caf8faa2461..861c6c238a37 100644 --- a/crates/oxide/src/lib.rs +++ b/crates/oxide/src/lib.rs @@ -307,17 +307,17 @@ fn resolve_globs(root: &Path, dirs: Vec) -> Vec { extension_list.sort(); - let extension_list_joined = extension_list.join(","); + let extension_list = extension_list.join(","); // Build the globs for all globable directories. let shallow_globs = shallow_globable_directories.iter().map(|path| GlobEntry { base: path.display().to_string(), - pattern: format!("*/*.{{{}}}", extension_list_joined), + pattern: format!("*/*.{{{}}}", extension_list), }); let deep_globs = deep_globable_directories.iter().map(|path| GlobEntry { base: path.display().to_string(), - pattern: format!("**/*.{{{}}}", extension_list_joined), + pattern: format!("**/*.{{{}}}", extension_list), }); shallow_globs.chain(deep_globs).collect::>()