Most of these lsp packages are already in `lsp-client-packages`, which lsp-mode will eagerly load the first time `lsp-mode` is activated, so we don't need to do it ourselves, except in cases where the package isn't in `lsp-client-packages` (like lsp-julia).
26 lines
1.1 KiB
EmacsLisp
26 lines
1.1 KiB
EmacsLisp
;;; lang/java/+lsp.el -*- lexical-binding: t; -*-
|
|
;;;###if (and (modulep! +lsp) (not (modulep! :tools lsp +eglot)))
|
|
|
|
(use-package! lsp-java
|
|
:defer t
|
|
:preface
|
|
(setq lsp-java-workspace-dir (concat doom-data-dir "java-workspace"))
|
|
(add-hook 'java-mode-local-vars-hook #'lsp! 'append)
|
|
:config
|
|
(when (modulep! :tools debugger +lsp)
|
|
(setq lsp-jt-root (concat lsp-java-server-install-dir "java-test/server/")
|
|
dap-java-test-runner (concat lsp-java-server-install-dir "test-runner/junit-platform-console-standalone.jar"))))
|
|
|
|
|
|
(use-package! dap-java
|
|
:when (modulep! :tools debugger +lsp)
|
|
:commands dap-java-run-test-class dap-java-debug-test-class
|
|
:init
|
|
(map! :after cc-mode ; where `java-mode' is defined
|
|
:map java-mode-map
|
|
:localleader
|
|
(:prefix ("t" . "Test")
|
|
:desc "Run test class or method" "t" #'+java/run-test
|
|
:desc "Run all tests in class" "a" #'dap-java-run-test-class
|
|
:desc "Debug test class or method" "d" #'+java/debug-test
|
|
:desc "Debug all tests in class" "D" #'dap-java-debug-test-class)))
|