There are a few ways to get linting of prose (grammar and style, not just spellcheck) in Emacs. Unfortunately, there is no good language server implementation for the popular open-source command line tools. The best option right now is probably proselint, but vale gives better suggestions.
| Library | Language server? | Emacs package | Notes |
|---|---|---|---|
| Vale | Kind of | flycheck-vale | Seems like a good alternative for Grammarly-like linting, emacs package is out-of-date |
| Proselint | No | flymake-proselint | |
| LanguageTool | Maybe later | flycheck-languagetool flymake-languagetool emacs-langtool | Requires java, poor performance when using cli |
| write-good | No | None | |
| Textlint | No | flycheck (built-in support) | |
| Grammarly | Kind of | None | Grammarly API is going away in January 2024 |
See also:
Links to this note
-
Using Vale With Emacs for Prose Linting
After looking into linting prose in Emacs, I found a way to roll your own prose linter setup using vale (an extensible prose linter), efm-langserver (a generic language server), and eglot (a language server mode for Emacs).