emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Grammar checking


From: Michael Eliachevitch
Subject: Re: Grammar checking
Date: Fri, 31 Mar 2023 08:45:56 +0000


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.

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]