v0.23.0

Automattic/harperv0.23.0Feb 25, 2025by github-actions[bot]

AI Summary

A significant update that introduces new linters and fixes but requires users to update their configuration keys due to a naming convention change.

Key Highlights

  • Renamed all linter rules and options from snake_case to PascalCase
  • Added linter for non-idiomatic 'back in the days'
  • Added linter for 'ban together'
  • Added support for 4-digit plural decades

Breaking Changes

  • Renamed all linter rules and configuration keys from snake_case to PascalCase (e.g., sentence_capitalization to SentenceCapitalization).

New Features

  • Added just sample command
  • Capitalize multi-word country and capital city names
  • Move could of etc from matcher.rs to its own linter

Full Release Notes

## What's Changed

The biggest change was to the naming convention for our settings in #726. We've already seen some configs breaking in #785, and we're sorry about that. The primary motivation was to clean up the user experience for Visual Studio Code and other platforms moving forward by using a more predictable scheme.

To use the new scheme, all you have to do is change your linter rules to use `PascalCase` rather than the previous `snake_case`. Additionally, if you're using either the `force_stable` option or the `ignore_link_title` option, you'll need to make those `PascalCase` as well.

* feat: another exception for "back in the days before" by @hippietrail in https://github.com/Automattic/harper/pull/712
* feat(core): allow the `ThenThan` linter to cover more cases by @elijah-potter in https://github.com/Automattic/harper/pull/714
* Create linter for non-idiomatic "back in the days" by @elijah-potter in https://github.com/Automattic/harper/pull/707
* Make `Lintkind::Spelling` exclusive to one rule. by @elijah-potter in https://github.com/Automattic/harper/pull/713
* feat: github template for reporting false positives by @hippietrail in https://github.com/Automattic/harper/pull/728
* chore: dictionary curation by @hippietrail in https://github.com/Automattic/harper/pull/727
* Overhaul by @elijah-potter in https://github.com/Automattic/harper/pull/726
* feat(core): added technical words to dictionary by @ficcdaf in https://github.com/Automattic/harper/pull/729
* feat: lex 4-digit plural decades by @hippietrail in https://github.com/Automattic/harper/pull/675
* fix(core): edge case found in Harper's documentation by @elijah-potter in https://github.com/Automattic/harper/pull/737
* fix(core): address edge cases in `ThenThan` rule by @elijah-potter in https://github.com/Automattic/harper/pull/735
* feat(core): add rule that corrects `ban together` by @elijah-potter in https://github.com/Automattic/harper/pull/734
* fix(vscode-plugin): update config keys to new standard by @mcecode in https://github.com/Automattic/harper/pull/733
* feat: reimplement "operative system(s)" by @hippietrail in https://github.com/Automattic/harper/pull/719
* fix(core): restrict `GeneralCompoundNouns` to ignore adverb prefixes by @elijah-potter in https://github.com/Automattic/harper/pull/736
* feat(core): added plural form of integration by @ficcdaf in https://github.com/Automattic/harper/pull/740
* build(deps): bump typst-syntax from 0.12.0 to 0.13.0 by @dependabot in https://github.com/Automattic/harper/pull/757
* build(deps): bump anyhow from 1.0.95 to 1.0.96 by @dependabot in https://github.com/Automattic/harper/pull/758
* build(deps-dev): bump prettier from 3.4.2 to 3.5.2 in /packages by @dependabot in https://github.com/Automattic/harper/pull/763
* build(deps-dev): bump @vitest/browser from 3.0.5 to 3.0.6 in /packages by @dependabot in https://github.com/Automattic/harper/pull/762
* build(deps-dev): bump @rollup/plugin-node-resolve from 15.3.1 to 16.0.0 in /packages by @dependabot in https://github.com/Automattic/harper/pull/764
* chore: dictionary curation by @hippietrail in https://github.com/Automattic/harper/pull/745
* feat: tests for sentences containing a decade by @hippietrail in https://github.com/Automattic/harper/pull/747
* feat(vscode-plugin): config updates by @mcecode in https://github.com/Automattic/harper/pull/754
* fix(core): improper pattern by @elijah-potter in https://github.com/Automattic/harper/pull/739
* doc(web): updated environment and language-server documentation on the website by @ficcdaf in https://github.com/Automattic/harper/pull/741
* build(deps): bump serde from 1.0.217 to 1.0.218 by @dependabot in https://github.com/Automattic/harper/pull/760
* feat: add `just sample` to list all forms of random dictionary words by @hippietrail in https://github.com/Automattic/harper/pull/646
* build(deps): bump ordered-float from 4.6.0 to 5.0.0 by @dependabot in https://github.com/Automattic/harper/pull/759
* build(deps-dev): bump @microsoft/api-documenter from 7.26.7 to 7.26.10 in /packages by @dependabot in https://github.com/Automattic/harper/pull/765
* feat: capitalize multi-word country and capital city names by @hippietrail in https://github.com/Automattic/harper/pull/703
* Fuzz results by @elijah-potter in https://github.com/Automattic/harper/pull/773
* feat: move 'could of' etc from `matcher.rs` to its own linter by @hippietrail in https://github.com/Automattic/harper/pull/715
* fix: better ascii and hex digit checks by @hippietrail in https://github.com/Automattic/harper/pull/776
* build(deps-dev): bump @microsoft/api-extractor from 7.49.2 to 7.50.1 in /packages by @dependabot in https://github.com/Automattic/harper/pull/761
* fix: mostly `j` annotations for adverbs in `-ly` by @hippietrail in https://github.com/Automattic/harper/pull/778

## New Contributors
* @ficcdaf made their first contribution in https://github.com/Automattic/harper/pull/729

**Full Changelog**: https://github.com/Automattic/harper/compare/v0.22.0...v0.23.0