branch: elpa/flycheck
commit ce489d8973b49828466020a3640e00b4b04753dd
Author: Bozhidar Batsov <[email protected]>
Commit: Bozhidar Batsov <[email protected]>
Modernize Flycheck vs Flymake comparison
- Fix stale claims: async checking works for both, update language counts
- Add revert-buffer trigger, note Flymake project-wide diagnostics
- Rewrite Eglot section: neutral tone, describe flycheck-eglot properly
- Remove adversarial language and outdated lsp-mode recommendation
---
doc/user/flycheck-versus-flymake.rst | 61 +++++++++++++++++-------------------
1 file changed, 28 insertions(+), 33 deletions(-)
diff --git a/doc/user/flycheck-versus-flymake.rst
b/doc/user/flycheck-versus-flymake.rst
index 109ea8291c..5c0403b44b 100644
--- a/doc/user/flycheck-versus-flymake.rst
+++ b/doc/user/flycheck-versus-flymake.rst
@@ -14,10 +14,11 @@ to `edit this page`_ and improve it.
.. note::
- This comparison reflects the major overhaul of Flymake in Emacs 26.1. As
- Flycheck and Flymake are moving targets we can't guarantee that the data
here
- will always reflect the current state of both projects. If you notice that
- something is incorrect, please let our team know.
+ Flymake was significantly overhauled in Emacs 26.1 and has continued to
+ evolve since. As Flycheck and Flymake are both moving targets we can't
+ guarantee that the data here will always reflect the current state of both
+ projects. If you notice that something is incorrect, please let our team
+ know.
.. _flymake-easy: https://github.com/purcell/flymake-easy
.. _edit this page:
https://github.com/flycheck/flycheck/edit/master/doc/user/flycheck-versus-flymake.rst
@@ -36,16 +37,16 @@ detail.
+---------------------------+-----------------------+-----------------------+
|Built-in |no |yes |
+---------------------------+-----------------------+-----------------------+
-|`Supported languages`_ |100+ built-in, |10 built-in, |
+|`Supported languages`_ |100+ built-in, |~10 built-in, |
| |200+ w/ 3rd-party |50+ w/ 3rd party |
+---------------------------+-----------------------+-----------------------+
|`Automatic syntax |built-in |manual |
|checking`_ | | |
+---------------------------+-----------------------+-----------------------+
|Check triggers |save, newline, change, |save, newline, change |
-| |buffer switch | |
+| |buffer switch, revert | |
+---------------------------+-----------------------+-----------------------+
-|Asynchronous checking |yes, always |yes, for some modes |
+|Asynchronous checking |yes |yes |
+---------------------------+-----------------------+-----------------------+
|`Automatic syntax checker |by major mode and |no |
|selection <Syntax checker |custom predicates | |
@@ -78,12 +79,11 @@ detail.
| |(e.g. tooltip, popup | |
| |w/ 3rd party packages) | |
+---------------------------+-----------------------+-----------------------+
-|List of all errors |yes; filterable by |yes |
-| |error level | |
+|List of all errors |yes; filterable by |yes; project-wide |
+| |error level |diagnostics (28+) |
+---------------------------+-----------------------+-----------------------+
-|`Supported by Eglot`_ |no, but a compatibility|yes |
-| |package exists | |
-| |(``flycheck-eglot``) | |
+|`Supported by Eglot`_ |yes, via |yes (built-in) |
+| |``flycheck-eglot`` | |
+---------------------------+-----------------------+-----------------------+
|`Supported by lsp-mode`_ |yes |yes |
+---------------------------+-----------------------+-----------------------+
@@ -122,12 +122,14 @@ Syntax checkers
Supported languages
~~~~~~~~~~~~~~~~~~~
-**Flymake** comes with support for Emacs Lisp, Ruby (``ruby`` for syntax check
-and ``rubocop`` for lints), Python and Perl. In addition, backends written for
-the legacy Flymake are compatible with the new implementation.
+**Flymake** comes with built-in backends for Emacs Lisp, Ruby (``ruby`` for
+syntax check and ``rubocop`` for lints), Python, Perl, and a handful of others.
+The community provides additional backends via third-party packages. When used
+with Eglot, Flymake gains support for any language with an LSP server.
-**Flycheck** provides support for `over 50 languages <flycheck-languages>` with
-over 100 syntax checkers, most of them contributed by the community.
+**Flycheck** provides support for `over 60 languages <flycheck-languages>` with
+over 100 syntax checkers, most of them contributed by the community. When used
+with ``lsp-mode`` or ``flycheck-eglot``, Flycheck also gains LSP-based
checking.
Definition of new syntax checkers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -292,28 +294,21 @@ errors.
Supported by Eglot
~~~~~~~~~~~~~~~~~~
-`Eglot <https://github.com/joaotavora/eglot>`_ is the built-in LSP package in
-Emacs, starting with version 29. It uses internally Flymake to render
-diagnostics received by the LSP server (by providing a Flymake backend).
+`Eglot <https://github.com/joaotavora/eglot>`_ is the built-in LSP client in
+Emacs (since version 29). It uses Flymake internally to display diagnostics
+from the LSP server.
-It seems that many people were forced to move to Flymake, because they wanted
to
-use Eglot and its maintainer (who's also the maintainer of Flymake) didn't want
-to provide Flycheck integration (backend) for it (see the relevant `discussion
-<https://github.com/joaotavora/eglot/issues/42>`_).
-
-.. note::
-
- `flycheck-eglot <https://github.com/flycheck/flycheck-eglot>`_ is the best
- workaround for this unfortunate situation that exists today.
+Eglot does not provide built-in Flycheck support, but the
+`flycheck-eglot <https://github.com/flycheck/flycheck-eglot>`_ package bridges
+this gap. It routes Eglot's LSP diagnostics through Flycheck, so you can use
+Eglot for LSP features while keeping Flycheck for error display, navigation
+and your existing non-LSP checkers.
Supported by lsp-mode
~~~~~~~~~~~~~~~~~~~~~
`lsp-mode <https://github.com/emacs-lsp/lsp-mode>`_ is a popular alternative to
-Eglot that supports both Flycheck and Flymake.
-
-As you might imagine we encourage Flycheck users to use ``lsp-mode`` until we
find
-some solution for the existing limitations in Eglot.
+Eglot that supports both Flycheck and Flymake out of the box.
.. rubric:: Footnotes