Building on the dependency updates from the previous release, v3.17.0 brings the most significant performance improvements since v3.0.0.
It also brings support for inline scopes and style-level severity changes.
If you use MDX, make sure to update mdx2vast to v0.5.0 to see the performance gains.
✨ Sponsor Spotlight
Special thanks to Mintlify for becoming Vale's latest sponsor and the first to receive a Spotlight page!
Changelog
- 989be25 docs: add sponsor
- ff6de4d fix: stop sharing per-file scope state across goroutines
- 5d413a0 fix: name the spelling a vocab term wants, not its pattern
- 5f071ef perf: reuse one Docutils interpreter instead of one per file
- 4fd0ba6 perf: reuse one mdx2vast process instead of one per file
- d65b54c perf: keep Asciidoctor running instead of restarting it per file
- eea7ac3 perf: stop scanning the whole document to place each alert
- d6308d2 docs: update contributing
- dccf897 perf: run one search per block instead of one per line
- 769943c fix: stop narrowing paragraph to a scope nothing carries
- 67f6502 fix: read block-comment decoration as decoration, not markup
- c937d0c perf: stop deduplicating rule runs per text
- 3bf1bb9 perf: read literals through a pattern's lookarounds
- c795e3e perf: read literals through a pattern's lookarounds
- 1bbfca0 perf: decide a rule's scope once per block scope
- 38849c4 build: use regexp2 v2.5.4
- bf80cba perf: compile the capitalization word pattern once
- 000a253 perf: only map runs to the source when something will ask
- d59f600 docs: write an actual security policy
- 3a8a295 fix: place inline fragments where they actually are
- 8d4b2d0 fix: close extracted files properly
- b6b4ae4 fix: bound COMPOUNDMIN and COMPOUNDRULE
- 8b961fb feat: support inline scopes
- b828088 feat: allow scoping by class
- 0dc010c test: add cases for new package-level settings
- 473c6c1 feat: allow a setting to be given for a whole style
- 9c1aee1 fix: honour a sequence rule's declared scope
- ff1b04b perf: run each rule once per distinct text
- 59ba324 perf: run each rule once per distinct text
- 21743d1 perf: locate spelling alerts by offset
- e29df0e perf: stop searching once a usable match is found
- 5cab109 perf: skip rules whose tokens cannot match
- d92fed0 perf: Split selectors once instead of on every comparison
- 391e3c0 fix: stop section styles leaking across globs