You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

gopls v0.10.1在Neovim中JSON RPC解析错误无法附着缓冲区

问题:gopls v0.10.1无法附着Neovim缓冲区,报JSON RPC解析错误
  • 配置环境:通过mason、mason-lspconfig、nvim-lspconfig、null-ls、mason-null-ls配置Neovim,安装gopls v0.10.1
  • 触发场景:打开Go文件时出现JSON RPC解析错误,错误信息:
RPC[Error] code_name = ParseError, message = "JSON RPC parse error: json: cannot unmarshal object into Go struct field PCompletionListPCompletion.capabilities.textDocument.completion.completionList.itemDefaults of type []string"
  • 排查信息:
    • 执行:LspInfo可见null-ls已附着当前缓冲区,gopls标记为“可用”但无法附着,文件类型、根目录、命令参数均显示正常
    • gopls api-json输出正常
    • 针对gopls ~v0.6版本的旧JSON解析错误修复方案无效
  • 配置文件路径:nvim/.config/nvim/lua/kobra/lsp/init.lua
解决方案

这个错误是因为gopls v0.10.1新增的completionList.itemDefaults字段为对象类型,但旧版nvim-lspconfig仍期望其为数组类型,导致解析失败。按以下步骤解决:

  1. 更新nvim-lspconfig到最新版本
    通过你的Neovim包管理器(如Packer、Lazy.nvim)同步更新nvim-lspconfig,确保插件支持gopls v0.10+的新字段格式。

  2. 同步更新mason系列插件
    更新mason、mason-lspconfig到最新版,保证插件间的兼容性。

  3. 临时 workaround(若更新后仍有问题)
    在gopls配置中显式禁用该字段,添加如下配置:

    require('lspconfig').gopls.setup({
      settings = {
        gopls = {
          completion = {
            completionList = {
              itemDefaults = {}
            }
          }
        }
      }
    })
    

    注:优先推荐更新插件版本,此配置仅作临时应急。

  4. 验证修复
    重启Neovim后打开Go文件,执行:LspInfo查看gopls是否正常附着,同时确认错误是否消失。


内容的提问来源于stack exchange,提问作者KobraKommander9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 19:01:20