No need to put up with jdtls nonsense anymore.
Just install and start writing public static void main(String[] args).
- ✅ Diagnostics & Auto Completion
- ✅ Automatic DAP debug configuration
- ❌ Running tests
- Uses nvim-lspconfig to setup
jdtls - Realtime server settings updates is possible using neoconf
- Everything necessary will be installed automatically (except JDKs)
- Uses
jdtlsand auto loadsjdtlsplugins from mason.nvim- Supported plugins are,
lombokjava-testjava-debug-adapter
- Supported plugins are,
- Typed & documented APIs
- No callback hells I promise
- Python 3.9 - for running
jdtlswrapper launch script
Using lazy.nvim
return {
'nvim-java/nvim-java',
dependencies = {
'nvim-java/nvim-java-core',
'neovim/nvim-lspconfig',
'williamboman/mason.nvim',
'mfussenegger/nvim-dap',
},
event = 'VeryLazy',
opts = {},
}require('lspconfig').jdtls.setup({})Yep! That's all :)
config_dap- DAP is autoconfigured on start up, but in case you want to force configure it again, you can use this API
require('java').dap.config_dap()run_current_test_class- Run the test class in the active buffer
require('java').test.run_current_test_class()debug_current_test_class- Debug the test class in the active buffer
require('java').test.debug_current_test_class()nvim-jdtls is a plugin that follows "Keep it simple, stupid!" approach. If you love customizing things by yourself, then give nvim-jdtls a try. I may or may not have copied some code ;-) Open source is beautiful!