JavaHello / spring-boot.nvim

Neovim + Spring Boot LS
Apache License 2.0
15 stars 3 forks source link

帮忙看看为什么补全不生效 #3

Open mycf opened 4 weeks ago

mycf commented 4 weeks ago
  {
    "JavaHello/spring-boot.nvim",
    -- enabled = false,
    ft = { "java" },
    dependencies = {
      "mfussenegger/nvim-jdtls", -- or nvim-java, nvim-lspconfig
      "ibhagwan/fzf-lua", -- 可选
    },
    opts = function()
      local opts = {
        server = {
          -- on_attach = require('config.lspconfig').on_attach,
          on_init = require("config.lspconfig").on_init,
          capabilities = require("config.lspconfig").capabilities,
        },
        log_file = "/opt/module/spring-boot.log",
      }
      opts.server.capabilities.textDocument.synchronization.dynamicRegistration = true
      opts.server.capabilities.textDocument.completion.dynamicRegistration = true
      return opts
    end,

    config = function(_, opts)
      require("spring_boot").setup(opts)
    end,
  },
image image
JavaHello commented 4 weeks ago

最近 spring-boot vscode 插件升级了,新增加了一个 jar . 更新下插件再试试

mycf commented 4 weeks ago

最近 spring-boot vscode 插件升级了,新增加了一个 jar . 更新下插件再试试

更新到pre版本也不行 我发现enable_classpath_listening 没有被调用

然后自己手动执行一下出现了这些错误

18:07:15.107 [parallel-2] ERROR o.s.i.v.b.jdt.ls.JdtLsProjectCache - Unexpected error registering classpath listener with JDT.
java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 10000ms in 'Mono.thenReturn ⇢ at org.springframework.ide.vscode.commons.languageserver.java.ls.ClasspathListenerManager.addClasspathListener(ClasspathListenerManager.java:144)' (and no fallback has been configured)
    at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:296)
    Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Assembly trace from producer [reactor.core.publisher.MonoTimeout] :
    reactor.core.publisher.Mono.timeout(Mono.java:5000)
    org.springframework.ide.vscode.boot.jdt.ls.JdtLsProjectCache.enableClasspathListener(JdtLsProjectCache.java:274)
Error has been observed at the following site(s):
    *________Mono.timeout ⇢ at org.springframework.ide.vscode.boot.jdt.ls.JdtLsProjectCache.enableClasspathListener(JdtLsProjectCache.java:274)
    |_ Mono.doOnSubscribe ⇢ at org.springframework.ide.vscode.boot.jdt.ls.JdtLsProjectCache.enableClasspathListener(JdtLsProjectCache.java:275)
    |_   Mono.doOnSuccess ⇢ at org.springframework.ide.vscode.boot.jdt.ls.JdtLsProjectCache.enableClasspathListener(JdtLsProjectCache.java:276)
Original Stack Trace:
        at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:296)
        at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:281)
        at reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:420)
        at reactor.core.publisher.FluxOnErrorReturn$ReturnSubscriber.onNext(FluxOnErrorReturn.java:162)
        at reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:270)
        at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:285)
        at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
        at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:840)
18:07:15.113 [parallel-2] INFO  o.s.i.v.b.jdt.ls.JdtLsProjectCache - Enable classpath listener enabled = false current enablement = true
18:07:15.113 [parallel-2] INFO  o.s.i.v.b.jdt.ls.JdtLsProjectCache - Removing classpath listener enabled=false
18:07:15.113 [parallel-2] INFO  o.s.i.v.b.jdt.ls.JdtLsProjectCache - Project Observer is not supported
18:07:15.114 [parallel-2] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped
reactor.core.Exceptions$ErrorCallbackNotImplemented: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 10000ms in 'Mono.thenReturn ⇢ at org.springframework.ide.vscode.commons.languageserver.java.ls.ClasspathListenerManager.addClasspathListener(ClasspathListenerManager.java:144)' (and no fallback has been configured)
Caused by: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 10000ms in 'Mono.thenReturn ⇢ at org.springframework.ide.vscode.commons.languageserver.java.ls.ClasspathListenerManager.addClasspathListener(ClasspathListenerManager.java:144)' (and no fallback has been configured)
    at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:296)
    Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Assembly trace from producer [reactor.core.publisher.MonoTimeout] :
    reactor.core.publisher.Mono.timeout(Mono.java:5000)
    org.springframework.ide.vscode.boot.jdt.ls.JdtLsProjectCache.enableClasspathListener(JdtLsProjectCache.java:274)
Error has been observed at the following site(s):
    *________Mono.timeout ⇢ at org.springframework.ide.vscode.boot.jdt.ls.JdtLsProjectCache.enableClasspathListener(JdtLsProjectCache.java:274)
    |_ Mono.doOnSubscribe ⇢ at org.springframework.ide.vscode.boot.jdt.ls.JdtLsProjectCache.enableClasspathListener(JdtLsProjectCache.java:275)
    |_   Mono.doOnSuccess ⇢ at org.springframework.ide.vscode.boot.jdt.ls.JdtLsProjectCache.enableClasspathListener(JdtLsProjectCache.java:276)
    |_     Mono.doOnError ⇢ at org.springframework.ide.vscode.boot.jdt.ls.JdtLsProjectCache.enableClasspathListener(JdtLsProjectCache.java:277)
Original Stack Trace:
        at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:296)
        at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:281)
        at reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:420)
        at reactor.core.publisher.FluxOnErrorReturn$ReturnSubscriber.onNext(FluxOnErrorReturn.java:162)
        at reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:270)
        at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:285)
        at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
        at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:840)
JavaHello commented 3 weeks ago

先看看 jdtls 有没有正常启动, bundles 里是否有 spring-boot-ls 的jar? 启动后会自动触发 spring-boot-ls 加载classpath数据,不需要手动调用