diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index 1f904fc2e..8477a018b 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -47,9 +47,10 @@ (add-transient-hook! #'cider-stacktrace-render-cause (cider--stacktrace-adapt-to-theme)) :config (add-hook 'cider-mode-hook #'eldoc-mode) - (set-lookup-handlers! '(cider-mode cider-repl-mode) - :definition #'+clojure-cider-lookup-definition - :documentation #'cider-doc) + (unless (featurep! +lsp) + (set-lookup-handlers! '(cider-mode cider-repl-mode) + :definition #'+clojure-cider-lookup-definition + :documentation #'cider-doc)) (set-popup-rules! '(("^\\*cider-error*" :ignore t) ("^\\*cider-repl" :quit nil :ttl nil) @@ -80,6 +81,14 @@ ;; See https://github.com/clojure-emacs/cider/issues/1872 cider-repl-pop-to-buffer-on-connect 'display-only) + (when (featurep! +lsp) + (setq cider-eldoc-display-for-symbol-at-point nil + cider-font-lock-dynamically nil) + (add-hook! 'cider-mode-hook + (defun +clojure--cider-disable-completion () + "Use lsp completion instead of cider." + (remove-hook 'completion-at-point-functions #'cider-complete-at-point)))) + ;; Error messages emitted from CIDER is silently funneled into *nrepl-server* ;; rather than the *cider-repl* buffer. How silly. We might want to see that ;; stuff and who's going to check *nrepl-server* on every startup? I've got a @@ -234,13 +243,18 @@ (use-package! clj-refactor :hook (clojure-mode . clj-refactor-mode) :config - (set-lookup-handlers! 'clj-refactor-mode - :references #'cljr-find-usages) + (unless (featurep! +lsp) + (set-lookup-handlers! 'clj-refactor-mode + :references #'cljr-find-usages)) + (when (featurep! +lsp) + (setq cljr-add-ns-to-blank-clj-files nil)) (map! :map clojure-mode-map :localleader :desc "refactor" "R" #'hydra-cljr-help-menu/body)) +;; clojure-lsp already uses clj-kondo under the hood (use-package! flycheck-clj-kondo - :when (featurep! :checkers syntax) + :when (and (featurep! :checkers syntax) + (not (featurep! +lsp))) :after flycheck) diff --git a/modules/lang/clojure/doctor.el b/modules/lang/clojure/doctor.el index afe08de87..0e973ce24 100644 --- a/modules/lang/clojure/doctor.el +++ b/modules/lang/clojure/doctor.el @@ -1,6 +1,7 @@ ;; -*- lexical-binding: t; no-byte-compile: t; -*- ;;; lang/clojure/doctor.el -(when (featurep! :checkers syntax) +(when (and (featurep! :checkers syntax) + (not (featurep! +lsp))) (unless (executable-find "clj-kondo") (warn! "Couldn't find clj-kondo. flycheck-clj-kondo will not work.")))