Make eglot work with clojure-lsp
This commit is contained in:
parent
963dd42db4
commit
035285121b
|
@ -52,7 +52,6 @@
|
||||||
gdscript-mode
|
gdscript-mode
|
||||||
meson-mode
|
meson-mode
|
||||||
lsp-scheme
|
lsp-scheme
|
||||||
clojure-mode
|
|
||||||
cider
|
cider
|
||||||
aggressive-indent
|
aggressive-indent
|
||||||
graphviz-dot-mode
|
graphviz-dot-mode
|
||||||
|
@ -92,6 +91,8 @@
|
||||||
badwolf-theme
|
badwolf-theme
|
||||||
clojure-mode
|
clojure-mode
|
||||||
clojure-ts-mode
|
clojure-ts-mode
|
||||||
|
cider
|
||||||
|
flycheck-clj-kondo
|
||||||
ace-window
|
ace-window
|
||||||
avy
|
avy
|
||||||
paredit
|
paredit
|
||||||
|
|
|
@ -24,25 +24,34 @@
|
||||||
(eval-when-compile
|
(eval-when-compile
|
||||||
(require 'fpkg))
|
(require 'fpkg))
|
||||||
|
|
||||||
(defun fg42/clojure-ts-mode-setup ()
|
|
||||||
"A hook handler to setup cpp related configurations."
|
|
||||||
(setq-local company-backends
|
|
||||||
'((company-capf :with company-yasnippet) :separate
|
|
||||||
(company-keywords company-dabbrev company-ispell) :separate
|
|
||||||
company-files))
|
|
||||||
;; We set eglot's autoload command to `eglot-ensure'
|
|
||||||
(eglot-ensure))
|
|
||||||
|
|
||||||
(use! clojure-mode
|
(use! flycheck-clj-kondo
|
||||||
|
"flycheck linter for clojure using `clj-konda'"
|
||||||
|
:defer t)
|
||||||
|
|
||||||
|
;; (defun fg42/clojure-ts-mode-setup ()
|
||||||
|
;; "A hook handler to setup cpp related configurations."
|
||||||
|
;; ;; We set eglot's autoload command to `eglot-ensure'
|
||||||
|
;; (eglot-ensure))
|
||||||
|
|
||||||
|
(use! clojure-ts-mode
|
||||||
"Clojure mode"
|
"Clojure mode"
|
||||||
:init
|
;; :init
|
||||||
(add-to-list 'major-mode-remap-alist '(clojure-mode . clojure-ts-mode))
|
;; (add-to-list 'major-mode-remap-alist '(clojure-mode . clojure-ts-mode))
|
||||||
:mode ("\\.cljs\\'" . clojure-ts-mode)
|
:mode (("\\.clj\\'" . clojure-ts-mode)
|
||||||
|
("\\.cljs\\'" . clojure-ts-mode)
|
||||||
|
("\\.cljc\\'" . clojure-ts-mode))
|
||||||
|
:config
|
||||||
|
(with-eval-after-load 'eglot
|
||||||
|
;; Force nil to use nixpkgs-fmt for formatting
|
||||||
|
(let ((clojure-lsp '(clojure-ts-mode . clojure-mode)))
|
||||||
|
(require 'flycheck-clj-kondo)
|
||||||
|
(add-to-list 'eglot-server-programs clojure-lsp)))
|
||||||
|
|
||||||
:hook
|
:hook
|
||||||
(clojure-ts-mode . company-mode)
|
(clojure-ts-mode . company-mode)
|
||||||
(clojure-ts-mode . company-box)
|
(clojure-ts-mode . cider)
|
||||||
(clojure-ts-mode . flycheck-clj-kondo)
|
(clojure-ts-mode . eglot-ensure))
|
||||||
(clojure-ts-mode . clojure-ts-mode-setup)
|
|
||||||
(clojure-ts-mode . lsp))
|
|
||||||
|
|
||||||
(provide 'fg42/langs/clojure)
|
(provide 'fg42/langs/clojure)
|
||||||
|
;;; clojure.el ends here
|
||||||
|
|
|
@ -52,8 +52,10 @@
|
||||||
, slock
|
, slock
|
||||||
, supportPython ? true
|
, supportPython ? true
|
||||||
, supportVerilog ? true
|
, supportVerilog ? true
|
||||||
|
, supportClojure ? true
|
||||||
, svls
|
, svls
|
||||||
, verilator
|
, verilator
|
||||||
|
, clojure-lsp
|
||||||
,
|
,
|
||||||
}:
|
}:
|
||||||
with builtins;
|
with builtins;
|
||||||
|
@ -99,12 +101,14 @@ let
|
||||||
# SystemC is required by verilator that at the
|
# SystemC is required by verilator that at the
|
||||||
# moment is only available on Linux
|
# moment is only available on Linux
|
||||||
verilator
|
verilator
|
||||||
]) ++ (lib.optional (supportWM && stdenv.isLinux) [
|
]) ++ (lib.optional (supportClojure) [ clojure-lsp ])
|
||||||
|
++ (lib.optional (supportWM && stdenv.isLinux) [
|
||||||
# Window manager supports works on Linux only
|
# Window manager supports works on Linux only
|
||||||
xorg.xhost
|
xorg.xhost
|
||||||
slock
|
slock
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
paths = map (x: "${x}/bin/") (lib.lists.flatten runtimeBins);
|
paths = map (x: "${x}/bin/") (lib.lists.flatten runtimeBins);
|
||||||
pathsStr = lib.strings.concatStrings (lib.strings.intersperse ":" paths);
|
pathsStr = lib.strings.concatStrings (lib.strings.intersperse ":" paths);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue