Skip to content

Releases: Automattic/harper

v0.14.0

31 Dec 19:42
Compare
Choose a tag to compare

What's Changed

This is a much smaller release, but there are some key changes.

Rust and JavaScript consumers of Harper can now access individual lint descriptions via Linter.description() and Linter.getLintDescriptions(), respectively. We've also added the ability to toggle Web Worker usage in the Obsidian plugin.

  • docs: Fixup README links for language server integration by @claydugo in #342

New Contributors

Full Changelog: v0.13.0...v0.14.0

v0.13.0

30 Dec 16:11
Compare
Choose a tag to compare

What's Changed

It has been more than two months since the last update to Harper. A lot has changed, and we're excited to see how it helps you write better-documented code, faster.

Automattic Acquires Harper

Until now, Harper has been a side project. I would work on it in my spare time or during lecture if I was feeling particularly bored. As of last week, that has changed.

As reported by TechCrunch and announced on their blog, moving forward I will be working for Automattic full-time to make Harper the most useful and portable grammar checker out there. I will continue to support harper-ls and continue to accept pull requests for the various other Harper integrations, but much of my effort will be focused on initiatives to bring Harper to Automattic's products.

Harper Gets Faster

With the latest release, Harper is getting even faster, particularly on initial and uncached document load. Until now, Harper has been using a homegrown spell-checking algorithm that, while naive, has been quite effective at delivering quality corrections. Over the last several months, Grant Lemons has been working on a significant improvement to this algorithm, leveraging finite-state-transducers to more quickly search for valid words of minimum edit distance to your misspelled ones. You can read more about that work on Grant's site.

This also comes to the benefit of our more high-level analysis and pattern-matching engines, which are the main reasons we couldn't use an off-the-shelf spellchecking library.

harper.js

With Harper 0.13.0, we're releasing a new JavaScript library for using Harper anywhere on the web or on Node.js. We're calling it harper.js, and you can find it on NPM. Documentation is more than a little sparse at the moment. We'll be adding to the public documentation in the coming days, so keep an eye on it.

Feedback

As per usual, don't be afraid to file an issue if you have any feedback, feature requests or problems. A lot has changed, so we'd be worried if there weren't a couple issues.

New Contributors

Full Changelog: v0.12.0...v0.13.0

v0.12.0

13 Oct 15:57
Compare
Choose a tag to compare

What's Changed

A lot has changed since the last release, so refer to the more detailed notes below for a comprehensive view.

We have a lot of bug-fixes coming your way, as well as (thanks to @mcecode) the creation and availability of a Visual Studio Code plugin! You can install it through the official marketplace, OpenVSX or one of the VSIX packages found in this release.

Although it is not in the official Harper repository, I do want to mention that @StevenLove has put in the work to get a Harper plugin in the official extension shop for Zed.

We do have one "breaking" change. Since we've observed that the Windows' build of Harper has been broken for some time now, @mcecode has swapped out the target compiler to msvc. This might delay availability of the latest version in Mason.

In the Obsidian plugin, we've also significantly improved the settings page.

As per usual, don't be afraid to file an issue if you have any feedback, feature requests or problems.

  • feat: new analysis and suggestions for correct usage of ellipsis.
  • fix: break words on hyphens for the an_a lint by @alex-ozdemir in #168
  • dict: add TCP, UDP and QUIC to the default dictionary. by @fisherdarling in #179
  • Move to stable rustc by @fisherdarling in #186
  • feat: add naïve to dictionary by @grantlemons in #190
  • fix: add blurb on language support and change count of ways to use by @grantlemons in #191
  • feat: Collapse identifiers seperated by hyphens or underscores if they exist in the file dictionary by @grantlemons in #199
  • fix(#198): limit tokio threads to 4 (+ main) by @grantlemons in #202
  • Windows GitHub Actions builds missing dependency by @mcecode in #217
  • VS Code Support by @mcecode in #200
  • build(deps): bump itertools from 0.12.1 to 0.13.0 by @dependabot in #163
  • build(deps): bump unicode-width from 0.1.12 to 0.1.13 by @dependabot in #162
  • build(deps): bump hashbrown from 0.14.5 to 0.15.0 by @dependabot in #212
  • build(deps): bump futures from 0.3.30 to 0.3.31 by @dependabot in #210
  • build(deps): bump unicode-width from 0.1.13 to 0.2.0 by @dependabot in #188
  • build(deps): bump rollup from 3.29.4 to 4.22.4 in /packages by @dependabot in #178
  • build(deps): bump clap from 4.5.4 to 4.5.18 by @dependabot in #176
  • build(deps-dev): bump vite from 4.5.3 to 4.5.5 in /packages by @dependabot in #172
  • build(deps-dev): bump rollup from 4.18.0 to 4.22.4 in /packages by @dependabot in #177

New Contributors

Full Changelog: v0.11.0...v0.12.0

v0.11.0

13 Sep 15:17
Compare
Choose a tag to compare

What's Changed

  • fix: remove dbg by @StevenLove in #136
  • fix: speed up just dogfood execution by @StevenLove in #140
  • feat: allow to configure file dictionary path by @philipp-tailor in #145
  • fix: test 'spell::hunspell::tests::correctly_expands_test_files' failed by @Cryolitia in #157
  • feat: created linter for offensive language
  • feat: created linter for improperly terminating conjunctions
  • feat: improved documentation on --help

New Contributors

Full Changelog: v0.10.0...v0.11.0

v0.10.0

31 Aug 17:34
Compare
Choose a tag to compare

What's Changed

  • Removed unneeded error logs from harper-ls
  • Created linter for proper use of linking verbs (disabled by default for now)
  • Added settings page and initial commands to Obsidian plugin
  • Removed dead code
  • Fixed cache-busting issue resulting in poor spellchecking performance
  • Fixed issues with certain words in the AnA linter
  • The markdown parser should now ignore hidden Wikilink text
  • Enhanced documentation
  • feat: make vscode extension packageable by vsce by @mcecode in #117
  • build(deps): bump micromatch from 4.0.7 to 4.0.8 in /packages by @dependabot in #120
  • build(deps-dev): bump svelte from 4.2.17 to 4.2.19 in /packages by @dependabot in #124

New Contributors

Full Changelog: v0.9.5...v0.10.0

v0.9.5

17 Aug 17:02
Compare
Choose a tag to compare

What's Changed

  • Improved syntactic analysis via dictionary expansion inference.
  • Added code blocks to CJK classifier
  • Added words to dictionary via dogfooding.

v0.9.4

13 Aug 15:55
Compare
Choose a tag to compare

What's Changed

  • Harper should now ignore CJK characters.

v0.9.3

09 Aug 05:13
Compare
Choose a tag to compare

What's Changed

  • Reverted previous (buggy) changes related to hyphenated words. See #101 and #107 for details.

v0.9.2

08 Aug 02:37
Compare
Choose a tag to compare

What's Changed

  • Harper no longer marks "repo", "repos", or "repo's" as incorrect.
  • Harper now recognizes hyphenated words (such as "non-null") as single tokens. Lints for improperly hyphenated words are in the works. We're actively seeking feedback on this.
  • Several internal changes that will make more advanced lints and syntactic analysis easier.

v0.9.0

25 Jul 02:10
Compare
Choose a tag to compare

What's Changed?

  • Dotted initialism and things like "i.e." and "e.g." are no longer false positives
  • JavaDoc and HTML are now properly parsed.

Full Changelog: v0.8.8...v0.9.0