LuaLS / LuaLS/lua-language-server

Lsp error in logs Unknown response id!

未关闭
#2,302 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

主要语言
Lua
星标
4.4k
派生
442
PR 合并指标
30 天内没有已合并 PR

描述

Hi. I will appreciate any help.

Sometimes my server responds incorrectly. The server gives some responses eg.

{
  _closeMessage = "Request cancelled.",
  _closeReason = -32800,
  id = 35,
  jsonrpc = "2.0",
  method = "textDocument/semanticTokens/range",
  params = {
    range = {
      end = {
        character = 0,
        line = 0
      },
      start = {
        character = 0,
        line = 0
      }
    },
    textDocument = {
      uri = "---"
    }
  }
}

but the editor shows "workspace loading 0/0" or "Loading".

Even when it responds well, the same error appears in logs

[14:37:50.516][error][#0:script\proto\proto.lua:67]: Unknown response id!	0
stack traceback:
	script\proto\proto.lua:67: in function 'proto.proto.response'
	script\proto\proto.lua:195: in local 'f'
	script\utility.lua:439: in metamethod 'close'
	script\proto\proto.lua:202: in function <script\proto\proto.lua:175>

the difference is that when the server responds correctly, this appears in the logs:

[09:40:35.887][info] [#0:script\provider\diagnostic.lua:557]: Diagnostics scope ... (and here is my workspace folder)

however, when the server is working badly, the following appears in the logs:

[14:37:50.619][info] [#0:script\workspace\workspace.lua:282]: Scan files at: (and here are files from log/cache, not from my workspace I don.t know why.

Maybe someone faced such a problem?

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

首先复现 LSP 响应,并比较 script/proto/proto.lua:67、script/proto/proto.lua:195 和 script/workspace/workspace.lua:282 附近的日志。追踪响应为何会收到未知 ID,以及 workspace 扫描为何会使用日志中记录的缓存文件;完成的标准是能够复现该故障,并验证其原因和修复方案。

由索引模型根据 Issue 内容生成。

评估

技术栈
lua
领域
devtools
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
需要澄清
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。