ProofGeneral/PG@99f91e873e -> ProofGeneral/PG@3a99da2755 agda/agda@fbf9d159c3 -> agda/agda@4f82f9b90a amake/flutter.el@004c91e070 -> amake/flutter.el@e71235d400 babashka/neil@a38be9f082 -> babashka/neil@6728367eff beancount/beancount-mode@71c1622246 -> beancount/beancount-mode@7b437abcf0 chachi/cuda-mode@7dd07a20c3 -> chachi/cuda-mode@c3dae31b3d clojure-emacs/cider@105da319b0 -> clojure-emacs/cider@8fdb53e8be dominikh/go-mode.el@636d36e37a -> dominikh/go-mode.el@602d73e226 emacs-geiser/geiser@b6b4ac070d -> emacs-geiser/geiser@97ce88463f emacs-geiser/guile@d5175439c0 -> emacs-geiser/guile@5a856c2982 emacs-gnuplot/gnuplot@7138b139d2 -> emacs-gnuplot/gnuplot@4c6b18f71f emacs-lsp/lsp-dart@1f52e81c93 -> emacs-lsp/lsp-dart@9ffbafb7dc emacs-lsp/lsp-haskell@18a7c7881f -> emacs-lsp/lsp-haskell@ba49fa9822 emacs-lsp/lsp-java@4909c14b90 -> emacs-lsp/lsp-java@868600bf7f emacs-lsp/lsp-metals@fa4072cbe7 -> emacs-lsp/lsp-metals@0dc938be11 emacs-lsp/lsp-sourcekit@bb2b7e0278 -> emacs-lsp/lsp-sourcekit@63ff1ab638 emacs-lsp/lsp-treemacs@1d43e9e030 -> emacs-lsp/lsp-treemacs@fb1a07ae0a emacs-straight/adaptive-wrap@f5bc153273 -> emacs-straight/adaptive-wrap@d75665b9c8 emacs-straight/auctex@451b0f08b0 -> emacs-straight/auctex@08881d08ce emacs-straight/csv-mode@cdb73a771b -> emacs-straight/csv-mode@6979fc18eb emacs-straight/org-mode@f398724bd5 -> emacs-straight/org-mode@6a5d0ed342 emacs-straight/rainbow-mode@0740f31f30 -> emacs-straight/rainbow-mode@2e6b18609c emacs-straight/sml-mode@d114e5a27f -> emacs-straight/sml-mode@021233f60a emacsmirror/paredit@9a2c4b37fc -> emacsmirror/paredit@037b9b8acb ericdallo/jet.el@7d5157aac6 -> ericdallo/jet.el@c9a92675ef erlang/otp@2a64588d4a -> erlang/otp@c66bf53cde factor/factor@d143007778 -> factor/factor@31dc1a386b fosskers/sly-overlay@4c6135c260 -> fosskers/sly-overlay@d629450590 fxbois/web-mode@005aa62d6f -> fxbois/web-mode@0c83581d1e gcv/julia-snail@f7784c5007 -> gcv/julia-snail@dff92c4250 greghendershott/racket-mode@40ecb87f40 -> greghendershott/racket-mode@dba66c4536 hhvm/hack-mode@ccf20511f0 -> hhvm/hack-mode@343e45f2a6 https://repo.or.cz/org-contacts.git@d0cb221502c9 -> https://repo.or.cz/org-contacts.git@f0a430442b2a hvesalai/emacs-scala-mode@4c6d636b86 -> hvesalai/emacs-scala-mode@bd0638c32a idris-hackers/idris-mode@38dd2380dc -> idris-hackers/idris-mode@09de86a8f0 ifitzpatrick/graphql-doc.el@d37140267e -> ifitzpatrick/graphql-doc.el@17755a2466 jart/disaster@16bba9afb9 -> jart/disaster@b20f8e1ef9 joaotavora/sly@ba40c8f054 -> joaotavora/sly@742355f755 jorgenschaefer/emacs-buttercup@a1a86b027f -> jorgenschaefer/emacs-buttercup@bf01a33f8b jrblevin/markdown-mode@8aab017f47 -> jrblevin/markdown-mode@6102ac5b73 jschaf/powershell.el@f2da15857e -> jschaf/powershell.el@38727f1cda jwiegley/emacs-async@f317b0c9c3 -> jwiegley/emacs-async@43f97d7e68 ledger/ledger-mode@b0e65f74a5 -> ledger/ledger-mode@a6be7a2d79 nonsequitur/inf-ruby@0cfe8b2fb1 -> nonsequitur/inf-ruby@b234625c85 ocaml/dune@96ed5fb42f -> ocaml/dune@a7924e322e ocaml/merlin@9fa77dbe81 -> ocaml/merlin@e016abfac6 oer/org-re-reveal@dbd8ffb3e5 -> oer/org-re-reveal@91610ba9b0 org-noter/org-noter@68646b685a -> org-noter/org-noter@6f292d7f1e org-roam/org-roam@8667e44187 -> org-roam/org-roam@0b9fcbc97b rust-lang/rust-mode@a529a45181 -> rust-lang/rust-mode@c87f6f82bd seagle0128/grip-mode@7c42b8f61d -> seagle0128/grip-mode@9adac9c989 technomancy/fennel-mode@a4ddd1750f -> technomancy/fennel-mode@f4bd34e1c3 From this point on, Org will be pinned to tagged releases.
: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.
Packages
- doom-package:android-mode
- doom-package:groovy-mode
- doom-package:meghanada if doom-module:+meghanada
-
- doom-package:eclim
- doom-package:company-emacs-eclim if doom-module::completion company
-
if doom-module:+lsp and not doom-module::tools lsp +eglot
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:
- Java SDK
- The LSP test runner requires doom-module::tools debugger +lsp (requires doom-package:dap-mode)
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.
Formatter
doom-module::editor format uses google-java-format to handle formatting.
To install, grab the latest all-deps.jar
release from the above, put it
somewhere and create a script similar to the below:
/usr/local/bin/google-java-format
java -jar /path/to/google-java-format-all-deps.jar
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:
- As you type reporting of parsing and compilation errors (via doom-package:flycheck or doom-package:lsp-ui)
- Code completion (doom-package:company-lsp or complete-at-point)
- Javadoc hovers (doom-package:lsp-ui)
- Code actions (doom-package:lsp-ui)
- Code outline (doom-package:imenu)
- Code navigation (doom-package:xref)
- Code lens for references/implementations (doom-package:xref)
- Highlights
- Code formatting
- Maven pom.xml project support
- Limited Gradle support
- Visual debugger (doom-package:dap-mode)
- Test runner (doom-package:dap-mode)
- Project explorer integration (doom-package:treemacs)
- Integration with Spring Initializr
+meghanada
features
According to https://github.com/mopemope/meghanada-emacs/, you get:
- Auto-update server module
- Gradle and Maven and Eclipse project support
- No need build tool's plugin
- Run build tool task
- Compile your project
- Syntax check and analyze java source (doom-package:flycheck-meghanada)
- Support
Generic Types
- Code completion with doom-package:company-mode (doom-package:company-meghanada)
- Optimize import and sort
- Jump declaration
- Run JUnit test (include test runner)
- Diagnostic reporting with doom-package:flycheck (doom-package:flycheck-meghanada)
- Show symbol's type info with doom-package:eldoc
- Search references
- Full-featured text search
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?