doomemacs/modules/lang/java/+lsp.el
Henrik Lissner 005831bfcc
refactor(lsp): let lsp-mode load lsp client packages
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).
2024-09-09 17:24:45 -04:00

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)))