3640 Commits

Author SHA1 Message Date
Elijah Potter
bfaa324c07 feat(core): create rule to title-case headings (#2297)
* feat(core): introduce `Heading` `TokenKind`

* feat(core): create `iter_headings` extension

* refactor(core): remove unhelpful tests

* chore(core): update snapshots

* refactor(core): avoid allocation where possible

* feat(core): create rule that enforces title case for headings

* fix(core): NP members should be capitalized

* fix(core): appease clippy

* feat(harper.js): allow `harper.js` to force headings

* fix(harper.js): make `organized_lints` similar: allow forced headings

* fix(harper.js): appease Biome

* feat(chrome-ext): expose title casing in Chrome extension

* fix(chrome-ext): content script console bloat

* test(core): title_case module more extensively; fix things

* refactor(core): remove useless branch

* refactor(core): use tokens over characters

* refactor(core): use token indices instead of spans
2025-12-05 20:35:00 +00:00
Elijah Potter
1301d20400 chore(core): delete dead code 2025-12-05 13:07:33 -07:00
Elijah Potter
e9eb82944e feat: Harper works great on Wattpad 2025-12-05 12:08:56 -07:00
Andrew Dunbar
cc15110b69 feat: implement #1036 join prefix to word (#2299)
* feat: implement #1036 join prefix to word

* fix: appease clippy

* fix: act on advice in review
2025-12-05 18:36:15 +00:00
Elijah Potter
d0d0ac72df hotfix: use parallel when available 2025-12-05 10:31:33 -07:00
Clay Dugo
a437d1abd6 fix(core): add canonicalize to the dictionary (#2294)
* Add canonicalize to the dictionary

* add British spelling
2025-12-04 15:22:28 +00:00
Andrew Dunbar
3def332854 feat: implement #1135 missing "be" (#2296)
* feat: implement #1135 missing "be"

* fix: appease clippy
2025-12-04 15:20:12 +00:00
Andrew Dunbar
2910319fb5 fix: flag "piece of advise" (#2266) 2025-12-03 22:15:50 +00:00
Elijah Potter
483c306110 fix(web): problems with the title casing page (#2293) 2025-12-03 22:15:01 +00:00
Elijah Potter
c246654906 feat(core): many new rules (#2292)
* feat(core): `Handful`

* feat(core): add several additional rules

* refactor(core): combine `ItsContraction` duplicates

* fix(core): `ItsContraction` should emit `LintKind::Punctuation`

In accordance to part of #2220

* chore(core): update snapshots

* feat(core): many more rules

* feat(core): many more

* feat(core): `CureFor`

* fix(core): merge fallout

* feat(core): expand according to feedback

* fix(core): appease clippy
2025-12-03 22:14:49 +00:00
Elijah Potter
94a83d7e78 hotfix(harper.js): doc generation for systems without parallel 2025-12-03 15:25:10 -07:00
Elijah Potter
72fd089764 Release 1.1.0
harper-brill@1.1.0
harper-comments@1.1.0
harper-core@1.1.0
harper-html@1.1.0
harper-ink@1.1.0
harper-jjdescription@1.1.0
harper-literate-haskell@1.1.0
harper-ls@1.1.0
harper-pos-utils@1.1.0
harper-python@1.1.0
harper-stats@1.1.0
harper-tree-sitter@1.1.0
harper-typst@1.1.0

Generated by cargo-workspaces
v1.1.0
2025-12-03 12:31:42 -07:00
Elijah Potter
e40967cf3e fix(core): seal extension traits 2025-12-03 12:27:39 -07:00
Elijah Potter
fc87bd518b fix(core): fix problems with the NeedToNoun rule (#2287) 2025-12-03 16:56:00 +00:00
Elijah Potter
bd319e7130 fix(core): ensure news isn't corrected to news (#2289)
* fix(core): ensure `news` isn't corrected to `news`

* fix(core): remove unused imports

* chore(core): update snapshots
2025-12-03 16:35:06 +00:00
Andrew Dunbar
8cfb684724 feat: wish x can → wish x could (#2291)
* feat: wish x can → wish x could

* fix: fmt
2025-12-03 15:31:13 +00:00
Elijah Potter
1ac108fb2c fix(web): add Edge extension URL as a trusted source 2025-12-02 15:13:47 -07:00
Elijah Potter
150656ee42 fix(core): issues with spell check (#2288)
* fix(core): `SpellCheck` not properly correcting `Generaly`

* refactor(core): move higher up

* chore(core): `just format`

* fix(core): appease Clippy
2025-12-02 21:34:36 +00:00
Elijah Potter
aa2cdd4029 feat(ls): add octo as a supported filetype (#2279)
I've started using `octo.nvim` for various code reviews. It seems to
work well with Harper
2025-12-02 18:40:55 +00:00
Andrew Dunbar
70d5861b94 refactor: new SequenceExpr and CharStringExt methods (#2269)
* refactor: new `SequenceExpr` and `CharStringExt` methods

* refactor: propagate new methods
2025-12-02 16:14:33 +00:00
Julien Voisin
30ff6e1f22 feat: add chroot to dictionary (#2270)
Co-authored-by: Elijah Potter <me@elijahpotter.dev>
2025-12-02 16:03:48 +00:00
Andrew Dunbar
8dd02aad4e feat: copywritten → copyrighted (#2276)
* feat: copywritten → copyrighted

* fix: `cargo fmt`
2025-12-02 15:51:00 +00:00
Elijah Potter
d31396e7a3 fix(core): add bypassable to the dictionary (#2280) 2025-12-02 15:47:13 +00:00
Elijah Potter
5d7bbeefc9 fix(core): ignore inflections of be in compound noun rule (#2281) 2025-12-02 15:46:41 +00:00
Elijah Potter
edff925df0 fix(chrome-ext): return focus to source element when SuggestionBox is closed (#2282)
* fix(chrome-ext): return focus to source element when `SuggestionBox` is closed

* test(chrome-ext): make sure focus ends up in the right places

* fix(chrome-ext): ignoring a suggestion should result in the right focus as well
2025-12-02 15:38:55 +00:00
Elijah Potter
611475176d fix(core): address edge cases in title_case module (#2284) 2025-12-02 08:35:30 -07:00
dependabot[bot]
212508e1d9 build(deps): bump tracing-subscriber from 0.3.20 to 0.3.22 (#2273)
Bumps [tracing-subscriber](https://github.com/tokio-rs/tracing) from 0.3.20 to 0.3.22.
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.3.20...tracing-subscriber-0.3.22)

---
updated-dependencies:
- dependency-name: tracing-subscriber
  dependency-version: 0.3.22
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 18:30:58 +00:00
Matthew Espino
63914aa23e fix(dict): update webpack entry (#2278) 2025-12-01 18:30:25 +00:00
Andrew Dunbar
4c539bc75f refactor: upgrade Expatriate to phrase_set_corrections (#2265) 2025-12-01 16:58:09 +00:00
dependabot[bot]
5ac4c0ad2e build(deps): bump criterion from 0.7.0 to 0.8.0 (#2272)
Bumps [criterion](https://github.com/criterion-rs/criterion.rs) from 0.7.0 to 0.8.0.
- [Release notes](https://github.com/criterion-rs/criterion.rs/releases)
- [Changelog](https://github.com/criterion-rs/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/criterion-rs/criterion.rs/compare/criterion-plot-v0.7.0...criterion-v0.8.0)

---
updated-dependencies:
- dependency-name: criterion
  dependency-version: 0.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 15:41:44 +00:00
dependabot[bot]
538b21fb0c build(deps): bump indexmap from 2.12.0 to 2.12.1 (#2274)
Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.12.0 to 2.12.1.
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md)
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.12.0...2.12.1)

---
updated-dependencies:
- dependency-name: indexmap
  dependency-version: 2.12.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 15:41:29 +00:00
dependabot[bot]
8fff5e9a56 build(deps): bump tracing from 0.1.41 to 0.1.43 (#2271)
Bumps [tracing](https://github.com/tokio-rs/tracing) from 0.1.41 to 0.1.43.
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-0.1.41...tracing-0.1.43)

---
updated-dependencies:
- dependency-name: tracing
  dependency-version: 0.1.43
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 15:41:10 +00:00
Elijah Potter
5d3beaad4f fix: ignore test dataset files from source code line count 2025-11-28 13:25:20 -07:00
Elijah Potter
a8e09d5635 Release 1.0.0
harper-brill@1.0.0
harper-comments@1.0.0
harper-core@1.0.0
harper-html@1.0.0
harper-ink@1.0.0
harper-jjdescription@1.0.0
harper-literate-haskell@1.0.0
harper-ls@1.0.0
harper-pos-utils@1.0.0
harper-python@1.0.0
harper-stats@1.0.0
harper-tree-sitter@1.0.0
harper-typst@1.0.0

Generated by cargo-workspaces
v1.0.0
2025-11-28 12:52:07 -07:00
Elijah Potter
235a4016ea feat(core): create more specialized rule for #2144 (#2253) 2025-11-28 12:39:23 -07:00
Elijah Potter
43e74ebdf3 refactor(core): remove implementation details from public API (#2256) 2025-11-28 12:36:04 -07:00
Elijah Potter
addb5bf441 feat(core): create rule to catch Me and <PRON> (#2245) 2025-11-28 12:14:11 -07:00
Elijah Potter
d9299b5e63 docs: define a versioning policy (#2257) 2025-11-28 12:13:55 -07:00
Andrew Dunbar
0889bf0c82 refactor: most pub use lines in mod.rs not needed (#2259)
* refactor: most `pub use` lines in `mod.rs` not needed

* fix: fmt

* docs: new linters probably won't need `pub use` in `mod.rs`
2025-11-28 18:50:21 +00:00
Andrew Dunbar
d7aa283759 feat: per say / per-se → per se (#2258) 2025-11-28 17:59:00 +00:00
Andrew Dunbar
256cf92196 feat: allow ExprLinter to work on sentences as well as chunks (#2165)
* feat: allow `ExprLinter` to work on sentences as well as chunks

* feat: senter linter using associated types

* fix: two linters missed conversion

* refactor(core): rename method + field

* fix(core): merge fallout

---------

Co-authored-by: Elijah Potter <me@elijahpotter.dev>
2025-11-28 16:44:36 +00:00
Andrew Dunbar
90efaf6430 fix: don't flag 'every day free' (#2260) 2025-11-28 15:37:58 +00:00
Elijah Potter
25f2c371d9 fix(core): edge case in dictionary (#2255) 2025-11-28 08:38:41 -07:00
Elijah Potter
a03e4903c8 fix(ls): use code key in diagnostics (#2254) 2025-11-26 10:48:53 -07:00
Elijah Potter
a5539e4a48 feat(cli): use Rayon when linting many items (#2244) 2025-11-26 10:17:58 -07:00
Andrew Dunbar
2a954e7014 feat: await for → await / wait for (#2250) 2025-11-26 16:58:09 +00:00
Elijah Potter
20fa392611 feat(core): FindFine (#2248) 2025-11-26 09:57:28 -07:00
Elijah Potter
7b77964ae1 test(core): check that #1772 is resolved (#2247) 2025-11-26 09:56:41 -07:00
Elijah Potter
230e142404 test: #2233 and #1097 (#2239) 2025-11-26 09:55:17 -07:00
Andrew Dunbar
c4f04faa41 fix: 15 ExprLinters in lint_group.rs wrongly use insert_struct_rule! (#2249) 2025-11-26 15:53:26 +00:00