mfussenegger/nvim-jdtls

nvim-jdtls news/updates (please subscribe)

mfussenegger opened this issue · 10 comments

To get notifications about updates to nvim-jdtls subscribe to this issue.

nvim-jdtls now supports advanced organize imports - it now prompts for a choice if there are ambiguous import choices:

asciinema-6a2a413931d09553asciicast

Not really an update, but some more demos of the functionality:

Extracting variables:

extract-variable

Extracing methods:

extract-method

Jumping into class files:

jump-into-class-files

Added generate constructor support: (the UI to select the choices could use some improvements...)

asciinema-1683544d5b33c826asciicast

Support for generating delegate methods:

asciinema-dbb6de59e954af40asciicast

Two changes that probably warrant being mentioned here:

  • The setup_dap function no longer implicitly creates configuration entries for the main functions. You can now trigger it explicitly using :lua require('jdtls.dap').setup_dap_main_class_configs() or :JdtRefreshDebugConfigs. See the readme for details.
  • Hotcode replacement is now supported during debug sessions but by default it is not enabled. You've to call setup_dap like this to enable it: require('jdtls').setup_dap({ hotcodereplace = 'auto' })

nvim-jdtls will soon require nvim 0.5.1 as minimum version. There were some changes between nvim 0.5.0 and nvim 0.5.1 that require some compatibility layers to continue working under both versions and I'm going to remove them soon.

nvim-jdtls will soon (=couple days) require neovim 0.6 as minimum version.
If you're still on neovim 0.5.1 you can change to the nvim-05 branch

It is now possible to change the java runtime via a JdtSetRuntime command:

recording.mp4

Old news, but for those who don't update all that often: the custom code_action function of jdtls got removed a while ago . With the update to neovim 0.6 it is possible to use the built-in function (vim.lsp.buf.code_action) and get the full functionality including the extensions that nvim-jdtls provides.

The UI extension changed with that as well - it utilizes vim.ui.select, see https://github.com/mfussenegger/nvim-jdtls/wiki/UI-Extensions

Closing this. Going forward I'll create releases. Probably roughly following eclipse.jdt.ls releases (if there are changes affecting nvim-jdtls). You can watch the releases of the repository to get notifications of future changes.