Releases: marcoroth/herb
Releases · marcoroth/herb
v0.4.3
Added
- Language Server: Add
textDocument/rangeFormattingsupport to language server by @marcoroth in #319 - Parser: Add support for
TOKEN_NBSPin HTML content by @marcoroth in #321 - Parser: Add support for
TOKEN_ATin HTML content by @marcoroth in #322 - Formatter: Add HTML attribute quote normalization by @marcoroth in #337
- Linter: Add new
LexerRuleandSourceRuletypes alongsideParserRuleby @marcoroth in #328 - Linter: Allow a new
LintContextto be passed to linter rules by @marcoroth in #340 - Playground: Add Format Button for editor by @marcoroth in #344
New Linter Rules
- Add
erb-prefer-image-tag-helperlinter rule by @nicogaldamez in #307 - Add
erb-requires-trailing-newlinelinter rule by @marcoroth in #329 - Add
html-aria-level-must-be-validlinter rule by @marcoroth in #338 and #343
Changed
- Parser: Allow newlines before closing
>in HTML tags by @marcoroth in #315 - Parser: Allow HTML Attribute Names to have a period in the attribute name by @marcoroth in #324
- Parser: Add support for
@token in HTML attribute names by @marcoroth in #325 - Formatter: Improve range formatting to preserve minimum indentation by @marcoroth in #320
- Formatter: Preserve newlines between top-level nodes by @marcoroth in #323
- Ruby: Add non-zero exit code when
herb analyzefinds issues by @marcoroth in #332 - Lexer: Improve lexer UTF-8 character support and extract UTF-8 utilities by @marcoroth in #330
Fixed
- Language Server: Fix
FormattingServicewhen settings are not available by @marcoroth in #316 - Formatter: Fix case where formatter would output
% %>by @marcoroth in #314 - Formatter: Fix ERB whitespace formatting in inline contexts by @marcoroth in #326
- Formatter: Fix ERB quote misplacement in HTML attributes by @marcoroth in #331
- Formatter: Fix inline element and ERB conditional attributes formatting by @marcoroth in #336
- Formatter: Support formatting
case/instatements by @marcoroth in #345
Internal
- Upgrade Ruby to
3.4.5by @marcoroth in #109 - Downgrade to Ruby
3.4.1by @marcoroth in #333 - Add NX affected back by @marcoroth in #221
- Revert "Add NX affected back" by @marcoroth in #339
- Remove unused argument in
LinterService.lintDocumentby @marcoroth in #341
Dependencies
- Bump @eslint/plugin-kit from 0.3.3 to 0.3.4 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #311
New Contributors
- @nicogaldamez made their first contribution in #307
Commits
Full Changelog: v0.4.2...v0.4.3
v0.4.2
Added
- Add
svg-tag-name-capitalizationlinter rule by @marcoroth in #304
Changed
- Formatter: Preserve ERB tags inside HTML attributes by @marcoroth in #286
- Formatter: Keep simple element children inline instead of splitting them up by @marcoroth in #288
Fixed
- Fix
erb-require-whitespace-inside-tagsrule for comment tags by @marcoroth in #301 - Fix yield and block detection in ERB control flow processing by @marcoroth in #303
Removed
-
Internal
- Use Ubicloud GitHub Actions Runner by @marcoroth in #295
Documentation
- Fix typo by @mdesantis in #289
- Fix how to instantiate specific rules in the Javascript customization example by @sbastn in #293
- Update README.md by @sebastian-kreis in #306
New Contributors
- @sbastn made their first contribution in #293
- @mdesantis made their first contribution in #289
- @sebastian-kreis made their first contribution in #306
Commits
Full Changelog: v0.4.1...v0.4.2
v0.4.1
Added
- Add
TOKEN_ATtoken to lexer by @marcoroth in #265 - Add
html-aria-attribute-must-be-validlinter rule by @drewhoffer in #242 - Add
html-aria-role-must-be-validlinter rule by @drewhoffer in #238 - Add
html-no-duplicate-idslinter rule by @NotGrm in #241
Changed
- Fix error in language server when linter settings are not provided by @marcoroth in #245
- Fix: preserve inline ERB conditionals in HTML tags by @marcoroth in #259
- Disable
html-no-block-inside-inlinerule for now by @marcoroth in #266 - VS Code Extension: Fix worker bundling for VSIX distribution by @marcoroth in #274
- Improve Herb Formatter CLI to actually write/format files by @marcoroth in #275
- Formatter: Ensure CLI output ends with trailing newline by @marcoroth in #263
Internal
- Bump esbuild from 0.25.5 to 0.25.6 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #264
- Bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #278
- Bump esbuild from 0.25.7 to 0.25.8 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #279
- Bump form-data from 4.0.2 to 4.0.4 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #284
Documentation
- Add nvim-lspconfig instructions by @calebhearth in #246
- Add documentation for using Herb in Sublime Text via Sublime LSP by @tcannonfodder in #256
New Contributors
- @calebhearth made their first contribution in #246
- @tcannonfodder made their first contribution in #256
Commits
Full Changelog: v0.4.0...v0.4.1
v0.4.0
New Packages
- Herb Linter (
@herb-tools/linter) by @marcoroth in #171 - Herb Formatter (
@herb-tools/formatter) by @marcoroth in #192 - Herb Highlighter (
@herb-tools/highlighter) by @marcoroth in #234
Added
- Add a generator for Herb Linter Rules by @marcoroth in #214
- Support
<%%=(escaped ERB output tag) by @marcoroth in #128 - Add
ERBNodetype and identification utilities by @marcoroth in #222 - Add
--non-interactivemode forherb analyzecommand by @marcoroth in #225 - Add
Diagnosticsinterface and rename other toMonacoDiagnosticby @marcoroth in #229 - Add
--no-log-fileoption toherb analyzecommand by @marcoroth in #231 - Add timing functionality to
herb analyzecommand by @marcoroth in #232 - Integrate Herb Linter into the Herb Language Server by @marcoroth in #193
- Add Project Analysis View in VS Code extension by @marcoroth in #138
New Linter Rules:
- Implement
html-no-block-inside-inlinelinter rule by @marcoroth in #199 - Add rule for not outputting from control flow tags by @drewhoffer in #205
- Add
html-no-empty-headingslinter rule by @marcoroth in #207 - Add
html-anchor-require-hreflinter rule by @NotGrm in #220 - Implement
erb-no-empty-tagslinter rule by @marcoroth in #224 - Implement
erb-require-whitespace-inside-tagslinter rule by @drewhoffer in #216 - Implement
html-aria-role-heading-requires-levellint rule by @drewhoffer in #219
Changed
- refactor: Expose Server class and restructure package architecture by @marcoroth in #144
- Improve formatting of Linter messages by @marcoroth in #201
- Exclude
main.cfrom WebAssembly builds by @marcoroth in #202 - Improve Herb Linter CLI output by @marcoroth in #200
- Refactor Linter and Linter Rules by @marcoroth in #203
- Show total number of issues in Herb Lint CLI by @marcoroth in #206
- Rename to violations in Herb Lint CLI and show violated rule names by @marcoroth in #213
- Rename
LintMessagetype toLintOffenseby @marcoroth in #227 - Rename
messagetooffensein Linter by @marcoroth in #228 - Add
Node#recursive_errorsso they bubble toParseResult#errorsby @marcoroth in #198
Fixed
- fix inconsistency in 'HTML tags + Text content' code-group by @hey-leon in #139
- Fix parser to handle quotes around ERB output as text content by @marcoroth in #143
- Improve parsing of attribute values with quotes by @marcoroth in #153
- Fix ternary operators being transformed into
ERBIfNodeby @marcoroth in #235 - Fix multi-line ERB location tracking by @marcoroth in #236
Documentation
- Update year for site/LICENSE.txt by @drewhoffer in #188
- Improve
README.mdand addCONTRIBUTING.mdby @drewhoffer in #178 - Integrate Herb Linter into playground by @marcoroth in #204
- Document Herb tools, packages, and libraries by @marcoroth in #230
- Show linter offenses inline in rule documentation pages by @marcoroth in #233
Internal
- Disable NX affected for now by @marcoroth in #132
New Contributors
- @hey-leon made their first contribution in #139
- @drewhoffer made their first contribution in #188
- @NotGrm made their first contribution in #220
Commits
Full Changelog: v0.3.1...v0.4.0
v0.3.1
Added
language-server: Support for Zed by @vitallium in zed-extensions/ruby#110language-server: Support for Neovim by @marcoroth in neovim/nvim-lspconfig#3925language-server: Support for Cursor (Open VSX Registry) by @marcoroth in https://open-vsx.org/extension/marcoroth/herb-lsp
Changed
language-server: Moveherb-language-serverexecutable tobin/by @marcoroth in b3f85ac
Fixed
vscode: Downgrade minimum vscode version to1.43.0by @marcoroth in 8f74c6cvscode: Don't activate extension onrubyfiles by @marcoroth in 9ca36ac
Commits
Full Changelog: v0.3.0...v0.3.1
v0.3.0
Added
- Herb Language Server and Visual Studio Code Extension by @marcoroth in #105
- New
@herb-tools/node-wasmpackage - New
@herb-tools/language-serverpackage - New
@herb-tools/vscodepackage
Changed
- Support
-vand--versionin Ruby CLI by @marcoroth in #124 - Rework result classes and types in JavaScript packages by @marcoroth in #125
- Resolve circular dependencies in
@herb-tools/coreby @marcoroth in #127
Commits
Full Changelog: v0.2.0...v0.3.0
v0.2.0
Added
- Add support for
ERBYieldNodeby @marcoroth in #96 - Add support for
ERBCaseMatchNodeandERBInNodeby @marcoroth in #107 - Add percentage to
herb analyzeCLI output by @marcoroth in #113 - Add RBS Inline Type Annotations by @marcoroth in #106
- Implement
Herb::Visitorin Ruby gem by @marcoroth in #116 - Implement JavaScript Visitors by @marcoroth in #120
Changed
- Memory management improvements in
analyze.candextract.cby @marcoroth in #115 - Refactor Ruby extension to reuse constants by @marcoroth in #117
- Increase buffer capacity safely and handle overflow errors by @marcoroth in #122
- Don't extract ERB comments as Ruby comments in
herb_extract_rubyby @marcoroth in #98 - Implement
free_analyzed_rubyfunction by @marcoroth in #111 - Free C Structs after creating Lex and Parse Results by @marcoroth in #112
- Rework
@herb-tools/nodenpm lifecycle scripts by @marcoroth in #108
Commits
Full Changelog: v0.1.1...v0.2.0
v0.1.1
0.1.1 (2025-04-20)
Fixes
- Fix
lz_stringrequire inherbRuby CLI by @marcoroth in e151e38 - Support UTF-8 characters in ERB blocks when pretty printing AST in Ruby by @marcoroth in #93
Docs
New Contributors
Commits
Full Changelog: v0.1.0...v0.1.1