mfussenegger / nvim-jdtls

Extensions for the built-in LSP support in Neovim for eclipse.jdt.ls
GNU General Public License v3.0
1.09k stars 62 forks source link

Duplicate code actions #357

Closed DasOhmoff closed 1 year ago

DasOhmoff commented 1 year ago

LSP client configuration

local jdtls = require('jdtls')
local jdtls_path = vim.fn.stdpath('data') .. '/mason/packages/jdtls'
local jdtls_client_capabilities = jdtls.extendedClientCapabilities
jdtls_client_capabilities.resolveAdditionalTextEditsSupport = true
local startJdtlsServer = function()

  jdtls.start_or_attach({
    capabilities = lsp_capabilities,
    flags = lsp_flags,

    cmd = {
      'java',
      '-Declipse.application=org.eclipse.jdt.ls.core.id1',
      '-Declipse.product=org.eclipse.jdt.ls.core.product',
      '-Dosgi.bundles.defaultStartLevel=4',
      '-Dlog.protocol=true',
      '-Dlog.level=ALL',
      '-Xms1g',
      '--add-modules=ALL-SYSTEM',
      '--add-opens',
      'java.base/java.util=ALL-UNNAMED',
      '--add-opens',
      'java.base/java.lang=ALL-UNNAMED',
      '-jar',
      jdtls_path
        .. '/plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar',
      '-configuration',
      jdtls_path .. '/config_win',
      '-data',
      jdtls_path
        .. '/my_projects/'
        .. vim.fn.fnamemodify(vim.fn.getcwd(), ':p:h:t'),
    },

    init_options = {
      extendedClientCapabilities = jdtls_client_capabilities,
    },
    settings = {
      java = {
        signatureHelp = { enabled = true },
      },
    },
  })
end

Eclipse.jdt.ls version

v1.16.0

Steps to Reproduce

  1. Create an empty class with the following content:
    
    public class Application {

}


2. Put your cursor into the class and call: `lua vim.lsp.buf.code_action()`
3. Result:
![image](https://user-images.githubusercontent.com/16063186/197594936-65156a3c-ea5a-41f7-a3ec-816000898a90.png)

### Expected Result

No duplicate code actions.

### Actual Result

There are duplicate code actions
mfussenegger commented 1 year ago

See https://github.com/eclipse/eclipse.jdt.ls/issues/2177

Nothing I can do about that in nvim-jdtls. It needs to change in either eclipse.jdt.ls or neovim core.

DasOhmoff commented 1 year ago

Ah I see. Thanks for trying to solve this!