Parser
- Fix
MissingERBEndTagErrorfor blocks containingyieldby @marcoroth in #1893 - Don’t treat escaped ERB tags (
<%%and<%%=) as executable Ruby by @marcoroth in #1917
Linter
New Linter Rules
- Implement
erb-no-commented-out-output-tagsrule by @marcoroth in #1918 - Re-enable
html-no-space-in-tagforv0.10.3by @marcoroth in #1907
Rule Updates
- Fix Prism byte-offset handling for non-ASCII source by @drjayvee in #1866
- Fix missing
codeonerb-no-trailing-whitespaceoffenses by @marcoroth in #1886 - Fix
erb-no-silent-statementflagging control-flow keywords by @marcoroth in #1891 - Detect
erb-no-unsafe-rawoffenses using Prism instead of a regular expression by @marcoroth in #1892 - Report accurate offense locations in
erb-no-unsafe-rawby @marcoroth in #1894 - Allow slot setters on slot builders in
erb-no-unused-expressionsby @marcoroth in #1896 - Improve the
html-no-duplicate-idsrule by @marcoroth in #1904 - Skip
html-input-require-autocompletefor disabled inputs by @marcoroth in #1905 - Improve the
html-no-space-in-tagrule by @marcoroth in #1907 - Clear
ParseCacheafter each pass and read file contents lazily by @marcoroth in #1925
Linter CLI
- Introduce the
--onlyflag for running specific rules by @marcoroth in #1908 - Introduce the
--all-rulesflag for running every rule by @marcoroth in #1919 - Fix
--jsonoutput when linting in parallel by @marcoroth in #1887 - Print a progress message when linting multiple files by @marcoroth in #1899
Formatter
- Preserve
<%#=syntax in commented-out output tags by @geeksilva97 in #1854 - Don’t add or remove whitespace at glued content boundaries by @joaoGabriel55 in #1863
- Preserve whitespace around punctuation at inline element boundaries by @marcoroth in #1884
- Keep ERB expressions in attribute positions inline by @marcoroth in #1895
- Preserve content in
<script>and<style>ERB blocks by @marcoroth in #1898 - Fix
herb:disablecomments moving after tags by @marcoroth in #1916 - Preserve whitespace before output tags following a sibling by @marcoroth in #1923
- Fix
<br>tags alternating between glued and split forms by @marcoroth in #1924 - Keep text flow intact on lines following a block sibling by @marcoroth in #1926
- Improve multiline ERB comment formatting by @marcoroth in #1931
Engine
- Fix
NameErrorin:overlaymode when handling parser errors by @marcoroth in #1882 - Add
titleto the excluded tags by @kcdragon in #1880
Core
- Fix
PrismVisitorskipping node-list fields by @marcoroth in #1885 - Add
deserializeDiagnosticand type worker offenses as serialized by @marcoroth in #1890
Rust
- Implement validation, merging, and mutation in
herb-configby @marcoroth in #1920
JavaScript
- Declare
@ruby/prismwhere bundles require it by @andyw8 in #1806 and @marcoroth in #1929 - Add missing
actions/checkoutfor trusted publishing by @marcoroth in #1932
VS Code
CI
- Add the Corpus workflow by @marcoroth in #1881
- Upgrade GitHub Actions to Node.js 24 by @marcoroth in #1901
- Improve timeout handling in the corpus check by @marcoroth in #1906
- Compare the Corpus against the pull request’s base branch by @marcoroth in #1910
Documentation
- Add a CI integrations guide with per-provider pages by @arzezak in #1684
- Replace deprecated Yarn global installation examples by @SSDWGG in #1799
Dependencies
See all
- Bump playwright from 1.60.0 to 1.61.1 by @dependabot in #1861
- Bump sorbet from 0.6.13341 to 0.6.13361 by @dependabot in #1873
- Bump cruise from 0.1.0 to 0.2.0 by @dependabot in #1874
- Bump oxlint from 1.70.0 to 1.74.0 by @dependabot in #1858
- Bump prettier from 3.8.4 to 3.9.5 by @dependabot in #1859
- Bump tsx from 4.23.0 to 4.23.1 by @dependabot in #1857
- Bump @vitejs/plugin-vue from 6.0.6 to 6.0.8 by @dependabot in #1860
- Bump loofah from 2.25.1 to 2.25.2 by @dependabot in #1869
- Bump the npm dependencies by @dependabot in #1928
New Contributors
- @drjayvee made their first contribution in #1866
- @geeksilva97 made their first contribution in #1854
- @joaoGabriel55 made their first contribution in #1863
- @kcdragon made their first contribution in #1880
- @andyw8 made their first contribution in #1806
- @SSDWGG made their first contribution in #1799
- @arzezak made their first contribution in #1684
Commits
Full Changelog: v0.10.2...v0.10.3