v1.5.0
Automattic/harperv1.5.0Jan 22, 2026by github-actions[bot]
AI Summary
This major release introduces the Weir language for writing linting rules, creates the harper-thesaurus, and adds extensive grammar improvements across multiple categories.
Key Highlights
- Created the Weir language for custom linting rules
- Introduced harper-thesaurus
- Added numerous grammar rules: imho→in my humble/honest opinion, more fast→faster, whom→who, vicious circle vs cycle, etc.
- Added browser dialect detection
- Made VS Code dialect indicator clickable to change dialect
- Hotkey support added
- Fixed various false positives and edge cases
New Features
- Weir language for linting rules
- harper-thesaurus
- Browser dialect detection
- Clickable dialect indicator in VS Code
- Hotkey support
- Grammar rules for subject-verb agreement
- Grammar rules for common mistakes (imho, more fast, whom, etc.)
- Obsidian plugin improvements
- Chrome extension fixes for various editors
Full Release Notes
## What's Changed * feat(cli): Support all potential md extensions by @Inhishonor in https://github.com/Automattic/harper/pull/2449 * fix: Allow exception `need to match` for `NeedToNoun` by @Greenheart in https://github.com/Automattic/harper/pull/2448 * feat: initiatively→proactively / initially by @hippietrail in https://github.com/Automattic/harper/pull/2432 * fix: propagate proper noun property to possessive forms by @hippietrail in https://github.com/Automattic/harper/pull/2399 * chore: +vibe coding terms; add `/` annotation for phrasal verbs by @hippietrail in https://github.com/Automattic/harper/pull/2452 * Add some political science terms to the dictionary by @Inhishonor in https://github.com/Automattic/harper/pull/2441 * feat: number agreement in this/these type(s) of thing(s) by @hippietrail in https://github.com/Automattic/harper/pull/2400 * build(deps): bump serde_json from 1.0.148 to 1.0.149 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2467 * fix(core): don't replace non-alphabetic characters when title-casing by @elijah-potter in https://github.com/Automattic/harper/pull/2454 * `harper-cli lint` keep overlapping lints switch & show lint priorities by @hippietrail in https://github.com/Automattic/harper/pull/2435 * feat: imho→in my humble/honest opinion by @hippietrail in https://github.com/Automattic/harper/pull/2468 * feat(core): create the Weir language by @elijah-potter in https://github.com/Automattic/harper/pull/2357 * chore: add "discoverable", "handoff" by @hippietrail in https://github.com/Automattic/harper/pull/2457 * refactor(core): merge semantically identical funcs by @86xsk in https://github.com/Automattic/harper/pull/2458 * doc: clarify instructions and project status by @elijah-potter in https://github.com/Automattic/harper/pull/2453 * feat: Add get_rel() to get a token relative to the end of a slice by @hippietrail in https://github.com/Automattic/harper/pull/2461 * chore: add "different tact" to "change tacts" linter by @hippietrail in https://github.com/Automattic/harper/pull/2469 * feat: create `harper-thesaurus` by @86xsk in https://github.com/Automattic/harper/pull/2085 * fix(core): PR getting flagged as 'misspelled' by @elijah-potter in https://github.com/Automattic/harper/pull/2476 * feat: Make the dialect indicator in the VS Code status bar clickable to change dialect by @hippietrail in https://github.com/Automattic/harper/pull/2443 * fix(core): ignore apostrophes in the `OrthographicConsistency` rule by @elijah-potter in https://github.com/Automattic/harper/pull/2475 * fix(chrome-ext): highlights are mis-positioned in fixed elements by @elijah-potter in https://github.com/Automattic/harper/pull/2477 * feat: take a look to → take a look at by @hippietrail in https://github.com/Automattic/harper/pull/2478 * feat: better of with → better off with by @hippietrail in https://github.com/Automattic/harper/pull/2483 * doc(core): describe how Weir's replacement strategies work by @elijah-potter in https://github.com/Automattic/harper/pull/2480 * fix: don't flag "no two" etc. by @hippietrail in https://github.com/Automattic/harper/pull/2489 * feat: very less → much less/far less/a lot less by @hippietrail in https://github.com/Automattic/harper/pull/2484 * feat: more fast → faster etc. by @hippietrail in https://github.com/Automattic/harper/pull/2263 * Hotkey by @LoganBrinsmead in https://github.com/Automattic/harper/pull/2149 * feat: fix "I walks" / "he walk" etc. by @hippietrail in https://github.com/Automattic/harper/pull/2333 * perf(test): improve test performance by @86xsk in https://github.com/Automattic/harper/pull/2473 * fix(core): panics in Weir by @elijah-potter in https://github.com/Automattic/harper/pull/2493 * fix(thesaurus): MacOS builds by using `ruzstd` by @elijah-potter in https://github.com/Automattic/harper/pull/2490 * build(deps): bump chrono from 0.4.42 to 0.4.43 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2535 * build(deps): bump thiserror from 2.0.17 to 2.0.18 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2533 * build(deps): bump indexmap from 2.12.1 to 2.13.0 by @dependabot[bot] in https://github.com/Automattic/harper/pull/2534 * Indian English tweaks by @hippietrail in https://github.com/Automattic/harper/pull/2507 * fix(core): fix `AnA` false-positives by @86xsk in https://github.com/Automattic/harper/pull/2538 * feat: whom → who when subject of verb by @hippietrail in https://github.com/Automattic/harper/pull/2528 * feat: obsess on → obsess over; obsessed on → obsessed with by @hippietrail in https://github.com/Automattic/harper/pull/2537 * feat: vicious circle vs cycle by @hippietrail in https://github.com/Automattic/harper/pull/2384 * fix(core): capitalization issue in `SpellCheck` by @86xsk in https://github.com/Automattic/harper/pull/2541 * feat: despite it is→ despite (it/its) being by @hippietrail in https://github.com/Automattic/harper/pull/2542 * feat: detect browser dialect by @hippietrail in https://github.com/Automattic/harper/pull/2485 * feat: to loose/too lose→too loose/to lose by @hippietrail in https://github.com/Automattic/harper/pull/2543 * feat: allow any preposition, special plurals for both nouns by @hippietrail in https://github.com/Automattic/harper/pull/2514 * fix(chrome-ext): Applying suggestions breaks cursor/keyboard in Draft.js and Slate editors by @draphy in https://github.com/Automattic/harper/pull/2495 * feat(cli): chunk annotations by @86xsk in https://github.com/Automattic/harper/pull/2450 * fix(core): allow both a/an for "LED" in `AnA` by @86xsk in https://github.com/Automattic/harper/pull/2556 * refactor(core): simplify code by @86xsk in https://github.com/Automattic/harper/pull/2555 * feat(core): create a good number of new Weir rules by @elijah-potter in https://github.com/Automattic/harper/pull/2506 * feat(harper.js): expose the Typst parser in `harper.js` by @elijah-potter in https://github.com/Automattic/harper/pull/2554 * docs: fix errors in documentation by @elijah-potter in https://github.com/Automattic/harper/pull/2557 * fix(chrome-ext): Applying suggestions duplicates text in WhatsApp Web Lexical editor by @draphy in https://github.com/Automattic/harper/pull/2563 * fix(harper-typst): condense contractions by @elijah-potter in https://github.com/Automattic/harper/pull/2558 * chore: dictionary curation by @hippietrail in https://github.com/Automattic/harper/pull/2496 * chore: Update dictionary with new entries by @Inhishonor in https://github.com/Automattic/harper/pull/2540 * refactor(core): remove dependency on `lazy_static` by @86xsk in https://github.com/Automattic/harper/pull/2560 * feat(harper-typst): update to Typst `0.14.2` by @elijah-potter in https://github.com/Automattic/harper/pull/2566 * fix(chrome-ext): remove mention of Chrome Extension to avoid confusion for Firefox users by @elijah-potter in https://github.com/Automattic/harper/pull/2567 ## New Contributors * @Inhishonor made their first contribution in https://github.com/Automattic/harper/pull/2449 * @Greenheart made their first contribution in https://github.com/Automattic/harper/pull/2448 * @draphy made their first contribution in https://github.com/Automattic/harper/pull/2495 **Full Changelog**: https://github.com/Automattic/harper/compare/v1.4.1...v1.5.0