├── .bundle └── config ├── .clang-format ├── .clang-format-ignore ├── .clang-tidy ├── .doxygen ├── frame.css ├── frame.js └── header.html ├── .envrc ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── formatting-issue.md │ └── linter-rule-proposal.md ├── dependabot.yml ├── labeler.yml └── workflows │ ├── build-gems.yml │ ├── build.yml │ ├── deploy.yml │ ├── java.yml │ ├── javascript.yml │ ├── labeler.yml │ └── rust.yml ├── .gitignore ├── .node-version ├── .prettierignore ├── .prettierrc.json ├── .rubocop.yml ├── .ruby-version ├── Aptfile ├── Brewfile ├── Brewfile.lock.json ├── CONTRIBUTING.md ├── Doxyfile ├── Gemfile ├── Gemfile.lock ├── LICENSE.txt ├── Makefile ├── Procfile ├── README.md ├── Rakefile ├── Steepfile ├── bin ├── compare ├── compare-compile ├── compare-render ├── debug ├── debug_lex ├── debug_parse ├── download_gems ├── erubi-compile ├── erubi-render ├── force_update_snapshots ├── format ├── gem-build ├── gem-build-local ├── gem-platform ├── integration ├── leaks ├── leaks_lex ├── leaks_parse ├── lib │ └── compare_helpers.rb ├── lint ├── publish_gems ├── publish_packages ├── setup ├── test ├── test_debug ├── tidy ├── update_snapshots └── valgrind_check_examples ├── config.yml ├── docs ├── .gitignore ├── .vitepress │ ├── assets │ │ └── herb.svg │ ├── blog.data.ts │ ├── components │ │ └── BlogIndex.vue │ ├── config.mts │ ├── config │ │ ├── markdown.mts │ │ ├── theme.mts │ │ └── vite.mts │ ├── generate-rules.mts │ ├── theme │ │ ├── components │ │ │ └── GitHubContributors.vue │ │ ├── custom.css │ │ └── index.ts │ ├── transformers │ │ └── herb-linter-transformer.mts │ └── utils │ │ └── herb.mts ├── docs │ ├── about.md │ ├── bindings │ │ ├── java │ │ │ ├── index.md │ │ │ └── reference.md │ │ ├── javascript │ │ │ ├── index.md │ │ │ └── reference.md │ │ ├── ruby │ │ │ ├── index.md │ │ │ └── reference.md │ │ └── rust │ │ │ ├── index.md │ │ │ └── reference.md │ ├── blog.md │ ├── blog │ │ └── whats-new-in-herb-v0-8.md │ ├── c-reference │ │ ├── enum-values.md │ │ ├── enums.md │ │ ├── index.md │ │ ├── nodes.md │ │ ├── structs.md │ │ └── tokens.md │ ├── configuration.md │ ├── index.md │ ├── integrations │ │ ├── editors.md │ │ └── editors │ │ │ ├── cursor.md │ │ │ ├── helix.md │ │ │ ├── neovim.md │ │ │ ├── rubymine.md │ │ │ ├── sublime.md │ │ │ ├── vim.md │ │ │ ├── vscode.md │ │ │ └── zed.md │ ├── overview.md │ ├── playground.md │ ├── projects.md │ ├── projects │ │ ├── cli.md │ │ ├── compiler.md │ │ ├── config.md │ │ ├── core.md │ │ ├── dev-tools.md │ │ ├── engine.md │ │ ├── formatter.md │ │ ├── highlighter.md │ │ ├── language-server.md │ │ ├── language-service.md │ │ ├── linter.md │ │ ├── minifier.md │ │ ├── parser.md │ │ ├── printer.md │ │ ├── rewriter.md │ │ └── webassembly.md │ ├── public │ │ ├── apple-touch-icon.png │ │ ├── blog │ │ │ └── whats-new-in-herb-v0-8 │ │ │ │ ├── arena-memory-layout.png │ │ │ │ ├── dev-tools-editor-select.png │ │ │ │ ├── fix-on-save.mp4 │ │ │ │ ├── herb-analyze-cli.png │ │ │ │ ├── herb-disable-code-action.mp4 │ │ │ │ ├── herb-disable-config-code-action.mp4 │ │ │ │ ├── herb-lex-cli.png │ │ │ │ ├── herb-parse-cli.png │ │ │ │ ├── herb-parse-errors.png │ │ │ │ ├── hero.png │ │ │ │ ├── linter-autofix.png │ │ │ │ ├── parser-two-pass-after.png │ │ │ │ ├── parser-two-pass-before.png │ │ │ │ ├── summary.png │ │ │ │ ├── tailwind-class-sorter.mp4 │ │ │ │ ├── tailwind-class-sorter.png │ │ │ │ ├── vscode-config-sidebar.png │ │ │ │ ├── vscode-herb-configuration.mp4 │ │ │ │ ├── vscode-herb-configuration.png │ │ │ │ └── vscode-project-settings.png │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── herb-cursor.png │ │ ├── herb-editors.png │ │ ├── herb-helix.png │ │ ├── herb-neovim.png │ │ ├── herb-rubymine.png │ │ ├── herb-sublime.png │ │ ├── herb-vim.png │ │ ├── herb-vscode.png │ │ ├── herb-zed.png │ │ ├── herb.png │ │ ├── herb.svg │ │ └── social.png │ ├── specification.md │ └── specification │ │ ├── antlers.md │ │ ├── blade.md │ │ ├── ejs.md │ │ ├── erb.md │ │ ├── haml.md │ │ ├── handlebars.md │ │ ├── html.md │ │ ├── jinja.md │ │ ├── liquid.md │ │ ├── phlex.md │ │ ├── rbexy.md │ │ ├── rux.md │ │ └── slim.md ├── package.json └── project.json ├── examples ├── attributes_with_empty_value.html.erb ├── begin.html.erb ├── block.html.erb ├── block_comment.html.erb ├── case_children.html.erb ├── case_in.html.erb ├── case_when.html.erb ├── comment.html.erb ├── comment_before_content.html.erb ├── complete_erb.html.erb ├── doctype.html.erb ├── erb.html.erb ├── for.html.erb ├── if_else.html.erb ├── incomplete_erb.invalid.html.erb ├── left-right-trim.html.erb ├── left-trim.html.erb ├── line-wrap.html.erb ├── link_to_with_block.html.erb ├── nested_if_and_blocks.html.erb ├── right-trim.html.erb ├── simple_block.html.erb ├── simple_erb.html.erb ├── test.html.erb ├── until.html.erb ├── utf8.html.erb └── while.html.erb ├── exe └── herb ├── ext ├── herb │ ├── extconf.rb │ ├── extension.c │ ├── extension.h │ ├── extension_helpers.c │ └── extension_helpers.h └── project.json ├── herb.gemspec ├── java ├── Makefile ├── README.md ├── bin │ └── herb-java ├── extension_helpers.c ├── extension_helpers.h ├── herb_jni.c ├── herb_jni.h ├── org │ └── herb │ │ ├── CLI.java │ │ ├── Herb.java │ │ ├── LexResult.java │ │ ├── Location.java │ │ ├── ParseResult.java │ │ ├── ParserOptions.java │ │ ├── Position.java │ │ ├── Range.java │ │ ├── Token.java │ │ └── ast │ │ ├── BaseNode.java │ │ ├── ErrorNode.java │ │ ├── Node.java │ │ └── TreePrintVisitor.java ├── run_tests.sh └── snapshots │ ├── test.html.erb │ ├── test.html.txt │ ├── test.lex.txt │ ├── test.parse.txt │ └── test.ruby.txt ├── javascript ├── .gitignore ├── packages │ ├── browser │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── rollup.config.mjs │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── types │ │ │ │ └── build.d.ts │ │ │ └── wasm-backend.ts │ │ ├── test │ │ │ ├── browser.test.ts │ │ │ └── visitor.test.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── config │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── rollup.config.mjs │ │ ├── src │ │ │ ├── config-schema.ts │ │ │ ├── config-template.yml │ │ │ ├── config.ts │ │ │ ├── index.ts │ │ │ ├── merge.ts │ │ │ ├── vscode.ts │ │ │ └── yaml.d.ts │ │ ├── test │ │ │ ├── config.test.ts │ │ │ ├── merge.test.ts │ │ │ └── vscode.test.ts │ │ ├── tsconfig.json │ │ ├── vitest.config.ts │ │ └── yaml-plugin.mjs │ ├── core │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── rollup.config.mjs │ │ ├── src │ │ │ ├── ast-utils.ts │ │ │ ├── backend.ts │ │ │ ├── diagnostic.ts │ │ │ ├── didyoumean.ts │ │ │ ├── herb-backend.ts │ │ │ ├── index.ts │ │ │ ├── levenshtein.ts │ │ │ ├── lex-result.ts │ │ │ ├── location.ts │ │ │ ├── parse-result.ts │ │ │ ├── parser-options.ts │ │ │ ├── position.ts │ │ │ ├── range.ts │ │ │ ├── result.ts │ │ │ ├── token-list.ts │ │ │ ├── token.ts │ │ │ ├── util.ts │ │ │ └── warning.ts │ │ ├── test │ │ │ ├── ast-utils.test.ts │ │ │ ├── core.test.ts │ │ │ ├── didyoumean.test.ts │ │ │ ├── node-type-guards.test.ts │ │ │ └── visitor.test.ts │ │ └── tsconfig.json │ ├── dev-tools │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── rollup.config.mjs │ │ ├── src │ │ │ ├── error-overlay.ts │ │ │ ├── herb-overlay.ts │ │ │ ├── index.ts │ │ │ └── styles.css │ │ └── tsconfig.json │ ├── formatter │ │ ├── README.md │ │ ├── bin │ │ │ └── herb-format │ │ ├── package.json │ │ ├── project.json │ │ ├── rollup.config.mjs │ │ ├── src │ │ │ ├── cli.ts │ │ │ ├── format-helpers.ts │ │ │ ├── format-ignore.ts │ │ │ ├── format-printer.ts │ │ │ ├── formatter.ts │ │ │ ├── herb-format.ts │ │ │ ├── index.ts │ │ │ ├── options.ts │ │ │ ├── scaffold-template-detector.ts │ │ │ └── types.ts │ │ ├── test │ │ │ ├── cli.test.ts │ │ │ ├── cli │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── rewriters.test.ts.snap │ │ │ │ ├── cli-helpers.ts │ │ │ │ └── rewriters.test.ts │ │ │ ├── document-formatting.test.ts │ │ │ ├── erb-formatter │ │ │ │ ├── erb-formatter-additional.test.ts │ │ │ │ ├── erb-formatter-compat.test.ts │ │ │ │ └── erb-formatter-fixtures.test.ts │ │ │ ├── erb-grouping.test.ts │ │ │ ├── erb │ │ │ │ ├── begin.test.ts │ │ │ │ ├── case.test.ts │ │ │ │ ├── comment.test.ts │ │ │ │ ├── erb.test.ts │ │ │ │ ├── for.test.ts │ │ │ │ ├── if.test.ts │ │ │ │ ├── incomplete-erb.test.ts │ │ │ │ ├── scaffold-templates.test.ts │ │ │ │ ├── unless.test.ts │ │ │ │ ├── until.test.ts │ │ │ │ ├── while.test.ts │ │ │ │ └── whitespace-formatting.test.ts │ │ │ ├── fixtures │ │ │ │ ├── config.xml.erb │ │ │ │ ├── example.xml.erb │ │ │ │ └── nested │ │ │ │ │ └── manifest.xml.erb │ │ │ ├── format-printer.test.ts │ │ │ ├── formatter.test.ts │ │ │ ├── frontmatter.test.ts │ │ │ ├── head.test.ts │ │ │ ├── herb-disable-comment-formatting.test.ts │ │ │ ├── herb-formatter-ignore.test.ts │ │ │ ├── html │ │ │ │ ├── attribute-erb-spacing.test.ts │ │ │ │ ├── attribute-formatting.test.ts │ │ │ │ ├── attributes.test.ts │ │ │ │ ├── block-element-inline.test.ts │ │ │ │ ├── comments.test.ts │ │ │ │ ├── conditional-attributes.test.ts │ │ │ │ ├── content-preserving-tags.test.ts │ │ │ │ ├── doctype.test.ts │ │ │ │ ├── headings.test.ts │ │ │ │ ├── incomplete-html.test.ts │ │ │ │ ├── inline-elements.test.ts │ │ │ │ ├── lists.test.ts │ │ │ │ ├── outlook-conditional-comments.test.ts │ │ │ │ ├── quote-normalization.test.ts │ │ │ │ ├── script-style-tags.test.ts │ │ │ │ ├── tags.test.ts │ │ │ │ ├── text-content.test.ts │ │ │ │ └── unicode-characters.test.ts │ │ │ ├── multiline-spacing.test.ts │ │ │ ├── options.test.ts │ │ │ ├── rewriters │ │ │ │ ├── custom-rewriters.test.ts │ │ │ │ ├── fixtures │ │ │ │ │ └── uppercase-tags.js │ │ │ │ ├── formatter-integration.test.ts │ │ │ │ └── helpers.ts │ │ │ ├── spacing.test.ts │ │ │ ├── tag-grouping.test.ts │ │ │ ├── xml-erb-integration.test.ts │ │ │ └── xml │ │ │ │ └── xml.test.ts │ │ └── tsconfig.json │ ├── herb-language-server │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── bin │ │ │ └── herb-language-server │ │ ├── package.json │ │ ├── project.json │ │ ├── rollup.config.mjs │ │ ├── src │ │ │ ├── herb-language-server.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── highlighter │ │ ├── README.md │ │ ├── bin │ │ │ └── herb-highlight │ │ ├── package.json │ │ ├── project.json │ │ ├── rollup.config.mjs │ │ ├── src │ │ │ ├── cli.ts │ │ │ ├── color.ts │ │ │ ├── diagnostic-renderer.ts │ │ │ ├── file-reader.ts │ │ │ ├── file-renderer.ts │ │ │ ├── gutter-config.ts │ │ │ ├── herb-highlight.ts │ │ │ ├── highlighter.ts │ │ │ ├── index.ts │ │ │ ├── initialization-manager.ts │ │ │ ├── inline-diagnostic-renderer.ts │ │ │ ├── line-wrapper.ts │ │ │ ├── syntax-renderer.ts │ │ │ ├── text-formatter.ts │ │ │ ├── themes.ts │ │ │ └── util.ts │ │ ├── test │ │ │ ├── diagnostic-renderer.test.ts │ │ │ ├── file-renderer.test.ts │ │ │ ├── highlighter.test.ts │ │ │ ├── integration.test.ts │ │ │ ├── syntax-renderer.test.ts │ │ │ └── util.ts │ │ ├── themes │ │ │ ├── dracula.json │ │ │ ├── github-light.json │ │ │ ├── onedark.json │ │ │ ├── simple.json │ │ │ └── tokyo-night.json │ │ └── tsconfig.json │ ├── language-server │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── assets │ │ │ ├── herb-lsp.png │ │ │ └── herb.svg │ │ ├── bin │ │ │ └── herb-language-server │ │ ├── package.json │ │ ├── project.json │ │ ├── rollup.config.mjs │ │ ├── src │ │ │ ├── autofix_service.ts │ │ │ ├── cli.ts │ │ │ ├── code_action_service.ts │ │ │ ├── config_service.ts │ │ │ ├── diagnostics.ts │ │ │ ├── document_save_service.ts │ │ │ ├── document_service.ts │ │ │ ├── formatting_service.ts │ │ │ ├── herb-language-server.ts │ │ │ ├── index.ts │ │ │ ├── linter_service.ts │ │ │ ├── parser_service.ts │ │ │ ├── project.ts │ │ │ ├── server.ts │ │ │ ├── service.ts │ │ │ ├── settings.ts │ │ │ └── utils.ts │ │ ├── test │ │ │ ├── autofix_service.test.ts │ │ │ ├── document_save_service.test.ts │ │ │ ├── formatting_service.test.ts │ │ │ ├── linter_service.test.ts │ │ │ ├── settings.test.ts │ │ │ └── unreachable_code.test.ts │ │ ├── tsconfig.json │ │ └── types │ │ │ └── .keep │ ├── language-service │ │ └── README.md │ ├── linter │ │ ├── README.md │ │ ├── bin │ │ │ └── herb-lint │ │ ├── docs │ │ │ └── rules │ │ │ │ ├── README.md │ │ │ │ ├── erb-comment-syntax.md │ │ │ │ ├── erb-no-case-node-children.md │ │ │ │ ├── erb-no-empty-tags.md │ │ │ │ ├── erb-no-extra-newline.md │ │ │ │ ├── erb-no-extra-whitespace-inside-tags.md │ │ │ │ ├── erb-no-output-control-flow.md │ │ │ │ ├── erb-no-silent-tag-in-attribute-name.md │ │ │ │ ├── erb-prefer-image-tag-helper.md │ │ │ │ ├── erb-require-trailing-newline.md │ │ │ │ ├── erb-require-whitespace-inside-tags.md │ │ │ │ ├── erb-right-trim.md │ │ │ │ ├── herb-disable-comment-malformed.md │ │ │ │ ├── herb-disable-comment-missing-rules.md │ │ │ │ ├── herb-disable-comment-no-duplicate-rules.md │ │ │ │ ├── herb-disable-comment-no-redundant-all.md │ │ │ │ ├── herb-disable-comment-unnecessary.md │ │ │ │ ├── herb-disable-comment-valid-rule-name.md │ │ │ │ ├── html-anchor-require-href.md │ │ │ │ ├── html-aria-attribute-must-be-valid.md │ │ │ │ ├── html-aria-label-is-well-formatted.md │ │ │ │ ├── html-aria-level-must-be-valid.md │ │ │ │ ├── html-aria-role-heading-requires-level.md │ │ │ │ ├── html-aria-role-must-be-valid.md │ │ │ │ ├── html-attribute-double-quotes.md │ │ │ │ ├── html-attribute-equals-spacing.md │ │ │ │ ├── html-attribute-values-require-quotes.md │ │ │ │ ├── html-avoid-both-disabled-and-aria-disabled.md │ │ │ │ ├── html-body-only-elements.md │ │ │ │ ├── html-boolean-attributes-no-value.md │ │ │ │ ├── html-head-only-elements.md │ │ │ │ ├── html-iframe-has-title.md │ │ │ │ ├── html-img-require-alt.md │ │ │ │ ├── html-input-require-autocomplete.md │ │ │ │ ├── html-navigation-has-label.md │ │ │ │ ├── html-no-aria-hidden-on-focusable.md │ │ │ │ ├── html-no-block-inside-inline.md │ │ │ │ ├── html-no-duplicate-attributes.md │ │ │ │ ├── html-no-duplicate-ids.md │ │ │ │ ├── html-no-duplicate-meta-names.md │ │ │ │ ├── html-no-empty-attributes.md │ │ │ │ ├── html-no-empty-headings.md │ │ │ │ ├── html-no-nested-links.md │ │ │ │ ├── html-no-positive-tab-index.md │ │ │ │ ├── html-no-self-closing.md │ │ │ │ ├── html-no-space-in-tag.md │ │ │ │ ├── html-no-title-attribute.md │ │ │ │ ├── html-no-underscores-in-attribute-names.md │ │ │ │ ├── html-tag-name-lowercase.md │ │ │ │ ├── parser-no-errors.md │ │ │ │ └── svg-tag-name-capitalization.md │ │ ├── generators │ │ │ └── linter-rule │ │ │ │ └── generators │ │ │ │ └── app │ │ │ │ ├── index.mjs │ │ │ │ └── templates │ │ │ │ ├── docs.md.ejs │ │ │ │ ├── rule.ts.ejs │ │ │ │ └── test.ts.ejs │ │ ├── package.json │ │ ├── project.json │ │ ├── rollup.config.mjs │ │ ├── scripts │ │ │ └── generate-rule │ │ ├── src │ │ │ ├── cli.ts │ │ │ ├── cli │ │ │ │ ├── argument-parser.ts │ │ │ │ ├── file-processor.ts │ │ │ │ ├── formatters │ │ │ │ │ ├── base-formatter.ts │ │ │ │ │ ├── detailed-formatter.ts │ │ │ │ │ ├── github-actions-formatter.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── json-formatter.ts │ │ │ │ │ └── simple-formatter.ts │ │ │ │ ├── index.ts │ │ │ │ ├── output-manager.ts │ │ │ │ └── summary-reporter.ts │ │ │ ├── custom-rule-loader.ts │ │ │ ├── herb-disable-comment-utils.ts │ │ │ ├── herb-lint.ts │ │ │ ├── index.ts │ │ │ ├── linter-ignore.ts │ │ │ ├── linter.ts │ │ │ ├── loader.ts │ │ │ ├── rules.ts │ │ │ ├── rules │ │ │ │ ├── erb-comment-syntax.ts │ │ │ │ ├── erb-no-case-node-children.ts │ │ │ │ ├── erb-no-empty-tags.ts │ │ │ │ ├── erb-no-extra-newline.ts │ │ │ │ ├── erb-no-extra-whitespace-inside-tags.ts │ │ │ │ ├── erb-no-output-control-flow.ts │ │ │ │ ├── erb-no-silent-tag-in-attribute-name.ts │ │ │ │ ├── erb-prefer-image-tag-helper.ts │ │ │ │ ├── erb-require-trailing-newline.ts │ │ │ │ ├── erb-require-whitespace-inside-tags.ts │ │ │ │ ├── erb-right-trim.ts │ │ │ │ ├── herb-disable-comment-base.ts │ │ │ │ ├── herb-disable-comment-malformed.ts │ │ │ │ ├── herb-disable-comment-missing-rules.ts │ │ │ │ ├── herb-disable-comment-no-duplicate-rules.ts │ │ │ │ ├── herb-disable-comment-no-redundant-all.ts │ │ │ │ ├── herb-disable-comment-unnecessary.ts │ │ │ │ ├── herb-disable-comment-valid-rule-name.ts │ │ │ │ ├── html-anchor-require-href.ts │ │ │ │ ├── html-aria-attribute-must-be-valid.ts │ │ │ │ ├── html-aria-label-is-well-formatted.ts │ │ │ │ ├── html-aria-level-must-be-valid.ts │ │ │ │ ├── html-aria-role-heading-requires-level.ts │ │ │ │ ├── html-aria-role-must-be-valid.ts │ │ │ │ ├── html-attribute-double-quotes.ts │ │ │ │ ├── html-attribute-equals-spacing.ts │ │ │ │ ├── html-attribute-values-require-quotes.ts │ │ │ │ ├── html-avoid-both-disabled-and-aria-disabled.ts │ │ │ │ ├── html-body-only-elements.ts │ │ │ │ ├── html-boolean-attributes-no-value.ts │ │ │ │ ├── html-head-only-elements.ts │ │ │ │ ├── html-iframe-has-title.ts │ │ │ │ ├── html-img-require-alt.ts │ │ │ │ ├── html-input-require-autocomplete.ts │ │ │ │ ├── html-navigation-has-label.ts │ │ │ │ ├── html-no-aria-hidden-on-focusable.ts │ │ │ │ ├── html-no-block-inside-inline.ts │ │ │ │ ├── html-no-duplicate-attributes.ts │ │ │ │ ├── html-no-duplicate-ids.ts │ │ │ │ ├── html-no-duplicate-meta-names.ts │ │ │ │ ├── html-no-empty-attributes.ts │ │ │ │ ├── html-no-empty-headings.ts │ │ │ │ ├── html-no-nested-links.ts │ │ │ │ ├── html-no-positive-tab-index.ts │ │ │ │ ├── html-no-self-closing.ts │ │ │ │ ├── html-no-space-in-tag.ts │ │ │ │ ├── html-no-title-attribute.ts │ │ │ │ ├── html-no-underscores-in-attribute-names.ts │ │ │ │ ├── html-tag-name-lowercase.ts │ │ │ │ ├── index.ts │ │ │ │ ├── parser-no-errors.ts │ │ │ │ ├── rule-utils.ts │ │ │ │ └── svg-tag-name-capitalization.ts │ │ │ └── types.ts │ │ ├── test │ │ │ ├── __snapshots__ │ │ │ │ └── cli.test.ts.snap │ │ │ ├── autofix │ │ │ │ ├── erb-comment-syntax.autofix.test.ts │ │ │ │ ├── erb-no-extra-newline.autofix.test.ts │ │ │ │ ├── erb-no-extra-whitespace-inside-tags.autofix.test.ts │ │ │ │ ├── erb-require-trailing-newline.autofix.test.ts │ │ │ │ ├── erb-require-whitespace-inside-tags.autofix.test.ts │ │ │ │ ├── erb-right-trim.autofix.test.ts │ │ │ │ ├── html-attribute-double-quotes.autofix.test.ts │ │ │ │ ├── html-attribute-equals-spacing.autofix.test.ts │ │ │ │ ├── html-attribute-values-require-quotes.autofix.test.ts │ │ │ │ ├── html-boolean-attributes-no-value.autofix.test.ts │ │ │ │ ├── html-no-self-closing.autofix.test.ts │ │ │ │ ├── html-no-space-in-tag.autofix.test.ts │ │ │ │ ├── html-tag-name-lowercase.autofix.test.ts │ │ │ │ └── svg-tag-name-capitalization.autofix.test.ts │ │ │ ├── cli.test.ts │ │ │ ├── fixtures │ │ │ │ ├── bad-file.html.erb │ │ │ │ ├── boolean-attribute.html.erb │ │ │ │ ├── clean-file.html.erb │ │ │ │ ├── disabled-1.html.erb │ │ │ │ ├── disabled-2.html.erb │ │ │ │ ├── erb-no-extra-whitespace-inside-tags.html.erb │ │ │ │ ├── few-rule-offenses.html.erb │ │ │ │ ├── ignored.html.erb │ │ │ │ ├── long-line.html.erb │ │ │ │ ├── multiple-rule-offenses.html.erb │ │ │ │ ├── no-trailing-newline.html.erb │ │ │ │ ├── parser-errors.html.erb │ │ │ │ ├── test-file-simple.html.erb │ │ │ │ └── test-file-with-errors.html.erb │ │ │ ├── formatters │ │ │ │ └── github-actions-formatter.test.ts │ │ │ ├── helpers │ │ │ │ └── linter-test-helper.ts │ │ │ ├── herb-linter-ignore.test.ts │ │ │ ├── linter.test.ts │ │ │ ├── rule-level-patterns.test.ts │ │ │ ├── rules │ │ │ │ ├── erb-comment-syntax.test.ts │ │ │ │ ├── erb-no-case-node-children.test.ts │ │ │ │ ├── erb-no-empty-tags.test.ts │ │ │ │ ├── erb-no-extra-newline.test.ts │ │ │ │ ├── erb-no-extra-whitespace-inside-tags.test.ts │ │ │ │ ├── erb-no-output-control-flow.test.ts │ │ │ │ ├── erb-no-silent-tag-in-attribute-name.test.ts │ │ │ │ ├── erb-prefer-image-tag-helper.test.ts │ │ │ │ ├── erb-require-trailing-newline.test.ts │ │ │ │ ├── erb-require-whitespace-inside-tags.test.ts │ │ │ │ ├── erb-right-trim.test.ts │ │ │ │ ├── herb-disable-comment-malformed.test.ts │ │ │ │ ├── herb-disable-comment-missing-rules.test.ts │ │ │ │ ├── herb-disable-comment-no-duplicate-rules.test.ts │ │ │ │ ├── herb-disable-comment-no-redundant-all.test.ts │ │ │ │ ├── herb-disable-comment-unnecessary.test.ts │ │ │ │ ├── herb-disable-comment-valid-rule-name.test.ts │ │ │ │ ├── herb-disable-precise-locations.test.ts │ │ │ │ ├── html-anchor-require-href-rule.test.ts │ │ │ │ ├── html-aria-attribute-must-be-valid.test.ts │ │ │ │ ├── html-aria-label-is-well-formatted.test.ts │ │ │ │ ├── html-aria-level-must-be-valid.test.ts │ │ │ │ ├── html-aria-role-heading-requires-level.test.ts │ │ │ │ ├── html-aria-role-must-be-valid.test.ts │ │ │ │ ├── html-attribute-double-quotes.test.ts │ │ │ │ ├── html-attribute-equals-spacing.test.ts │ │ │ │ ├── html-attribute-values-require-quotes.test.ts │ │ │ │ ├── html-avoid-both-disabled-and-aria-disabled.test.ts │ │ │ │ ├── html-body-only-elements.test.ts │ │ │ │ ├── html-boolean-attributes-no-value.test.ts │ │ │ │ ├── html-head-only-elements.test.ts │ │ │ │ ├── html-iframe-has-title.test.ts │ │ │ │ ├── html-img-require-alt.test.ts │ │ │ │ ├── html-input-require-autocomplete.test.ts │ │ │ │ ├── html-navigation-has-label.test.ts │ │ │ │ ├── html-no-aria-hidden-on-focusable.test.ts │ │ │ │ ├── html-no-block-inside-inline.test.ts │ │ │ │ ├── html-no-duplicate-attributes.test.ts │ │ │ │ ├── html-no-duplicate-ids.test.ts │ │ │ │ ├── html-no-duplicate-meta-names.test.ts │ │ │ │ ├── html-no-empty-attributes.test.ts │ │ │ │ ├── html-no-empty-headings.test.ts │ │ │ │ ├── html-no-nested-links.test.ts │ │ │ │ ├── html-no-positive-tab-index.test.ts │ │ │ │ ├── html-no-self-closing.test.ts │ │ │ │ ├── html-no-space-in-tag.test.ts │ │ │ │ ├── html-no-title-attribute.test.ts │ │ │ │ ├── html-no-underscores-in-attribute-names.test.ts │ │ │ │ ├── html-tag-name-lowercase.test.ts │ │ │ │ ├── parser-no-errors.test.ts │ │ │ │ └── svg-tag-name-capitalization.test.ts │ │ │ └── xml-erb-linting.test.ts │ │ ├── tsconfig.json │ │ └── unformatted.html.erb │ ├── minifier │ │ └── README.md │ ├── node-wasm │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── rollup.config.mjs │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── types │ │ │ │ └── build.d.ts │ │ │ └── wasm-backend.ts │ │ ├── test │ │ │ ├── erb-comments.test.ts │ │ │ ├── node-wasm.test.ts │ │ │ └── visitor.test.ts │ │ └── tsconfig.json │ ├── node │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── bin │ │ │ ├── build_extension │ │ │ ├── publish_draft │ │ │ ├── publish_release │ │ │ └── vendor.cjs │ │ ├── binding.gyp │ │ ├── extension │ │ │ ├── extension_helpers.cpp │ │ │ ├── extension_helpers.h │ │ │ └── herb.cpp │ │ ├── package.json │ │ ├── project.json │ │ ├── rollup.config.mjs │ │ ├── src │ │ │ ├── index-cjs.cts │ │ │ ├── index-esm.mts │ │ │ ├── node-backend.ts │ │ │ ├── types │ │ │ │ └── global.d.ts │ │ │ └── util.ts │ │ ├── test.cjs │ │ ├── test.html.erb │ │ ├── test.mjs │ │ ├── test │ │ │ └── node.test.ts │ │ └── tsconfig.json │ ├── printer │ │ ├── README.md │ │ ├── bin │ │ │ └── herb-print │ │ ├── package.json │ │ ├── project.json │ │ ├── rollup.config.mjs │ │ ├── scripts │ │ │ └── generate-node-tests.mjs │ │ ├── src │ │ │ ├── cli.ts │ │ │ ├── erb-to-ruby-string-printer.ts │ │ │ ├── herb-print.ts │ │ │ ├── identity-printer.ts │ │ │ ├── index.ts │ │ │ ├── print-context.ts │ │ │ └── printer.ts │ │ ├── test │ │ │ ├── empty-printer.test.ts │ │ │ ├── erb-to-ruby-string-printer.test.ts │ │ │ ├── helpers │ │ │ │ └── printer-test-helpers.ts │ │ │ ├── identity-printer.test.ts │ │ │ ├── infrastructure.test.ts │ │ │ ├── nodes │ │ │ │ ├── c-d-a-t-a-node.test.ts │ │ │ │ ├── document-node.test.ts │ │ │ │ ├── erb-begin-node.test.ts │ │ │ │ ├── erb-block-node.test.ts │ │ │ │ ├── erb-case-match-node.test.ts │ │ │ │ ├── erb-case-node.test.ts │ │ │ │ ├── erb-content-node.test.ts │ │ │ │ ├── erb-else-node.test.ts │ │ │ │ ├── erb-end-node.test.ts │ │ │ │ ├── erb-ensure-node.test.ts │ │ │ │ ├── erb-for-node.test.ts │ │ │ │ ├── erb-if-node.test.ts │ │ │ │ ├── erb-in-node.test.ts │ │ │ │ ├── erb-rescue-node.test.ts │ │ │ │ ├── erb-unless-node.test.ts │ │ │ │ ├── erb-until-node.test.ts │ │ │ │ ├── erb-when-node.test.ts │ │ │ │ ├── erb-while-node.test.ts │ │ │ │ ├── erb-yield-node.test.ts │ │ │ │ ├── html-attribute-name-node.test.ts │ │ │ │ ├── html-attribute-node.test.ts │ │ │ │ ├── html-attribute-value-node.test.ts │ │ │ │ ├── html-close-tag-node.test.ts │ │ │ │ ├── html-comment-node.test.ts │ │ │ │ ├── html-doctype-node.test.ts │ │ │ │ ├── html-element-node.test.ts │ │ │ │ ├── html-open-tag-node.test.ts │ │ │ │ ├── html-text-node.test.ts │ │ │ │ ├── literal-node.test.ts │ │ │ │ ├── whitespace-node.test.ts │ │ │ │ └── x-m-l-declaration-node.test.ts │ │ │ ├── printer-options.test.ts │ │ │ ├── round-trip.test.ts │ │ │ └── static-print-method.test.ts │ │ └── tsconfig.json │ ├── rewriter │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── rollup.config.mjs │ │ ├── src │ │ │ ├── ast-rewriter.ts │ │ │ ├── built-ins │ │ │ │ ├── index.ts │ │ │ │ └── tailwind-class-sorter.ts │ │ │ ├── context.ts │ │ │ ├── custom-rewriter-loader.ts │ │ │ ├── index.ts │ │ │ ├── loader.ts │ │ │ ├── mutable.ts │ │ │ ├── rewrite.ts │ │ │ ├── rewriter-factories.ts │ │ │ ├── string-rewriter.ts │ │ │ └── type-guards.ts │ │ ├── test │ │ │ ├── ast-rewriter.test.ts │ │ │ ├── built-ins │ │ │ │ └── tailwind-class-sorter.test.ts │ │ │ ├── custom-rewriter-loader.test.ts │ │ │ ├── helpers │ │ │ │ └── rewriter-test-helper.ts │ │ │ ├── rewrite-context.test.ts │ │ │ ├── rewrite.test.ts │ │ │ ├── string-rewriter.test.ts │ │ │ └── type-guards.test.ts │ │ └── tsconfig.json │ ├── stimulus-lint │ │ ├── README.md │ │ ├── assets │ │ │ ├── stimulus-lint-dark.png │ │ │ └── stimulus-lint.png │ │ ├── bin │ │ │ └── stimulus-lint │ │ ├── package.json │ │ ├── project.json │ │ ├── rollup.config.mjs │ │ ├── src │ │ │ ├── cli.ts │ │ │ ├── default-rules.ts │ │ │ ├── index.ts │ │ │ ├── linter.ts │ │ │ ├── rules │ │ │ │ ├── index.ts │ │ │ │ ├── rule-utils.ts │ │ │ │ ├── stimulus-attribute-format.ts │ │ │ │ ├── stimulus-data-action-valid.ts │ │ │ │ ├── stimulus-data-controller-valid.ts │ │ │ │ ├── stimulus-data-target-valid.ts │ │ │ │ └── stimulus-data-value-valid.ts │ │ │ ├── stimulus-lint.ts │ │ │ └── types.ts │ │ ├── test │ │ │ ├── basic.test.ts │ │ │ ├── fixtures │ │ │ │ └── test-rails-app │ │ │ │ │ ├── app │ │ │ │ │ ├── javascript │ │ │ │ │ │ └── controllers │ │ │ │ │ │ │ └── hello_controller.js │ │ │ │ │ └── views │ │ │ │ │ │ └── test │ │ │ │ │ │ ├── action-test.html.erb │ │ │ │ │ │ ├── invalid.html.erb │ │ │ │ │ │ ├── sample.html.erb │ │ │ │ │ │ ├── target-test.html.erb │ │ │ │ │ │ ├── test.html.erb │ │ │ │ │ │ ├── test2.html.erb │ │ │ │ │ │ ├── valid-actions.html.erb │ │ │ │ │ │ └── valid.html.erb │ │ │ │ │ └── package.json │ │ │ └── rules │ │ │ │ ├── stimulus-attribute-format.test.ts │ │ │ │ ├── stimulus-data-controller-valid.test.ts │ │ │ │ └── stimulus-data-value-valid.test.ts │ │ └── tsconfig.json │ ├── tailwind-class-sorter │ │ ├── .gitignore │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── rollup.config.mjs │ │ ├── scripts │ │ │ └── setup-fixtures.sh │ │ ├── src │ │ │ ├── config.ts │ │ │ ├── expiring-map.ts │ │ │ ├── index.ts │ │ │ ├── resolve.ts │ │ │ ├── sorter.ts │ │ │ ├── sorting.ts │ │ │ └── types.ts │ │ ├── test │ │ │ ├── class-sorter.test.ts │ │ │ ├── custom-config.test.ts │ │ │ ├── fixtures │ │ │ │ ├── project-v3 │ │ │ │ │ ├── package.json │ │ │ │ │ ├── tailwind.config.js │ │ │ │ │ └── yarn.lock │ │ │ │ ├── project-v4 │ │ │ │ │ ├── app │ │ │ │ │ │ └── assets │ │ │ │ │ │ │ └── stylesheets │ │ │ │ │ │ │ └── application.tailwind.css │ │ │ │ │ ├── package.json │ │ │ │ │ └── yarn.lock │ │ │ │ └── tailwind.config.js │ │ │ ├── sort-tailwind-classes.test.ts │ │ │ ├── tailwind-v4.test.ts │ │ │ └── tailwind-version-compatibility.test.ts │ │ └── tsconfig.json │ └── vscode │ │ ├── .gitignore │ │ ├── .vscode-test.mjs │ │ ├── .vscode │ │ ├── extensions.json │ │ ├── launch.json │ │ ├── settings.json │ │ └── tasks.json │ │ ├── .vscodeignore │ │ ├── .yarnrc │ │ ├── CHANGELOG.md │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── assets │ │ ├── herb-lsp.png │ │ ├── herb-vscode.png │ │ └── herb.svg │ │ ├── esbuild.js │ │ ├── eslint.config.mjs │ │ ├── icon.png │ │ ├── package.json │ │ ├── project.json │ │ ├── scripts │ │ └── sync-defaults.js │ │ ├── src │ │ ├── analysis-service.ts │ │ ├── client.ts │ │ ├── code-action-provider.ts │ │ ├── config-details-provider.ts │ │ ├── config-provider.ts │ │ ├── extension.ts │ │ ├── herb-analysis-provider.ts │ │ ├── herb-information-provider.ts │ │ ├── herb-settings-commands.ts │ │ ├── herb-support-provider.ts │ │ ├── issue-reporter.ts │ │ ├── parse-worker.js │ │ ├── test │ │ │ └── extension.test.ts │ │ ├── tree-children-provider.ts │ │ ├── tree-item-builder.ts │ │ ├── types.ts │ │ ├── utils.ts │ │ └── version-service.ts │ │ └── tsconfig.json └── tools │ └── scripts │ └── release.ts ├── lib ├── herb.rb └── herb │ ├── ast.rb │ ├── ast │ ├── helpers.rb │ └── node.rb │ ├── cli.rb │ ├── colors.rb │ ├── engine.rb │ ├── engine │ ├── compiler.rb │ ├── debug_visitor.rb │ ├── error_formatter.rb │ ├── parser_error_overlay.rb │ ├── validation_error_overlay.rb │ ├── validation_errors.rb │ ├── validator.rb │ └── validators │ │ ├── accessibility_validator.rb │ │ ├── nesting_validator.rb │ │ └── security_validator.rb │ ├── lex_result.rb │ ├── location.rb │ ├── parse_result.rb │ ├── position.rb │ ├── project.rb │ ├── range.rb │ ├── result.rb │ ├── token.rb │ ├── token_list.rb │ ├── version.rb │ └── warnings.rb ├── nx.json ├── oxlint.json ├── package.json ├── playground ├── .gitignore ├── index.html ├── package.json ├── project.json ├── src │ ├── analyze.ts │ ├── controllers │ │ ├── iframe_controller.js │ │ ├── index.ts │ │ └── playground_controller.js │ ├── entry-client.ts │ ├── monaco.js │ ├── prism.ts │ ├── ranges.js │ └── style.css ├── tsconfig.json └── vite.config.ts ├── prism └── project.json ├── project.json ├── rakelib └── version_tasks.rake ├── rust ├── .cargo │ └── config.toml ├── Cargo.toml ├── Makefile ├── README.md ├── bin │ └── herb-rust ├── build.rs ├── rustfmt.toml ├── src │ ├── ast │ │ └── mod.rs │ ├── bindings.rs │ ├── convert.rs │ ├── ffi.rs │ ├── herb.rs │ ├── lex_result.rs │ ├── lib.rs │ ├── location.rs │ ├── main.rs │ ├── parse_result.rs │ ├── position.rs │ ├── range.rs │ └── token.rs └── tests │ ├── cli_commands_test.rs │ ├── common │ └── mod.rs │ ├── error_handling_test.rs │ ├── fixtures │ └── test.html.erb │ ├── node_field_test.rs │ ├── parse_result_test.rs │ ├── snapshot_test.rs │ ├── snapshots │ ├── snapshot_test__extract_html_output.snap │ ├── snapshot_test__extract_ruby_output.snap │ ├── snapshot_test__herb_version_output.snap │ ├── snapshot_test__lex_output.snap │ ├── snapshot_test__parse_output.snap │ ├── snapshot_test__prism_version_output.snap │ └── snapshot_test__version_output.snap │ └── tree_inspect_test.rs ├── sig ├── herb.rbs ├── herb │ ├── ast.rbs │ ├── ast │ │ ├── helpers.rbs │ │ ├── node.rbs │ │ └── nodes.rbs │ ├── colors.rbs │ ├── engine.rbs │ ├── engine │ │ ├── compiler.rbs │ │ ├── debug.rbs │ │ ├── debug_visitor.rbs │ │ ├── error_formatter.rbs │ │ ├── parser_error_overlay.rbs │ │ ├── validation_error_overlay.rbs │ │ ├── validation_errors.rbs │ │ ├── validator.rbs │ │ └── validators │ │ │ ├── accessibility_validator.rbs │ │ │ ├── nesting_validator.rbs │ │ │ └── security_validator.rbs │ ├── errors.rbs │ ├── lex_result.rbs │ ├── location.rbs │ ├── parse_result.rbs │ ├── position.rbs │ ├── range.rbs │ ├── result.rbs │ ├── token.rbs │ ├── token_list.rbs │ ├── version.rbs │ ├── visitor.rbs │ └── warnings.rbs ├── herb_c_extension.rbs └── serialized.rbs ├── sorbet └── config ├── src ├── analyze.c ├── analyze_helpers.c ├── analyzed_ruby.c ├── ast_node.c ├── element_source.c ├── extract.c ├── herb.c ├── html_util.c ├── include │ ├── analyze.h │ ├── analyze_helpers.h │ ├── analyzed_ruby.h │ ├── ast_node.h │ ├── element_source.h │ ├── extract.h │ ├── herb.h │ ├── html_util.h │ ├── io.h │ ├── lexer.h │ ├── lexer_peek_helpers.h │ ├── lexer_struct.h │ ├── location.h │ ├── macros.h │ ├── parser.h │ ├── parser_helpers.h │ ├── position.h │ ├── pretty_print.h │ ├── prism_helpers.h │ ├── range.h │ ├── ruby_parser.h │ ├── token.h │ ├── token_matchers.h │ ├── token_struct.h │ ├── utf8.h │ ├── util.h │ ├── util │ │ ├── hb_arena.h │ │ ├── hb_arena_debug.h │ │ ├── hb_array.h │ │ ├── hb_buffer.h │ │ ├── hb_string.h │ │ └── hb_system.h │ ├── version.h │ └── visitor.h ├── io.c ├── lexer.c ├── lexer_peek_helpers.c ├── location.c ├── main.c ├── parser.c ├── parser_helpers.c ├── position.c ├── pretty_print.c ├── prism_helpers.c ├── project.json ├── range.c ├── ruby_parser.c ├── token.c ├── token_matchers.c ├── utf8.c ├── util.c └── util │ ├── hb_arena.c │ ├── hb_arena_debug.c │ ├── hb_array.c │ ├── hb_buffer.c │ ├── hb_string.c │ └── hb_system.c ├── templates ├── ext │ └── herb │ │ ├── error_helpers.c.erb │ │ ├── error_helpers.h.erb │ │ ├── nodes.c.erb │ │ └── nodes.h.erb ├── java │ ├── error_helpers.c.erb │ ├── error_helpers.h.erb │ ├── nodes.c.erb │ ├── nodes.h.erb │ └── org │ │ └── herb │ │ └── ast │ │ ├── Errors.java.erb │ │ ├── NodeVisitor.java.erb │ │ ├── Nodes.java.erb │ │ └── Visitor.java.erb ├── javascript │ └── packages │ │ ├── core │ │ └── src │ │ │ ├── errors.ts.erb │ │ │ ├── node-type-guards.ts.erb │ │ │ ├── nodes.ts.erb │ │ │ └── visitor.ts.erb │ │ └── node │ │ └── extension │ │ ├── error_helpers.cpp.erb │ │ ├── error_helpers.h.erb │ │ ├── nodes.cpp.erb │ │ └── nodes.h.erb ├── lib │ └── herb │ │ ├── ast │ │ └── nodes.rb.erb │ │ ├── errors.rb.erb │ │ └── visitor.rb.erb ├── project.json ├── rust │ └── src │ │ ├── ast │ │ └── nodes.rs.erb │ │ ├── errors.rs.erb │ │ └── nodes.rs.erb ├── sig │ ├── serialized_ast_errors.rbs.erb │ └── serialized_ast_nodes.rbs.erb ├── src │ ├── analyze_missing_end.c.erb │ ├── analyze_transform.c.erb │ ├── ast_nodes.c.erb │ ├── ast_pretty_print.c.erb │ ├── errors.c.erb │ ├── include │ │ ├── ast_nodes.h.erb │ │ ├── ast_pretty_print.h.erb │ │ └── errors.h.erb │ ├── parser_match_tags.c.erb │ └── visitor.c.erb ├── template.rb └── wasm │ ├── error_helpers.cpp.erb │ ├── error_helpers.h.erb │ ├── nodes.cpp.erb │ └── nodes.h.erb ├── test ├── analyze │ ├── action_view │ │ ├── asset_tag_helper │ │ │ └── image_tag_test.rb │ │ ├── form_helper │ │ │ ├── form_for_test.rb │ │ │ ├── form_with_test.rb │ │ │ └── text_field_test.rb │ │ ├── tag_helper │ │ │ ├── content_tag_test.rb │ │ │ └── tag_test.rb │ │ └── url_helper │ │ │ ├── button_to_test.rb │ │ │ ├── link_to_if_test.rb │ │ │ ├── link_to_test.rb │ │ │ ├── link_to_unless_current_test.rb │ │ │ ├── link_to_unless_test.rb │ │ │ ├── mail_to_test.rb │ │ │ ├── phone_to_test.rb │ │ │ └── sms_to_test.rb │ ├── begin_test.rb │ ├── block_test.rb │ ├── case_in_test.rb │ ├── case_test.rb │ ├── escape_test.rb │ ├── for_test.rb │ ├── if_test.rb │ ├── invalid_erb_structure_test.rb │ ├── rails │ │ ├── content_tag_helper_test.rb │ │ └── tag_helper_test.rb │ ├── ternary_test.rb │ ├── unless_test.rb │ ├── until_test.rb │ ├── while_test.rb │ └── yield_test.rb ├── ast │ └── tree_inspect_test.rb ├── c │ ├── include │ │ └── test.h │ ├── main.c │ ├── test_extract.c │ ├── test_hb_arena.c │ ├── test_hb_array.c │ ├── test_hb_buffer.c │ ├── test_hb_string.c │ ├── test_herb.c │ ├── test_html_util.c │ ├── test_io.c │ ├── test_lex.c │ ├── test_token.c │ └── test_util.c ├── colors_test.rb ├── engine │ ├── block_comments_test.rb │ ├── cli_test.rb │ ├── debug_mode_test.rb │ ├── engine_block_test.rb │ ├── engine_erubi_compat_test.rb │ ├── engine_test.rb │ ├── erb_comments_test.rb │ ├── error_handling_test.rb │ ├── escape_test.rb │ ├── evaluation_test.rb │ ├── examples_compilation_test.rb │ ├── rails_compatibility_test.rb │ ├── secure_compiler_test.rb │ ├── validation_deduplication_test.rb │ ├── validation_modes_test.rb │ └── whitespace_trimming_test.rb ├── engine_visitors_test.rb ├── extractor │ ├── extract_html_test.rb │ └── extract_ruby_test.rb ├── fork_helper.rb ├── herb_test.rb ├── lexer │ ├── alpine_tokens_test.rb │ ├── attributes_test.rb │ ├── boolean_attributes_test.rb │ ├── cdata_test.rb │ ├── comments_test.rb │ ├── doctype_test.rb │ ├── erb_test.rb │ ├── html_entities_test.rb │ ├── lexer_test.rb │ ├── newlines_test.rb │ ├── tags_test.rb │ ├── text_content_test.rb │ ├── token_test.rb │ ├── utf8_test.rb │ └── xml_declaration_test.rb ├── libherb │ └── buffer_test.rb ├── parser │ ├── attributes_test.rb │ ├── boolean_attributes_test.rb │ ├── case_match_test.rb │ ├── case_when_test.rb │ ├── cdata_test.rb │ ├── comments_test.rb │ ├── doctype_test.rb │ ├── erb_comments_test.rb │ ├── erb_context_mismatch_test.rb │ ├── erb_test.rb │ ├── newlines_test.rb │ ├── parser_test.rb │ ├── script_style_test.rb │ ├── svg_test.rb │ ├── tags_test.rb │ ├── text_content_test.rb │ ├── utf8_test.rb │ ├── whitespace_test.rb │ ├── xml_declaration_test.rb │ └── yield_test.rb ├── snapshot_utils.rb ├── snapshots │ ├── analyze │ │ ├── begin_test │ │ │ ├── test_0001_single-line_begin_8c71cb17a972281fb729047b56de5718.txt │ │ │ ├── test_0002_begin_statement_310fa78692cbba763c6e961782acf077.txt │ │ │ ├── test_0003_begin_statement_wrapped_in_element_90dff6e715c904a974e86da2330e3795.txt │ │ │ ├── test_0004_begin_with_rescue_0abd830734a05969547e9b7f744deccd.txt │ │ │ ├── test_0005_begin_with_ensure_652af15ee9468a11e54d5661deb00e99.txt │ │ │ ├── test_0006_begin_with_else_85973b5966518a564209caa19c09f1e2.txt │ │ │ ├── test_0007_begin_with_rescue_and_else_5ff2a3e329235a33a89faff9c8647173.txt │ │ │ ├── test_0008_begin_with_rescue_and_ensure_97df51331597aef274a1e1a6d1fa05ab.txt │ │ │ ├── test_0009_begin_with_multiple_rescues_b391d083604ab993f87d7b5f7da784de.txt │ │ │ ├── test_0010_begin_with_rescue,_ensure,_and_else_7e05a59142cd6be0bdc4a05fbe46ca11.txt │ │ │ └── test_0011_nested_begin_statements_df42b2e75ecfbebde2efc7179c9a6a88.txt │ │ ├── block_test │ │ │ ├── test_0001_single_line_block_6e95c5888a720e157b1e6ec923700b92.txt │ │ │ ├── test_0002_block_bb47a5f1953b6af8f63923f01e574d97.txt │ │ │ ├── test_0003_block_with_curlies_1f0aa977e8f63e43e55f5c51eeb809c6.txt │ │ │ ├── test_0004_block_wrapped_in_element_39a5ad73c7d101fb93261a1168948d5b.txt │ │ │ ├── test_0005_each_block_12aad82c1dcc0c44ce4506dbdac4fbd5.txt │ │ │ ├── test_0006_each_with_index_block_203756003c6f59594914718691890834.txt │ │ │ ├── test_0007_times_block_1533a1664dd8eebdaa2ebe88f35f1316.txt │ │ │ ├── test_0008_upto_block_8163697cb75c2f0c085bbbbc587fe892.txt │ │ │ ├── test_0009_step_block_46c8130e027d324f1bc60a66ac2fd9d9.txt │ │ │ ├── test_0010_loop_block_b6292ce38564be66a47b39c7cd7c0154.txt │ │ │ ├── test_0011_nested_blocks_5c1db84edbee554e4c974962dd664115.txt │ │ │ ├── test_0012_output_block_with_nested_if_in_arguments_6e476a363d4ba2c11b5a7880f29eb97e.txt │ │ │ ├── test_0013_output_block_with_complex_nested_if_in_arguments_ce77a6b79077c840b8e3757d685241db.txt │ │ │ ├── test_0014_output_block_with_ternary_in_arguments_fd95ec37953c2bfabb5e6c134048e826.txt │ │ │ ├── test_0015_non-output_block_with_nested_if_in_arguments_03b142f7bfa9e9b1adfd3d1ce93f664c.txt │ │ │ ├── test_0016_block_with_multiple_nested_control_structures_6ef4d5a78134131b297c942bf88a2f27.txt │ │ │ ├── test_0017_output_block_with_nested_if_and_empty_body_e7620bceca76d49a706d7ed00e44c573.txt │ │ │ ├── test_0018_yield_with_conditional_expression_aab87ed84223dc1a927240b2859b3c05.txt │ │ │ ├── test_0019_unclosed_brace_block_should_error_71c9c1b58aa58b284c179d494b481660.txt │ │ │ ├── test_0020_unclosed_brace_block_with_end_should_error_ce5658e89dd99cb6740835d0d0666353.txt │ │ │ ├── test_0021_closed_brace_block_in_single_tag_is_not_a_block_5795056538d87c6366da710856a9f7e2.txt │ │ │ └── test_0022_do_end_block_works_as_expected_6af38da3c127d941bc2ca73254434f84.txt │ │ ├── case_in_test │ │ │ ├── test_0001_case_in_statement_894c684a7c2d0c6e8fe725ed9e413c27.txt │ │ │ ├── test_0002_case_in_statement_with_multiple_in_a2c476da06ea1cf6477de09d267c225d.txt │ │ │ ├── test_0003_case_in_statement_with_else_627b23a581abbe9abf0dfe9014d759d7.txt │ │ │ ├── test_0004_case_in_statement_with_multiple_in_and_else_db516a41f10230a12864d988e29f289e.txt │ │ │ ├── test_0005_case_in_statement_wrapped_in_element_61e488dd472b63b98202b2d0e83c9610.txt │ │ │ ├── test_0006_nested_cases_ins_e19b30c609f63840ec91a32bf81c84d3.txt │ │ │ ├── test_0007_case_in_with_children_before_first_in_48daaea0cd005bda78c99588a3d1fea2.txt │ │ │ ├── test_0008_case_in_with_block_inside_in_clause_a5d7393ef0ab780cd777fd4d09413ac8.txt │ │ │ ├── test_0009_case_in_with_multiple_blocks_in_in_clause_8cdfe954fcb68cf29f71d5c05893547c.txt │ │ │ └── test_0010_case_in_with_if_statement_inside_in_clause_51fcf7566215a5284ae1ee34c920837e.txt │ │ ├── case_test │ │ │ ├── test_0001_case_statement_29ef35b6c9d10898aadb09e127bb39ca.txt │ │ │ ├── test_0002_case_statement_with_multiple_when_9e60754ef4d0f4e9601d4c74134c594d.txt │ │ │ ├── test_0003_case_statement_with_else_9707b40dd4e4f86f58c2dcd952525f80.txt │ │ │ ├── test_0004_case_statement_with_multiple_when_and_else_6ecf2eb1af1609c6f998834e6454ce75.txt │ │ │ ├── test_0005_case_statement_wrapped_in_element_8c0bd39fa334273e82d5abc8a735d433.txt │ │ │ ├── test_0006_nested_cases_eac03f80fbde0f108657c6522c81f19f.txt │ │ │ ├── test_0007_case_with_children_before_first_when_f236195655edf63829effb2806e34ce0.txt │ │ │ ├── test_0008_case_with_block_inside_when_adb20c2773fe1206d2b47123f8001e22.txt │ │ │ ├── test_0009_case_with_multiple_blocks_in_when_05f7d387314a95620a58ddc7f7d31b7b.txt │ │ │ ├── test_0010_case_with_nested_blocks_in_when_6e70c1bf60788969969296d35c409a47.txt │ │ │ ├── test_0011_case_with_block_in_multiple_when_clauses_3f35d3ebf6ea6eaf8e7b9bc7f8393a0f.txt │ │ │ ├── test_0012_case_with_if_statement_inside_when_ccc0bd511203c41d9274ccc360e736c2.txt │ │ │ └── test_0013_case_with_yield_dc59b65969b8ef95076abc05c3907392.txt │ │ ├── escape_test │ │ │ ├── test_0001_escaped_erb_tag_94dbe0d71e8d4a3dbd06d39ffcad350c.txt │ │ │ └── test_0002_escaped_erb_output_tag_1ded89a552e264d13fefa7cc822a35c0.txt │ │ ├── for_test │ │ │ ├── test_0001_for_loop_7ec5a7ce89b03a36c5579d1a65c14274.txt │ │ │ ├── test_0002_for_loop_with_children_cad2b2f8aa5d54b817d3c82e82818659.txt │ │ │ ├── test_0003_for_loop_wrapped_in_element_dc5c7df187a9c834fe5bb14c4805f146.txt │ │ │ └── test_0004_nested_for_loops_491936055618c1eff4f83651ea92e8e9.txt │ │ ├── if_test │ │ │ ├── test_0001_if_statement_6d66066a7761ec6dd8a7cc99cdc3489c.txt │ │ │ ├── test_0002_if_else_statement_5af49f43e6d63267cffc095e54e5ffcd.txt │ │ │ ├── test_0003_if_elsif_else_statement_189c9341230fd91e47ed767621771ae6.txt │ │ │ ├── test_0004_if_elsif_elsif_else_statement_dda9e4f2ba454ab6d841390c684e222f.txt │ │ │ ├── test_0005_if_elsif_else_statement_with_children_2f01997aa5b65191b261fb73a3268eb2.txt │ │ │ ├── test_0006_if_elsif_else_statement_wrapped_in_element_45a48a89838b00831a86d6bc5b8a29f6.txt │ │ │ ├── test_0007_nested_if_statements_d2803320721afe4e5e45cc05ece9915e.txt │ │ │ ├── test_0008_if_else_statement_in_opening_tag_value_cc409a1f9d234299bd306bda568b32b4.txt │ │ │ ├── test_0009_if_else_statement_in_attribute_value_8dd410c9c918399254e71570caeb17dc.txt │ │ │ ├── test_0010_guard_clause_with_if_modifier_should_not_be_parsed_as_ERBIfNode_84c50d0087a29c69bf5125ce6ec79f86.txt │ │ │ ├── test_0012_guard_clause_with_break_if_modifier_41f095a3d010c4b7e9a38aa708b9054d.txt │ │ │ ├── test_0014_if_with_yield_in_condition_4070aeafc603aa162d1c39baf6f6f451.txt │ │ │ ├── test_0016_if_with_missing_conditional_ee03fbe2e88a2b56ca5c044200fe19bf.txt │ │ │ └── test_0017_if_with_invalid_syntax_1c3b5ad1abe4440ca61ee62d2db330f2.txt │ │ ├── invalid_erb_structure_test │ │ │ ├── test_0001_tags_spanning_erb_control_flow_boundaries_-_opening_tag_in_first_if_cb6be8c9ca2ddbb438d62020648c6ed4.txt │ │ │ ├── test_0002_invalid_erb_structure_-_else_outside_scope_after_tag_closing_8a42d39b7aee4fa9f2ca791cf1ef291b.txt │ │ │ ├── test_0003_invalid_erb_structure_-_end_outside_scope_after_tag_closing_8adc4e0a2a6b8baf0ab00bb12a016422.txt │ │ │ ├── test_0004_invalid_erb_structure_-_elsif_outside_scope_after_tag_closing_424e3fda025275fa81a488fc87528e25.txt │ │ │ ├── test_0005_invalid_erb_structure_-_else_outside_scope_before_tag_closing_12f297bfdeb3c060a0c220a445fcb51c.txt │ │ │ ├── test_0006_invalid_erb_structure_-_if_else_spans_across_attribute_value_quotes_5cf54922a30f349212e5ec71c8d4d3b3.txt │ │ │ ├── test_0007_invalid_erb_structure_-_multiline_attribute_value_spans_across_if_else_branches_00f04f842749802aede65921854fbd81.txt │ │ │ ├── test_0008_invalid_erb_structure_-_attribute_quote_closes_in_if_branch_with_else_end_outside_d551e3630ae3b84c356b86f544fe1c74.txt │ │ │ ├── test_0009_valid_erb_structure_-_if_else_end_inside_tag_attributes_653d501c02f01c7eb2fa084da7d45f3c.txt │ │ │ ├── test_0010_invalid_erb_structure_-_when_outside_case_scope_a609e4aae83bf7345c1ae12806881ecb.txt │ │ │ ├── test_0011_invalid_erb_structure_-_rescue_outside_begin_scope_33915d0eadb35429ec69cc5c382cfaf2.txt │ │ │ ├── test_0012_invalid_erb_structure_-_ensure_outside_begin_scope_1340125c09cfc9ae2a3c763fb939f03f.txt │ │ │ ├── test_0013_tags_in_different_erb_scopes_-_unless_blocks_ca324425f43bfaddc88ee581c44a5884.txt │ │ │ ├── test_0014_tags_in_different_erb_scopes_-_while_blocks_c6c4f56cd642ee67863a77e686dadd6c.txt │ │ │ ├── test_0015_tags_in_different_erb_scopes_-_for_blocks_458db68ec0fe89e877c5753e1d76367c.txt │ │ │ ├── test_0016_missing_close_HTML_tag_in_else_clause_7e1b1b64fe7f5060c0dbc6b94bf3cae8.txt │ │ │ ├── test_0017_elsif_in_class_attribute_value_scope_9e9e331db3c1e45c281ee0f0a4283d00.txt │ │ │ ├── test_0019_conditional_attributes_with_space_before_ERB_closing_tag_447bae9e416269915e38be84519b2d28.txt │ │ │ ├── test_0020_invalid_break_outside_of_loop_context_182bc23dd57db9ce2bba26309b131723.txt │ │ │ ├── test_0021_invalid_next_outside_of_loop_context_ac5828658f5c90c9d487d6ef420b99a0.txt │ │ │ ├── test_0022_invalid_redo_outside_of_loop_context_26f3fe5cab89ff275796733f6967109e.txt │ │ │ ├── test_0023_invalid_retry_outside_of_rescue_context_a9908e2810eb5ee58d0b4f4589e1ff36.txt │ │ │ ├── test_0024_invalid_break_in_if_statement_outside_of_loop_87141b29d2eca3e5d69b58f53982f8fc.txt │ │ │ ├── test_0025_invalid_next_in_case_statement_outside_of_loop_566add5cc403289f497833046d30cb83.txt │ │ │ ├── test_0026_invalid_break_at_document_root_after_while_loop_6ba6b13c23d9f008fe78926965fddb7c.txt │ │ │ └── test_0027_loop_control_keywords_in_various_contexts_(retry,_break,_next,_redo)_179ec23049a2db7f974635ed4ba2ecf7.txt │ │ ├── ternary_test │ │ │ ├── test_0001_ternary_operator_in_ERB_output_tag_487f1093637a362df78bafb89af97d09.txt │ │ │ ├── test_0002_complex_ternary_operator_with_method_calls_c9fd4eebccb37e967b174ccf1bde7bf2.txt │ │ │ ├── test_0003_ternary_operator_in_form_with_3e5154d12d6259cc2ac2da74fc48e803.txt │ │ │ ├── test_0004_nested_ternary_operators_b02fe2f695043e3ef415f674581f8187.txt │ │ │ ├── test_0005_ternary_operator_in_attribute_value_d0b1eb0c3aae3bb30cf7891afdac44b8.txt │ │ │ ├── test_0006_multiple_ternary_operators_in_same_ERB_tag_7dd1d18fe401ed6c61c478be9ee5140f.txt │ │ │ ├── test_0007_ternary_operator_with_blocks_a8c8a50604f8821739b2814b58b652f2.txt │ │ │ ├── test_0008_form_with_helper_with_ternary_in_url_parameter_e554d08ac7e5da90cd046d79030c2a44.txt │ │ │ ├── test_0009_content_tag_with_ternary_for_class_attribute_910f82cb9ee5855d1c51c08667ac90d5.txt │ │ │ ├── test_0010_content_tag_with_ternary_for_data_attribute_6f00128b70c7d3176646995151ecfcaa.txt │ │ │ ├── test_0011_form_with_with_complex_ternary_in_multiple_attributes_0db72f423bc1543d78016121e43409d3.txt │ │ │ ├── test_0012_inline_if_modifier_in_ERB_output_tag_b4d740369619f1d7bde41172ac6933e6.txt │ │ │ └── test_0013_inline_unless_modifier_in_ERB_output_tag_982863841843053cc3728f62e00fa523.txt │ │ ├── unless_test │ │ │ ├── test_0001_unless_statement_b9069f5ae184133162ab0372cfb63c39.txt │ │ │ ├── test_0002_unless_statement_wrapped_in_element_da5f138eef1f987f71ce62c984ec4b98.txt │ │ │ ├── test_0003_unless_statement_with_multiple_children_3e9be163722a3cc21d0ee1c07ebbbfd4.txt │ │ │ ├── test_0004_unless_statement_with_multiple_children_wrapped_in_element_68d73e451f7629a849c27b9d53bf6a77.txt │ │ │ ├── test_0005_unless_statement_with_else_70949ac6a2833b2b972508ab1ca3f701.txt │ │ │ ├── test_0006_nested_unless_statements_f80d305e3bf8d4792b9110c87196318d.txt │ │ │ ├── test_0007_guard_clause_with_unless_modifier_should_not_be_parsed_as_ERBUnlessNode_647968bffc9de35b805b872472b322b7.txt │ │ │ ├── test_0009_guard_clause_with_break_unless_modifier_5ae9786a5b6893828c737287cffd216f.txt │ │ │ ├── test_0010_multiple_unless_guard_clauses_80edd1ae63fb2cd18f33418d1ef308c1.txt │ │ │ └── test_0011_distinguishes_between_block_unless_and_modifier_unless_4ca85acaceb3fb39b75797c6a07e7437.txt │ │ ├── until_test │ │ │ ├── test_0001_until_statement_cebc8340ea1e761f6ce3885d88328dc1.txt │ │ │ ├── test_0002_until_statement_wrapped_in_element_1f3ffcb5fe8fc6596865e33d2ab7252e.txt │ │ │ ├── test_0003_until_statement_with_multiple_children_329404c0b9dc64b1825b2b64f49640f7.txt │ │ │ ├── test_0004_until_statement_with_multiple_children_wrapped_in_element_b1ef79555d9533d568edd30004f8f031.txt │ │ │ ├── test_0005_nested_until_statements_a09465aa6b8033b408b97fb325d7ab66.txt │ │ │ ├── test_0006_until_statement_with_break_a05643dc6a16774c25549930740f8c33.txt │ │ │ └── test_0007_until_statement_with_next_360523760a88c79cd2e2a120fe723de7.txt │ │ ├── while_test │ │ │ ├── test_0001_while_statement_80ec9198a269a436b3bc6b3751352e04.txt │ │ │ ├── test_0002_while_statement_wrapped_in_element_0f8b0693370dfebe34b6705db39fd7ea.txt │ │ │ ├── test_0003_while_statement_with_multiple_children_655e4c05f774ea93289049d3910a144f.txt │ │ │ ├── test_0004_while_statement_with_multiple_children_wrapped_in_element_fc5e9e2adcc5aff28ce2d7b0fb074464.txt │ │ │ ├── test_0005_while_statement_with_multiple_children_and_multiple_while_adcbb3ba9e1af65fc56a9e4fd9ed0570.txt │ │ │ ├── test_0006_while_statement_with_break_7fe1a7737e0d01a3e8f78341ce5a31ea.txt │ │ │ ├── test_0007_while_statement_with_next_c60dcf0135ff764cb78cf5ebab562962.txt │ │ │ ├── test_0008_while_statement_with_redo_48925bae257116b8279a76ad623f9657.txt │ │ │ └── test_0009_nested_while_statements_1b9c93b2610e46293a5d14116c6b2f96.txt │ │ └── yield_test │ │ │ ├── test_0001_yield_811e738151285db6da8e3a493b8d6e2b.txt │ │ │ └── test_0002_yield_with_symbol_0f3dddc66e3930ac6552f5a273092594.txt │ ├── ast │ │ └── tree_inspect_test │ │ │ ├── test_0001_deeply_nested_document_4593d80d72ab12fb3c2b889b019dd0cb.txt │ │ │ └── test_0002_deeply_nested_with_attributes_f06a9fd72ce823160a92ff8ec5433c9e.txt │ ├── engine │ │ ├── block_comments_test │ │ │ ├── test_0001_ruby_block_comments_with_=begin_and_=end_multiline_ff404c4e708f59f532b4042441e458ad.txt │ │ │ ├── test_0002_ruby_block_comments_inside_erb_tags_95bcfa3f3e28634bf923f18df0cd38a1.txt │ │ │ ├── test_0003_ruby_block_comments_with_code_before_and_after_0ee0ba8a9a25359175b884cf66f37b2c.txt │ │ │ ├── test_0004_evaluation_ruby_block_comments_with_=begin_and_=end_mutliline_6bf3affa07b559b73f6428e0dbd270d2.txt │ │ │ ├── test_0005_evaluation_ruby_block_comments_inside_erb_tags_8a842d797202d0b31c9832cd43a22686.txt │ │ │ ├── test_0006_evaluation_ruby_block_comments_with_code_before_and_after_c5e6a4e1e9e691af8dcc74ae6c9564c9.txt │ │ │ ├── test_0007_ruby_block_comments_with_=begin_and_=end_mutliline_and_no_space_before_ERB_closing_tag_72379778fa34572e48b949a780f761b1.txt │ │ │ └── test_0007_ruby_block_comments_with_=begin_and_=end_mutliline_and_no_space_before_ERB_closing_tag_e1b62f3b00e8efb6cac1e5842461de10.txt │ │ ├── debug_mode_test │ │ │ ├── test_0001_debug_mode_disabled_by_default_1ae6b8eb8b1931a65192bc14b7593e1c.txt │ │ │ ├── test_0002_debug_mode_enabled_71a0c34d23cde4f85d84b577b3ac6e86.txt │ │ │ ├── test_0003_debug_mode_options_831362fdf630e5facad634abab817ddd.txt │ │ │ ├── test_0004_visible_erb_expression_gets_debug_span_9431501e9722fe8b38c66468fd77c1f5.txt │ │ │ ├── test_0005_multiple_visible_erb_expressions_get_debug_spans_78e7fde7b24d6ebbef7b0cc3e02dfeeb.txt │ │ │ ├── test_0006_attribute_erb_expressions_do_NOT_get_debug_spans_9827f669a2c87b0da29ee3e73f2485a8.txt │ │ │ ├── test_0007_script_content_erb_expressions_do_NOT_get_debug_spans_fa19152dbae94261cb892c6fe543ee74.txt │ │ │ ├── test_0008_style_content_erb_expressions_do_NOT_get_debug_spans_841ac66ea0f03edd85fe096706e27292.txt │ │ │ ├── test_0009_render_calls_get_outline_boundaries_48fc68664d9cabb3813ea9b86d3f8bbd.txt │ │ │ ├── test_0010_partial_render_calls_get_partial_outline_boundaries_15153b8ec3486c918ba9fcb33386aeee.txt │ │ │ ├── test_0011_top-level_element_with_only_ERB_output_as_child_683f80e816cdd50d5e065d1e91bcce53.txt │ │ │ ├── test_0012_top-level_element_with_only_ERB_output_as_child_for_partial_00b34061b9686a4c930bd9ab0bd4665d.txt │ │ │ ├── test_0013_collection_render_calls_get_outline_boundaries_a536d3d2225f6f8d1163956571c1623b.txt │ │ │ ├── test_0014_erb_control_flow_does_NOT_get_debug_markup_b88df3287cc07c730b007a0e6a3aace2.txt │ │ │ ├── test_0015_erb_comments_do_NOT_get_debug_markup_07372a921f413dd0d25e4fc4d599e417.txt │ │ │ ├── test_0016_block_expressions_get_debug_spans_c71ab7a64204c499e9b116ffc3fbf03d.txt │ │ │ ├── test_0017_render_block_expressions_get_outline_boundaries_a8600827a6adf41bc60a28a65a7ebe50.txt │ │ │ ├── test_0018_mixed_content_and_attributes_a900dc734c9ad44f41ee0df5f88e0e68.txt │ │ │ ├── test_0019_nested_erb_expressions_with_render_calls_9ff80d616cac6cd6536d9d1c69828d42.txt │ │ │ ├── test_0020_debug_mode_with_escape_enabled_ed8d270f96c299d791e00fdbec8726b1.txt │ │ │ ├── test_0021_debug_mode_with_escape_disabled_d5b28d0c6e5cc66787fa0f0134fe2642.txt │ │ │ ├── test_0022_erb_yield_expressions_get_debug_spans_00962cc49ea43b8d9e11e5b050b24a56.txt │ │ │ ├── test_0023_complex_nested_template_with_all_features_8183ba9ca86a867463e5eef28dede268.txt │ │ │ ├── test_0025_turbo_frame_tag_does_NOT_get_erb-output_outline_type_6441400221f6c4babe86ffc5da0cd758.txt │ │ │ ├── test_0026_content_for_with_block_does_NOT_get_erb-output_outline_type_1d1f4277e9176d7fdfd12943bfdca2fe.txt │ │ │ ├── test_0027_content_tag_with_block_does_NOT_get_erb-output_outline_type_085c2022e3fc5db7ee51f4bdb45e58cc.txt │ │ │ ├── test_0028_link_to_with_block_does_NOT_get_erb-output_outline_type_25a2a32341c4efbd5fc67fcaccc65e04.txt │ │ │ ├── test_0029_tag_helper_with_block_does_NOT_get_erb-output_outline_type_d94d55997ab20001501c4d8811a7bb88.txt │ │ │ ├── test_0030_form_with_block_does_NOT_get_erb-output_outline_type_93a0348e20c77450c6d171153f72e728.txt │ │ │ ├── test_0031_yield_expressions_get_NOT_erb-output_outline_type_0c837ffe84723a464e884d64d0e062dd.txt │ │ │ ├── test_0032_if_with_elements_89b5f8286cf91457e3403e9ac303a110.txt │ │ │ ├── test_0033_gets_view_and_erb_output_view_type_for_just_output_tag_a96009c6e583d1020beeee97e1ce62a9.txt │ │ │ ├── test_0034_puts_debug_span_on_parent_if_HTMLTextContent_is_only_spaces_be6b19dff594a892a386128f09ffe067.txt │ │ │ ├── test_0035_puts_debug_span_on_parent_if_HTMLTextContent_is_only_whitespace_bac3b0b435460da6f79e9f55aa0330e8.txt │ │ │ ├── test_0036_mulitple_top-level_elements_should_be_wrapped_in_type=view_div_949cda6115e11aa1c64a4ba7f14af8d7.txt │ │ │ ├── test_0037_non_HTML-element_top-level_node_should_be_wrapped_in_type=view_div_a5de27451c9360545052120fb160f115.txt │ │ │ ├── test_0038_head_content_erb_expressions_do_NOT_get_debug_spans_8089875648934cfa3372da1612535899.txt │ │ │ ├── test_0039_textarea_content_erb_expressions_do_NOT_get_debug_spans_749dc54ef9bc43f01a7308eb5aceb38e.txt │ │ │ ├── test_0040_pre_content_erb_expressions_do_NOT_get_debug_spans_310e2cf33eed6523c1327b9489be9c7c.txt │ │ │ ├── test_0041_nested_excluded_contexts_do_NOT_get_debug_spans_0e904ebb5414efb4cb37c5370cb965a2.txt │ │ │ ├── test_0042_html_comment_erb_expressions_do_NOT_get_debug_spans_29f280295d96a879bf9775e4ca2509b8.txt │ │ │ ├── test_0043_html_doctype_erb_expressions_do_NOT_get_debug_spans_f7e26660aada5f63b9e67e4082fa3efe.txt │ │ │ ├── test_0044_complex_erb_with_control_flow_and_fa_helper_calls_21cbfad3d0a53e094cf337404372e3cc.txt │ │ │ └── test_0045_regular_div_content_still_gets_debug_spans_after_excluded_context_tests_8bcb5712e0fc1e7b6a6b8639a98f4e14.txt │ │ ├── engine_block_test │ │ │ ├── test_0001_erb_block_expressions_generate_correct_code_without_parentheses_f1ec47d1e1a09d1114d928c64d54de58.txt │ │ │ ├── test_0002_erb_block_expressions_with_escaping_7296abe3ce9cad7a56f653b0669c8e0a.txt │ │ │ ├── test_0003_regular_erb_expressions_have_parentheses_f5a50306423c1234d1f86bef4244b302.txt │ │ │ ├── test_0004_escaped_expressions_use_correct_escape_function_767532fe886f09850d3e2117de637a56.txt │ │ │ ├── test_0005_escape_function_reference_uses_HerbEngine_7d6fcd9b42b7c23b832eae52e36033ef.txt │ │ │ ├── test_0005_escape_function_reference_uses_HerbEngine_a7a38b365e168de54928cd4b780619ce.txt │ │ │ ├── test_0006_context-aware_escaping_for_attributes_1a41c1fd03ace896cc730634012d9df9.txt │ │ │ ├── test_0007_script_context_escaping_449cb47f122ffe05c8a3938b86db01da.txt │ │ │ ├── test_0008_style_context_escaping_a367cd981eadfdc5c6a824c1bdf2694f.txt │ │ │ ├── test_0010_html_comments_are_optimized_to_single_text_token_42d9dc7e0c0dd5ae36a7ddde7f11ef75.txt │ │ │ ├── test_0011_doctype_is_optimized_to_single_text_token_e81d630999b5fe77477e60ce788a1e3d.txt │ │ │ ├── test_0012_erb_control_structures_work_correctly_92d1893d3882087a626b1b7683e91762.txt │ │ │ └── test_0013_erb_case_statements_compile_correctly_903b2af211dfab8347850d71f6e431e8.txt │ │ ├── engine_erubi_compat_test │ │ │ ├── test_0001_handles_no_tags_9ae679bbe8b534b33f7f0482cab09601.txt │ │ │ ├── test_0002_handles_basic_erb_expressions_4746f6e488bfcd3ec68007d129631394.txt │ │ │ ├── test_0003_escapes_backslashes_and_apostrophes_in_text_c1db0d9f3d8889c22cba5f33cca0a81b.txt │ │ │ ├── test_0004_strips_whitespace_with_-%gt_tag_271458511492ec7e18baf77d0b7a04c3.txt │ │ │ ├── test_0005_handles_erb_comments_9c479c9d1b4668c4a5e3ecf9dfdc7d04.txt │ │ │ ├── test_0006_handles_escape_option_a7a38b365e168de54928cd4b780619ce.txt │ │ │ ├── test_0006_handles_escape_option_f439b215d233f255a2d983be50a566a6.txt │ │ │ ├── test_0007_handles_double_equals_for_inverse_escaping_031ede7b0d3f38a431bb4e2009e597d2.txt │ │ │ ├── test_0007_handles_double_equals_for_inverse_escaping_7d6fcd9b42b7c23b832eae52e36033ef.txt │ │ │ ├── test_0008_handles_custom_bufvar_4b12581137e52226597b0aa84fec1148.txt │ │ │ ├── test_0009_handles_freeze_option_c7cfe845c307b290283374cda0e6b3bd.txt │ │ │ ├── test_0010_handles_freeze_template_literals_option_848883dc35cf359944935b46efa0d2a1.txt │ │ │ ├── test_0010_handles_freeze_template_literals_option_ae490373e053cdc4f8e3effa5267d81e.txt │ │ │ ├── test_0011_handles_custom_preamble_and_postamble_3b55a12762518f8786870b322ca30296.txt │ │ │ ├── test_0012_handles_ensure_option_5087762b1aa5a6cb20238d3e8292b14f.txt │ │ │ ├── test_0013_handles_custom_escapefunc_b132833b75887924426e4f08e89a7a3b.txt │ │ │ ├── test_0014_handles_chain_appends_option_7c6e88add003e4e2d3e5321121035b4d.txt │ │ │ ├── test_0014_handles_chain_appends_option_d91d14c6c78ca542efb889aef824b39f.txt │ │ │ ├── test_0015_handles_multiple_erb_constructs_in_complex_template_8033045d7c8ec7030c37a69705c95b59.txt │ │ │ ├── test_0016_handles_void_elements_correctly_ec8e16b071f1512af4c11c6f5e83a83e.txt │ │ │ ├── test_0017_handles_CDATA_sections_9b2c1232f3a08d85651530a3a053bd1d.txt │ │ │ └── test_0018_handles_XML_declarations_80bc91b8f61b130833a0db535587906f.txt │ │ ├── engine_test │ │ │ ├── test_0001_basic_compilation_8787e8652af182a14b119c02e42d41ef.txt │ │ │ ├── test_0002_compilation_with_escaping_97a4cf60e21a27282801c928e34cc7ad.txt │ │ │ ├── test_0003_compilation_without_escaping_dab6b2186b82b0e6da5e7aba13328292.txt │ │ │ ├── test_0004_compilation_with_freeze_2c027491a18992cfc58f26e5e11d132e.txt │ │ │ ├── test_0005_erb_control_flow_e92996083eebcc06dbfdbe99b01405d4.txt │ │ │ ├── test_0006_erb_loops_ce09605dc8d98fa00b772641bcb94756.txt │ │ │ ├── test_0007_html_attributes_ae606d306ed113ca8c81bac949c95f0b.txt │ │ │ ├── test_0008_erb_in_attributes_d9215319e7a45e85562051ee88efb393.txt │ │ │ ├── test_0010_compilation_with_custom_bufvar_648bc9c3988d6e3e11794740df367ac6.txt │ │ │ ├── test_0011_void_elements_3979e9f719fb6a669a5f8954def7c5cb.txt │ │ │ ├── test_0012_comments_710fe3f51d746ce1e228e58597aea388.txt │ │ │ ├── test_0013_doctype_92f22a69d9a42244fd6bcb2269a2da78.txt │ │ │ ├── test_0014_nested_structures_80dc820543c2a2f82784e771830a3ce2.txt │ │ │ ├── test_0015_void_element_7a2d40e72c76ae8704ea920276c8941e.txt │ │ │ └── test_0016_if_elsif_else_compilation_1437d0425640509570342c24b30de571.txt │ │ ├── erb_comments_test │ │ │ ├── test_0001_inline_ruby_comment_on_same_line_ece56a54ce9835acc67012583c42fc01.txt │ │ │ ├── test_0002_inline_ruby_comment_with_newline_32dd50121c8e2af22b8a7e5efd92940f.txt │ │ │ ├── test_0003_inline_ruby_comment_between_code_987d6e126382f02311aa0c1a0e0007bc.txt │ │ │ ├── test_0004_inline_ruby_comment_before_and_between_code_d6e28172fd69bf4538744950bffb2848.txt │ │ │ ├── test_0005_inline_ruby_comment_with_spaces_a1f69e41bb63eacbc881533c704e17a4.txt │ │ │ ├── test_0006_inline_ruby_comment_multiline_1dc1e842d2fb5a2484c2e2fa0eca3678.txt │ │ │ ├── test_0007_evaluation_inline_ruby_comment_on_same_line_da1ad954cfb3b204db6e91dd6fa35de7.txt │ │ │ ├── test_0008_evaluation_inline_ruby_comment_with_newline_3519273b500925a720622d82288e0a31.txt │ │ │ ├── test_0009_evaluation_inline_ruby_comment_between_code_2788ca7a784e1295299a8d85ec9e396d.txt │ │ │ ├── test_0010_evaluation_inline_ruby_comment_before_and_between_code_13d746f9eef6690df9a609b4349a5189.txt │ │ │ ├── test_0011_evaluation_inline_ruby_comment_with_spaces_403e802d2a1c4f738b359fc3eee74053.txt │ │ │ └── test_0012_evaluation_inline_ruby_comment_multiline_c4d3ea038c11a5575430ca4b14abff47.txt │ │ ├── escape_test │ │ │ ├── attributes │ │ │ │ ├── test_0001_default_82a7a92705ab6d35e9b98dcf832df658.txt │ │ │ │ ├── test_0002_escape_true_bbb2f1b4762867f152a22fb91e012a4c.txt │ │ │ │ ├── test_0003_custom_attrfunc_cf03e906f47d2afbb15fa203feeeb459.txt │ │ │ │ ├── test_0004_empty_attrfunc_d7d14e66fe9908f96175d0fc31e0dac1.txt │ │ │ │ ├── test_0005_escape_true_and_custom_attrfunc_8f14421c2d93dcbfc8c32ebcd79e356c.txt │ │ │ │ ├── test_0006_escape_true_and_empty_attrfunc_b5195ed0791ce8b7fb7e9957385d0888.txt │ │ │ │ ├── test_0007_escape_false_and_custom_attrfunc_60c2561eccf31fcc7be74358531d361a.txt │ │ │ │ └── test_0008_escape_false_and_empty_attrfunc_d36d73b6689a9ee6b1dd7429bacb5577.txt │ │ │ ├── escape_erb_output_tag │ │ │ │ ├── test_0001_default_4fb2161faf855683340cde061df50b63.txt │ │ │ │ ├── test_0002_escape_true_44fdc28505aff5a94a37c9368fc76e9d.txt │ │ │ │ ├── test_0003_custom_escapefunc_40f8668374512910499884ea2bd53300.txt │ │ │ │ ├── test_0004_empty_escapefunc_9e92c0a389c10a598f8ced575449686c.txt │ │ │ │ ├── test_0005_escape_true_and_custom_escapefunc_3e35bb560dddb5f03f2d193e3e455d00.txt │ │ │ │ ├── test_0006_escape_true_and_empty_escapefunc_fd847a19c1f5170be7d9a8e865ff9fb3.txt │ │ │ │ ├── test_0007_escape_false_and_custom_escapefunc_7683083386c679d64322db896966279d.txt │ │ │ │ └── test_0008_escape_false_and_empty_escapefunc_8588ecfab0b1fa69e732bbad0941ebf7.txt │ │ │ ├── escape_erb_raw_output_tag │ │ │ │ ├── test_0001_default_f2be84eb0a72782680d35cf59765e9a8.txt │ │ │ │ ├── test_0002_escape_true_a71d7635b10408058ae5f6f8337d1e0c.txt │ │ │ │ ├── test_0003_custom_escapefunc_d8d378cd430fd52648905d31467fd15f.txt │ │ │ │ ├── test_0004_empty_escapefunc_6d8030e9f8e12e3a882ebc492e1efb1c.txt │ │ │ │ ├── test_0005_escape_true_and_custom_escapefunc_6549bbd875e087b9318ec6c35f61dd42.txt │ │ │ │ ├── test_0006_escape_true_and_empty_escapefunc_8d28173c3875daee25c08f28b41fa510.txt │ │ │ │ ├── test_0007_escape_false_and_custom_escapefunc_a0353f00c62b0daf50687e9c8d223391.txt │ │ │ │ └── test_0008_escape_false_and_empty_escapefunc_f7d39b8a11a3022e2ef1a697e3c46888.txt │ │ │ ├── javascript │ │ │ │ ├── test_0001_default_b2330479d7cdc3d3bd870cbda6e5a13a.txt │ │ │ │ ├── test_0002_escape_true_b20f9d8b8dcf7e533b68a6db0194bc75.txt │ │ │ │ ├── test_0003_custom_jsfunc_fff096d3faee3e5c8c1b1f5d09f407d1.txt │ │ │ │ ├── test_0004_empty_jsfunc_33b8e30f7bf28e4f9dfc23d89e187438.txt │ │ │ │ ├── test_0005_escape_true_and_custom_jsfunc_efcb50766c5a8f17b97cfd5ad4ca67cd.txt │ │ │ │ ├── test_0006_escape_true_and_empty_jsfunc_96ece398c40750f59650d0c35f953dd9.txt │ │ │ │ ├── test_0007_escape_false_and_custom_jsfunc_f436b9a75e95db20869db3ea9fd57766.txt │ │ │ │ └── test_0008_escape_false_and_empty_jsfunc_3d49d1a8bb960fe85c74d4deb4d3107f.txt │ │ │ └── style │ │ │ │ ├── test_0001_default_b2440242cdba618522e76914ac63a054.txt │ │ │ │ ├── test_0002_escape_true_4781fa0cc6abdaa0769dba2eb345e4cd.txt │ │ │ │ ├── test_0003_custom_cssfunc_bbd4d2d294779b5762d02b2e1c07fb11.txt │ │ │ │ ├── test_0004_empty_cssfunc_986ecd0589393eb937ceee2aa419f49e.txt │ │ │ │ ├── test_0005_escape_true_and_custom_cssfunc_cd5298d4aac80c862e718692bdf83eab.txt │ │ │ │ ├── test_0006_escape_true_and_empty_cssfunc_4d1ec0837eb25b77cd79886db2c4dee6.txt │ │ │ │ ├── test_0007_escape_false_and_custom_cssfunc_28db6ce107bc81f050f3de9a654f8fa5.txt │ │ │ │ └── test_0008_escape_false_and_empty_cssfunc_3cb7a8609a8656ee321b953d5a5132f4.txt │ │ ├── evaluation_test │ │ │ ├── test_0001_basic_text_output_446d2d1421cca7b806743f01aa2251e4.txt │ │ │ ├── test_0002_variable_interpolation_4088972be574f11869e69d9d1c431607.txt │ │ │ ├── test_0003_html_escaping_enabled_61ee66481732a63208d4098cd765a529.txt │ │ │ ├── test_0004_html_escaping_disabled_0bf9b33f4064b46d0e661b92c60883b8.txt │ │ │ ├── test_0005_conditional_rendering_true_f476d94ad451540a483556ee84873425.txt │ │ │ ├── test_0006_conditional_rendering_false_cc1fa20e0a32190d88a0227eb61a12a9.txt │ │ │ ├── test_0007_loop_rendering_6e40ec8a557eaa730717359ad0e81955.txt │ │ │ ├── test_0008_nested_loops_41457e8139a808914d288744c4e0c532.txt │ │ │ ├── test_0009_complex_expressions_4a8e4604acd824ebd86dd77c316ced30.txt │ │ │ ├── test_0010_method_calls_with_blocks_faff63e221cd127f249022ff7517bb14.txt │ │ │ ├── test_0011_unless_conditional_false_c4f4ef6359c9b399bbe059b270d0388f.txt │ │ │ ├── test_0012_unless_conditional_true_62ddfd676314329facbb84fd7db1974c.txt │ │ │ ├── test_0013_case_statement_pending_8fd46cbbe67a0d2871dee4eca5f8e38f.txt │ │ │ ├── test_0014_case_statement_approved_989341ea9ef14353decf0f2697a3b605.txt │ │ │ ├── test_0015_case_statement_unknown_8bdf6d6267e185f6eaaa261aed0851fd.txt │ │ │ ├── test_0016_erb_in_attribute_values_2afc809a699663dfa53f333e524b3a75.txt │ │ │ ├── test_0017_whitespace_handling_8efdae73f991e421da3048f196d4f1e2.txt │ │ │ ├── test_0018_erb_comments_not_in_output_b2301585369bb0d0a7f195ff44444845.txt │ │ │ ├── test_0019_html_comments_in_output_365585bce5e9853289b0f6a8cbded7d0.txt │ │ │ ├── test_0020_empty_template_33b1269514e02c4c9e317b3bc202bb50.txt │ │ │ ├── test_0021_only_whitespace_template_f8959e0699f3edad1645d14d94451687.txt │ │ │ ├── test_0022_complex_real_world_example_77e6fc93cd860e93537231583cd9cf3f.txt │ │ │ ├── test_0023_utf8_handling_1a606908d02705253fec4859259e69e2.txt │ │ │ ├── test_0024_comment_before_content_fe61d9bee5fc47e3ae2a25deab93660c.txt │ │ │ ├── test_0025_inline_ruby_comment_on_same_line_ad303bca1e8d22f5b16ec13f3c664241.txt │ │ │ ├── test_0026_inline_ruby_comment_with_newline_9abf0cb2099f40dfd7f4dfd3bfe1cc76.txt │ │ │ ├── test_0027_inline_ruby_comment_between_code_846a700430f96166237a051e3fca1bed.txt │ │ │ ├── test_0028_inline_ruby_comment_before_and_between_code_033a23daedac7be2427e58914b665c0f.txt │ │ │ ├── test_0029_inline_ruby_comment_with_spaces_c05d8f81793b59bea0ce93cf959bcfbe.txt │ │ │ ├── test_0030_inline_ruby_comment_multiline_d65c4c66f63611e90c0ea96b74af1ce4.txt │ │ │ ├── test_0031_left_trim_0487ac667a435a75abae76d26bc3184c.txt │ │ │ ├── test_0032_right_trim_009d413f1066d04acea88ea6ff36cbe2.txt │ │ │ └── test_0033_left_and_right_trim_1ab048e2a4ad2c02bdd61e558180d866.txt │ │ ├── examples_compilation_test │ │ │ ├── test_0001_attributes_with_empty_value_compilation_441036c464ee35f7b120090fe76d6936.txt │ │ │ ├── test_0002_begin_compilation_cf3fa644ffeb7b672053fa0e989f55b5.txt │ │ │ ├── test_0003_block_compilation_40b3cb480f677f54d2ff8f47af37f7fa.txt │ │ │ ├── test_0004_block_comment_compilation_d5c98b9f230e001f8aabf838d3774698.txt │ │ │ ├── test_0005_case_children_compilation_edc2f02149a3cdcced4e6d0830b5f251.txt │ │ │ ├── test_0006_case_in_compilation_6f13b7233db413c987e289ad2b3e3a3a.txt │ │ │ ├── test_0007_case_when_compilation_3ee70e5b90c1ff368a7783c49c6dc611.txt │ │ │ ├── test_0008_comment_compilation_da96aac1987dbb33d41eb4a121419b47.txt │ │ │ ├── test_0009_comment_before_content_compilation_2b3c4e3c244db77468813a7472298e82.txt │ │ │ ├── test_0010_complete_erb_compilation_a33dd3e79d24b4f31f6d4e92611f3f63.txt │ │ │ ├── test_0011_doctype_compilation_8c18fb8399a2fd1e65b0333bc01e041c.txt │ │ │ ├── test_0012_erb_compilation_0109f6af5a474973b8b1b52636135c4f.txt │ │ │ ├── test_0013_for_compilation_eeecb969def01ab8005c7b9f23686fed.txt │ │ │ ├── test_0014_if_else_compilation_1437d0425640509570342c24b30de571.txt │ │ │ ├── test_0015_left_right_trim_compilation_0416edce0119986c84ba03c645b50717.txt │ │ │ ├── test_0016_left_trim_compilation_12bf92840853103be656f8d585205a84.txt │ │ │ ├── test_0017_line_wrap_compilation_ba78b92bec7a4692a2043f2ba2ebe057.txt │ │ │ ├── test_0018_link_to_with_block_compilation_4ddb2a17755d3e775e3225970bc60a96.txt │ │ │ ├── test_0019_nested_if_and_blocks_compilation_aa8aed9ef61b138a28efed42f4b72251.txt │ │ │ ├── test_0020_right_trim_compilation_a702ca89e5a7ccec9e80bfc422053ffd.txt │ │ │ ├── test_0021_simple_block_compilation_1729fad3a77618acdc687c9fb671b75b.txt │ │ │ ├── test_0022_simple_erb_compilation_d81de4ca83482c4836215ef7177d9eec.txt │ │ │ ├── test_0023_test_compilation_9c22f391d1d03fa66b3d18095354a236.txt │ │ │ ├── test_0024_until_compilation_0b1269c00fd15a74df125278ed6a9fc4.txt │ │ │ ├── test_0025_utf8_compilation_45fa7aa654c0dc06d1a1b9504002dfba.txt │ │ │ └── test_0026_while_compilation_a705eb5ed83b4db368d7204baa136b36.txt │ │ ├── validation_deduplication_test │ │ │ ├── test_0001_validation_errors_in_ERB_loops_generate_single_template_per_location_527dd13a0a4ec520816dc6bb5f4c7279.txt │ │ │ ├── test_0002_multiple_identical_errors_at_different_locations_generate_separate_templates_3412d8be45b5f990c1e1bff365ae57dc.txt │ │ │ └── test_0003_validation_overlay_includes_deduplication_metadata_617be03c239297032907b0de8f4b03e9.txt │ │ ├── validation_modes_test │ │ │ ├── test_0004_none_mode_skips_all_validation_56b68d6a3512c749780d10fa0efcc762.txt │ │ │ ├── test_0004_none_mode_skips_all_validation_8ce219076424a268ded2740f54be7bc6.txt │ │ │ ├── test_0005_overlay_mode_compiles_successfully_with_validation_errors_4546acae1ccf8092d2178e7ce803985e.txt │ │ │ ├── test_0006_overlay_mode_with_valid_template_does_not_include_validation_errors_b90f26866326dddf616dce19ccf8f8a1.txt │ │ │ ├── test_0008_overlay_mode_includes_filename_in_HTML_f0f5f57b1f0e9b7d0cd2bee98022629a.txt │ │ │ ├── test_0009_overlay_mode_with_multiple_validation_errors_e6a7c767c8906df797e04d39ba8f3806.txt │ │ │ ├── test_0010_validation_modes_work_with_debug_mode_64ae994d3dab8108fd9268bdfd83cba3.txt │ │ │ └── test_0010_validation_modes_work_with_debug_mode_d773b47c4c4366891bc6dd6e086cd138.txt │ │ └── whitespace_trimming_test │ │ │ ├── test_0001_left_trim_removes_preceding_whitespace_5cadacd41cb757624bb397656a2e0e0c.txt │ │ │ ├── test_0001_left_trim_removes_preceding_whitespace_6d3c65e96f170fb180dc33f022754f9d.txt │ │ │ ├── test_0002_right_trim_removes_following_newline_69c9cce35a6af46ef129b944865ca70d.txt │ │ │ ├── test_0002_right_trim_removes_following_newline_e852e4dc988e2976e2bbb0cbb21d1110.txt │ │ │ ├── test_0003_left_and_right_trim_d2a8d86d185c415f319f67357dc5c3bf.txt │ │ │ ├── test_0003_left_and_right_trim_fdcdb38725bad90a7107b2ac7b5f6b6b.txt │ │ │ ├── test_0004_left_trim_with_whitespace_on_previous_line_23e63662b4ba8bb3fb5a5a1bb1d53b9e.txt │ │ │ ├── test_0004_left_trim_with_whitespace_on_previous_line_3f132e14d95ed78133b87aa8b677f4c1.txt │ │ │ ├── test_0005_right_trim_with_whitespace_on_following_line_5cecef16fbbafd80aca3bf498dfb7eb9.txt │ │ │ ├── test_0005_right_trim_with_whitespace_on_following_line_5d9825831d6ccd4e061c62f23b732294.txt │ │ │ ├── test_0006_left_trim_does_not_affect_non-whitespace_content_73459c2f2e974a49064d73399fbd8107.txt │ │ │ ├── test_0006_left_trim_does_not_affect_non-whitespace_content_ae222e3cdb952dbe88a5d78ec09342f0.txt │ │ │ ├── test_0007_right_trim_does_not_affect_non-newline_content_8401eeac9b536aeae6fa532142803f97.txt │ │ │ ├── test_0007_right_trim_does_not_affect_non-newline_content_c5218603adeca9a13e201776a9532cbb.txt │ │ │ ├── test_0008_multiple_consecutive_trimmed_tags_88d4447a380c5dc65d3a31af8ecc6e74.txt │ │ │ ├── test_0008_multiple_consecutive_trimmed_tags_d6a2a730e435a7db6b366e2cec6dde68.txt │ │ │ ├── test_0009_left_trim_with_expressions_abe60f63454b03afbef901657f42700c.txt │ │ │ ├── test_0009_left_trim_with_expressions_cb61528b7c29d6b9759c4bb24a5b00f4.txt │ │ │ ├── test_0010_right_trim_with_expressions_2b40ffdf266e4620412e79af42e51d8d.txt │ │ │ ├── test_0010_right_trim_with_expressions_eeb221058b1f7a71776015aec4024663.txt │ │ │ ├── test_0011_left_and_right_trim_with_expressions_13d12d13490f9d28f776f55f8769f353.txt │ │ │ ├── test_0011_left_and_right_trim_with_expressions_749dcc821200b4f2da6fb013630c8e35.txt │ │ │ ├── test_0012_no_trim_preserves_whitespace_1a281b87a37b77e5deff6df89f2d5304.txt │ │ │ ├── test_0012_no_trim_preserves_whitespace_b1bc5c5bbf88bbf4be1c1c1867ceb6d4.txt │ │ │ ├── test_0013_trim_with_nested_blocks_4ed5df5e19dec1c7f7bffa017bcf66f4.txt │ │ │ ├── test_0013_trim_with_nested_blocks_db89f8f079e064b205347df54a91fa8b.txt │ │ │ ├── test_0014_left_trim_at_start_of_file_688979d30ffb1ebd7ad117f92729aa2c.txt │ │ │ ├── test_0014_left_trim_at_start_of_file_6e29dbbfa0adbfe7385b8c39b04341cd.txt │ │ │ ├── test_0015_right_trim_at_end_of_file_23af33bb01b7a4e2aee6fc4f2fe8c62d.txt │ │ │ └── test_0015_right_trim_at_end_of_file_a8c9c24a1f7dda4a5a9da5ccd5bd5941.txt │ ├── lexer │ │ ├── attributes_test │ │ │ ├── test_0001_attribute_value_double_quotes_24d3faf147396fd00701c040dd088d1c.txt │ │ │ ├── test_0002_attribute_value_single_quotes_8b3b7fed8756aacca4ddc48cda37862c.txt │ │ │ ├── test_0003_attribute_value_empty_double_quotes_with_whitespace_aa45c5ab55dcf5752db629787123d549.txt │ │ │ ├── test_0004_attribute_value_empty_double_quotes_without_whitespace_dc0893bda6faff8ecc29985263b68f44.txt │ │ │ ├── test_0005_attribute_value_empty_single_quotes_with_whitespace_2e5584859fa6a3d0830bbc5ad9020767.txt │ │ │ ├── test_0006_attribute_value_empty_single_quotes_without_whitespace_ec5b4690851677e250ac5506d70c355f.txt │ │ │ ├── test_0007_attribute_value_single_quotes_with_slash_gt_ea0ed04bb6803d8a6cb24afe526c5a4a.txt │ │ │ ├── test_0008_attribute_value_double_quotes_with_slash_gt_f890220bd65269c4616e9ce562492257.txt │ │ │ ├── test_0009_attribute_value_single_quotes_with_gt_value_2e196056650e47d46886938eb88136f7.txt │ │ │ ├── test_0010_attribute_value_double_quotes_with_slash_98c2bda4f37e2def75e128c157a85691.txt │ │ │ ├── test_0011_Alpine.js_@click_attribute_931bfa97f371f8e928acca75e13b12a0.txt │ │ │ ├── test_0012_Alpine.js_@submit_attribute_38764d937f028f392e97626cf259b809.txt │ │ │ ├── test_0013_Alpine.js_class_attribute_af387b2d214ba9baadbd062f15508d2d.txt │ │ │ ├── test_0014_Alpine.js_value_attribute_dbd22dd4679133f8be271e39a3a16b03.txt │ │ │ ├── test_0015_Multiple_Alpine.js_attributes_7f3da6be0ee282001178fde2500072e2.txt │ │ │ ├── test_0016_Alpine.js_@_without_identifier_1217bff44d65649359fd10110f8873b6.txt │ │ │ ├── test_0017_Alpine.js__without_identifier_ad89c5b890e891eda58e590a3eaf2e82.txt │ │ │ ├── test_0018_attribute_value_double_quotes_with_gt_value_bf55684b694d2aa471b24fa539546339.txt │ │ │ ├── test_0019_attribute_value_single_quotes_with_slash_value_ef9fee65e67c623b1cd991d44c9c0dc5.txt │ │ │ ├── test_0020_attribute_value_double_quotes_with_single_quote_value_bd2cc15e28c80a4cfdafb4467f6f0555.txt │ │ │ ├── test_0021_attribute_value_single_quotes_with_double_quote_value_3b99fbfb2dbe3aba937cc20311e7d331.txt │ │ │ ├── test_0022_attribute_value_empty_quotes_followed_by_another_attribute_f25f6219b2cf10d288d83c451540e958.txt │ │ │ ├── test_0023_attribute_value_with_a_period_ce133d95b3be56c458be6147bbb4418b.txt │ │ │ ├── test_0024_attribute_value_with_a_slash_6db33df13355465e338194afbebd9174.txt │ │ │ └── test_0025_attribute_value_with_an_URL_0d5203d491fd23e18ad9d18972871f99.txt │ │ ├── boolean_attributes_test │ │ │ ├── test_0001_boolean_attribute_bb7e4ba2925fabbda530de889e749a52.txt │ │ │ ├── test_0002_boolean_attribute_without_whitespace_and_with_self-closing_tag_c6b0a14a338dd8edc4a12c0d19e7f542.txt │ │ │ └── test_0003_boolean_attribute_without_whitespace_and_without_self-closing_tag_64b6a6bf9a284ab86a9db5974b31b466.txt │ │ ├── cdata_test │ │ │ ├── test_0001_basic_CDATA_section_c25ae454841778f175fd05bfcdda8b42.txt │ │ │ ├── test_0002_CDATA_with_text_content_7f9125f551bc58d3dbfe940ac096a78c.txt │ │ │ ├── test_0003_CDATA_with_XML-like_content_4a372fc4422be677973351bc351746ff.txt │ │ │ ├── test_0004_CDATA_with_special_characters_8c3ab9c7c35d3cc83316278049f22d3e.txt │ │ │ ├── test_0005_CDATA_with_escaped_characters_that_are_not_interpreted_745d1382f26e84d827b38cdf475d33e3.txt │ │ │ ├── test_0006_CDATA_with_newlines_fde68cdcd0102d806db2e3c69fa5e5cf.txt │ │ │ ├── test_0007_CDATA_in_XML_document_a80d5f083429384bc29f1c2a6bc80bf1.txt │ │ │ ├── test_0008_CDATA_with_ERB_content_9884f8776402de7d7296618307ccd714.txt │ │ │ ├── test_0009_CDATA_with_complex_ERB_2c2d90415d057b7acbff8136b9e5e8bf.txt │ │ │ ├── test_0010_Multiple_CDATA_sections_0550f12e814e4f157f6d0c72afe7b323.txt │ │ │ ├── test_0011_CDATA_with_]]_inside_(workaround_pattern)_4f9dc3882e1e756e56efaf4dc1561c12.txt │ │ │ ├── test_0012_CDATA_in_HTML_comment_context_1c8a6d998d9daa0bbe631c88cd6098e0.txt │ │ │ ├── test_0013_CDATA_with_various_brackets_8684c648c8855fc8d36e691241c500b6.txt │ │ │ ├── test_0014_Empty_CDATA_with_spaces_d7f7e4ef752a4dac58a4b97b06b627c1.txt │ │ │ └── test_0015_CDATA_followed_by_HTML_37ac0c068811ca1c4a498dbf50d1fe06.txt │ │ ├── comments_test │ │ │ ├── test_0001_HTML_comment_with_padding_whitespace_9cb56068ef4732067422a670d943c08e.txt │ │ │ ├── test_0002_HTML_comment_with_no_whitespace_4644299a23e9ee76cdc970a26168b559.txt │ │ │ ├── test_0003_HTML_comment_followed_by_html_tag_573b93df7df7d12ef12722008abfc7ee.txt │ │ │ └── test_0004_HTML_comment_followed_by_html_tag_with_nested_comment_f4042eb3e6a5d62fcc86e4162fe10cf2.txt │ │ ├── doctype_test │ │ │ ├── test_0001_doctype_d50c7b32f19e4848938905f3dc675f44.txt │ │ │ ├── test_0002_doctype_with_space_6bc67d7bee174842987d55662f6e3d1c.txt │ │ │ ├── test_0003_doctype_with_html_fe364450e1391215f596d043488f989f.txt │ │ │ ├── test_0004_html4_doctype_737d71ee3fb171f813731282cd802c3e.txt │ │ │ ├── test_0005_doctype_case_insensitivity_2f56dc84fb5f8e284f42eae7d1f1c597.txt │ │ │ ├── test_0005_doctype_case_insensitivity_3e5902254c42ff2df6f6321086040dbe.txt │ │ │ └── test_0005_doctype_case_insensitivity_8bc9e797250fadb2f5af79f38cf7d74e.txt │ │ ├── erb_test │ │ │ ├── test_0001_erb_lt%_%gt_e97ed3ba194342cfe8febc1a40a3d603.txt │ │ │ ├── test_0002_erb_lt%=_%gt_2d5c53c5a986076f8a5df2585ce5aa74.txt │ │ │ ├── test_0003_erb_lt%-_%gt_b305aff64a566ea549c116aacb0ce86c.txt │ │ │ ├── test_0004_erb_lt%-_-%gt_34d2696185efe003bf3f2c2dddb924e3.txt │ │ │ ├── test_0005_erb_lt%#_%gt_d59bec1a45925c1618c6d42541cb652b.txt │ │ │ ├── test_0006_erb_lt%%_%%gt_5856d025d70301b0cc95e2287a1d324f.txt │ │ │ ├── test_0007_erb_lt%%=_%%gt_8bba62f5739809ebc6cf44f4206dd610.txt │ │ │ ├── test_0008_erb_lt%_=%gt_344eadf6b1e04a6f534a3c7e38bbadf1.txt │ │ │ ├── test_0009_erb_lt%=_=%gt_273e03432c2039cc05443a602e8c633a.txt │ │ │ ├── test_0010_erb_output_inside_HTML_attribute_value_91d881ce0dd66286e4866c07a91e025c.txt │ │ │ ├── test_0011_erb_output_inside_HTML_attribute_value_with_value_before_e474134558bf8ffccb829ba880271d99.txt │ │ │ ├── test_0012_erb_output_inside_HTML_attribute_value_with_value_before_and_after_4ce9cd67e9f49e97d785cb27fb5e287a.txt │ │ │ ├── test_0013_erb_output_inside_HTML_attribute_value_with_value_and_after_e07f0e9a593189f256789bd0ab7b5a82.txt │ │ │ ├── test_0014_multi-line_erb_content_3b1dbeebb7d6cc88ee758abcd174c7c4.txt │ │ │ ├── test_0015_multi-line_erb_content_with_complex_ruby_71e2451824a84db91b7e1cf752872168.txt │ │ │ ├── test_0016_multi-line_erb_silent_tag_fae7aab59f46d7906cdeccfc1fa2cb3e.txt │ │ │ └── test_0017_erb_tag_followed_by_literal_closing_delimiter_15e84c87986bd8a2aba06dcee2be46b8.txt │ │ ├── html_entities_test │ │ │ ├── test_0001_<_87acb03b9542ddbc824f5bbd080a5cd4.txt │ │ │ ├── test_0002_>_58ba3bb1a1772a74392e5e86bd2be4b7.txt │ │ │ ├── test_0003_ _cc7819055cde3194bb3b136bad5cf58d.txt │ │ │ ├── test_0004_"_eb6439de53405a48b124e7cf89ba71d3.txt │ │ │ ├── test_0005_'_e38c1fb206aebfcf7289482b93815826.txt │ │ │ ├── test_0006_ampersand_c2249209343ab488c055da76368f04a0.txt │ │ │ └── test_0007_literal_ampersand_6cff047854f19ac2aa52aac51bf3af4a.txt │ │ ├── lexer_test │ │ │ ├── test_0001_nil_560d7cfe153ff63e50fbb9a506bd32ba.txt │ │ │ └── test_0002_empty_file_d41d8cd98f00b204e9800998ecf8427e.txt │ │ ├── newlines_test │ │ │ ├── test_0001_line_feed_68b329da9893e34099c7d8ad5cb9c940.txt │ │ │ ├── test_0002_carriage_return_dcb9be2f604e5df91deb9659bed4748d.txt │ │ │ ├── test_0003_carriage_return_and_line_feed_81051bcc2cf1bedf378224b0a93e2877.txt │ │ │ ├── test_0004_two_newlines_e1c06d85ae7b8b032bef47e42e4c08f9.txt │ │ │ ├── test_0005_newline_after_space_d784fa8b6d98d27699781bd9a7cf19f0.txt │ │ │ ├── test_0006_text_content_before_and_after_68423faee48fc1bab08291a512861446.txt │ │ │ ├── test_0007_newline_between_text_content_f41121a903eafadf258962abc57c8644.txt │ │ │ ├── test_0008_newline_between_html_elements_832f3c170675c57ee6c4b54c3dc60462.txt │ │ │ ├── test_0009_newlines_between_html_elements_abaab2c016a126725eb69381cc13978a.txt │ │ │ └── test_0010_newline_inside_html_elements_5b50a444e2f5be5630be45cec35181eb.txt │ │ ├── tags_test │ │ │ ├── test_0001_basic_tag_c83301425b2ad1d496473a5ff3d9ecca.txt │ │ │ ├── test_0002_basic_void_tag_0a22925ab034fd09eb49cc4224720dcb.txt │ │ │ ├── test_0003_basic_void_tag_without_whitespace_917eccff1c0d00dbdc9bbe20d07c939c.txt │ │ │ ├── test_0004_namespaced_tag_45f3ec5566563217212e18f9f9983f0a.txt │ │ │ ├── test_0005_colon_inside_html__b7b46dcd10fad620a00a95b27daab204.txt │ │ │ ├── test_0006_text_content_f797031f3210ce6494466d619610926c.txt │ │ │ ├── test_0007_attribute_with_no_quotes_value_and_whitespace_and_self-closing_tag_fed80eb194a51acda7fe05820e850451.txt │ │ │ ├── test_0008_attribute_with_no_quotes_value,_no_whitespace_and_self-closing_tag_82af2795699fe4f5b34f32ed1491228a.txt │ │ │ ├── test_0009_attribute_with_no_quotes_value,_no_whitespace,_and_non_self-closing_tag_f00fb4a0aa00f7c763be88670c0bc05d.txt │ │ │ └── test_0010_link_tag_aab5814bdfc527d6d55d8957f089b911.txt │ │ ├── text_content_test │ │ │ ├── test_0001_text_content_4dc7bb0f7aaadf0c36061e92ff8d581b.txt │ │ │ ├── test_0002_text_content_with_period_d654eb23e13156b3de00db20412d10d4.txt │ │ │ ├── test_0003_text_content_that_exceeds_initial_hb_buffer_T_size_and_needs_to_resize_once_(ca._4K)_998d9cbd9b8794fa030c888bfa09cad4.txt │ │ │ └── test_0004_text_content_that_exceeds_initial_hb_buffer_T_size_and_needs_to_resize_twice_(ca._8K)_45e3ecb8edc7dbec7d68b72b5d083439.txt │ │ ├── token_test │ │ │ ├── test_0001_whitespace_7215ee9c7d9dc229d2921a40e899ec5f.txt │ │ │ ├── test_0002_multiple_whitespace_0cf31b2c283ce3431794586df7b0996d.txt │ │ │ ├── test_0003_multiple_whitespace_with_newlines__ff50772e7d3bdf3652ee7b345823b611.txt │ │ │ ├── test_0004_non-breaking_space_8df6fbcc43d31d99e5112eb009ed8a2d.txt │ │ │ ├── test_0005_newline_68b329da9893e34099c7d8ad5cb9c940.txt │ │ │ ├── test_0006_!_9033e0e305f247c0c3c80d0c7848c8b3.txt │ │ │ ├── test_0007_slash_6666cd76f96956469e7be39d750cc7d9.txt │ │ │ ├── test_0008_dash_336d5ebc5436534e61d16e63ddfca327.txt │ │ │ ├── test_0009_underscore_b14a7b8059d9c055954c92674ce60032.txt │ │ │ ├── test_0010_percent_0bcef9c45bd8a48eda1b26eb0c61c869.txt │ │ │ ├── test_0011_colon_853ae90f0351324bd73ea615e6487517.txt │ │ │ ├── test_0012_equals_43ec3e5dee6e706af7766fffea512721.txt │ │ │ ├── test_0013_double_quote_b15835f133ff2e27c7cb28117bfae8f4.txt │ │ │ ├── test_0014_single_quote_3590cb8af0bbb9e78c343b52b93773c9.txt │ │ │ ├── test_0015_less_than_signs_83699a49d8884e65d9291885a6448e44.txt │ │ │ ├── test_0016_greater_than_signs_4a8c3066e1720f3068d5559fc41acb0c.txt │ │ │ └── test_0017_LT,_GT_and_PERCENT_signs_6f6dcf1103a1b99a952c36d32a89a2ec.txt │ │ ├── utf8_test │ │ │ ├── test_0001_single_UTF-8_character_-_a-umlaut_(2_bytes)_8419b71c87a225a2c70b50486fbee545.txt │ │ │ ├── test_0002_single_UTF-8_character_-_euro_sign_(3_bytes)_bca53fde466a76b7bee3e18997e94a7a.txt │ │ │ ├── test_0003_single_UTF-8_character_-_emoji_(4_bytes)_9a9854bb735591cd2296c7d2e7c70c96.txt │ │ │ ├── test_0004_multiple_UTF-8_characters_0a09d7ee1e23c509e5e6846c86823081.txt │ │ │ ├── test_0005_mixed_ASCII_and_UTF-8_60791161b6a23965fd2c7c4f28b40ef7.txt │ │ │ ├── test_0006_UTF-8_in_HTML_tag_23d7cee67799f39f80ff3c8c3f123876.txt │ │ │ ├── test_0007_UTF-8_in_attribute_value_33c8000ce11b738c064a2480a67cd966.txt │ │ │ ├── test_0008_non-breaking_space_(should_use_TOKEN_NBSP)_7215ee9c7d9dc229d2921a40e899ec5f.txt │ │ │ ├── test_0009_various_Unicode_symbols_56dca1fb5e06fa932b775ab821350f5d.txt │ │ │ ├── test_0010_emoji_sequence_20411a338175125c89c7b53b1a7171eb.txt │ │ │ ├── test_0011_Chinese_characters_65396ee4aad0b4f17aacd1c6112ee364.txt │ │ │ ├── test_0012_Arabic_text_9530db02d3c8217be00c1aa98ec51861.txt │ │ │ ├── test_0013_mixed_UTF-8_with_HTML_structure_2eedd7e4e1585b52553db2fcf70bdfb9.txt │ │ │ ├── test_0014_UTF-8_line_breaks_and_positioning_87772e0d3b85d8cab09a1c354d70b213.txt │ │ │ └── test_0015_complex_UTF-8_with_ERB_b6276e3bed3faa902628e7bd34d5d3d7.txt │ │ └── xml_declaration_test │ │ │ ├── test_0001_basic_xml_declaration_66973079dc7fdc0eedbbcbed1bf0bde0.txt │ │ │ ├── test_0002_xml_declaration_with_encoding_447d423b62bc6692ce2266e1dfb0a3b5.txt │ │ │ ├── test_0003_xml_declaration_with_encoding_ISO-8859-1_dd4263447c1fda5ed82c31b9d2f8f24c.txt │ │ │ ├── test_0004_xml_declaration_with_standalone_5aa41195cf30adefdbca245f08726269.txt │ │ │ ├── test_0005_xml_declaration_with_all_attributes_3ef840d0361caa4801a5f9ec97056a2b.txt │ │ │ ├── test_0006_xml_declaration_case_insensitive_1_e4e345519e2b76863647d3351ace49e0.txt │ │ │ ├── test_0007_xml_declaration_case_insensitive_2_2c7827fc01b52f3dd103b842f07d2742.txt │ │ │ ├── test_0008_xml_declaration_case_insensitive_3_19078f9a0d7c42b40a7aa66ccde337be.txt │ │ │ ├── test_0009_xml_declaration_with_spaces_0f70f9dc3f7c17d88be358a804043833.txt │ │ │ ├── test_0010_xml_declaration_with_newlines_01fc1f4f0cc30f25fccc96fca16afed4.txt │ │ │ ├── test_0011_xml_declaration_with_single_quotes_ee83d90fd5287d588959a3a5b611d6ce.txt │ │ │ └── test_0012_xml_declaration_followed_by_html_d3329c9fd9d81fa8c7e39656c4e48b5c.txt │ └── parser │ │ ├── attributes_test │ │ ├── test_0001_attributes_58a307bbb974b5a37bc8c4923f05efa0.txt │ │ ├── test_0002_attribute_with_dashed_name_f7d2a0c99c36c831df198c15d8c2c17c.txt │ │ ├── test_0003_duplicate_attributes_bf952621ac1542b125217fd3c3171e28.txt │ │ ├── test_0004_attribute_with_no_quotes_value_and_whitespace_and_self-closing_tag_fed80eb194a51acda7fe05820e850451.txt │ │ ├── test_0005_attribute_with_no_quotes_value,_no_whitespace_and_self-closing_tag_82af2795699fe4f5b34f32ed1491228a.txt │ │ ├── test_0006_attribute_with_no_quotes_value,_no_whitespace,_and_non_self-closing_tag_f00fb4a0aa00f7c763be88670c0bc05d.txt │ │ ├── test_0007_attribute_value_with_space_after_equal_sign_60301c34c290d45874e5f104c39feb48.txt │ │ ├── test_0008_attribute_value_with_space_before_equal_sign_0b81ef4e70d5dcbdc23a01ccdafa82d1.txt │ │ ├── test_0009_attribute_value_with_space_before_and_after_equal_sign_a091f9fc2d9abdcd3635fead31e4c2d6.txt │ │ ├── test_0010_attribute_value_with_newline_before_equal_sign_4ebf4e0cdebb1bc4b622110bb23e6e32.txt │ │ ├── test_0011_attribute_value_with_newline_after_equal_sign_681faac92b6d7bfe9954598e50a1b645.txt │ │ ├── test_0012_attribute_value_with_newline_before_and_after_equal_sign_4ba041e2c7c630bf5e27bc3ea50f4ecf.txt │ │ ├── test_0013_attribute_value_with_mixed_whitespace_and_newlines_around_equal_sign_8ae625bfdbec9821b0afa0459e67f863.txt │ │ ├── test_0014_attribute_value_with_exclamation_point_d037dd6a201e88e55e6ab86bd2595ba9.txt │ │ ├── test_0015_style_attribute_with_url_02762c59a138badb5bfea6b275ae6251.txt │ │ ├── test_0016_double_quotes_inside_single_quotes_cbaae19549457c1f74162c0f28dbb022.txt │ │ ├── test_0017_multiple_nested_quotes_fbfe8fcce107a09add4af69465c4037d.txt │ │ ├── test_0018_apostrophe_inside_single_quotes_e431474b58446f910c9425491add27a0.txt │ │ ├── test_0019_escaped_apostrophe_inside_single_quotes_73b1e8ba6af89da5d178df9a5b3781fc.txt │ │ ├── test_0020_escaped_double_quote_inside_double_quotes_1ad5f48462c267e84580003c8ac9abac.txt │ │ ├── test_0021_empty_quoted_attribute_values_8cbc6c3a58ce6e2fd57c03326bec1b73.txt │ │ ├── test_0022_mixed_quote_types_in_multiple_attributes_c8a24bb6a12da051002e130b8c94b4b4.txt │ │ ├── test_0023_erb_output_with_quotes_fb1d0c6f864f1f46ac83f42d1250c9ad.txt │ │ ├── test_0024_attributes_with_dots_in_name_89984a18a28d8c5c73db29753dc762c2.txt │ │ ├── test_0025_complex_attribute_with_dots_and_values_d5cd679cddf6b4eae3a0c22c008acaae.txt │ │ ├── test_0026_attributes_starting_with_@_symbol_90ae5bd03544cde697c6898cc52d03a7.txt │ │ ├── test_0027_@_attributes_with_various_patterns_1c9d04c71dfedc10b544c42b3452367c.txt │ │ ├── test_0028_standalone_@_symbol_in_div_tag_0fac4a8abe9de4433967e825056a4635.txt │ │ ├── test_0029_standalone_@_symbol_followed_by_whitesapce_in_div_tag_651fc560524277c36845d3e3e3cb01ae.txt │ │ ├── test_0030_standalone_@_symbol_followed_by_whitesapce_and_identifier_in_div_tag_1f97e198235e78d1a25174baf6e1973d.txt │ │ ├── test_0031_standalone_@_symbol_in_div_tag_followed_by_attribute_b71e23ffa38851540e408d9383abd12c.txt │ │ ├── test_0032_atttribute_with_@_prefix_and_now_value_6583f84753df8346dcd916f07301fc6b.txt │ │ ├── test_0033_attribute_with_backtick_quotes_(invalid)_8718691f5760feaae83ee2b77c476b95.txt │ │ ├── test_0034_attribute_with_backtick_quotes_and_whitespace_(invalid)_237e4c11b70033b3f49f29b7e3c9cb70.txt │ │ ├── test_0035_multiple_attributes_with_mixed_quotes_including_backticks_(invalid)_5eb53ae0e5d34773abdd248e275f8c51.txt │ │ ├── test_0036_self-closing_tag_with_backtick_attribute_(invalid)_0545b512ba1dfae2fd7c90ec643b4cca.txt │ │ ├── test_0037_attribute_with_backtick_containing_HTML_(invalid)_542130e358dadabeb4a1629bc9bcf4f3.txt │ │ ├── test_0038_Vue-style_directive_attribute_with_value_48a4fb492a8544d35ffb4d589f5a602c.txt │ │ ├── test_0039_Vue-style_directive_attributes_multiple_4f1d1b98f3b9c869967323f090d9afee.txt │ │ ├── test_0040_Vue-style_directive_attribute_without_value_14a36e2ed468092336d9f6080e939190.txt │ │ ├── test_0041_Mixed_Vue_directives_and_regular_attributes_355d0da3aae174783058e2ccec41ac05.txt │ │ ├── test_0042_Standalone_colon_with_space_is_invalid_c037b25064b31d22c6c195361999c5b8.txt │ │ ├── test_0043_Colon_immediately_followed_by_attribute_name_is_valid_e30b590c384b162d5019345f8083bfdb.txt │ │ ├── test_0044_Double_colon_is_invalid_f2b2354b82896dec0458b506ae56eb58.txt │ │ ├── test_0045_Vue_directive_with_namespace-like_syntax_e3d2d0afe1a0d7a4f71d0831ed0a9306.txt │ │ └── test_0046_Empty_attribute_value_with_closing_bracket_immediatly_following_it_56df6b7e184a50db1eac62508206a332.txt │ │ ├── boolean_attributes_test │ │ ├── test_0001_boolean_attribute_a42f2f02865b5934ab801e14209484bb.txt │ │ ├── test_0002_boolean_attribute_without_whitespace_eb449fdccded7b58eaadee0d6a709b70.txt │ │ ├── test_0003_boolean_attribute_without_whitespace_and_without_self-closing_tag_10073da0ec7061aa368fad226ff8dd33.txt │ │ ├── test_0004_boolean_attribute_followed_by_regular_attribute_2f302cf3eda407efbc8e40d14cd26656.txt │ │ ├── test_0005_boolean_attribute_after_regular_attribute_ac9036a484da8a6accae805201ef2dca.txt │ │ ├── test_0006_boolean_attribute_surrounded_by_regular_attributes_d3642056798166a35948c97b38bde43d.txt │ │ ├── test_0007_boolean_attribute_on_void_element_followed_by_newline_and_ERB_tag_with_track_whitespace_865f46b916df0289c3b60c880f529e8b-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0008_boolean_attribute_on_void_element_followed_by_ERB_tag_with_track_whitespace_7a98c943c925e6943aaa2bec978901a9-b26dbda6d8a652930695c93bd07179f4.txt │ │ └── test_0009_boolean_attribute_on_void_element_followed_by_ERB_tag_with_track_whitespace_1d3295149578acc142f855bb3b75b3ec-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── case_match_test │ │ ├── test_0001_case_in_69cf275355e6a10adc88e47d5090dd3a.txt │ │ ├── test_0002_case_in_with_if_inside_else_branch_144505ff9e38742a1a905efebc9a92cc.txt │ │ ├── test_0003_case_in_with_nested_case_in_inside_else_branch_155bfe881962a6030a91815dc33f9694.txt │ │ └── test_0004_case_in_with_multiple_nested_structures_in_else_branch_f60c2a24b2c2b42b801e6dd736940e3e.txt │ │ ├── case_when_test │ │ ├── test_0001_case_when_71d06502a93ad345bf738ba8ace8bf9f.txt │ │ ├── test_0002_case_when_with_if_inside_else_branch_(issue_860)_34a45948c31ab5973e0d05f3f4c7a9a2.txt │ │ ├── test_0003_case_when_with_if_elsif_else_inside_else_branch_ad48672c28b85022b600280a2f864a4e.txt │ │ ├── test_0004_case_when_with_unless_inside_else_branch_e23ae6861d44f2fc4549bf6281bc50df.txt │ │ ├── test_0005_case_when_with_nested_case_inside_else_branch_d66fdcc5657378cb14c128615c5a974b.txt │ │ ├── test_0006_case_when_with_multiple_nested_control_structures_in_else_branch_0d1686b27fec04730415e5ebee1d78d1.txt │ │ └── test_0007_case_when_with_begin_rescue_inside_else_branch_fde835439a16c76c30c27db0d1ef4f8a.txt │ │ ├── cdata_test │ │ ├── test_0001_basic_CDATA_section_c25ae454841778f175fd05bfcdda8b42.txt │ │ ├── test_0002_CDATA_with_text_content_7f9125f551bc58d3dbfe940ac096a78c.txt │ │ ├── test_0003_CDATA_with_XML-like_content_4a372fc4422be677973351bc351746ff.txt │ │ ├── test_0004_CDATA_with_special_characters_8c3ab9c7c35d3cc83316278049f22d3e.txt │ │ ├── test_0005_CDATA_with_escaped_characters_that_are_not_interpreted_745d1382f26e84d827b38cdf475d33e3.txt │ │ ├── test_0006_CDATA_with_newlines_fde68cdcd0102d806db2e3c69fa5e5cf.txt │ │ ├── test_0007_CDATA_in_XML_document_a80d5f083429384bc29f1c2a6bc80bf1.txt │ │ ├── test_0008_CDATA_with_ERB_content_9884f8776402de7d7296618307ccd714.txt │ │ ├── test_0009_CDATA_with_complex_ERB_2c2d90415d057b7acbff8136b9e5e8bf.txt │ │ ├── test_0010_Multiple_CDATA_sections_0550f12e814e4f157f6d0c72afe7b323.txt │ │ ├── test_0011_CDATA_with_]]_inside_(workaround_pattern)_4f9dc3882e1e756e56efaf4dc1561c12.txt │ │ ├── test_0012_CDATA_in_HTML_comment_context_1c8a6d998d9daa0bbe631c88cd6098e0.txt │ │ ├── test_0013_CDATA_with_various_brackets_8684c648c8855fc8d36e691241c500b6.txt │ │ ├── test_0014_Empty_CDATA_with_spaces_d7f7e4ef752a4dac58a4b97b06b627c1.txt │ │ ├── test_0015_CDATA_followed_by_HTML_37ac0c068811ca1c4a498dbf50d1fe06.txt │ │ ├── test_0016_CDATA_in_complex_document_structure_61eadd3877dc3642e8e24238fddc9b34.txt │ │ ├── test_0017_CDATA_with_ERB_loop_e0b9e9e369a74b4d48962fb7540684ff.txt │ │ └── test_0018_nested_CDATA_workaround_2ec87bf5c1413bcb7f9a5f7a2569a50c.txt │ │ ├── comments_test │ │ ├── test_0001_HTML_comment_with_padding_whitespace_9cb56068ef4732067422a670d943c08e.txt │ │ ├── test_0002_HTML_comment_with_no_whitespace_4644299a23e9ee76cdc970a26168b559.txt │ │ ├── test_0003_HTML_comment_followed_by_html_tag_573b93df7df7d12ef12722008abfc7ee.txt │ │ ├── test_0004_HTML_comment_followed_by_html_tag_with_nested_comment_f4042eb3e6a5d62fcc86e4162fe10cf2.txt │ │ └── test_0005_HTML_comment_with_if_04813d5ad89aa775065eb87d881ab931.txt │ │ ├── doctype_test │ │ ├── test_0001_doctype_d50c7b32f19e4848938905f3dc675f44.txt │ │ ├── test_0002_doctype_with_space_6bc67d7bee174842987d55662f6e3d1c.txt │ │ ├── test_0003_doctype_with_html_fe364450e1391215f596d043488f989f.txt │ │ ├── test_0004_two_doctypes_9b920c07c2b2e29b9dcf6cd03f842e08.txt │ │ ├── test_0005_html4_doctype_737d71ee3fb171f813731282cd802c3e.txt │ │ ├── test_0006_doctype_case_insensitivity_03935adb0833c1f800be8baa0a8aca3a.txt │ │ ├── test_0006_doctype_case_insensitivity_2f56dc84fb5f8e284f42eae7d1f1c597.txt │ │ ├── test_0006_doctype_case_insensitivity_3e5902254c42ff2df6f6321086040dbe.txt │ │ ├── test_0006_doctype_case_insensitivity_8bc9e797250fadb2f5af79f38cf7d74e.txt │ │ └── test_0006_doctype_case_insensitivity_d1d92cd6681949b6e66a00ae3723d8db.txt │ │ ├── erb_comments_test │ │ ├── test_0001_simple_ERB_comment_should_not_crash_WASM_80add5eb3bf3a17e7876c782149006c7.txt │ │ ├── test_0002_ERB_comment_with_newlines_should_not_crash_WASM_c48afed3f492d894f773632b9330711d.txt │ │ ├── test_0003_ERB_comment_starting_with_newline_should_not_crash_WASM_3f395dc69d5df0ce0402883cd47293b6.txt │ │ ├── test_0004_long_single-line_ERB_comment_should_not_crash_WASM_4be17b3766f5510167adb479b31b2b4f.txt │ │ ├── test_0005_reproduces_exact_WASM_failing_pattern_ea1837358e5d92dc27f3ebc732e29b2e.txt │ │ ├── test_0006_reproduces_second_WASM_failing_pattern_80_chars_3bb2ce1e24211062fc3fa825c1767349.txt │ │ ├── test_0007_reproduces_second_WASM_failing_pattern_100_chars_bda3d6ebbb2e5932b920185cd68950ef.txt │ │ ├── test_0008_multiline_ERB_comment_like_WASM_failing_case_cdbad97ea27261ab11f913487868cd74.txt │ │ ├── test_0009_handles_moderately_long_ERB_comments_(500_chars)_4fe8fcfa6bcae0265af504079dfc7750.txt │ │ ├── test_0010_handles_long_ERB_comments_(1000_chars)_e81e7aeeac8d7497b1f6a7aaab46fb8e.txt │ │ ├── test_0011_handles_very_long_ERB_comments_(5000_chars)_b5067ef843b31e2600bca3666b1373be.txt │ │ ├── test_0012_handles_extremely_long_ERB_comments_(10000_chars)_566c579c86530344638582e132b3ad3a.txt │ │ ├── test_0013_handles_long_multiline_ERB_comments_fd264dd0963e8184e401ecf94660e02c.txt │ │ ├── test_0014_handles_nested_HTML_with_long_ERB_comments_b27affac9517c40f3da7970c4b2897e5.txt │ │ ├── test_0015_handles_multiple_long_ERB_comments_1791ff87a3ae9107f3e81eb8a9468480.txt │ │ ├── test_0016_handles_ERB_comments_with_special_characters_c9c7a6ac6def4398ca4d3861a8e858f0.txt │ │ ├── test_0017_handles_ERB_comments_with_Unicode_characters_b84837a38576d7939090ae65c4a7a54c.txt │ │ ├── test_0018_parses_AST_correctly_for_long_ERB_comments_2a331384f53de2cf7e9d3032e996effc.txt │ │ ├── test_0019_handles_very_large_comment_length_(50000_chars)_791e9dbb42459f726dabd970e696e466.txt │ │ ├── test_0020_handles_extremely_large_comment_length_(100_000_chars)_cd586a88c298c2343c3ca3dc7ba80c74.txt │ │ ├── test_0021_handles_deeply_nested_ERB_comments_without_stack_overflow_e72cfd71cc26ff1d873beef96c85f484.txt │ │ └── test_0022_handles_multiline_ERB_comments_similar_to_WASM_failing_case_4381c3a904ccd25a1b127bf8791ac8cf.txt │ │ ├── erb_context_mismatch_test │ │ ├── test_0001_out_of_order_closing_tags_across_ERB_blocks_186de8708f7329b37a560b950c6814bc.txt │ │ ├── test_0002_conditionally_opening_tag_then_closing_unconditionally_6d7fbfb1a933a2f8aba9be55b52c0012.txt │ │ ├── test_0003_opening_and_closing_tag_in_different_if_blocks_a6d5461489ddfa85081a5449445cef14.txt │ │ ├── test_0004_tag_opened_in_elsif_closed_outside_conditional_ff6b90e6b68b015927ad4554dc97fd8e.txt │ │ ├── test_0005_element_opened_in_block_must_be_closed_within_block_264d7b62538d8f8e318bce1a37dee984.txt │ │ ├── test_0006_opening_in_one_context_and_closing_in_another_context_23760079615eb0a149447d79f51005bb.txt │ │ ├── test_0007_stray_closing_tag_without_opening_7435ca180811536625a8df051573f55d.txt │ │ └── test_0008_unclosed_tag_without_closing_1ccadf7f0ed2141a178d6f7c5736dc6c.txt │ │ ├── erb_test │ │ ├── test_0001_interpolate_on_top_level_486c2e36d7c731369b8bc10cc66d671e.txt │ │ ├── test_0002_interpolate_in_element_body_439bfe606142d918aa22c2f4185d92dc.txt │ │ ├── test_0003_interpolate_in_element_body_followed_by_text_content_7508a1f47d3869a85e963b96503528a8.txt │ │ ├── test_0004_interpolate_in_element_body_after_text_content_0a6d20b02f933f919dd2a5fc4993ff3a.txt │ │ ├── test_0005_interpolate_in_element_body_surrounded_by_text_content_b2e0f59912288eae0790d132dc089534.txt │ │ ├── test_0006_interpolate_inside_tag_eab2e64d663c26be3ae86f89610a672c.txt │ │ ├── test_0007_interpolate_inside_attribute_value_2e13bc9eabd550dcbe23f58ac7a01f99.txt │ │ ├── test_0008_interpolate_after_attribute_name_871cced3d8488a845c21475c5f4a6bf1.txt │ │ ├── test_0009_attribute_name_from_erb_6deab49e2013213118a8f42af42b09cc.txt │ │ ├── test_0010_attribute_name_with_erb_interpolation_5e8726c0d7af3e9fee35d7586439494b.txt │ │ ├── test_0011_attribute_name_with_erb_interpolation_after_577fbfc1e05fc1491bca41219ad1739b.txt │ │ ├── test_0012_attribute_name_with_erb_interpolation_before_3ffeddb4062aa4c9f5beee20a3dc50c8.txt │ │ ├── test_0013_interpolate_inside_attribute_value_with_static_content_before_47cae9bfcf12e434a763c78aad910e38.txt │ │ ├── test_0014_interpolate_inside_attribute_value_with_static_content_after_c840a0e926fd1dd829420021b6f5da39.txt │ │ ├── test_0015_interpolate_inside_attribute_value_with_static_content_around_2d529a29e9c00085642b4f843fd79c5c.txt │ │ ├── test_0016_interpolate_inside_comment_bfdabf4936ec72a10ffc2e12adfb446a.txt │ │ ├── test_0017_conditional_tags_53b63ea8caff68a33c4251d086ba42b9.txt │ │ ├── test_0018_conditional_attributes_a13d36a12e1c3d8ff1d625b0a32793fa.txt │ │ ├── test_0019_comment_e95f45b0f3e230c24e11f4b083de23f5.txt │ │ ├── test_0020_multi-line_comment_14c1f84ba7b4627b3e0dc3ba74179bb8.txt │ │ ├── test_0021_multi-line_comment_with_Ruby_keyword_dd7885019a51280cc6cfef734bf1161a.txt │ │ ├── test_0022_erb_output_wrapped_in_double_quotes_81968725d5b5d72882f6ae09a80071b7.txt │ │ ├── test_0023_erb_output_wrapped_in_single_quotes_aa9928aed6dc45d5fd983a3030e6c4ad.txt │ │ ├── test_0024_erb_output_wrapped_in_double_quotes_inside_if_8194229e22f698062f184c58c874d6d1.txt │ │ ├── test_0025_erb_output_wrapped_in_single_quotes_inside_if_5332acffecc53cb1b561a5e02e44e8fa.txt │ │ ├── test_0026_multi-line_erb_content_3b1dbeebb7d6cc88ee758abcd174c7c4.txt │ │ ├── test_0027_multi-line_erb_content_with_complex_ruby_71e2451824a84db91b7e1cf752872168.txt │ │ ├── test_0028_multi-line_erb_silent_tag_fae7aab59f46d7906cdeccfc1fa2cb3e.txt │ │ ├── test_0029_multi-line_erb_comment_e8fcfae8cbd25e4139394b5c1ffc1935.txt │ │ ├── test_0030_erb_comment_with_equals_sign_312beb21c876bb87e5bbb8c9288a5bd1.txt │ │ ├── test_0031_erb_comment_with_equals_sign_without_spaces_be2c65ad965090f17c18896f988e85a9.txt │ │ ├── test_0032_multi-line_erb_comment_with_equals_sign_bb3c3c1637a687e1d87a90a893fa09fd.txt │ │ ├── test_0033_erb_output_with_=%gt_close_tag_e5e99c2c84b3c9a106b8cf08b02ce9d6.txt │ │ ├── test_0034_erb_if_with_=%gt_close_tag_040322f44f30d4766dc7bfe98114d53f.txt │ │ ├── test_0035_erb_if-elsif-else_with_=%gt_close_tag_276e28a241d24b1f8016400a1c84fef1.txt │ │ ├── test_0036_unterminated_erb_missing_closing_%gt_1e22264334529582735f76812bfeec73.txt │ │ ├── test_0037_unterminated_erb_missing_closing_gt_2707e9fbfa1307c14d5d6deaf40bd0af.txt │ │ ├── test_0038_erb_tag_followed_by_literal_closing_delimiter_15e84c87986bd8a2aba06dcee2be46b8.txt │ │ ├── test_0039_incomplete_erb_tag_d7de40920545c14e5afcda3a2e9f0eb9.txt │ │ ├── test_0040_if_without_condition_ee03fbe2e88a2b56ca5c044200fe19bf.txt │ │ ├── test_0041_inline_ruby_comment_on_same_line_ac08c4aa2dc65416c853e466ace0ef3e.txt │ │ ├── test_0042_inline_ruby_comment_with_newline_8dd8241832b9d58cebd54c96f2194351.txt │ │ ├── test_0043_inline_ruby_comment_between_code_5ea7fdc5882d9a26c3fc4c6166ce834c.txt │ │ ├── test_0044_inline_ruby_comment_before_and_between_code_ea519c99685fc73f63e18a1934a2d2d6.txt │ │ ├── test_0045_inline_ruby_comment_with_spaces_dafcc25fbfcf9f288255b916fabd9e02.txt │ │ ├── test_0046_inline_ruby_comment_multiline_9fe85e396a5cf0edf3b455ed6637bd91.txt │ │ ├── test_0047_if_then_else_with_trimming_and_nested_output_tags_(real-world_RDoc_example)_6c3b80e7864615f8a75a7ec3f037b94f.txt │ │ ├── test_0048_if_elsif_with_block_syntax_in_condition_ba20822ea8182f5e4fb7bf8515cfa1a3.txt │ │ ├── test_0049_if_elsif_with_symbol_to_proc_in_condition_6e7724ebffff1929458931e07e94b5fc.txt │ │ ├── test_0050_if_elsif_else_with_multiple_block_conditions_and_output_(real-world_form_errors)_10f348784fe47c985ab245e92368d3b8.txt │ │ ├── test_0051_if_elsif_else_with_assignment_and_block_in_condition_039c95173fbba491fbdcde41740cd7eb.txt │ │ ├── test_0052_hash_with_trailing_key_across_tags_5c81bac82089f414dd42d8becdaa4ef3.txt │ │ ├── test_0053_single_hash_with_trailing_key_in_div_6b3ce8ff3d1ac8f4a5cf2a377ddcbae4.txt │ │ ├── test_0054_multiple_hash_with_trailing_key_in_div_566fdf7ce4fea5ab67f856680ed3dbba.txt │ │ ├── test_0055_many_hash_with_trailing_key_in_div_bc4767160a429bf77c068d0263c18645.txt │ │ ├── test_0056_hash_shorthand_in_parentheses_across_tags_8cafde6814ee57b2ee27e3392f23c2ae.txt │ │ └── test_0057_complex_form_with_trailing_hash_keys_5aa8c6b298cf6e7261db5fe1341a4eb1.txt │ │ ├── newlines_test │ │ ├── test_0001_line_feed_68b329da9893e34099c7d8ad5cb9c940.txt │ │ ├── test_0002_carriage_return_dcb9be2f604e5df91deb9659bed4748d.txt │ │ ├── test_0003_carriage_return_and_line_feed_81051bcc2cf1bedf378224b0a93e2877.txt │ │ ├── test_0004_two_newlines_e1c06d85ae7b8b032bef47e42e4c08f9.txt │ │ ├── test_0005_newline_after_space_d784fa8b6d98d27699781bd9a7cf19f0.txt │ │ ├── test_0006_text_content_before_and_after_68423faee48fc1bab08291a512861446.txt │ │ ├── test_0007_newline_between_text_content_f41121a903eafadf258962abc57c8644.txt │ │ ├── test_0008_newline_between_html_elements_832f3c170675c57ee6c4b54c3dc60462.txt │ │ ├── test_0009_newlines_between_html_elements_abaab2c016a126725eb69381cc13978a.txt │ │ ├── test_0010_newline_inside_html_elements_5b50a444e2f5be5630be45cec35181eb.txt │ │ └── test_0011_newlines_inside_open_tags_baeb3672776170cce3b96907cd7c9bb7.txt │ │ ├── parser_test │ │ ├── test_0001_nil_560d7cfe153ff63e50fbb9a506bd32ba.txt │ │ └── test_0002_empty_file_d41d8cd98f00b204e9800998ecf8427e.txt │ │ ├── script_style_test │ │ ├── test_0001_script_tag_with_less_than_comparison_986012b1810325f86cbfc83a34165cf6.txt │ │ ├── test_0002_script_tag_with_greater_than_comparison_c91f3c6a114f0255015282bad4fd59b6.txt │ │ ├── test_0003_script_tag_with_HTML_in_string_literal_9287823706422dd5f10c14109bd0bc25.txt │ │ ├── test_0004_script_tag_with_HTML_in_comment_22b0049eb8bc227ece2a9f520a4e4ec3.txt │ │ ├── test_0005_script_tag_with_multiline_comment_containing_HTML_5c0e9eb44b2e454a0cf0f8d3eb15000a.txt │ │ ├── test_0006_script_tag_with_ERB-like_content_in_string_b1ffbf793264421bcbb1b9d6087f10b2.txt │ │ ├── test_0007_script_tag_with_incomplete_ERB-like_content_c3dcacbbac9dfaafc8298a1e8b6df38b.txt │ │ ├── test_0008_script_tag_with_closing_script_tag_in_string_4d120bcac86583501954aa7c7d1b54f8.txt │ │ ├── test_0009_script_tag_with_escaped_closing_tag_in_string_ccf8337d19aea0367aac410fe8cb6b02.txt │ │ ├── test_0010_script_tag_with_actual_ERB_interpolation_d091c43ef237db588be6adf2a4f24b61.txt │ │ ├── test_0011_script_tag_with_multiple_ERB_interpolations_1c032866b0f442a891b17fca46aefe9e.txt │ │ ├── test_0012_script_tag_with_complex_JavaScript_including_comparisons_and_HTML_strings_b1151f65233be7cb601bd69e7e414a79.txt │ │ ├── test_0013_style_tag_with_child_selector_3675980b06d0732a42d3e3d4da50428f.txt │ │ ├── test_0014_style_tag_with_attribute_selector_containing_HTML_6024cebc93b5103ba789a52ba13c2f01.txt │ │ ├── test_0015_style_tag_with_content_property_containing_HTML_aa75bbfce10aaa99576a8041bc62e42a.txt │ │ ├── test_0016_style_tag_with_ERB_interpolation_e7608ec944a2eed2de2082144b6ccbff.txt │ │ ├── test_0017_style_tag_with_complex_CSS_including_HTML-like_content_2029b62a2d67c13cdb6a6109966d1952.txt │ │ ├── test_0018_nested_script_tags_(inner_in_string)_52a2de99ba9b0a7cc84920e0376f62d5.txt │ │ ├── test_0019_script_tag_with_regex_containing_angle_brackets_76ffe5ab074bc06a6215d144ba302d68.txt │ │ ├── test_0020_style_tag_with_media_query_and_nested_selectors_85e3c3a8a155fa6bba717f6f71bd20d9.txt │ │ ├── test_0021_script_tag_with_template_literals_containing_HTML_c96ddb0da7bec2ac0fb9f59040acf0b9.txt │ │ ├── test_0022_script_tag_with_JSX-like_syntax_2dbf7fd3cfd4a7582954347fc9098b10.txt │ │ ├── test_0023_empty_script_and_style_tags_90e333bda009d6740ab8a936de1f6121.txt │ │ ├── test_0024_script_tag_followed_by_style_tag_with_complex_content_d81018eb4e7c7c6fc05c8b35a8cfd494.txt │ │ ├── test_0025_script_tag_with_minified_JavaScript_containing_many_angle_brackets_d4a0cc7e0c3d0525fa86d830732dd9c6.txt │ │ ├── test_0026_script_tag_with_JSON_containing_HTML_2696010b25079cee665dad541e6a3c9f.txt │ │ ├── test_0027_style_tag_with_CSS_custom_properties_and_calc_5b9a8e819022c7cd704610880a30afd3.txt │ │ ├── test_0028_script_tag_with_incomplete_ERB_tag_at_end_1ccec9a4a170634bddb31f9c22d0fbc5.txt │ │ ├── test_0029_script_tag_with_only_ERB-like_characters_adba6c52b9f376024caae0fb1a7c3804.txt │ │ ├── test_0030_real_world_example_-_Google_Analytics_bbdcf8626f2d4ba86e193cf8a0898cd4.txt │ │ ├── test_0031_real_world_example_-_Klaviyo_script_from_issue_271_a44d9ed4b4dc95089740ac1df66eb9af.txt │ │ ├── test_0032_script_tag_with_single_quote_strings_containing_closing_tags_ffab60cb04f4e44e1ee7ed24d4ac9563.txt │ │ ├── test_0033_script_tag_with_double_quote_strings_containing_closing_tags_34e16086c329d845a1defbf80502a3a7.txt │ │ ├── test_0034_script_tag_with_template_literals_containing_closing_tags_6bcbe820b5902dfe97a869593621bebf.txt │ │ ├── test_0035_script_tag_with_escaped_quotes_in_strings_3217a5ed01ac8ce6c44f9e106f9b4017.txt │ │ ├── test_0036_style_tag_with_quotes_containing_HTML-like_content_e270b9ac006614d91dd6f0ac8fa94fa0.txt │ │ ├── test_0037_script_tag_with_mixed_quote_types_and_closing_tags_13c557e6f9f1cb452509b1e1750ede1d.txt │ │ ├── test_0038_script_tag_with_ERB_inside_string_literals_(ERB_always_processed)_b67f69c998376fb2dc4d376e22d717a6.txt │ │ ├── test_0039_script_tag_with_ERB_outside_vs_inside_strings_e40c255ffc82b3e1425a4dc9931950fb.txt │ │ ├── test_0040_script_tag_with_ERB_in_double_quotes_2c6059f094bb5e1ee9bda67bc46c8733.txt │ │ ├── test_0041_script_tag_with_ERB_in_single_quotes_d59cd4bf09cc0b041c800441470bd40b.txt │ │ ├── test_0042_script_tag_with_ERB_in_template_literals_1bf37f10e055cd40a4029b93ebf85e4c.txt │ │ ├── test_0043_script_tag_with_multiple_ERB_tags_in_one_string_c10abf5afe91f2c24667c89a1a2da782.txt │ │ ├── test_0044_script_tag_with_ERB_in_different_quote_types_same_line_9ee69c6b662e77ee693b096f74ddc97b.txt │ │ ├── test_0045_style_tag_with_ERB_in_CSS_strings_a74d4a4f4488689aceb2070a2901e6d2.txt │ │ ├── test_0046_script_tag_with_closing_tag_in_single-line_comment_6cfabe5d024715f9a1a359ead2336bde.txt │ │ ├── test_0047_script_tag_with_closing_tag_in_multi-line_comment_f31fa6a4dd0f181740b8650c7c0eadba.txt │ │ ├── test_0048_script_tag_with_closing_tag_in_complex_multi-line_comment_740adce7cfe9c265534de5ed0019592a.txt │ │ ├── test_0049_script_tag_with_mixed_comments_and_strings_dd4ddc45ba4f6eac82de8f8d0c4f8430.txt │ │ ├── test_0050_script_tag_with_nested_comment_markers_a4df6fe19ac8d1b0a34db42d412a673e.txt │ │ ├── test_0051_script_tag_with_ERB_in_comments_231feb7c74575ff4cfc97fdfbdb892f6.txt │ │ ├── test_0052_script_tag_with_complex_multi-line_comment_containing_closing_tag_baba657d4b37767ec99d327b6dec635a.txt │ │ ├── test_0053_script_tag_with_template_literal_containing_closing_tag_(multiline)_372da24666282e3c531de3c5a8de44ca.txt │ │ ├── test_0054_script_tag_with_closing_tag_on_comment_line_b0c5fd685fa4dd26975b5ddf24ca007d.txt │ │ └── test_0055_script_tag_with_closing_div_tag_in_string_01f7309c0ef4f1977a6265ed3ae833e1.txt │ │ ├── svg_test │ │ ├── test_0001_svg_7b56e1eab00ec8000da9331a4888cb35.txt │ │ ├── test_0002_svg_with_void_path_element_cf28475021c890620282e29c683e5d2c.txt │ │ ├── test_0003_svg_with_non-void_path_element_f3bf2c27b88d669126ee1c419f491e08.txt │ │ ├── test_0004_svg_with_nested_void_path_element_da5904bd14662799ee327966686eafdf.txt │ │ ├── test_0005_HTML_void_can_be_non-void_within_svg_1072d4c2f81d845d5c1f0fd86e40e23b.txt │ │ └── test_0006_svg_unclosed_element_reports_an_error_e086a53256a215470da47ef3ee745599.txt │ │ ├── tags_test │ │ ├── test_0001_empty_tag_dfc9870d38d11e806e61bd5a448afc82.txt │ │ ├── test_0002_empty_tag_with_whitespace_1e2608bc54aecef5ea56dede40640b51.txt │ │ ├── test_0003_empty_tag_with_newline_d07900ededde58845d8cc2ee728ace9f.txt │ │ ├── test_0004_void_element_shouldn't_expect_a_closing_tag_8b0f0ea73162b7552dda3c149b6c045d.txt │ │ ├── test_0005_void_element_with_open_and_close_tag_199572db6113ce1e4ad9d3fca66efc11.txt │ │ ├── test_0006_br_self-closing_tag_c5a0e9b5c299ec39a2fb26fa8b1c0dcf.txt │ │ ├── test_0007_closing_tag_without_an_opening_tag_for_a_void_element_fa5881a4aafaf2629472fd2300394826.txt │ │ ├── test_0008_closing_tag_without_an_opening_tag_for_a_non-void_element_0a3a0b592b9c285e050805307cee87c2.txt │ │ ├── test_0009_multiple_closing_tags_without_opening_tags_a371ac3aeb62b4174f84c9a365449896.txt │ │ ├── test_0010_basic_tag_c83301425b2ad1d496473a5ff3d9ecca.txt │ │ ├── test_0011_mismatched_closing_tag_7165dc23abec2b6bf23cbd14f51aa23b.txt │ │ ├── test_0012_nested_tags_f5b31fa25627c8dfbb3b8527c3cc2b02.txt │ │ ├── test_0013_basic_void_tag_0a22925ab034fd09eb49cc4224720dcb.txt │ │ ├── test_0014_basic_void_tag_without_whitespace_917eccff1c0d00dbdc9bbe20d07c939c.txt │ │ ├── test_0015_namespaced_tag_45f3ec5566563217212e18f9f9983f0a.txt │ │ ├── test_0016_colon_inside_html_tag_b7b46dcd10fad620a00a95b27daab204.txt │ │ ├── test_0017_link_tag_aab5814bdfc527d6d55d8957f089b911.txt │ │ ├── test_0018_element_has_a_self-closing_tag_for_a_void_element_at_the_position_where_closing_tag_of_parent_is_expected_6e2c034f618cde6b7e1ce8830aebdbcf.txt │ │ ├── test_0019_multiple_void_elements_shouldn't_expect_a_closing_tag_367b18f93b441feceb00bf866bb7a9a7.txt │ │ ├── test_0020_too_many_closing_tags_b3702347c5b2426cdbc11f7c38dd944b.txt │ │ ├── test_0021_missing_closing_tag_55697eb571d997f32e6851b1abb5aecb.txt │ │ ├── test_0022_missing_multiple_closing_tags_6ad485b119da439f33eef2025393e3ea.txt │ │ ├── test_0023_should_recover_from_out_of_order_closing_tags_f273b8d48121740a82fdcc71150f3710.txt │ │ ├── test_0024_should_recover_from_multiple_out_of_order_closing_tags_d55597438f3e5bee8cd21841b672b31a.txt │ │ ├── test_0025_should_recover_from_void_elements_used_as_closing_tag_8899d88bdd54fed8935467e2c9284fd1.txt │ │ ├── test_0026_should_recover_from_multiple_void_elements_used_as_closing_tag_7381d2541dc0e90b92193628ef31026f.txt │ │ ├── test_0027_stray_closing_tag_with_whitespace_0ee4b96cac701f87a8b6cb0cf5ad48bc.txt │ │ ├── test_0028_script_tag_with_nested_div_40b4741e518839bafbaaa187c5a57d50.txt │ │ ├── test_0029_script_tag_with_JavaScript_greater_than_comparison_e217953abdc486dffee56f0400c66822.txt │ │ ├── test_0030_script_tag_with_JavaScript_less_than_comparison_e15b637d8eae8240a61a21ab4fd07798.txt │ │ ├── test_0031_script_tag_with_HTML-like_string_literals_9287823706422dd5f10c14109bd0bc25.txt │ │ ├── test_0032_script_tag_with_nested_script_tags_in_string_cf1f4c343891b3817c5470dca59c8a20.txt │ │ ├── test_0033_script_tag_with_mixed_HTML_tags_and_JavaScript_d4ca03bf5174f86b127d57032ebb1215.txt │ │ ├── test_0034_style_tag_with_nested_div_and_CSS_selectors_78cfabdfd368bd486b01a414bd09cead.txt │ │ ├── test_0035_style_tag_with_CSS_greater_than_selector_aeb1512ea553ab369a3129d25e6677b6.txt │ │ ├── test_0036_style_tag_with_CSS_attribute_selectors_containing_HTML-like_content_6024cebc93b5103ba789a52ba13c2f01.txt │ │ ├── test_0037_style_tag_with_CSS_content_property_containing_HTML_818730ef059d97de51c35b83d28174da.txt │ │ ├── test_0038_style_tag_with_media_queries_and_nested_rules_d3ae213f84137865eff551bb3d76bd9d.txt │ │ ├── test_0039_script_tag_with_ERB_interpolation_7d12ef54ba3782ad4d601e7610c7946a.txt │ │ ├── test_0040_style_tag_with_ERB_interpolation_bba0dcc89d67e474bb211be3f0d2409c.txt │ │ ├── test_0041_empty_script_tag_977fd571d75951006fee6224e29eecc7.txt │ │ ├── test_0042_empty_style_tag_775eb6185ea4b75bb77b29c265ddeccf.txt │ │ ├── test_0043_self-closing_script_tag_fc501b4a6704f6876be9da0803cd7f4f.txt │ │ ├── test_0044_self-closing_style_tag_85b429eb81f7b5bdac22f4497078d9bf.txt │ │ ├── test_0045_script_tag_with_complex_JavaScript_containing_multiple_HTML-like_patterns_99caff3984d5bf1c417c820b3ef9f8c8.txt │ │ ├── test_0046_style_tag_with_complex_CSS_containing_HTML-like_selectors_f0f911ab45bf978eb853991166568fb7.txt │ │ ├── test_0047_closing_tag_with_newline_before_gt_8a20c01f5d388c1cbfea61d094bf1648.txt │ │ ├── test_0048_closing_tag_with_whitespace_and_newline_before_gt_fe0435220c3967d64202a311ec329602.txt │ │ ├── test_0049_multiple_closing_tags_with_newlines_before_gt_58a6ff1971f06fe0dfd621f0616df8b0.txt │ │ ├── test_0050_nested_tags_with_newlines_in_closing_tags_from_issue_312_95b19d12dcf4c7771dff868bd1e7fdee.txt │ │ └── test_0051_self-closing_tag_with_closing_tag_having_newline_before_gt_da196355f4b5840bf971f01bac465830.txt │ │ ├── text_content_test │ │ ├── test_0001_text_content_b10a8db164e0754105b7a99be72e3fe5.txt │ │ ├── test_0002_text_content_inside_tag_f797031f3210ce6494466d619610926c.txt │ │ ├── test_0003_text_content_with_tag_after_72f22f51d0be53cd7b1017d11f441721.txt │ │ ├── test_0004_text_content_with_tag_before_75206a4d9262b9f527267fab91d7fac4.txt │ │ ├── test_0005_text_content_with_tag_around_36c530447a30a5bccff1c61bc5e4465d.txt │ │ ├── test_0006_text_content_that_exceeds_initial_hb_buffer_T_size_(ca._4K)_998d9cbd9b8794fa030c888bfa09cad4.txt │ │ ├── test_0007_text_content_that_exceeds_initial_hb_buffer_T_size_(ca._8K)_45e3ecb8edc7dbec7d68b72b5d083439.txt │ │ ├── test_0008_exclamation_as_only_content_9c8b60515462c86eadd2d66da6a0ce2b.txt │ │ ├── test_0009_comma_as_only_content_674270ea117383eb846ea45b78e9e1ba.txt │ │ ├── test_0010_dollar_sign_as_only_content_78055134c44e1a49f3c26e4b6374cfbc.txt │ │ ├── test_0011_dash_as_only_content_f53ad262a8d52fd1cab61f9120cf892a.txt │ │ ├── test_0012_period_as_only_content_40a2513c491b7ca4305c3896365639cc.txt │ │ ├── test_0013_percent_as_only_content_0c16eab1f0efae1c3decd29d686ebf92.txt │ │ ├── test_0014_slash_as_only_content_a92547d4939f0d1193fc1687ead68a69.txt │ │ ├── test_0015_underscore_as_only_content_58ddd13aa94e0673c3d5a0b0117eac43.txt │ │ ├── test_0016_colon_as_only_content_e4a58fb0e007fd23a3ecb20c2d56ac80.txt │ │ ├── test_0017_semicolon_as_only_content_6dead327b63bdf32ce5db6c692032e76.txt │ │ ├── test_0018_ampersand_as_only_content_9334b21b7f71cf0efa54e9bf47bc375d.txt │ │ ├── test_0019_equals_as_only_content_50f7d033b0fe8ad1380a1ce908786917.txt │ │ ├── test_0020_a-umlaut_as_only_content_87def4693e30550387f2812dec2219e6.txt │ │ ├── test_0021_o-umlaut_as_only_content_9103b0fde88de0288ca8ca03532d66b7.txt │ │ ├── test_0022_u-umlaut_as_only_content_fc95de76ebff55679d202ded6f4f04d0.txt │ │ ├── test_0023_emoji_as_only_content_400a6eb23cb6b83dd9a0bd4ddeff8409.txt │ │ ├── test_0024_non-breaking_space_(U+00A0)_as_only_content_171ed99b0854aa35f50c3371b07fffcc.txt │ │ ├── test_0025_non-breaking_space_mixed_with_ERB_-_issue_310_1f905e5ab087b22e76444d7e98132e6d.txt │ │ ├── test_0026_multiple_non-breaking_spaces_in_text_7a2675aa6ba4cdbc5080233628d5e45e.txt │ │ ├── test_0027_non-breaking_space_in_attribute_value_4ef6c07c78dcc312066ef682f96c0253.txt │ │ ├── test_0028_at_symbol_(@)_in_text_content_-_issue_285_b4af64f3ea734ed4c7510e7e5738841a.txt │ │ ├── test_0029_at_symbol_at_beginning_of_text_b0241d43408d1826ae74f1bbec2e6413.txt │ │ ├── test_0030_multiple_at_symbols_in_text_33e06a6d495e2d066b5a1a7be86f91c1.txt │ │ ├── test_0031_at_symbol_mixed_with_ERB_a4b70c6afcd72595d84b1468a8b61d3a.txt │ │ ├── test_0032_at_symbol_in_attribute_value_e5290cd6e77d3872131d3aa211bea034.txt │ │ ├── test_0033_backtick_with_HTML_tags_-_issue_467_f19a10dc1b4a48f5239d4125ed18cf18.txt │ │ ├── test_0034_backslash-prefixed_text_stays_literal_-_issue_635_816fd02d8670264d606d92812679f159.txt │ │ └── test_0035_backslash-prefixed_text_-_issue_633_fd1ab6af93689cddc537bac4cbdaefde.txt │ │ ├── utf8_test │ │ ├── test_0001_opening_guillemet_856d313d5fa2c08f87ea3b9a79a870b0.txt │ │ ├── test_0002_closing_guillemet_46999175f7a57d90bf4ac8417289630d.txt │ │ ├── test_0003_single_opening_guillemet_39365d03f7c1b51be8ba359dcdda448d.txt │ │ ├── test_0004_single_closing_guillemet_9259b210ee4ee3e7703e1a42face4fcf.txt │ │ ├── test_0005_block_character_in_html_content_f3edaaa492cb5b32fe7efb719ecf05a7.txt │ │ ├── test_0006_emoji_in_html_content_5b6b2be6ae09fde85f0cefaad29486e4.txt │ │ ├── test_0007_multiple_utf8_characters_in_html_content_49687542f26edd7a1b84fb2dad013531.txt │ │ ├── test_0008_mixed_ascii_and_utf8_characters_911649c567a66a8501fd3b2507be99ab.txt │ │ └── test_0009_issue_327_reproduction_case_0f5afa2ae1df8b048986f5c5354f59b7.txt │ │ ├── whitespace_test │ │ ├── test_0001_whitespace_tracking_disabled_by_default_596726fb05a5adb8f455e308fc4a08a0.txt │ │ ├── test_0002_whitespace_tracking_when_enabled_596726fb05a5adb8f455e308fc4a08a0-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0003_whitespace_between_attributes_86ef4eacb5bb6d733c3e4f2cb0781854-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0004_whitespace_between_ERB_tag_4f1169696fdb4d2fd3a5193003736889-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0005_whitespace_between_close_tag_opening_and_tag_name_60d7278e90782f4dcdee582855d5796f-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0006_whitespace_in_close_tag_4869eaed35a27e6bfa64cd9d29e954fd-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0007_newline_in_close_tag_caaec36f193575041f63141c8ac5e514-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0008_whitespace_after_boolean_attributes_3a16ba4ca464b2a26bb0b237c91fcd51-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0009_whitespace_around_equals_sign_in_attributes_60bca752baacaa57df6164fdba262d2b-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0010_self-closing_tag_with_whitespace_before_slash_080eee2ba54687ee242ec1a7fab82037-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0011_multiple_attributes_with_whitespace_around_equals_96aa1e0c49bba47922aabf231ff81c15-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0012_mixed_whitespace_types_in_attributes_969f65e330338945ed0b52214eaef3b4-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0013_ERB_with_internal_whitespace_b7891ba80332792b7cbf56fa4f63228e-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0014_ERB_within_attribute_values_with_whitespace_b1001a9e93330e73b5bd3894b7635a52-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0015_HTML_comment_with_internal_whitespace_76a682ee9c29767efa5ed29aada5975d-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0016_DOCTYPE_with_whitespace_318cf6597207ccee787be227c30f0136-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0017_multiline_attributes_with_whitespace_c2fcd56402bd96a0482f4882586af251-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0018_boolean_attributes_mixed_with_valued_attributes_518f8319b75337953dc54f3802815ea1-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0019_whitespace_before_and_after_tag_closing_bracket_8f7c00549ca25b82b503cd4fe1bfe81b-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0020_nested_tags_with_preserved_whitespace_1d93a164cebd0ddb3e946390054b8baf-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0021_multiple_boolean_attributes_with_whitespace_a317fd40cd4267a3e26db64ed295b3ee-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── test_0022_empty_attributes_with_whitespace_around_equals_e087095b043f198b7edc0634fb504808-b26dbda6d8a652930695c93bd07179f4.txt │ │ └── test_0023_tabs_and_spaces_mixed_in_attribute_whitespace_4eb9af2691a84ccefacc78876f736cff-b26dbda6d8a652930695c93bd07179f4.txt │ │ ├── xml_declaration_test │ │ ├── test_0001_basic_xml_declaration_66973079dc7fdc0eedbbcbed1bf0bde0.txt │ │ ├── test_0002_xml_declaration_with_encoding_447d423b62bc6692ce2266e1dfb0a3b5.txt │ │ ├── test_0003_xml_declaration_with_encoding_ISO-8859-1_dd4263447c1fda5ed82c31b9d2f8f24c.txt │ │ ├── test_0004_xml_declaration_with_standalone_5aa41195cf30adefdbca245f08726269.txt │ │ ├── test_0005_xml_declaration_with_all_attributes_3ef840d0361caa4801a5f9ec97056a2b.txt │ │ ├── test_0006_xml_declaration_case_insensitive_1_e4e345519e2b76863647d3351ace49e0.txt │ │ ├── test_0007_xml_declaration_case_insensitive_2_2c7827fc01b52f3dd103b842f07d2742.txt │ │ ├── test_0008_xml_declaration_case_insensitive_3_19078f9a0d7c42b40a7aa66ccde337be.txt │ │ ├── test_0009_xml_declaration_with_spaces_0f70f9dc3f7c17d88be358a804043833.txt │ │ ├── test_0010_xml_declaration_with_newlines_01fc1f4f0cc30f25fccc96fca16afed4.txt │ │ ├── test_0011_xml_declaration_with_single_quotes_ee83d90fd5287d588959a3a5b611d6ce.txt │ │ ├── test_0012_xml_declaration_followed_by_html_d3329c9fd9d81fa8c7e39656c4e48b5c.txt │ │ ├── test_0013_two_xml_declarations_aa9ca6f9069972c106bfcfe505a0a080.txt │ │ ├── test_0014_xml_declaration_with_erb_content_7c2a2a608c90a24e12d1d51c9db4cec2.txt │ │ └── test_0015_xml_declaration_in_html_document_b4aebebe021e8c204e11f2d48215323d.txt │ │ └── yield_test │ │ ├── test_0001_yield_811e738151285db6da8e3a493b8d6e2b.txt │ │ ├── test_0002_yield_with_symbol_6cb3df93a89d085b4d803a26860118c0.txt │ │ ├── test_0003_yield_inside_if_edde5ff3a664fd489f8aaefc285a9ae7.txt │ │ ├── test_0004_yield_inside_block_222b48dd8aa27af5e2f135cd33f583c8.txt │ │ └── test_0005_yield_inside_case_when_cc5ad76c35f42b0e10034177ccaaff3e.txt ├── test │ └── snapshots │ │ └── parser │ │ └── comments_test │ │ └── test_0005_HTML_comment_with_if_04813d5ad89aa775065eb87d881ab931.txt ├── test_helper.rb └── visitor_test.rb ├── wasm ├── Makefile ├── extension_helpers.cpp ├── extension_helpers.h ├── herb-wasm.cpp └── project.json ├── workspace.json └── yarn.lock /.bundle/config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.bundle/config -------------------------------------------------------------------------------- /.clang-format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.clang-format -------------------------------------------------------------------------------- /.clang-format-ignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.clang-format-ignore -------------------------------------------------------------------------------- /.clang-tidy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.clang-tidy -------------------------------------------------------------------------------- /.doxygen/frame.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.doxygen/frame.css -------------------------------------------------------------------------------- /.doxygen/frame.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.doxygen/frame.js -------------------------------------------------------------------------------- /.doxygen/header.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.doxygen/header.html -------------------------------------------------------------------------------- /.envrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.envrc -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.gitattributes -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/formatting-issue.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.github/ISSUE_TEMPLATE/formatting-issue.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/linter-rule-proposal.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.github/ISSUE_TEMPLATE/linter-rule-proposal.md -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/labeler.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.github/labeler.yml -------------------------------------------------------------------------------- /.github/workflows/build-gems.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.github/workflows/build-gems.yml -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.github/workflows/build.yml -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.github/workflows/deploy.yml -------------------------------------------------------------------------------- /.github/workflows/java.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.github/workflows/java.yml -------------------------------------------------------------------------------- /.github/workflows/javascript.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.github/workflows/javascript.yml -------------------------------------------------------------------------------- /.github/workflows/labeler.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.github/workflows/labeler.yml -------------------------------------------------------------------------------- /.github/workflows/rust.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.github/workflows/rust.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.gitignore -------------------------------------------------------------------------------- /.node-version: -------------------------------------------------------------------------------- 1 | 22.16.0 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.prettierignore -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.prettierrc.json -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/.rubocop.yml -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 3.4.5 2 | -------------------------------------------------------------------------------- /Aptfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/Aptfile -------------------------------------------------------------------------------- /Brewfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/Brewfile -------------------------------------------------------------------------------- /Brewfile.lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/Brewfile.lock.json -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /Doxyfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/Doxyfile -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/Gemfile -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/Gemfile.lock -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/Makefile -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: cd playground && yarn serve 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/README.md -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/Rakefile -------------------------------------------------------------------------------- /Steepfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/Steepfile -------------------------------------------------------------------------------- /bin/compare: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/compare -------------------------------------------------------------------------------- /bin/compare-compile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/compare-compile -------------------------------------------------------------------------------- /bin/compare-render: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/compare-render -------------------------------------------------------------------------------- /bin/debug: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/debug -------------------------------------------------------------------------------- /bin/debug_lex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/debug_lex -------------------------------------------------------------------------------- /bin/debug_parse: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/debug_parse -------------------------------------------------------------------------------- /bin/download_gems: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/download_gems -------------------------------------------------------------------------------- /bin/erubi-compile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/erubi-compile -------------------------------------------------------------------------------- /bin/erubi-render: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/erubi-render -------------------------------------------------------------------------------- /bin/force_update_snapshots: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/force_update_snapshots -------------------------------------------------------------------------------- /bin/format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/format -------------------------------------------------------------------------------- /bin/gem-build: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/gem-build -------------------------------------------------------------------------------- /bin/gem-build-local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/gem-build-local -------------------------------------------------------------------------------- /bin/gem-platform: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/gem-platform -------------------------------------------------------------------------------- /bin/integration: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/integration -------------------------------------------------------------------------------- /bin/leaks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/leaks -------------------------------------------------------------------------------- /bin/leaks_lex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/leaks_lex -------------------------------------------------------------------------------- /bin/leaks_parse: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/leaks_parse -------------------------------------------------------------------------------- /bin/lib/compare_helpers.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/lib/compare_helpers.rb -------------------------------------------------------------------------------- /bin/lint: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/lint -------------------------------------------------------------------------------- /bin/publish_gems: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/publish_gems -------------------------------------------------------------------------------- /bin/publish_packages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/publish_packages -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/setup -------------------------------------------------------------------------------- /bin/test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/test -------------------------------------------------------------------------------- /bin/test_debug: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/test_debug -------------------------------------------------------------------------------- /bin/tidy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/tidy -------------------------------------------------------------------------------- /bin/update_snapshots: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/update_snapshots -------------------------------------------------------------------------------- /bin/valgrind_check_examples: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/bin/valgrind_check_examples -------------------------------------------------------------------------------- /config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/config.yml -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/.gitignore -------------------------------------------------------------------------------- /docs/.vitepress/assets/herb.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/.vitepress/assets/herb.svg -------------------------------------------------------------------------------- /docs/.vitepress/blog.data.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/.vitepress/blog.data.ts -------------------------------------------------------------------------------- /docs/.vitepress/components/BlogIndex.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/.vitepress/components/BlogIndex.vue -------------------------------------------------------------------------------- /docs/.vitepress/config.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/.vitepress/config.mts -------------------------------------------------------------------------------- /docs/.vitepress/config/markdown.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/.vitepress/config/markdown.mts -------------------------------------------------------------------------------- /docs/.vitepress/config/theme.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/.vitepress/config/theme.mts -------------------------------------------------------------------------------- /docs/.vitepress/config/vite.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/.vitepress/config/vite.mts -------------------------------------------------------------------------------- /docs/.vitepress/generate-rules.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/.vitepress/generate-rules.mts -------------------------------------------------------------------------------- /docs/.vitepress/theme/components/GitHubContributors.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/.vitepress/theme/components/GitHubContributors.vue -------------------------------------------------------------------------------- /docs/.vitepress/theme/custom.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/.vitepress/theme/custom.css -------------------------------------------------------------------------------- /docs/.vitepress/theme/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/.vitepress/theme/index.ts -------------------------------------------------------------------------------- /docs/.vitepress/transformers/herb-linter-transformer.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/.vitepress/transformers/herb-linter-transformer.mts -------------------------------------------------------------------------------- /docs/.vitepress/utils/herb.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/.vitepress/utils/herb.mts -------------------------------------------------------------------------------- /docs/docs/about.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/about.md -------------------------------------------------------------------------------- /docs/docs/bindings/java/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/bindings/java/index.md -------------------------------------------------------------------------------- /docs/docs/bindings/java/reference.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/bindings/java/reference.md -------------------------------------------------------------------------------- /docs/docs/bindings/javascript/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/bindings/javascript/index.md -------------------------------------------------------------------------------- /docs/docs/bindings/javascript/reference.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/bindings/javascript/reference.md -------------------------------------------------------------------------------- /docs/docs/bindings/ruby/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/bindings/ruby/index.md -------------------------------------------------------------------------------- /docs/docs/bindings/ruby/reference.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/bindings/ruby/reference.md -------------------------------------------------------------------------------- /docs/docs/bindings/rust/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/bindings/rust/index.md -------------------------------------------------------------------------------- /docs/docs/bindings/rust/reference.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/bindings/rust/reference.md -------------------------------------------------------------------------------- /docs/docs/blog.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/blog.md -------------------------------------------------------------------------------- /docs/docs/blog/whats-new-in-herb-v0-8.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/blog/whats-new-in-herb-v0-8.md -------------------------------------------------------------------------------- /docs/docs/c-reference/enum-values.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/c-reference/enum-values.md -------------------------------------------------------------------------------- /docs/docs/c-reference/enums.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/c-reference/enums.md -------------------------------------------------------------------------------- /docs/docs/c-reference/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/c-reference/index.md -------------------------------------------------------------------------------- /docs/docs/c-reference/nodes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/c-reference/nodes.md -------------------------------------------------------------------------------- /docs/docs/c-reference/structs.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/c-reference/structs.md -------------------------------------------------------------------------------- /docs/docs/c-reference/tokens.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/c-reference/tokens.md -------------------------------------------------------------------------------- /docs/docs/configuration.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/configuration.md -------------------------------------------------------------------------------- /docs/docs/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/index.md -------------------------------------------------------------------------------- /docs/docs/integrations/editors.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/integrations/editors.md -------------------------------------------------------------------------------- /docs/docs/integrations/editors/cursor.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/integrations/editors/cursor.md -------------------------------------------------------------------------------- /docs/docs/integrations/editors/helix.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/integrations/editors/helix.md -------------------------------------------------------------------------------- /docs/docs/integrations/editors/neovim.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/integrations/editors/neovim.md -------------------------------------------------------------------------------- /docs/docs/integrations/editors/rubymine.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/integrations/editors/rubymine.md -------------------------------------------------------------------------------- /docs/docs/integrations/editors/sublime.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/integrations/editors/sublime.md -------------------------------------------------------------------------------- /docs/docs/integrations/editors/vim.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/integrations/editors/vim.md -------------------------------------------------------------------------------- /docs/docs/integrations/editors/vscode.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/integrations/editors/vscode.md -------------------------------------------------------------------------------- /docs/docs/integrations/editors/zed.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/integrations/editors/zed.md -------------------------------------------------------------------------------- /docs/docs/overview.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/overview.md -------------------------------------------------------------------------------- /docs/docs/playground.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/playground.md -------------------------------------------------------------------------------- /docs/docs/projects.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects.md -------------------------------------------------------------------------------- /docs/docs/projects/cli.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/cli.md -------------------------------------------------------------------------------- /docs/docs/projects/compiler.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/compiler.md -------------------------------------------------------------------------------- /docs/docs/projects/config.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/config.md -------------------------------------------------------------------------------- /docs/docs/projects/core.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/core.md -------------------------------------------------------------------------------- /docs/docs/projects/dev-tools.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/dev-tools.md -------------------------------------------------------------------------------- /docs/docs/projects/engine.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/engine.md -------------------------------------------------------------------------------- /docs/docs/projects/formatter.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/formatter.md -------------------------------------------------------------------------------- /docs/docs/projects/highlighter.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/highlighter.md -------------------------------------------------------------------------------- /docs/docs/projects/language-server.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/language-server.md -------------------------------------------------------------------------------- /docs/docs/projects/language-service.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/language-service.md -------------------------------------------------------------------------------- /docs/docs/projects/linter.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/linter.md -------------------------------------------------------------------------------- /docs/docs/projects/minifier.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/minifier.md -------------------------------------------------------------------------------- /docs/docs/projects/parser.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/parser.md -------------------------------------------------------------------------------- /docs/docs/projects/printer.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/printer.md -------------------------------------------------------------------------------- /docs/docs/projects/rewriter.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/rewriter.md -------------------------------------------------------------------------------- /docs/docs/projects/webassembly.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/projects/webassembly.md -------------------------------------------------------------------------------- /docs/docs/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/apple-touch-icon.png -------------------------------------------------------------------------------- /docs/docs/public/blog/whats-new-in-herb-v0-8/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/blog/whats-new-in-herb-v0-8/hero.png -------------------------------------------------------------------------------- /docs/docs/public/blog/whats-new-in-herb-v0-8/summary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/blog/whats-new-in-herb-v0-8/summary.png -------------------------------------------------------------------------------- /docs/docs/public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/favicon-16x16.png -------------------------------------------------------------------------------- /docs/docs/public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/favicon-32x32.png -------------------------------------------------------------------------------- /docs/docs/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/favicon.ico -------------------------------------------------------------------------------- /docs/docs/public/herb-cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/herb-cursor.png -------------------------------------------------------------------------------- /docs/docs/public/herb-editors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/herb-editors.png -------------------------------------------------------------------------------- /docs/docs/public/herb-helix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/herb-helix.png -------------------------------------------------------------------------------- /docs/docs/public/herb-neovim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/herb-neovim.png -------------------------------------------------------------------------------- /docs/docs/public/herb-rubymine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/herb-rubymine.png -------------------------------------------------------------------------------- /docs/docs/public/herb-sublime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/herb-sublime.png -------------------------------------------------------------------------------- /docs/docs/public/herb-vim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/herb-vim.png -------------------------------------------------------------------------------- /docs/docs/public/herb-vscode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/herb-vscode.png -------------------------------------------------------------------------------- /docs/docs/public/herb-zed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/herb-zed.png -------------------------------------------------------------------------------- /docs/docs/public/herb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/herb.png -------------------------------------------------------------------------------- /docs/docs/public/herb.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/herb.svg -------------------------------------------------------------------------------- /docs/docs/public/social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/public/social.png -------------------------------------------------------------------------------- /docs/docs/specification.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/specification.md -------------------------------------------------------------------------------- /docs/docs/specification/antlers.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/specification/antlers.md -------------------------------------------------------------------------------- /docs/docs/specification/blade.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/specification/blade.md -------------------------------------------------------------------------------- /docs/docs/specification/ejs.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: deep 3 | --- 4 | 5 | # EJS 6 | -------------------------------------------------------------------------------- /docs/docs/specification/erb.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/specification/erb.md -------------------------------------------------------------------------------- /docs/docs/specification/haml.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: deep 3 | --- 4 | 5 | # Haml 6 | -------------------------------------------------------------------------------- /docs/docs/specification/handlebars.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: deep 3 | --- 4 | 5 | # Handlebars 6 | -------------------------------------------------------------------------------- /docs/docs/specification/html.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/specification/html.md -------------------------------------------------------------------------------- /docs/docs/specification/jinja.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: deep 3 | --- 4 | 5 | # Jinja 6 | -------------------------------------------------------------------------------- /docs/docs/specification/liquid.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: deep 3 | --- 4 | 5 | # Liquid 6 | -------------------------------------------------------------------------------- /docs/docs/specification/phlex.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/specification/phlex.md -------------------------------------------------------------------------------- /docs/docs/specification/rbexy.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/docs/specification/rbexy.md -------------------------------------------------------------------------------- /docs/docs/specification/rux.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: deep 3 | --- 4 | 5 | # Rux 6 | 7 | https://github.com/camertron/rux 8 | -------------------------------------------------------------------------------- /docs/docs/specification/slim.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: deep 3 | --- 4 | 5 | # Slim 6 | -------------------------------------------------------------------------------- /docs/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/package.json -------------------------------------------------------------------------------- /docs/project.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/docs/project.json -------------------------------------------------------------------------------- /examples/attributes_with_empty_value.html.erb: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /examples/begin.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/begin.html.erb -------------------------------------------------------------------------------- /examples/block.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/block.html.erb -------------------------------------------------------------------------------- /examples/block_comment.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/block_comment.html.erb -------------------------------------------------------------------------------- /examples/case_children.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/case_children.html.erb -------------------------------------------------------------------------------- /examples/case_in.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/case_in.html.erb -------------------------------------------------------------------------------- /examples/case_when.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/case_when.html.erb -------------------------------------------------------------------------------- /examples/comment.html.erb: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/comment_before_content.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/comment_before_content.html.erb -------------------------------------------------------------------------------- /examples/complete_erb.html.erb: -------------------------------------------------------------------------------- 1 | <%= hello %> 2 | -------------------------------------------------------------------------------- /examples/doctype.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/doctype.html.erb -------------------------------------------------------------------------------- /examples/erb.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/erb.html.erb -------------------------------------------------------------------------------- /examples/for.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/for.html.erb -------------------------------------------------------------------------------- /examples/if_else.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/if_else.html.erb -------------------------------------------------------------------------------- /examples/incomplete_erb.invalid.html.erb: -------------------------------------------------------------------------------- 1 | <%= hello 2 | -------------------------------------------------------------------------------- /examples/left-right-trim.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/left-right-trim.html.erb -------------------------------------------------------------------------------- /examples/left-trim.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/left-trim.html.erb -------------------------------------------------------------------------------- /examples/line-wrap.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/line-wrap.html.erb -------------------------------------------------------------------------------- /examples/link_to_with_block.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/link_to_with_block.html.erb -------------------------------------------------------------------------------- /examples/nested_if_and_blocks.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/nested_if_and_blocks.html.erb -------------------------------------------------------------------------------- /examples/right-trim.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/right-trim.html.erb -------------------------------------------------------------------------------- /examples/simple_block.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/simple_block.html.erb -------------------------------------------------------------------------------- /examples/simple_erb.html.erb: -------------------------------------------------------------------------------- 1 | <% title %> 2 | -------------------------------------------------------------------------------- /examples/test.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/test.html.erb -------------------------------------------------------------------------------- /examples/until.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/until.html.erb -------------------------------------------------------------------------------- /examples/utf8.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/utf8.html.erb -------------------------------------------------------------------------------- /examples/while.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/examples/while.html.erb -------------------------------------------------------------------------------- /exe/herb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/exe/herb -------------------------------------------------------------------------------- /ext/herb/extconf.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/ext/herb/extconf.rb -------------------------------------------------------------------------------- /ext/herb/extension.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/ext/herb/extension.c -------------------------------------------------------------------------------- /ext/herb/extension.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/ext/herb/extension.h -------------------------------------------------------------------------------- /ext/herb/extension_helpers.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/ext/herb/extension_helpers.c -------------------------------------------------------------------------------- /ext/herb/extension_helpers.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/ext/herb/extension_helpers.h -------------------------------------------------------------------------------- /ext/project.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/ext/project.json -------------------------------------------------------------------------------- /herb.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/herb.gemspec -------------------------------------------------------------------------------- /java/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/Makefile -------------------------------------------------------------------------------- /java/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/README.md -------------------------------------------------------------------------------- /java/bin/herb-java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/bin/herb-java -------------------------------------------------------------------------------- /java/extension_helpers.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/extension_helpers.c -------------------------------------------------------------------------------- /java/extension_helpers.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/extension_helpers.h -------------------------------------------------------------------------------- /java/herb_jni.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/herb_jni.c -------------------------------------------------------------------------------- /java/herb_jni.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/herb_jni.h -------------------------------------------------------------------------------- /java/org/herb/CLI.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/org/herb/CLI.java -------------------------------------------------------------------------------- /java/org/herb/Herb.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/org/herb/Herb.java -------------------------------------------------------------------------------- /java/org/herb/LexResult.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/org/herb/LexResult.java -------------------------------------------------------------------------------- /java/org/herb/Location.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/org/herb/Location.java -------------------------------------------------------------------------------- /java/org/herb/ParseResult.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/org/herb/ParseResult.java -------------------------------------------------------------------------------- /java/org/herb/ParserOptions.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/org/herb/ParserOptions.java -------------------------------------------------------------------------------- /java/org/herb/Position.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/org/herb/Position.java -------------------------------------------------------------------------------- /java/org/herb/Range.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/org/herb/Range.java -------------------------------------------------------------------------------- /java/org/herb/Token.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/org/herb/Token.java -------------------------------------------------------------------------------- /java/org/herb/ast/BaseNode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/org/herb/ast/BaseNode.java -------------------------------------------------------------------------------- /java/org/herb/ast/ErrorNode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/org/herb/ast/ErrorNode.java -------------------------------------------------------------------------------- /java/org/herb/ast/Node.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/org/herb/ast/Node.java -------------------------------------------------------------------------------- /java/org/herb/ast/TreePrintVisitor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/org/herb/ast/TreePrintVisitor.java -------------------------------------------------------------------------------- /java/run_tests.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/run_tests.sh -------------------------------------------------------------------------------- /java/snapshots/test.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/snapshots/test.html.erb -------------------------------------------------------------------------------- /java/snapshots/test.html.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/snapshots/test.html.txt -------------------------------------------------------------------------------- /java/snapshots/test.lex.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/snapshots/test.lex.txt -------------------------------------------------------------------------------- /java/snapshots/test.parse.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/snapshots/test.parse.txt -------------------------------------------------------------------------------- /java/snapshots/test.ruby.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/java/snapshots/test.ruby.txt -------------------------------------------------------------------------------- /javascript/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/.gitignore -------------------------------------------------------------------------------- /javascript/packages/browser/.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | dist/ 3 | -------------------------------------------------------------------------------- /javascript/packages/browser/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/browser/CHANGELOG.md -------------------------------------------------------------------------------- /javascript/packages/browser/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/browser/README.md -------------------------------------------------------------------------------- /javascript/packages/browser/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/browser/package.json -------------------------------------------------------------------------------- /javascript/packages/browser/project.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/browser/project.json -------------------------------------------------------------------------------- /javascript/packages/browser/rollup.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/browser/rollup.config.mjs -------------------------------------------------------------------------------- /javascript/packages/browser/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/browser/src/index.ts -------------------------------------------------------------------------------- /javascript/packages/browser/src/types/build.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/browser/src/types/build.d.ts -------------------------------------------------------------------------------- /javascript/packages/browser/src/wasm-backend.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/browser/src/wasm-backend.ts -------------------------------------------------------------------------------- /javascript/packages/browser/test/browser.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/browser/test/browser.test.ts -------------------------------------------------------------------------------- /javascript/packages/browser/test/visitor.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/browser/test/visitor.test.ts -------------------------------------------------------------------------------- /javascript/packages/browser/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/browser/tsconfig.json -------------------------------------------------------------------------------- /javascript/packages/browser/vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/browser/vitest.config.ts -------------------------------------------------------------------------------- /javascript/packages/config/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/README.md -------------------------------------------------------------------------------- /javascript/packages/config/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/package.json -------------------------------------------------------------------------------- /javascript/packages/config/project.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/project.json -------------------------------------------------------------------------------- /javascript/packages/config/rollup.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/rollup.config.mjs -------------------------------------------------------------------------------- /javascript/packages/config/src/config-schema.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/src/config-schema.ts -------------------------------------------------------------------------------- /javascript/packages/config/src/config-template.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/src/config-template.yml -------------------------------------------------------------------------------- /javascript/packages/config/src/config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/src/config.ts -------------------------------------------------------------------------------- /javascript/packages/config/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/src/index.ts -------------------------------------------------------------------------------- /javascript/packages/config/src/merge.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/src/merge.ts -------------------------------------------------------------------------------- /javascript/packages/config/src/vscode.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/src/vscode.ts -------------------------------------------------------------------------------- /javascript/packages/config/src/yaml.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/src/yaml.d.ts -------------------------------------------------------------------------------- /javascript/packages/config/test/config.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/test/config.test.ts -------------------------------------------------------------------------------- /javascript/packages/config/test/merge.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/test/merge.test.ts -------------------------------------------------------------------------------- /javascript/packages/config/test/vscode.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/test/vscode.test.ts -------------------------------------------------------------------------------- /javascript/packages/config/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/tsconfig.json -------------------------------------------------------------------------------- /javascript/packages/config/vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/vitest.config.ts -------------------------------------------------------------------------------- /javascript/packages/config/yaml-plugin.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/config/yaml-plugin.mjs -------------------------------------------------------------------------------- /javascript/packages/core/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/CHANGELOG.md -------------------------------------------------------------------------------- /javascript/packages/core/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/README.md -------------------------------------------------------------------------------- /javascript/packages/core/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/package.json -------------------------------------------------------------------------------- /javascript/packages/core/project.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/project.json -------------------------------------------------------------------------------- /javascript/packages/core/rollup.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/rollup.config.mjs -------------------------------------------------------------------------------- /javascript/packages/core/src/ast-utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/ast-utils.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/backend.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/backend.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/diagnostic.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/diagnostic.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/didyoumean.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/didyoumean.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/herb-backend.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/herb-backend.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/index.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/levenshtein.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/levenshtein.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/lex-result.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/lex-result.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/location.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/location.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/parse-result.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/parse-result.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/parser-options.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/parser-options.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/position.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/position.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/range.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/range.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/result.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/result.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/token-list.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/token-list.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/token.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/token.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/util.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/util.ts -------------------------------------------------------------------------------- /javascript/packages/core/src/warning.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/src/warning.ts -------------------------------------------------------------------------------- /javascript/packages/core/test/ast-utils.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/test/ast-utils.test.ts -------------------------------------------------------------------------------- /javascript/packages/core/test/core.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/test/core.test.ts -------------------------------------------------------------------------------- /javascript/packages/core/test/didyoumean.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/test/didyoumean.test.ts -------------------------------------------------------------------------------- /javascript/packages/core/test/node-type-guards.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/test/node-type-guards.test.ts -------------------------------------------------------------------------------- /javascript/packages/core/test/visitor.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/test/visitor.test.ts -------------------------------------------------------------------------------- /javascript/packages/core/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/core/tsconfig.json -------------------------------------------------------------------------------- /javascript/packages/dev-tools/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/dev-tools/README.md -------------------------------------------------------------------------------- /javascript/packages/dev-tools/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/dev-tools/package.json -------------------------------------------------------------------------------- /javascript/packages/dev-tools/project.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/dev-tools/project.json -------------------------------------------------------------------------------- /javascript/packages/dev-tools/rollup.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/dev-tools/rollup.config.mjs -------------------------------------------------------------------------------- /javascript/packages/dev-tools/src/error-overlay.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/dev-tools/src/error-overlay.ts -------------------------------------------------------------------------------- /javascript/packages/dev-tools/src/herb-overlay.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/dev-tools/src/herb-overlay.ts -------------------------------------------------------------------------------- /javascript/packages/dev-tools/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/dev-tools/src/index.ts -------------------------------------------------------------------------------- /javascript/packages/dev-tools/src/styles.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/dev-tools/src/styles.css -------------------------------------------------------------------------------- /javascript/packages/dev-tools/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/dev-tools/tsconfig.json -------------------------------------------------------------------------------- /javascript/packages/formatter/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/README.md -------------------------------------------------------------------------------- /javascript/packages/formatter/bin/herb-format: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import("../dist/herb-format.js") 4 | -------------------------------------------------------------------------------- /javascript/packages/formatter/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/package.json -------------------------------------------------------------------------------- /javascript/packages/formatter/project.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/project.json -------------------------------------------------------------------------------- /javascript/packages/formatter/rollup.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/rollup.config.mjs -------------------------------------------------------------------------------- /javascript/packages/formatter/src/cli.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/src/cli.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/src/format-helpers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/src/format-helpers.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/src/format-ignore.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/src/format-ignore.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/src/format-printer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/src/format-printer.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/src/formatter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/src/formatter.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/src/herb-format.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/src/herb-format.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/src/index.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/src/options.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/src/options.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/src/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/src/types.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/cli.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/cli.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/cli/cli-helpers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/cli/cli-helpers.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/cli/rewriters.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/cli/rewriters.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/erb-grouping.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/erb-grouping.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/erb/begin.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/erb/begin.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/erb/case.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/erb/case.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/erb/comment.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/erb/comment.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/erb/erb.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/erb/erb.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/erb/for.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/erb/for.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/erb/if.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/erb/if.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/erb/unless.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/erb/unless.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/erb/until.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/erb/until.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/erb/while.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/erb/while.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/formatter.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/formatter.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/frontmatter.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/frontmatter.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/head.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/head.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/html/comments.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/html/comments.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/html/doctype.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/html/doctype.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/html/headings.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/html/headings.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/html/lists.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/html/lists.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/html/tags.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/html/tags.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/options.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/options.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/rewriters/helpers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/rewriters/helpers.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/spacing.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/spacing.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/test/xml/xml.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/test/xml/xml.test.ts -------------------------------------------------------------------------------- /javascript/packages/formatter/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/formatter/tsconfig.json -------------------------------------------------------------------------------- /javascript/packages/herb-language-server/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/herb-language-server/.gitignore -------------------------------------------------------------------------------- /javascript/packages/herb-language-server/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/herb-language-server/.npmignore -------------------------------------------------------------------------------- /javascript/packages/herb-language-server/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/herb-language-server/CHANGELOG.md -------------------------------------------------------------------------------- /javascript/packages/herb-language-server/LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/herb-language-server/LICENSE.txt -------------------------------------------------------------------------------- /javascript/packages/herb-language-server/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/herb-language-server/README.md -------------------------------------------------------------------------------- /javascript/packages/herb-language-server/bin/herb-language-server: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import("../dist/herb-language-server.js") 4 | -------------------------------------------------------------------------------- /javascript/packages/herb-language-server/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/herb-language-server/package.json -------------------------------------------------------------------------------- /javascript/packages/herb-language-server/project.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/herb-language-server/project.json -------------------------------------------------------------------------------- /javascript/packages/herb-language-server/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from "@herb-tools/language-server" 2 | -------------------------------------------------------------------------------- /javascript/packages/herb-language-server/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/herb-language-server/tsconfig.json -------------------------------------------------------------------------------- /javascript/packages/highlighter/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/README.md -------------------------------------------------------------------------------- /javascript/packages/highlighter/bin/herb-highlight: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import("../dist/herb-highlight.js") 4 | -------------------------------------------------------------------------------- /javascript/packages/highlighter/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/package.json -------------------------------------------------------------------------------- /javascript/packages/highlighter/project.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/project.json -------------------------------------------------------------------------------- /javascript/packages/highlighter/rollup.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/rollup.config.mjs -------------------------------------------------------------------------------- /javascript/packages/highlighter/src/cli.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/src/cli.ts -------------------------------------------------------------------------------- /javascript/packages/highlighter/src/color.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/src/color.ts -------------------------------------------------------------------------------- /javascript/packages/highlighter/src/file-reader.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/src/file-reader.ts -------------------------------------------------------------------------------- /javascript/packages/highlighter/src/file-renderer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/src/file-renderer.ts -------------------------------------------------------------------------------- /javascript/packages/highlighter/src/gutter-config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/src/gutter-config.ts -------------------------------------------------------------------------------- /javascript/packages/highlighter/src/herb-highlight.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/src/herb-highlight.ts -------------------------------------------------------------------------------- /javascript/packages/highlighter/src/highlighter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/src/highlighter.ts -------------------------------------------------------------------------------- /javascript/packages/highlighter/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/src/index.ts -------------------------------------------------------------------------------- /javascript/packages/highlighter/src/line-wrapper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/src/line-wrapper.ts -------------------------------------------------------------------------------- /javascript/packages/highlighter/src/syntax-renderer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/src/syntax-renderer.ts -------------------------------------------------------------------------------- /javascript/packages/highlighter/src/text-formatter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/src/text-formatter.ts -------------------------------------------------------------------------------- /javascript/packages/highlighter/src/themes.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/src/themes.ts -------------------------------------------------------------------------------- /javascript/packages/highlighter/src/util.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/src/util.ts -------------------------------------------------------------------------------- /javascript/packages/highlighter/test/util.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/test/util.ts -------------------------------------------------------------------------------- /javascript/packages/highlighter/themes/dracula.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/themes/dracula.json -------------------------------------------------------------------------------- /javascript/packages/highlighter/themes/onedark.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/themes/onedark.json -------------------------------------------------------------------------------- /javascript/packages/highlighter/themes/simple.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/themes/simple.json -------------------------------------------------------------------------------- /javascript/packages/highlighter/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/highlighter/tsconfig.json -------------------------------------------------------------------------------- /javascript/packages/language-server/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/.gitignore -------------------------------------------------------------------------------- /javascript/packages/language-server/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/.npmignore -------------------------------------------------------------------------------- /javascript/packages/language-server/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/CHANGELOG.md -------------------------------------------------------------------------------- /javascript/packages/language-server/LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/LICENSE.txt -------------------------------------------------------------------------------- /javascript/packages/language-server/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/README.md -------------------------------------------------------------------------------- /javascript/packages/language-server/assets/herb.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/assets/herb.svg -------------------------------------------------------------------------------- /javascript/packages/language-server/bin/herb-language-server: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import("../dist/herb-language-server.js") 4 | -------------------------------------------------------------------------------- /javascript/packages/language-server/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/package.json -------------------------------------------------------------------------------- /javascript/packages/language-server/project.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/project.json -------------------------------------------------------------------------------- /javascript/packages/language-server/rollup.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/rollup.config.mjs -------------------------------------------------------------------------------- /javascript/packages/language-server/src/cli.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/src/cli.ts -------------------------------------------------------------------------------- /javascript/packages/language-server/src/diagnostics.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/src/diagnostics.ts -------------------------------------------------------------------------------- /javascript/packages/language-server/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/src/index.ts -------------------------------------------------------------------------------- /javascript/packages/language-server/src/project.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/src/project.ts -------------------------------------------------------------------------------- /javascript/packages/language-server/src/server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/src/server.ts -------------------------------------------------------------------------------- /javascript/packages/language-server/src/service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/src/service.ts -------------------------------------------------------------------------------- /javascript/packages/language-server/src/settings.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/src/settings.ts -------------------------------------------------------------------------------- /javascript/packages/language-server/src/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/src/utils.ts -------------------------------------------------------------------------------- /javascript/packages/language-server/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-server/tsconfig.json -------------------------------------------------------------------------------- /javascript/packages/language-server/types/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/packages/language-service/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/language-service/README.md -------------------------------------------------------------------------------- /javascript/packages/linter/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/README.md -------------------------------------------------------------------------------- /javascript/packages/linter/bin/herb-lint: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import("../dist/herb-lint.js") 4 | -------------------------------------------------------------------------------- /javascript/packages/linter/docs/rules/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/docs/rules/README.md -------------------------------------------------------------------------------- /javascript/packages/linter/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/package.json -------------------------------------------------------------------------------- /javascript/packages/linter/project.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/project.json -------------------------------------------------------------------------------- /javascript/packages/linter/rollup.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/rollup.config.mjs -------------------------------------------------------------------------------- /javascript/packages/linter/scripts/generate-rule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/scripts/generate-rule -------------------------------------------------------------------------------- /javascript/packages/linter/src/cli.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/cli.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/cli/argument-parser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/cli/argument-parser.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/cli/file-processor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/cli/file-processor.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/cli/formatters/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/cli/formatters/index.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/cli/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/cli/index.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/cli/output-manager.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/cli/output-manager.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/cli/summary-reporter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/cli/summary-reporter.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/custom-rule-loader.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/custom-rule-loader.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/herb-lint.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/herb-lint.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/index.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/linter-ignore.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/linter-ignore.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/linter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/linter.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/loader.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/loader.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/rules.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/rules.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/rules/erb-right-trim.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/rules/erb-right-trim.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/rules/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/rules/index.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/rules/rule-utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/rules/rule-utils.ts -------------------------------------------------------------------------------- /javascript/packages/linter/src/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/src/types.ts -------------------------------------------------------------------------------- /javascript/packages/linter/test/cli.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoroth/herb/HEAD/javascript/packages/linter/test/cli.test.ts -------------------------------------------------------------------------------- /javascript/packages/linter/test/fixtures/boolean-attribute.html.erb: -------------------------------------------------------------------------------- 1 |
3 |