From b957142e3ec8eee9aa0ec465562e17589090a9b7 Mon Sep 17 00:00:00 2001 From: Jeetaditya Chatterjee Date: Tue, 16 Aug 2022 20:12:45 +0100 Subject: [PATCH] feat(lsp): use flymake when enabled --- modules/lang/clojure/packages.el | 4 +++- modules/tools/lsp/+eglot.el | 8 +++++++- modules/tools/lsp/+lsp.el | 6 ++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/modules/lang/clojure/packages.el b/modules/lang/clojure/packages.el index 04ce3550d..496b3ac63 100644 --- a/modules/lang/clojure/packages.el +++ b/modules/lang/clojure/packages.el @@ -17,7 +17,9 @@ (package! clojure-mode :pin "3453cd229b412227aaffd1dc2870fa8fa213c5b1") (package! clj-refactor :pin "b5abe655e572a6ecfed02bb8164b64716ef76b8e") (package! cider :pin "1ed5163433c991c00ea83fdd4447e8daf4aeccbe") -(when (modulep! :checkers syntax) + +(when (and (modulep! :checkers syntax) + (not (modulep! :checkers syntax +flymake))) (package! flycheck-clj-kondo :pin "ff7bed2315755cfe02ef471edf522e27b78cd5ca")) (package! jet :pin "f007660c568e924e32d486a02aa4cd18203313cc") (package! neil diff --git a/modules/tools/lsp/+eglot.el b/modules/tools/lsp/+eglot.el index a5b6d2e8a..21b68ea13 100644 --- a/modules/tools/lsp/+eglot.el +++ b/modules/tools/lsp/+eglot.el @@ -19,7 +19,8 @@ ;; NOTE We disable eglot-auto-display-help-buffer because :select t in ;; its popup rule causes eglot to steal focus too often. eglot-auto-display-help-buffer nil) - (when (modulep! :checkers syntax) + (when (and (modulep! :checkers syntax) + (not (modulep! :checkers syntax +flymake))) (setq eglot-stay-out-of '(flymake))) :config @@ -33,6 +34,11 @@ (add-to-list 'doom-debug-variables '(eglot-events-buffer-size . 0)) + (when (and (modulep! :checkers syntax) + (not (modulep! :checkers syntax +flymake))) + (after! flycheck + (load! "autoload/flycheck-eglot"))) + (defadvice! +lsp--defer-server-shutdown-a (fn &optional server) "Defer server shutdown for a few seconds. This gives the user a chance to open other project files before the server is diff --git a/modules/tools/lsp/+lsp.el b/modules/tools/lsp/+lsp.el index ce33181d6..cfc8a15df 100644 --- a/modules/tools/lsp/+lsp.el +++ b/modules/tools/lsp/+lsp.el @@ -34,6 +34,11 @@ Can be a list of backends; accepts any value `company-backends' accepts.") ;; Make breadcrumbs opt-in; they're redundant with the modeline and imenu (setq lsp-headerline-breadcrumb-enable nil) + ;; Explicitly tell lsp to use flymake; Lsp will default to flycheck if found + ;; even if its a dependency + (when (modulep! :checkers syntax +flymake) + (setq lsp-diagnostics-provider :flymake)) + ;; Let doom bind the lsp keymap. (when (modulep! :config default +bindings) (setq lsp-keymap-prefix nil)) @@ -67,6 +72,7 @@ Can be a list of backends; accepts any value `company-backends' accepts.") :implementations '(lsp-find-implementation :async t) :type-definition #'lsp-find-type-definition) + (defadvice! +lsp--respect-user-defined-checkers-a (fn &rest args) "Ensure user-defined `flycheck-checker' isn't overwritten by `lsp'." :around #'lsp-diagnostics-flycheck-enable