mfussenegger / nvim-jdtls

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

Can't launch Jshell #630

Closed SOberhoff closed 4 months ago

SOberhoff commented 4 months ago

LSP client configuration

I have installed Eclipse.jdt.ls using Mason and then put the following in ftplugin/java.lua:

local config = {
    cmd = { vim.fn.stdpath("data") .. "/mason/packages/jdtls/jdtls" },
    root_dir = vim.fs.dirname(vim.fs.find({ "gradlew", ".git", "mvnw" }, { upward = true })[1]),
}
require("jdtls").start_or_attach(config)

Eclipse.jdt.ls version

v1.33.0

Steps to Reproduce

Go to a Java project, open a Java file, wait for jdtls to start, run :JdtJshell.

Expected Result

A JShell starts up.

Actual Result

An error occurs: No LSP client found that supports vscode.java.resolveJavaExecutable

mfussenegger commented 4 months ago

Works fine for me. Please check the troubleshooing section and make sure you have a project with no compile errors.

Check the output of :lua =vim.lsp.get_active_clients() and look for the server_capabilities, specifically the executeCommandProvider part.

Please also provide the output of :JdtShowLogs - both neovim client logs and eclipse.jdt.ls server logs are interesting.

SOberhoff commented 4 months ago
executeCommandProvider = {
    commands = { "java.project.import", "java.project.changeImportedProjects", "java.navigate.openTypeHierarchy",
        "java.project.resolveStackTraceLocation", "java.edit.handlePasteEvent", "java.edit.stringFormatting",
        "java.project.getSettings", "java.project.resolveWorkspaceSymbol",
        "java.project.upgradeGradle", "java.project.createModuleInfo", "java.vm.getAllInstalls", "java.edit.organizeImports",
        "java.project.refreshDiagnostics", "java.project.removeFromSourcePath", "java.project.listSourcePaths",
        "java.project.getAll", "java.reloadBundles", "java.project.isTestFile", "java.project.resolveText",
        "java.project.getClasspaths", "java.navigate.resolveTypeHierarchy", "java.edit.smartSemicolonDetection",
        "java.project.updateSourceAttachment", "java.project.updateClassPaths", "java.decompile",
        "java.protobuf.generateSources", "java.project.resolveSourceAttachment", "java.project.updateJdk",
        "java.project.addToSourcePath", "java.completion.onDidSelect" }
}
[START][2024-03-04 18:10:15] LSP logging initiated
[ERROR][2024-03-04 18:10:15] .../vim/lsp/rpc.lua:734    "rpc"   "/Users/oberhoff/.local/share/nvim/mason/packages/jdtls/jdtls"  "stderr"    "WARNING: Using incubator modules: jdk.incubator.vector\n"
[ERROR][2024-03-04 18:10:16] .../vim/lsp/rpc.lua:734    "rpc"   "/Users/oberhoff/.local/share/nvim/mason/packages/jdtls/jdtls"  "stderr"    "Mar 04, 2024 6:10:16 PM org.apache.aries.spifly.BaseActivator log\nINFO: Registered provider ch.qos.logback.classic.servlet.LogbackServletContainerInitializer of service jakarta.servlet.ServletContainerInitializer in bundle ch.qos.logback.classic\n"
[ERROR][2024-03-04 18:10:16] .../vim/lsp/rpc.lua:734    "rpc"   "/Users/oberhoff/.local/share/nvim/mason/packages/jdtls/jdtls"  "stderr"    "Mar 04, 2024 6:10:16 PM org.apache.aries.spifly.BaseActivator log\nINFO: Registered provider ch.qos.logback.classic.spi.LogbackServiceProvider of service org.slf4j.spi.SLF4JServiceProvider in bundle ch.qos.logback.classic\n"
[WARN][2024-03-04 18:10:17] ...lsp/handlers.lua:137 "The language server jdtls triggers a registerCapability handler despite dynamicRegistration set to false. Report upstream, this warning is harmless"
[ERROR][2024-03-04 18:10:17] ...lsp/handlers.lua:535    "4 Mar 2024, 18:10:17 Command _java.reloadBundles.command not supported on client"

The above output is produced after opening a fairly minimal hello-world project, opening a java file, running :JdtJshell and then :JdtShowLogs after encountering the error.

mfussenegger commented 4 months ago

Oh jeez I had missed that resolveJavaExecutable is part of java-debug. I'll see if there's an alternative for it

mfussenegger commented 4 months ago

Could you try with https://github.com/mfussenegger/nvim-jdtls/pull/633 ?