summaryrefslogtreecommitdiffstats
path: root/lisp/init-eglot.el
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2023-03-20 18:52:32 +0100
committerMartin Polden <mpolden@mpolden.no>2023-03-20 18:52:32 +0100
commitaffa91d4c7442f7ac1fc8513ca89883a1570f014 (patch)
tree2de2fbebce28eff67d45c9d8cf8eec2bef902b26 /lisp/init-eglot.el
parentd301b09bc7f8433a4d42ea89ff10dca440f5794e (diff)
eglot: simplify
Diffstat (limited to 'lisp/init-eglot.el')
-rw-r--r--lisp/init-eglot.el17
1 files changed, 8 insertions, 9 deletions
diff --git a/lisp/init-eglot.el b/lisp/init-eglot.el
index a993765..db2caf1 100644
--- a/lisp/init-eglot.el
+++ b/lisp/init-eglot.el
@@ -47,19 +47,18 @@
"\\1"
string))
-(defun mpolden/eglot-server-program (&optional interactive)
- "Return a LSP server program for the current `major-mode'.
-If toolbox is in PATH, prefix the server program with \"toolbox
-run\". Optional argument INTERACTIVE has no effect, but must be
-present to satisfy `eglot-server-programs'."
+(defun mpolden/eglot-toolbox-program (&optional interactive)
+ "Create arguments for starting a LSP server inside Toolbox.
+Returns nil if toolbox is not found in PATH. Optional argument
+INTERACTIVE has no effect, but must be present to satisfy
+`eglot-server-programs'."
(when-let* ((programs '((go-mode . "gopls")
(python-mode . "pylsp")
(rust-mode . "rust-analyzer")
(java-mode . "jdtls")))
(program (cdr (assoc major-mode programs))))
- (if (executable-find "toolbox" (file-remote-p buffer-file-name))
- (list "toolbox" "run" program)
- (list program))))
+ (when (executable-find "toolbox" (file-remote-p buffer-file-name))
+ (list "toolbox" "run" program))))
(use-package eglot
:ensure t
@@ -95,7 +94,7 @@ present to satisfy `eglot-server-programs'."
'mpolden/gfm-unescape-string)
;; run some servers through toolbox
(add-to-list 'eglot-server-programs
- '(prog-mode . mpolden/eglot-server-program)))
+ '(prog-mode . mpolden/eglot-toolbox-program)))
(provide 'init-eglot)