Help us learn about your current experience with the documentation. Take the survey.

Neovim 故障排除

在排查 Neovim 的 GitLab 插件问题时,你应该确认该问题是否在其他 Neovim 插件和设置之外仍然存在。首先,运行 Neovim 测试步骤,然后运行 GitLab Duo 代码建议故障排除步骤

如果本页面的步骤无法解决你的问题,请查看 Neovim 插件项目中的开放问题列表。如果有问题与你的问题匹配,请更新该问题。如果没有匹配的问题,创建一个新问题

有关 GitLab Duo 代码建议扩展的故障排除,请参阅代码建议故障排除

测试你的 Neovim 配置

Neovim 插件的维护者经常要求提供这些检查的结果作为故障排除的一部分:

  1. 确保你已经生成帮助标签
  2. 运行 :checkhealth
  3. 启用调试日志
  4. 尝试在最小化项目中重现问题

生成帮助标签

如果你看到错误 E149: Sorry, no help for gitlab.txt,你需要在 Neovim 中生成帮助标签。 要解决此问题:

  • 运行以下任一命令:
    • :helptags ALL
    • 从插件根目录运行 :helptags doc/

运行 :checkhealth

运行 :checkhealth gitlab* 以获取当前会话配置的诊断信息。 这些检查帮助你自行识别和解决配置问题。

启用调试日志

启用调试日志以捕获更多关于问题的信息。调试日志可能包含敏感的工作区配置,因此在与他人共享之前请检查输出。

要启用额外的日志记录:

  • 在当前缓冲区中设置 vim.lsp 日志级别:

    :lua vim.lsp.set_log_level('debug')

在最小化项目中重现问题

为了帮助项目维护者理解和解决你的问题,创建一个重现你问题的示例配置或项目。例如,在排查代码建议问题时:

  1. 创建一个示例项目:

    mkdir issue-25
    cd issue-25
    echo -e "def hello(name)\n\nend" > hello.rb
  2. 创建一个名为 minimal.lua 的新文件,内容如下:

    -- 注意:不要在你的常规配置中设置此日志级别,因为此日志级别
    -- 可能包含敏感的工作区配置。
    vim.lsp.set_log_level('debug')
    
    vim.opt.rtp:append('$HOME/.local/share/nvim/site/pack/gitlab/start/gitlab.vim')
    
    vim.cmd('runtime plugin/gitlab.lua')
    
    -- gitlab.config 选项覆盖:
    local minimal_user_options = {}
    require('gitlab').setup(minimal_user_options)
  3. 在最小化的 Neovim 会话中,编辑 hello.rb

    nvim --clean -u minimal.lua hello.rb
  4. 尝试重现你遇到的行为。根据需要调整 minimal.lua 或其他项目文件。

  5. 查看 ~/.local/state/nvim/lsp.log 中的最新条目并捕获相关输出。

  6. 删除任何对敏感信息的引用,例如以 glpat- 开头的令牌。

  7. 从任何 Vim 寄存器或日志文件中删除敏感信息。

错误:GCS:unavailable

当你的本地项目在 .git/config 中未设置远程仓库时会发生此错误。

要解决此问题:使用 git remote add 在你的本地项目中添加一个 Git 远程仓库。