java Neovim使用lsp零/mason设置jdtl

au9on6nz  于 2022-12-21  发布在  Java
关注(0)|答案(1)|浏览(847)

作为即将到来的2023年新年的一部分,我想尝试将我的开发环境转移到vim或neovim,我已经完成了一些设置,有go和js/ts设置,看起来工作得很好,自动完成,掉毛和导入管理。
尝试让lsp-zero和java工作起来是一场噩梦(因为java当然会是一个有问题的孩子)。我打开了一个java文件lsp-zero是baller,并要求安装jdtls,它似乎已经工作,瞧,什么都没有...我只有代码突出显示。没有自动完成或导入管理。

我添加了以下内容进行测试

-- configure an individual server
lsp.configure('jdtls', {
  flags = {
    debounce_text_changes = 150,
  },
  on_attach = function(client, bufnr)
    print('lsp server (jdtls) attached')
  end
})

lsp.configure('gopls', {
  flags = {
    debounce_text_changes = 150,
  },
  on_attach = function(client, bufnr)
    print('lsp server (gopls) attached')
  end
})

Java未拾取lsp服务器

围棋捡的刚刚好

有没有人知道需要额外的配置。我没有看到任何具体的调用。
---配置编辑---
我更新了配置来调用windows版本的脚本。我还添加了一个数据路径和root_dir。lsp仍然不会触发。

require'lspconfig'.jdtls.setup{
 cmd = {
        'jdtls-win.cmd',
        "-configuration",
        "C:\\Users\\Coury\\AppData\\Local\\nvim-data\\mason\\packages\\jdtls\\config_win",
        "-jar",
        "C:\\Users\\Coury\\AppData\\Local\\nvim-data\\mason\\packages\\jdtls\\plugins\\org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar",
        "-data",
        "C:\\Users\\Coury\\Documents\\Code\\interviews\\truleo\\app",
    },
    single_file_support = true,
    root_dir = function() 
        return "C:\\Users\\Coury\\Documents\\Code\\interviews\\truleo\\app"
    end,
    flags = {
        debounce_text_changes = 150,
    },
    on_attach = function(client, bufnr)
        print('lsp server (jdtls) attached')
    end
}
6mzjoqzu

6mzjoqzu1#

首先,包含bashrc的java路径,然后使用Mason.nvim重试安装
其他:执行以下操作
1.按照安装说明安装eclipse.jdt.ls
1.添加插件:

  • vim插头:插头mfussenegger/nvim-jdtls
  • packer.nvim:使用mfussenegger/nvim-jdtls

1.要解决这个问题,您必须在插件目录中创建个人jdlts配置文件,如下所示

-- Java.lua

local config = {
    cmd = {
        --
        "java", -- Or the absolute path '/path/to/java11_or_newer/bin/java'
        "-Declipse.application=org.eclipse.jdt.ls.core.id1",
        "-Dosgi.bundles.defaultStartLevel=4",
        "-Declipse.product=org.eclipse.jdt.ls.core.product",
        "-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",
        "/path/to/jdtls_install_location/plugins/org.eclipse.equinox.launcher_VERSION_NUMBER.jar",
        "-configuration", "/path/to/jdtls_install_location/config_SYSTEM",
        "-data", "/Users/YOUR_MACHINE_NAME/local/share/nvim/java"
    },
    settings = {
        java = {
            signatureHelp = {enabled = true},
            import = {enabled = true},
            rename = {enabled = true}
        }
    },
    init_options = {
        bundles = {}
    }
}

获取新配置并打开任何java文件。

相关问题