            :buffer (current-buffer)
            :filename (buffer-file-name)))))
     ;; NOTE: Setting up eglot to automatically create flycheck errors for the buffer.
+    ;; Internally, this sets the lambda as the callback to be used by eglot
+    ;; when it receives a publishDiagnostics method from the server
     (eglot-flymake-backend
      (lambda (flymake-diags &rest _)
        (funcall callback
                 'finished
-                (mapcar #'flymake-diag->flycheck-err flymake-diags))))
-    ;; NOTE: Forcefully trigger a check in the buffer (function name is confusing)
-    (flycheck-buffer)))
+                (mapcar #'flymake-diag->flycheck-err flymake-diags))))))
 
 (defun +lsp--flycheck-eglot-available-p ()
   (bound-and-true-p eglot--managed-mode))

;;; flycheck-eglot --- Hacky eglot support in flycheck -*- lexical-binding: t; -*-

;;; Code:
(defun +lsp--flycheck-eglot-init (checker callback)
  "Clean up errors when done.

CHECKER is the checker (eglot).
CALLBACK is the function that we need to call when we are done, on all the errors."
  (cl-labels
      ((flymake-diag->flycheck-err


(push 'eglot flycheck-checkers)

(add-hook! 'eglot-managed-mode-hook
  (defun +lsp-eglot-prefer-flycheck-h ()
    (when eglot--managed-mode
      (when-let ((current-checker (flycheck-get-checker-for-buffer)))
