doomemacs/modules/lang/java
Henrik Lissner ba8bf1ab9f
bump: :lang
Alexander-Miller/company-shell@a77f4de759 -> Alexander-Miller/company-shell@5f959a63a6
Emacs-Kotlin-Mode-Maintainers/kotlin-mode@3e0c34087b -> Emacs-Kotlin-Mode-Maintainers/kotlin-mode@fddd747e5b
FStarLang/fstar-mode.el@c95c2a61a6 -> FStarLang/fstar-mode.el@ab0697b947
Fuco1/sphinx-mode@9d4075c106 -> Fuco1/sphinx-mode@77ca51adf9
Groovy-Emacs-Modes/groovy-emacs-modes@bf732d367b -> Groovy-Emacs-Modes/groovy-emacs-modes@c612ac1e9f
Khady/merlin-eldoc@db7fab1edd -> Khady/merlin-eldoc@bf8edc63d8
OVYA/php-cs-fixer@7e12a1af5d -> OVYA/php-cs-fixer@efe4368d89
ProofGeneral/PG@e1e29acb04 -> ProofGeneral/PG@8416875696
Wilfred/elisp-def@dfca043ec0 -> Wilfred/elisp-def@1d2e88a232
agda/agda@b612cabaae -> agda/agda@bb7603d197
amake/flutter.el@08138f8c95 -> amake/flutter.el@edd3f5eb3f
ananthakumaran/exunit.el@0715c2dc2d -> ananthakumaran/exunit.el@e0a8c2b81f
beancount/beancount-mode@ea8257881b -> beancount/beancount-mode@519bfd868f
bradyt/dart-mode@3bac14200f -> bradyt/dart-mode@9c846769ab
brantou/emacs-go-tag@59b243f2fa -> brantou/emacs-go-tag@33f2059551
cdominik/cdlatex@8e963c6853 -> cdominik/cdlatex@ac024ce293
clojure-emacs/cider@92c1b6de20 -> clojure-emacs/cider@1ed5163433
clojure-emacs/clj-refactor.el@db89b55871 -> clojure-emacs/clj-refactor.el@b5abe655e5
clojure-emacs/clojure-mode@414157c3e5 -> clojure-emacs/clojure-mode@3453cd229b
cpitclaudel/company-coq@a6e349e013 -> cpitclaudel/company-coq@5affe7a96a
crystal-lang-tools/emacs-crystal-mode@96a8058205 -> crystal-lang-tools/emacs-crystal-mode@9bfb9f0f56
davazp/graphql-mode@9740e4027b -> davazp/graphql-mode@1437b79006
diml/utop@bbd9a6ed45 -> diml/utop@ace481388a
dominikh/go-mode.el@3273fcece5 -> dominikh/go-mode.el@166dfb1e09
elixir-editors/emacs-elixir@e0d0466d83 -> elixir-editors/emacs-elixir@7641373f05
emacs-csharp/csharp-mode@856ecbc0a7 -> emacs-csharp/csharp-mode@02c61c219b
emacs-ess/ESS@39eba28300 -> emacs-ess/ESS@8b4664e4a7
emacs-lsp/lsp-dart@fda433671f -> emacs-lsp/lsp-dart@3db9f93c83
emacs-lsp/lsp-java@0968038b9a -> emacs-lsp/lsp-java@dbe448a886
emacs-lsp/lsp-sourcekit@f877659bab -> emacs-lsp/lsp-sourcekit@468c641e35
emacs-php/composer.el@7c7f89df22 -> emacs-php/composer.el@5af1707fef
emacs-php/php-mode@5f26bec865 -> emacs-php/php-mode@fb11df8268
emacs-php/phpactor.el@34195f1533 -> emacs-php/phpactor.el@9440005814
emacs-php/psysh.el@21250984ad -> emacs-php/psysh.el@796b26a5cd
emacs-straight/auctex@830e40a063 -> emacs-straight/auctex@3929d5408b
emacs-straight/csv-mode@43f6106f0d -> emacs-straight/csv-mode@d190a479b4
emacs-straight/rainbow-mode@949166cc01 -> emacs-straight/rainbow-mode@8e96388fb4
emacs-straight/sml-mode@0338e9729b -> emacs-straight/sml-mode@5426ff4738
emacsmirror/auctex-latexmk@4d35352265 -> emacsmirror/auctex-latexmk@b00a95e6b3
emacsmirror/paredit@e4a67f4f23 -> emacsmirror/paredit@9a2c4b37fc
emacsorphanage/macrostep@424e3734a1 -> emacsorphanage/macrostep@75ecd04121
erlang/otp@9ba9f6e60d -> erlang/otp@be7109f43b
ethereum/emacs-solidity@20fb77e089 -> ethereum/emacs-solidity@ddb4a901c3
factor/factor@1aeafdb87b -> factor/factor@76ac65649d
fsharp/emacs-fsharp-mode@c1e58c61f9 -> fsharp/emacs-fsharp-mode@09fec6c91f
fxbois/web-mode@efa853e5cf -> fxbois/web-mode@df97ab62c9
godotengine/emacs-gdscript-mode@4badcf6a0c -> godotengine/emacs-gdscript-mode@d392e8aa7e
greghendershott/racket-mode@af9b760e7b -> greghendershott/racket-mode@947d9806ee
hhvm/hack-mode@a522f61c08 -> hhvm/hack-mode@26f06ffe82
idris-hackers/idris-mode@65d6db1b75 -> idris-hackers/idris-mode@c96f45d1b8
immerrr/lua-mode@5a9bee8d5f -> immerrr/lua-mode@ad639c62e3
iyefrat/evil-tex@0fa85c3fc8 -> iyefrat/evil-tex@3e0a26b91a
jcollard/elm-mode@d4e434fa18 -> jcollard/elm-mode@5797500d74
joaotavora/sly@4513c382f0 -> joaotavora/sly@fa70fc8ab1
jorgenschaefer/emacs-buttercup@ceedad5efa -> jorgenschaefer/emacs-buttercup@07a52c9969
jrblevin/markdown-mode@1f709778ac -> jrblevin/markdown-mode@c765b73b37
jschaf/powershell.el@ce1f0ae0b2 -> jschaf/powershell.el@f2da15857e
jwiegley/emacs-async@c78bab7506 -> jwiegley/emacs-async@71cc50f27f
leanprover/lean-mode@c1c68cc946 -> leanprover/lean-mode@362bc6fa3e
ledger/ledger-mode@b55384d9cd -> ledger/ledger-mode@4b32f70173
midnightSuyama/shader-mode@d7dc8d0d6f -> midnightSuyama/shader-mode@fe5a1982ba
necaris/conda.el@667968184e -> necaris/conda.el@28f51e49fd
nlamirault/phpunit.el@fe6bc91c3b -> nlamirault/phpunit.el@4a36906344
ocaml-ppx/ocamlformat@9cbd8150c2 -> ocaml-ppx/ocamlformat@1ad4bdba9e
ocaml/dune@3df932f7f9 -> ocaml/dune@f5a5a9c17b
ocaml/merlin@be753d9412 -> ocaml/merlin@306af713e2
ocaml/tuareg@ad8a688b7e -> ocaml/tuareg@53ce2fdfdd
pashky/restclient.el@9e2cfa8652 -> pashky/restclient.el@0ba72816f9
polymode/polymode@2094c92403 -> polymode/polymode@15b6c1e94a
purcell/flycheck-package@615c1ed8c6 -> purcell/flycheck-package@3a6aaed29f
purescript-emacs/purescript-mode@0acd1af446 -> purescript-emacs/purescript-mode@cf113871f9
s-kostyaev/go-gen-test@35df36dcd5 -> s-kostyaev/go-gen-test@f84f4177af
seagle0128/grip-mode@6d6ddbe0af -> seagle0128/grip-mode@5809fb62f6
sebasmonia/sharper@96edd4a1db -> sebasmonia/sharper@496e90e337
smihica/emmet-mode@6b2e554f7f -> smihica/emmet-mode@63b6932603
swift-emacs/swift-mode@f4529efa45 -> swift-emacs/swift-mode@1244ee48de
technomancy/fennel-mode@5664357349 -> technomancy/fennel-mode@52da9715b0
vspinu/company-math@45778f5731 -> vspinu/company-math@3eb006874e
whirm/flycheck-kotlin@bf1b398bdd -> whirm/flycheck-kotlin@a2a6abb9a7
wwwjfy/emacs-fish@a7c953b149 -> wwwjfy/emacs-fish@d04478c0ab
xuchunyang/elisp-demos@01c301b516 -> xuchunyang/elisp-demos@792be709c8
yoshiki/yaml-mode@535273d5a1 -> yoshiki/yaml-mode@3fcb36d603
ziglang/zig-mode@aa20d630b8 -> ziglang/zig-mode@9c5e41d6a0
2023-02-21 19:32:39 -05:00
..
autoload refactor: deprecate featurep! for modulep! 2022-08-14 20:43:35 +02:00
+eclim.el refactor: deprecate featurep! for modulep! 2022-08-14 20:43:35 +02:00
+lsp.el refactor: deprecate doom-etc-dir for doom-data-dir 2022-08-14 20:43:35 +02:00
+meghanada.el refactor: deprecate doom-etc-dir for doom-data-dir 2022-08-14 20:43:35 +02:00
config.el refactor: deprecate featurep! for modulep! 2022-08-14 20:43:35 +02:00
doctor.el refactor: deprecate featurep! for modulep! 2022-08-14 20:43:35 +02:00
packages.el bump: :lang 2023-02-21 19:32:39 -05:00
README.org docs: change link format 2022-10-05 01:01:19 +02:00

:lang java

Description   unfold

This module adds Java support to Doom Emacs, including android-mode and groovy-mode.

Maintainers

This module has no dedicated maintainers. Become a maintainer?

Module flags

+lsp
Enable LSP support for java-mode. Requires doom-module::tools lsp and a langserver (supports eclipse.jdt.ls). Incompatible with doom-module:+meghanada.
+meghanada
Enable doom-package:meghanada-mode. Incompatible with doom-module:+lsp.
+tree-sitter
Leverages tree-sitter for better syntax highlighting and structural text editing. Requires doom-module::tools tree-sitter.

Hacks

No hacks documented for this module.

TODO Changelog

This module does not have a changelog yet.

Installation

Enable this module in your doom! block.

This module requires:

OpenJDK 11

Ubuntu

#+begin-src sh apt-get install openjdk-11-jdk-headless

#+end_src

Fedora

dnf install java-11-openjdk

Oracle JDK 11

Ubuntu

add-apt-repository ppa:linuxuprising/java
apt update
apt install oracle-java11-installer
apt install oracle-java11-set-default

Fedora

curl -O https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
tar zxvf openjdk-11.0.2_linux-x64_bin.tar.gz
sudo mv jdk-11.0.2/ /usr/local/

Open /etc/profile.d/jdk11.sh as root and add:

export JAVA_HOME=/usr/local/jdk-11.0.2
export PATH=$PATH:$JAVA_HOME/bin

Save the file and source it:

source /etc/profile.d/jdk11.sh
java -version

Multiple Java Versions

It is common to need support for multiple Java versions. You can use a generic tool like jabba to install and manage multiple Java versions on any OS.

To have a different version of Java per-project, it is recommended you use direnv and doom-module::tools direnv; create a .envrc in the root of the project pointing to the Java installation:

PATH_add ~/.jabba/jdk/adopt@1.11.0-3
JAVA_HOME=~/.jabba/jdk/adopt@1.11.0-3

And then run $ direnv allow . in the project directory. The doom-module::tools direnv module will automatically source this environment before activating LSP servers.

TODO Usage

🔨 This module's usage documentation is incomplete. Complete it?

doom-module:+lsp features

According to https://github.com/emacs-lsp/lsp-java, you get:

+meghanada features

According to https://github.com/mopemope/meghanada-emacs/, you get:

TODO Configuration

🔨 This module's configuration documentation is incomplete. Complete it?

doom-module:+lsp

Install the eclipse server by executing M-x lsp-install-server and selecting jdtls. After that any newly opened java files should start the LSP server automatically.

To update the server, perform SPC u M-x lsp-install-server.

Note that if you change Java version you may need to remove the LSP server and install it again. You can do this with M-x +lsp/uninstall-server followed by M-x lsp-install-server.

Enable the doom-module::tools debugger +lsp module to get test runner support.

Troubleshooting

There are no known problems with this module. Report one?

Frequently asked questions

This module has no FAQs yet. Ask one?

TODO Appendix

🔨 This module has no appendix yet. Write one?