> I tried a couple of grammar checkers in Emacs, integrated via Flymake and Eglot. > The one that works best for me is this Grammarly language server [1]. > Best in terms of diagnostics. > Some users may find it too intrusive, so it may be a personal preference thing. > However, it is not usable for larger buffers because it is too slow. > Maybe some narrowing functionality can help. > Also, there may be other implications regarding using Grammarly. > The LanguageTool language server is available as well, but It is not as > effective as Grammarly to catch mistakes and offer suggestions. > > [0] https://github.com/emacs-languagetool/flymake-languagetool > [1] https://github.com/emacs-grammarly/eglot-grammarly Most recently I also reverted to grammar checking via LSP servers with Eglot. Grammarly is powerful an I like knowing that it's powered by Common Lisp, but due to its proprietary nature it's not something that fits well with the philosophy of Emacs and the FSF. I'm checking a LaTeX-file, where I found the "ltex" [3] language server to be useful [3]. It's basically a Languagetool language server, but aware of markdown and LaTeX syntax. But in practice it doesn't seem to do anything much smarter than just ignoring certain syntactic commands or macros. So plain Languagetool might be sufficient if one could configure it with text-faces like in `flyspell-prog-mode' or faces to ignore. One issue with Eglot is that afaik it currently only allows for one language server to be active at a time, so if I want to check the grammar I need to switch the active LSP server. I think it was mentioned as a possible feature in the future to allow different simultaneous language servers for different LSP capabilities, maybe one main one for completion and thinks like rename and two LSP's for linting, for instance. I don't know how far that is, but I'm aware that Eglot development is very active and there are many other issues. Writing text is one of the core functionalities of an editor and therefore I think that grammar checking could be integrated more tightly than just relying on Eglot. And as I just discussed it's something that might used in parallel to a language server. However, the strength of using LSP servers for linting is that it's easy to change grammar checking LSP servers without _any_ additional work required on Emacs side. So I'm not sure if coupling Emacs tightly to Languagetool and not allowing for alternatives is the way to go. [3]: https://valentjn.github.io/ltex. Actually there's even a special package for that https://github.com/emacs-languagetool/eglot-ltex, but in my opinion that's not really necessary, it just adds some custom eglot configuration.