2017-10-03 00:50:33 +02:00
|
|
|
;;; lang/java/+meghanada.el -*- lexical-binding: t; -*-
|
2022-08-12 20:29:19 +02:00
|
|
|
;;;###if (modulep! +meghanada)
|
2017-10-03 00:50:33 +02:00
|
|
|
|
2019-07-23 12:44:03 +02:00
|
|
|
(use-package! meghanada
|
2021-02-22 23:16:01 -05:00
|
|
|
:hook (java-mode-local-vars . meghanada-mode)
|
2018-10-06 12:35:08 -04:00
|
|
|
:init
|
2017-10-03 00:50:33 +02:00
|
|
|
(setq meghanada-server-install-dir (concat doom-etc-dir "meghanada-server/")
|
2022-08-12 20:29:19 +02:00
|
|
|
meghanada-use-company (modulep! :completion company)
|
|
|
|
meghanada-use-flycheck (modulep! :checkers syntax)
|
2017-10-03 00:50:33 +02:00
|
|
|
meghanada-use-eldoc t
|
|
|
|
meghanada-use-auto-start t)
|
2021-04-15 11:17:44 -04:00
|
|
|
|
2018-10-06 12:35:08 -04:00
|
|
|
:config
|
2018-06-15 17:27:48 +02:00
|
|
|
(set-lookup-handlers! 'java-mode
|
2017-10-03 00:50:33 +02:00
|
|
|
:definition #'meghanada-jump-declaration
|
|
|
|
:references #'meghanada-reference)
|
|
|
|
|
2021-08-04 01:18:06 -04:00
|
|
|
(defadvice! +java-meghanada-fail-gracefully-a (fn &rest args)
|
2021-04-15 11:17:44 -04:00
|
|
|
"Toggle `meghanada-mode'. Fail gracefully if java is unavailable."
|
|
|
|
:around #'meghanada-mode
|
|
|
|
(if (executable-find meghanada-java-path)
|
2021-08-04 01:18:06 -04:00
|
|
|
(apply fn args)
|
2021-04-15 11:17:44 -04:00
|
|
|
(message "Can't find %S binary. Is java installed? Aborting `meghanada-mode'."
|
|
|
|
meghanada-java-path)))
|
|
|
|
|
2018-12-23 23:54:27 -05:00
|
|
|
(map! :localleader
|
|
|
|
:map java-mode-map
|
2019-10-04 17:49:28 -04:00
|
|
|
(:prefix ("r" . "refactor")
|
2018-12-23 23:54:27 -05:00
|
|
|
"ia" #'meghanada-import-all
|
|
|
|
"io" #'meghanada-optimize-import
|
|
|
|
"l" #'meghanada-local-variable
|
|
|
|
"f" #'meghanada-code-beautify)
|
2019-10-04 17:49:28 -04:00
|
|
|
(:prefix ("h" . "help")
|
2018-12-23 23:54:27 -05:00
|
|
|
"r" #'meghanada-reference
|
|
|
|
"t" #'meghanada-typeinfo)
|
2019-10-04 17:49:28 -04:00
|
|
|
(:prefix ("b" . "build")
|
2018-12-23 23:54:27 -05:00
|
|
|
"f" #'meghanada-compile-file
|
|
|
|
"p" #'meghanada-compile-project)))
|