diff options
author | Kenny Ballou <kb@devnulllabs.io> | 2024-01-17 15:44:37 -0700 |
---|---|---|
committer | Kenny Ballou <kb@devnulllabs.io> | 2024-01-21 16:57:11 -0700 |
commit | 7c7175ecac916b65dd918d16ebb05d75ff2d061a (patch) | |
tree | cb90a3e558e6e6fcf147049fed053023d249242f | |
parent | 7049223215e2d980c80e9acf65808f906cec5c2f (diff) | |
download | dotfiles-7c7175ecac916b65dd918d16ebb05d75ff2d061a.tar.gz dotfiles-7c7175ecac916b65dd918d16ebb05d75ff2d061a.tar.xz |
config: emacs: refactor|>customize eglot-server-programs
Signed-off-by: Kenny Ballou <kb@devnulllabs.io>
-rw-r--r-- | config/emacs/emacs.d/emacs.org | 71 |
1 files changed, 54 insertions, 17 deletions
diff --git a/config/emacs/emacs.d/emacs.org b/config/emacs/emacs.d/emacs.org index 038a41d6..bd1a88ed 100644 --- a/config/emacs/emacs.d/emacs.org +++ b/config/emacs/emacs.d/emacs.org @@ -3036,6 +3036,51 @@ Most shell applications accept Perl Compatible Regular Expressions." :END: #+begin_src elisp +(defun kb/c*-eglot-server (interactive?) + "Return the eglot server for C/C++." + (list "guix" + "shell" + "--pure" + "ccls" + "--" + "ccls")) +#+end_src + +#+begin_src elisp +(defun kb/java-eglot-server (interactive?) + "Return the eglot server for Java." + (list "guix" + "shell" + "--pure" + "openjdk@21:jdk" + "--" + (expand-file-name (concat user-emacs-directory + "share/eclipse.jdt.ls/bin/jdtls")) + :initializationOptions + '(:settings + (:java + (:format + (:enabled "true" + :settings + (:url (concat "file:/" user-emacs-directory "/lsp-java/GoogleStyles.xml") + :profile "GoogleStyle")) + :completion (:guessMethodArguments t))) + :extendClientCapabilities (:classFileContentSupport t)) + )) +#+end_src + +#+begin_src elisp +(defun kb/python-eglot-server (interactive?) + "Return the eglot server for Python." + (list "guix" + "shell" + "--pure" + "python-lsp-server" + "--" + "pylsp")) +#+end_src + +#+begin_src elisp (use-package eglot :commands (eglot eglot-ensure) :demand t @@ -3054,23 +3099,15 @@ Most shell applications accept Perl Compatible Regular Expressions." :custom (eglot-report-progress t) (eglot-confirm-server-initiated-edits 'confirm) - :config - (setq eglot-stay-out-of '(flymake)) - (setq eglot-server-programs (list (cons '(java-mode java-ts-mode) - (list "guix" - "shell" - "--pure" - "openjdk@21:jdk" - "--" - (expand-file-name (concat user-emacs-directory - "share/eclipse.jdt.ls/bin/jdtls")))) - (cons '(python-mode python-ts-mode) (list - "guix" - "shell" - "--pure" - "python-lsp-server" - "--" - "pylsp"))))) + (eglot-autoshutdown t) + (eglot-extend-to-xref t) + (eglot-stay-out-of '(flymake)) + (eglot-server-programs (list (cons '(c-mode c-ts-mode c++-mode c++-ts-mode) + #'kb/c*-eglot-server) + (cons '(java-mode java-ts-mode) + #'kb/java-eglot-server) + (cons '(python-mode python-ts-mode) + #'kb/python-eglot-server)))) #+end_src **** Debug Adapter Protocol |