diff --git a/tests/html_angular/__snapshots__/jsfmt.spec.js.snap b/tests/angular/angular/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_angular/__snapshots__/jsfmt.spec.js.snap
rename to tests/angular/angular/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_angular/angularjs.html b/tests/angular/angular/angularjs.html
similarity index 100%
rename from tests/html_angular/angularjs.html
rename to tests/angular/angular/angularjs.html
diff --git a/tests/html_angular/attr-name.component.html b/tests/angular/angular/attr-name.component.html
similarity index 100%
rename from tests/html_angular/attr-name.component.html
rename to tests/angular/angular/attr-name.component.html
diff --git a/tests/html_angular/attributes.component.html b/tests/angular/angular/attributes.component.html
similarity index 100%
rename from tests/html_angular/attributes.component.html
rename to tests/angular/angular/attributes.component.html
diff --git a/tests/html_angular/first-lf.component.html b/tests/angular/angular/first-lf.component.html
similarity index 100%
rename from tests/html_angular/first-lf.component.html
rename to tests/angular/angular/first-lf.component.html
diff --git a/tests/html_angular/ignore-attribute.component.html b/tests/angular/angular/ignore-attribute.component.html
similarity index 100%
rename from tests/html_angular/ignore-attribute.component.html
rename to tests/angular/angular/ignore-attribute.component.html
diff --git a/tests/html_angular/interpolation.component.html b/tests/angular/angular/interpolation.component.html
similarity index 100%
rename from tests/html_angular/interpolation.component.html
rename to tests/angular/angular/interpolation.component.html
diff --git a/tests/html_angular/jsfmt.spec.js b/tests/angular/angular/jsfmt.spec.js
similarity index 100%
rename from tests/html_angular/jsfmt.spec.js
rename to tests/angular/angular/jsfmt.spec.js
diff --git a/tests/html_angular/real-world.component.html b/tests/angular/angular/real-world.component.html
similarity index 100%
rename from tests/html_angular/real-world.component.html
rename to tests/angular/angular/real-world.component.html
diff --git a/tests/html_angular/tag-name.component.html b/tests/angular/angular/tag-name.component.html
similarity index 100%
rename from tests/html_angular/tag-name.component.html
rename to tests/angular/angular/tag-name.component.html
diff --git a/tests/angular_interpolation/__snapshots__/jsfmt.spec.js.snap b/tests/angular/interpolation/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/angular_interpolation/__snapshots__/jsfmt.spec.js.snap
rename to tests/angular/interpolation/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/angular_interpolation/jsfmt.spec.js b/tests/angular/interpolation/jsfmt.spec.js
similarity index 100%
rename from tests/angular_interpolation/jsfmt.spec.js
rename to tests/angular/interpolation/jsfmt.spec.js
diff --git a/tests/angular_interpolation/logical-expression.ng b/tests/angular/interpolation/logical-expression.ng
similarity index 100%
rename from tests/angular_interpolation/logical-expression.ng
rename to tests/angular/interpolation/logical-expression.ng
diff --git a/tests/angular_interpolation/pipe-expression.ng b/tests/angular/interpolation/pipe-expression.ng
similarity index 100%
rename from tests/angular_interpolation/pipe-expression.ng
rename to tests/angular/interpolation/pipe-expression.ng
diff --git a/tests/html_attributes/__snapshots__/jsfmt.spec.js.snap b/tests/html/attributes/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_attributes/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/attributes/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_attributes/attributes.html b/tests/html/attributes/attributes.html
similarity index 100%
rename from tests/html_attributes/attributes.html
rename to tests/html/attributes/attributes.html
diff --git a/tests/html_attributes/boolean.html b/tests/html/attributes/boolean.html
similarity index 100%
rename from tests/html_attributes/boolean.html
rename to tests/html/attributes/boolean.html
diff --git a/tests/html_attributes/case-sensitive.html b/tests/html/attributes/case-sensitive.html
similarity index 100%
rename from tests/html_attributes/case-sensitive.html
rename to tests/html/attributes/case-sensitive.html
diff --git a/tests/html_attributes/class-names.html b/tests/html/attributes/class-names.html
similarity index 100%
rename from tests/html_attributes/class-names.html
rename to tests/html/attributes/class-names.html
diff --git a/tests/html_attributes/dobule-quotes.html b/tests/html/attributes/dobule-quotes.html
similarity index 100%
rename from tests/html_attributes/dobule-quotes.html
rename to tests/html/attributes/dobule-quotes.html
diff --git a/tests/html_attributes/duplicate.html b/tests/html/attributes/duplicate.html
similarity index 100%
rename from tests/html_attributes/duplicate.html
rename to tests/html/attributes/duplicate.html
diff --git a/tests/html_attributes/jsfmt.spec.js b/tests/html/attributes/jsfmt.spec.js
similarity index 100%
rename from tests/html_attributes/jsfmt.spec.js
rename to tests/html/attributes/jsfmt.spec.js
diff --git a/tests/html_attributes/single-quotes.html b/tests/html/attributes/single-quotes.html
similarity index 100%
rename from tests/html_attributes/single-quotes.html
rename to tests/html/attributes/single-quotes.html
diff --git a/tests/html_attributes/smart-quotes.html b/tests/html/attributes/smart-quotes.html
similarity index 100%
rename from tests/html_attributes/smart-quotes.html
rename to tests/html/attributes/smart-quotes.html
diff --git a/tests/html_attributes/srcset.html b/tests/html/attributes/srcset.html
similarity index 100%
rename from tests/html_attributes/srcset.html
rename to tests/html/attributes/srcset.html
diff --git a/tests/html_attributes/style.html b/tests/html/attributes/style.html
similarity index 100%
rename from tests/html_attributes/style.html
rename to tests/html/attributes/style.html
diff --git a/tests/html_attributes/without-quotes.html b/tests/html/attributes/without-quotes.html
similarity index 100%
rename from tests/html_attributes/without-quotes.html
rename to tests/html/attributes/without-quotes.html
diff --git a/tests/html_aurelia/__snapshots__/jsfmt.spec.js.snap b/tests/html/aurelia/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_aurelia/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/aurelia/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_aurelia/basic.html b/tests/html/aurelia/basic.html
similarity index 100%
rename from tests/html_aurelia/basic.html
rename to tests/html/aurelia/basic.html
diff --git a/tests/html_aurelia/jsfmt.spec.js b/tests/html/aurelia/jsfmt.spec.js
similarity index 100%
rename from tests/html_aurelia/jsfmt.spec.js
rename to tests/html/aurelia/jsfmt.spec.js
diff --git a/tests/html_basics/__snapshots__/jsfmt.spec.js.snap b/tests/html/basics/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_basics/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/basics/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_basics/broken-html.html b/tests/html/basics/broken-html.html
similarity index 100%
rename from tests/html_basics/broken-html.html
rename to tests/html/basics/broken-html.html
diff --git a/tests/html_basics/comment.html b/tests/html/basics/comment.html
similarity index 100%
rename from tests/html_basics/comment.html
rename to tests/html/basics/comment.html
diff --git a/tests/html_basics/empty-doc.html b/tests/html/basics/empty-doc.html
similarity index 100%
rename from tests/html_basics/empty-doc.html
rename to tests/html/basics/empty-doc.html
diff --git a/tests/html_basics/empty.html b/tests/html/basics/empty.html
similarity index 100%
rename from tests/html_basics/empty.html
rename to tests/html/basics/empty.html
diff --git a/tests/html_basics/form.html b/tests/html/basics/form.html
similarity index 100%
rename from tests/html_basics/form.html
rename to tests/html/basics/form.html
diff --git a/tests/html_basics/hello-world.html b/tests/html/basics/hello-world.html
similarity index 100%
rename from tests/html_basics/hello-world.html
rename to tests/html/basics/hello-world.html
diff --git a/tests/html_basics/html-comments.html b/tests/html/basics/html-comments.html
similarity index 100%
rename from tests/html_basics/html-comments.html
rename to tests/html/basics/html-comments.html
diff --git a/tests/html_basics/html5-boilerplate.html b/tests/html/basics/html5-boilerplate.html
similarity index 100%
rename from tests/html_basics/html5-boilerplate.html
rename to tests/html/basics/html5-boilerplate.html
diff --git a/tests/html_basics/jsfmt.spec.js b/tests/html/basics/jsfmt.spec.js
similarity index 100%
rename from tests/html_basics/jsfmt.spec.js
rename to tests/html/basics/jsfmt.spec.js
diff --git a/tests/html_basics/more-html.html b/tests/html/basics/more-html.html
similarity index 100%
rename from tests/html_basics/more-html.html
rename to tests/html/basics/more-html.html
diff --git a/tests/html_basics/void-elements.html b/tests/html/basics/void-elements.html
similarity index 100%
rename from tests/html_basics/void-elements.html
rename to tests/html/basics/void-elements.html
diff --git a/tests/html_basics/with-colon.html b/tests/html/basics/with-colon.html
similarity index 100%
rename from tests/html_basics/with-colon.html
rename to tests/html/basics/with-colon.html
diff --git a/tests/html_case/__snapshots__/jsfmt.spec.js.snap b/tests/html/case/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_case/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/case/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_case/case.html b/tests/html/case/case.html
similarity index 100%
rename from tests/html_case/case.html
rename to tests/html/case/case.html
diff --git a/tests/html_case/jsfmt.spec.js b/tests/html/case/jsfmt.spec.js
similarity index 100%
rename from tests/html_case/jsfmt.spec.js
rename to tests/html/case/jsfmt.spec.js
diff --git a/tests/html_cdata/__snapshots__/jsfmt.spec.js.snap b/tests/html/cdata/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_cdata/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/cdata/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_cdata/example.html b/tests/html/cdata/example.html
similarity index 100%
rename from tests/html_cdata/example.html
rename to tests/html/cdata/example.html
diff --git a/tests/html_cdata/jsfmt.spec.js b/tests/html/cdata/jsfmt.spec.js
similarity index 100%
rename from tests/html_cdata/jsfmt.spec.js
rename to tests/html/cdata/jsfmt.spec.js
diff --git a/tests/html_comments/__snapshots__/jsfmt.spec.js.snap b/tests/html/comments/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_comments/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/comments/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_comments/before-text.html b/tests/html/comments/before-text.html
similarity index 100%
rename from tests/html_comments/before-text.html
rename to tests/html/comments/before-text.html
diff --git a/tests/html_comments/bogus.html b/tests/html/comments/bogus.html
similarity index 100%
rename from tests/html_comments/bogus.html
rename to tests/html/comments/bogus.html
diff --git a/tests/html_comments/conditional.html b/tests/html/comments/conditional.html
similarity index 100%
rename from tests/html_comments/conditional.html
rename to tests/html/comments/conditional.html
diff --git a/tests/html_comments/for_debugging.html b/tests/html/comments/for_debugging.html
similarity index 100%
rename from tests/html_comments/for_debugging.html
rename to tests/html/comments/for_debugging.html
diff --git a/tests/html_comments/hidden.html b/tests/html/comments/hidden.html
similarity index 100%
rename from tests/html_comments/hidden.html
rename to tests/html/comments/hidden.html
diff --git a/tests/html_comments/jsfmt.spec.js b/tests/html/comments/jsfmt.spec.js
similarity index 100%
rename from tests/html_comments/jsfmt.spec.js
rename to tests/html/comments/jsfmt.spec.js
diff --git a/tests/html_comments/surrounding-empty-line.html b/tests/html/comments/surrounding-empty-line.html
similarity index 100%
rename from tests/html_comments/surrounding-empty-line.html
rename to tests/html/comments/surrounding-empty-line.html
diff --git a/tests/html_css/__snapshots__/jsfmt.spec.js.snap b/tests/html/css/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_css/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/css/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_css/empty.html b/tests/html/css/empty.html
similarity index 100%
rename from tests/html_css/empty.html
rename to tests/html/css/empty.html
diff --git a/tests/html_css/jsfmt.spec.js b/tests/html/css/jsfmt.spec.js
similarity index 100%
rename from tests/html_css/jsfmt.spec.js
rename to tests/html/css/jsfmt.spec.js
diff --git a/tests/html_css/less.html b/tests/html/css/less.html
similarity index 100%
rename from tests/html_css/less.html
rename to tests/html/css/less.html
diff --git a/tests/html_css/postcss.html b/tests/html/css/postcss.html
similarity index 100%
rename from tests/html_css/postcss.html
rename to tests/html/css/postcss.html
diff --git a/tests/html_css/scss.html b/tests/html/css/scss.html
similarity index 100%
rename from tests/html_css/scss.html
rename to tests/html/css/scss.html
diff --git a/tests/html_css/simple.html b/tests/html/css/simple.html
similarity index 100%
rename from tests/html_css/simple.html
rename to tests/html/css/simple.html
diff --git a/tests/html_css/single-style.html b/tests/html/css/single-style.html
similarity index 100%
rename from tests/html_css/single-style.html
rename to tests/html/css/single-style.html
diff --git a/tests/html_doctype_declarations/__snapshots__/jsfmt.spec.js.snap b/tests/html/doctype_declarations/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_doctype_declarations/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/doctype_declarations/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_doctype_declarations/html4.01_frameset.html b/tests/html/doctype_declarations/html4.01_frameset.html
similarity index 100%
rename from tests/html_doctype_declarations/html4.01_frameset.html
rename to tests/html/doctype_declarations/html4.01_frameset.html
diff --git a/tests/html_doctype_declarations/html4.01_strict.html b/tests/html/doctype_declarations/html4.01_strict.html
similarity index 100%
rename from tests/html_doctype_declarations/html4.01_strict.html
rename to tests/html/doctype_declarations/html4.01_strict.html
diff --git a/tests/html_doctype_declarations/html4.01_transitional.html b/tests/html/doctype_declarations/html4.01_transitional.html
similarity index 100%
rename from tests/html_doctype_declarations/html4.01_transitional.html
rename to tests/html/doctype_declarations/html4.01_transitional.html
diff --git a/tests/html_doctype_declarations/html5.html b/tests/html/doctype_declarations/html5.html
similarity index 100%
rename from tests/html_doctype_declarations/html5.html
rename to tests/html/doctype_declarations/html5.html
diff --git a/tests/html_doctype_declarations/jsfmt.spec.js b/tests/html/doctype_declarations/jsfmt.spec.js
similarity index 100%
rename from tests/html_doctype_declarations/jsfmt.spec.js
rename to tests/html/doctype_declarations/jsfmt.spec.js
diff --git a/tests/html_doctype_declarations/xhtml1.1.html b/tests/html/doctype_declarations/xhtml1.1.html
similarity index 100%
rename from tests/html_doctype_declarations/xhtml1.1.html
rename to tests/html/doctype_declarations/xhtml1.1.html
diff --git a/tests/html_interpolation/__snapshots__/jsfmt.spec.js.snap b/tests/html/interpolation/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_interpolation/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/interpolation/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_interpolation/example.html b/tests/html/interpolation/example.html
similarity index 100%
rename from tests/html_interpolation/example.html
rename to tests/html/interpolation/example.html
diff --git a/tests/html_interpolation/jsfmt.spec.js b/tests/html/interpolation/jsfmt.spec.js
similarity index 100%
rename from tests/html_interpolation/jsfmt.spec.js
rename to tests/html/interpolation/jsfmt.spec.js
diff --git a/tests/html_js/__snapshots__/jsfmt.spec.js.snap b/tests/html/js/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_js/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/js/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_js/empty.html b/tests/html/js/empty.html
similarity index 100%
rename from tests/html_js/empty.html
rename to tests/html/js/empty.html
diff --git a/tests/html_js/js.html b/tests/html/js/js.html
similarity index 100%
rename from tests/html_js/js.html
rename to tests/html/js/js.html
diff --git a/tests/html_js/jsfmt.spec.js b/tests/html/js/jsfmt.spec.js
similarity index 100%
rename from tests/html_js/jsfmt.spec.js
rename to tests/html/js/jsfmt.spec.js
diff --git a/tests/html_js/simple.html b/tests/html/js/simple.html
similarity index 100%
rename from tests/html_js/simple.html
rename to tests/html/js/simple.html
diff --git a/tests/html_js/single-script.html b/tests/html/js/single-script.html
similarity index 100%
rename from tests/html_js/single-script.html
rename to tests/html/js/single-script.html
diff --git a/tests/html_js/something-else.html b/tests/html/js/something-else.html
similarity index 100%
rename from tests/html_js/something-else.html
rename to tests/html/js/something-else.html
diff --git a/tests/html_js/template-literal.html b/tests/html/js/template-literal.html
similarity index 100%
rename from tests/html_js/template-literal.html
rename to tests/html/js/template-literal.html
diff --git a/tests/html_js/typescript.html b/tests/html/js/typescript.html
similarity index 100%
rename from tests/html_js/typescript.html
rename to tests/html/js/typescript.html
diff --git a/tests/html_lwc/__snapshots__/jsfmt.spec.js.snap b/tests/html/lwc/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_lwc/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/lwc/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_lwc/attributes.html b/tests/html/lwc/attributes.html
similarity index 100%
rename from tests/html_lwc/attributes.html
rename to tests/html/lwc/attributes.html
diff --git a/tests/html_lwc/jsfmt.spec.js b/tests/html/lwc/jsfmt.spec.js
similarity index 100%
rename from tests/html_lwc/jsfmt.spec.js
rename to tests/html/lwc/jsfmt.spec.js
diff --git a/tests/html_magic_comments/__snapshots__/jsfmt.spec.js.snap b/tests/html/magic_comments/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_magic_comments/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/magic_comments/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_magic_comments/display.html b/tests/html/magic_comments/display.html
similarity index 100%
rename from tests/html_magic_comments/display.html
rename to tests/html/magic_comments/display.html
diff --git a/tests/html_magic_comments/jsfmt.spec.js b/tests/html/magic_comments/jsfmt.spec.js
similarity index 100%
rename from tests/html_magic_comments/jsfmt.spec.js
rename to tests/html/magic_comments/jsfmt.spec.js
diff --git a/tests/html_mjml/__snapshots__/jsfmt.spec.js.snap b/tests/html/mjml/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_mjml/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/mjml/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_mjml/empty.mjml b/tests/html/mjml/empty.mjml
similarity index 100%
rename from tests/html_mjml/empty.mjml
rename to tests/html/mjml/empty.mjml
diff --git a/tests/html_mjml/head.mjml b/tests/html/mjml/head.mjml
similarity index 100%
rename from tests/html_mjml/head.mjml
rename to tests/html/mjml/head.mjml
diff --git a/tests/html_mjml/jsfmt.spec.js b/tests/html/mjml/jsfmt.spec.js
similarity index 100%
rename from tests/html_mjml/jsfmt.spec.js
rename to tests/html/mjml/jsfmt.spec.js
diff --git a/tests/multiparser_html_css/__snapshots__/jsfmt.spec.js.snap b/tests/html/multiparser-css/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/multiparser_html_css/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/multiparser-css/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/multiparser_html_css/html-with-css-style.html b/tests/html/multiparser-css/html-with-css-style.html
similarity index 100%
rename from tests/multiparser_html_css/html-with-css-style.html
rename to tests/html/multiparser-css/html-with-css-style.html
diff --git a/tests/html_next_empty_line/jsfmt.spec.js b/tests/html/multiparser-css/jsfmt.spec.js
similarity index 100%
rename from tests/html_next_empty_line/jsfmt.spec.js
rename to tests/html/multiparser-css/jsfmt.spec.js
diff --git a/tests/multiparser_html_js/__snapshots__/jsfmt.spec.js.snap b/tests/html/multiparser-js/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/multiparser_html_js/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/multiparser-js/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/multiparser_html_js/html-with-js-script.html b/tests/html/multiparser-js/html-with-js-script.html
similarity index 100%
rename from tests/multiparser_html_js/html-with-js-script.html
rename to tests/html/multiparser-js/html-with-js-script.html
diff --git a/tests/html_prettier_ignore/jsfmt.spec.js b/tests/html/multiparser-js/jsfmt.spec.js
similarity index 100%
rename from tests/html_prettier_ignore/jsfmt.spec.js
rename to tests/html/multiparser-js/jsfmt.spec.js
diff --git a/tests/multiparser_html_js/script-tag-escaping.html b/tests/html/multiparser-js/script-tag-escaping.html
similarity index 100%
rename from tests/multiparser_html_js/script-tag-escaping.html
rename to tests/html/multiparser-js/script-tag-escaping.html
diff --git a/tests/multiparser_html_markdown/__snapshots__/jsfmt.spec.js.snap b/tests/html/multiparser-markdown/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/multiparser_html_markdown/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/multiparser-markdown/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/multiparser_html_markdown/html-with-markdown-script.html b/tests/html/multiparser-markdown/html-with-markdown-script.html
similarity index 100%
rename from tests/multiparser_html_markdown/html-with-markdown-script.html
rename to tests/html/multiparser-markdown/html-with-markdown-script.html
diff --git a/tests/html_script/jsfmt.spec.js b/tests/html/multiparser-markdown/jsfmt.spec.js
similarity index 100%
rename from tests/html_script/jsfmt.spec.js
rename to tests/html/multiparser-markdown/jsfmt.spec.js
diff --git a/tests/multiparser_html_ts/__snapshots__/jsfmt.spec.js.snap b/tests/html/multiparser-ts/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/multiparser_html_ts/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/multiparser-ts/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/multiparser_html_ts/html-with-ts-script.html b/tests/html/multiparser-ts/html-with-ts-script.html
similarity index 100%
rename from tests/multiparser_html_ts/html-with-ts-script.html
rename to tests/html/multiparser-ts/html-with-ts-script.html
diff --git a/tests/html_svg/jsfmt.spec.js b/tests/html/multiparser-ts/jsfmt.spec.js
similarity index 100%
rename from tests/html_svg/jsfmt.spec.js
rename to tests/html/multiparser-ts/jsfmt.spec.js
diff --git a/tests/html_next_empty_line/__snapshots__/jsfmt.spec.js.snap b/tests/html/next_empty_line/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_next_empty_line/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/next_empty_line/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_symbol_entities/jsfmt.spec.js b/tests/html/next_empty_line/jsfmt.spec.js
similarity index 100%
rename from tests/html_symbol_entities/jsfmt.spec.js
rename to tests/html/next_empty_line/jsfmt.spec.js
diff --git a/tests/html_next_empty_line/standalone-end-marker.html b/tests/html/next_empty_line/standalone-end-marker.html
similarity index 100%
rename from tests/html_next_empty_line/standalone-end-marker.html
rename to tests/html/next_empty_line/standalone-end-marker.html
diff --git a/tests/html_prettier_ignore/__snapshots__/jsfmt.spec.js.snap b/tests/html/prettier_ignore/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_prettier_ignore/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/prettier_ignore/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_prettier_ignore/cases.html b/tests/html/prettier_ignore/cases.html
similarity index 100%
rename from tests/html_prettier_ignore/cases.html
rename to tests/html/prettier_ignore/cases.html
diff --git a/tests/html_prettier_ignore/document.html b/tests/html/prettier_ignore/document.html
similarity index 100%
rename from tests/html_prettier_ignore/document.html
rename to tests/html/prettier_ignore/document.html
diff --git a/tests/html_yaml/jsfmt.spec.js b/tests/html/prettier_ignore/jsfmt.spec.js
similarity index 100%
rename from tests/html_yaml/jsfmt.spec.js
rename to tests/html/prettier_ignore/jsfmt.spec.js
diff --git a/tests/html_prettier_ignore/long_lines.html b/tests/html/prettier_ignore/long_lines.html
similarity index 100%
rename from tests/html_prettier_ignore/long_lines.html
rename to tests/html/prettier_ignore/long_lines.html
diff --git a/tests/html_script/__snapshots__/jsfmt.spec.js.snap b/tests/html/script/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_script/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/script/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/multiparser_html_css/jsfmt.spec.js b/tests/html/script/jsfmt.spec.js
similarity index 100%
rename from tests/multiparser_html_css/jsfmt.spec.js
rename to tests/html/script/jsfmt.spec.js
diff --git a/tests/html_script/script.html b/tests/html/script/script.html
similarity index 100%
rename from tests/html_script/script.html
rename to tests/html/script/script.html
diff --git a/tests/html_svg/__snapshots__/jsfmt.spec.js.snap b/tests/html/svg/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_svg/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/svg/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/multiparser_html_js/jsfmt.spec.js b/tests/html/svg/jsfmt.spec.js
similarity index 100%
rename from tests/multiparser_html_js/jsfmt.spec.js
rename to tests/html/svg/jsfmt.spec.js
diff --git a/tests/html_svg/svg.html b/tests/html/svg/svg.html
similarity index 100%
rename from tests/html_svg/svg.html
rename to tests/html/svg/svg.html
diff --git a/tests/html_symbol_entities/__snapshots__/jsfmt.spec.js.snap b/tests/html/symbol_entities/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_symbol_entities/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/symbol_entities/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/multiparser_html_markdown/jsfmt.spec.js b/tests/html/symbol_entities/jsfmt.spec.js
similarity index 100%
rename from tests/multiparser_html_markdown/jsfmt.spec.js
rename to tests/html/symbol_entities/jsfmt.spec.js
diff --git a/tests/html_symbol_entities/symbol_entitites.html b/tests/html/symbol_entities/symbol_entitites.html
similarity index 100%
rename from tests/html_symbol_entities/symbol_entitites.html
rename to tests/html/symbol_entities/symbol_entitites.html
diff --git a/tests/html_tags/__snapshots__/jsfmt.spec.js.snap b/tests/html/tags/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_tags/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/tags/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_tags/case-sensitive.html b/tests/html/tags/case-sensitive.html
similarity index 100%
rename from tests/html_tags/case-sensitive.html
rename to tests/html/tags/case-sensitive.html
diff --git a/tests/html_tags/closing-at-start.html b/tests/html/tags/closing-at-start.html
similarity index 100%
rename from tests/html_tags/closing-at-start.html
rename to tests/html/tags/closing-at-start.html
diff --git a/tests/html_tags/custom-element.html b/tests/html/tags/custom-element.html
similarity index 100%
rename from tests/html_tags/custom-element.html
rename to tests/html/tags/custom-element.html
diff --git a/tests/html_tags/jsfmt.spec.js b/tests/html/tags/jsfmt.spec.js
similarity index 100%
rename from tests/html_tags/jsfmt.spec.js
rename to tests/html/tags/jsfmt.spec.js
diff --git a/tests/html_tags/openging-at-end.html b/tests/html/tags/openging-at-end.html
similarity index 100%
rename from tests/html_tags/openging-at-end.html
rename to tests/html/tags/openging-at-end.html
diff --git a/tests/html_tags/pre.html b/tests/html/tags/pre.html
similarity index 100%
rename from tests/html_tags/pre.html
rename to tests/html/tags/pre.html
diff --git a/tests/html_tags/tags.html b/tests/html/tags/tags.html
similarity index 100%
rename from tests/html_tags/tags.html
rename to tests/html/tags/tags.html
diff --git a/tests/html_tags/textarea.html b/tests/html/tags/textarea.html
similarity index 100%
rename from tests/html_tags/textarea.html
rename to tests/html/tags/textarea.html
diff --git a/tests/html_tags/unsupported.html b/tests/html/tags/unsupported.html
similarity index 100%
rename from tests/html_tags/unsupported.html
rename to tests/html/tags/unsupported.html
diff --git a/tests/html_whitespace/__snapshots__/jsfmt.spec.js.snap b/tests/html/whitespace/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_whitespace/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/whitespace/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_whitespace/break-tags.html b/tests/html/whitespace/break-tags.html
similarity index 100%
rename from tests/html_whitespace/break-tags.html
rename to tests/html/whitespace/break-tags.html
diff --git a/tests/html_whitespace/display-inline-block.html b/tests/html/whitespace/display-inline-block.html
similarity index 100%
rename from tests/html_whitespace/display-inline-block.html
rename to tests/html/whitespace/display-inline-block.html
diff --git a/tests/html_whitespace/display-none.html b/tests/html/whitespace/display-none.html
similarity index 100%
rename from tests/html_whitespace/display-none.html
rename to tests/html/whitespace/display-none.html
diff --git a/tests/html_whitespace/fill.html b/tests/html/whitespace/fill.html
similarity index 100%
rename from tests/html_whitespace/fill.html
rename to tests/html/whitespace/fill.html
diff --git a/tests/html_whitespace/inline-leading-trailing-spaces.html b/tests/html/whitespace/inline-leading-trailing-spaces.html
similarity index 100%
rename from tests/html_whitespace/inline-leading-trailing-spaces.html
rename to tests/html/whitespace/inline-leading-trailing-spaces.html
diff --git a/tests/html_whitespace/inline-nodes.html b/tests/html/whitespace/inline-nodes.html
similarity index 100%
rename from tests/html_whitespace/inline-nodes.html
rename to tests/html/whitespace/inline-nodes.html
diff --git a/tests/html_whitespace/jsfmt.spec.js b/tests/html/whitespace/jsfmt.spec.js
similarity index 100%
rename from tests/html_whitespace/jsfmt.spec.js
rename to tests/html/whitespace/jsfmt.spec.js
diff --git a/tests/html_whitespace/non-breaking-whitespace.html b/tests/html/whitespace/non-breaking-whitespace.html
similarity index 100%
rename from tests/html_whitespace/non-breaking-whitespace.html
rename to tests/html/whitespace/non-breaking-whitespace.html
diff --git a/tests/html_whitespace/surrounding-linebreak.html b/tests/html/whitespace/surrounding-linebreak.html
similarity index 100%
rename from tests/html_whitespace/surrounding-linebreak.html
rename to tests/html/whitespace/surrounding-linebreak.html
diff --git a/tests/html_whitespace/table.html b/tests/html/whitespace/table.html
similarity index 100%
rename from tests/html_whitespace/table.html
rename to tests/html/whitespace/table.html
diff --git a/tests/html_whitespace/template.html b/tests/html/whitespace/template.html
similarity index 100%
rename from tests/html_whitespace/template.html
rename to tests/html/whitespace/template.html
diff --git a/tests/html_yaml/__snapshots__/jsfmt.spec.js.snap b/tests/html/yaml/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_yaml/__snapshots__/jsfmt.spec.js.snap
rename to tests/html/yaml/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_yaml/invalid.html b/tests/html/yaml/invalid.html
similarity index 100%
rename from tests/html_yaml/invalid.html
rename to tests/html/yaml/invalid.html
diff --git a/tests/multiparser_html_ts/jsfmt.spec.js b/tests/html/yaml/jsfmt.spec.js
similarity index 100%
rename from tests/multiparser_html_ts/jsfmt.spec.js
rename to tests/html/yaml/jsfmt.spec.js
diff --git a/tests/html_yaml/yaml.html b/tests/html/yaml/yaml.html
similarity index 100%
rename from tests/html_yaml/yaml.html
rename to tests/html/yaml/yaml.html
diff --git a/tests/html_vue_custom_block/__snapshots__/jsfmt.spec.js.snap b/tests/vue/custom_block/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_vue_custom_block/__snapshots__/jsfmt.spec.js.snap
rename to tests/vue/custom_block/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_vue_custom_block/graphql.vue b/tests/vue/custom_block/graphql.vue
similarity index 100%
rename from tests/html_vue_custom_block/graphql.vue
rename to tests/vue/custom_block/graphql.vue
diff --git a/tests/html_vue_custom_block/handlebars.vue b/tests/vue/custom_block/handlebars.vue
similarity index 100%
rename from tests/html_vue_custom_block/handlebars.vue
rename to tests/vue/custom_block/handlebars.vue
diff --git a/tests/html_vue_custom_block/jsfmt.spec.js b/tests/vue/custom_block/jsfmt.spec.js
similarity index 100%
rename from tests/html_vue_custom_block/jsfmt.spec.js
rename to tests/vue/custom_block/jsfmt.spec.js
diff --git a/tests/html_vue_custom_block/json.vue b/tests/vue/custom_block/json.vue
similarity index 100%
rename from tests/html_vue_custom_block/json.vue
rename to tests/vue/custom_block/json.vue
diff --git a/tests/html_vue_custom_block/lang-attribute.vue b/tests/vue/custom_block/lang-attribute.vue
similarity index 100%
rename from tests/html_vue_custom_block/lang-attribute.vue
rename to tests/vue/custom_block/lang-attribute.vue
diff --git a/tests/html_vue_custom_block/markdown.vue b/tests/vue/custom_block/markdown.vue
similarity index 100%
rename from tests/html_vue_custom_block/markdown.vue
rename to tests/vue/custom_block/markdown.vue
diff --git a/tests/html_vue_custom_block/unknown.vue b/tests/vue/custom_block/unknown.vue
similarity index 100%
rename from tests/html_vue_custom_block/unknown.vue
rename to tests/vue/custom_block/unknown.vue
diff --git a/tests/html_vue_custom_block/yaml.vue b/tests/vue/custom_block/yaml.vue
similarity index 100%
rename from tests/html_vue_custom_block/yaml.vue
rename to tests/vue/custom_block/yaml.vue
diff --git a/tests/html_vue_indent/__snapshots__/jsfmt.spec.js.snap b/tests/vue/indent/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_vue_indent/__snapshots__/jsfmt.spec.js.snap
rename to tests/vue/indent/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_vue_indent/inside-template.vue b/tests/vue/indent/inside-template.vue
similarity index 100%
rename from tests/html_vue_indent/inside-template.vue
rename to tests/vue/indent/inside-template.vue
diff --git a/tests/html_vue_indent/jsfmt.spec.js b/tests/vue/indent/jsfmt.spec.js
similarity index 100%
rename from tests/html_vue_indent/jsfmt.spec.js
rename to tests/vue/indent/jsfmt.spec.js
diff --git a/tests/html_vue_indent/vue-tag-indent.vue b/tests/vue/indent/vue-tag-indent.vue
similarity index 100%
rename from tests/html_vue_indent/vue-tag-indent.vue
rename to tests/vue/indent/vue-tag-indent.vue
diff --git a/tests/html_vue/__snapshots__/jsfmt.spec.js.snap b/tests/vue/vue/__snapshots__/jsfmt.spec.js.snap
similarity index 100%
rename from tests/html_vue/__snapshots__/jsfmt.spec.js.snap
rename to tests/vue/vue/__snapshots__/jsfmt.spec.js.snap
diff --git a/tests/html_vue/attributes.vue b/tests/vue/vue/attributes.vue
similarity index 100%
rename from tests/html_vue/attributes.vue
rename to tests/vue/vue/attributes.vue
diff --git a/tests/html_vue/board_card.vue b/tests/vue/vue/board_card.vue
similarity index 100%
rename from tests/html_vue/board_card.vue
rename to tests/vue/vue/board_card.vue
diff --git a/tests/html_vue/case-sensitive-tags.vue b/tests/vue/vue/case-sensitive-tags.vue
similarity index 100%
rename from tests/html_vue/case-sensitive-tags.vue
rename to tests/vue/vue/case-sensitive-tags.vue
diff --git a/tests/html_vue/custom-block.vue b/tests/vue/vue/custom-block.vue
similarity index 100%
rename from tests/html_vue/custom-block.vue
rename to tests/vue/vue/custom-block.vue
diff --git a/tests/html_vue/expression-binding.vue b/tests/vue/vue/expression-binding.vue
similarity index 100%
rename from tests/html_vue/expression-binding.vue
rename to tests/vue/vue/expression-binding.vue
diff --git a/tests/html_vue/filter.vue b/tests/vue/vue/filter.vue
similarity index 100%
rename from tests/html_vue/filter.vue
rename to tests/vue/vue/filter.vue
diff --git a/tests/html_vue/interpolations.vue b/tests/vue/vue/interpolations.vue
similarity index 100%
rename from tests/html_vue/interpolations.vue
rename to tests/vue/vue/interpolations.vue
diff --git a/tests/html_vue/jsfmt.spec.js b/tests/vue/vue/jsfmt.spec.js
similarity index 100%
rename from tests/html_vue/jsfmt.spec.js
rename to tests/vue/vue/jsfmt.spec.js
diff --git a/tests/html_vue/pre-child.vue b/tests/vue/vue/pre-child.vue
similarity index 100%
rename from tests/html_vue/pre-child.vue
rename to tests/vue/vue/pre-child.vue
diff --git a/tests/html_vue/script_src.vue b/tests/vue/vue/script_src.vue
similarity index 100%
rename from tests/html_vue/script_src.vue
rename to tests/vue/vue/script_src.vue
diff --git a/tests/html_vue/self_closing.vue b/tests/vue/vue/self_closing.vue
similarity index 100%
rename from tests/html_vue/self_closing.vue
rename to tests/vue/vue/self_closing.vue
diff --git a/tests/html_vue/self_closing_style.vue b/tests/vue/vue/self_closing_style.vue
similarity index 100%
rename from tests/html_vue/self_closing_style.vue
rename to tests/vue/vue/self_closing_style.vue
diff --git a/tests/html_vue/style.vue b/tests/vue/vue/style.vue
similarity index 100%
rename from tests/html_vue/style.vue
rename to tests/vue/vue/style.vue
diff --git a/tests/html_vue/tag-name.vue b/tests/vue/vue/tag-name.vue
similarity index 100%
rename from tests/html_vue/tag-name.vue
rename to tests/vue/vue/tag-name.vue
diff --git a/tests/html_vue/template-lang.vue b/tests/vue/vue/template-lang.vue
similarity index 100%
rename from tests/html_vue/template-lang.vue
rename to tests/vue/vue/template-lang.vue
diff --git a/tests/html_vue/template.vue b/tests/vue/vue/template.vue
similarity index 100%
rename from tests/html_vue/template.vue
rename to tests/vue/vue/template.vue
diff --git a/tests/html_vue/test.vue b/tests/vue/vue/test.vue
similarity index 100%
rename from tests/html_vue/test.vue
rename to tests/vue/vue/test.vue
diff --git a/tests/html_vue/v-if.vue b/tests/vue/vue/v-if.vue
similarity index 100%
rename from tests/html_vue/v-if.vue
rename to tests/vue/vue/v-if.vue
diff --git a/tests_config/run_spec.js b/tests_config/run_spec.js
index 09f20c0c3..5fa55d19d 100644
--- a/tests_config/run_spec.js
+++ b/tests_config/run_spec.js
@@ -32,7 +32,7 @@ const unstableTests = new Map(
"markdown_footnoteDefinition/multiline.md",
"markdown_spec/example-234.md",
"markdown_spec/example-235.md",
- "multiparser_html_js/script-tag-escaping.html",
+ "html/multiparser-js/script-tag-escaping.html",
[
"multiparser_js_markdown/codeblock.js",
(options) => options.proseWrap === "always",