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

求助:Helix中ruby-lsp启动失败,Ruby Gem环境配置问题

解决Helix中Ruby-LSP无法运行的问题

环境信息

  • 系统:Voidlinux
  • Shell:nushell 0.104.0
  • Ruby版本:3.5.0dev(源码编译安装)
  • Helix版本:25.01.1
  • Ruby-LSP版本:0.24.1

Gem环境详情

~> gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 3.7.0.dev
  - RUBY VERSION: 3.5.0 (2025-06-09 patchlevel -1) [x86_64-linux]
  - INSTALLATION DIRECTORY: /home/aurele/.rubies/ruby-master/lib/ruby/gems/3.5.0+2
  - USER INSTALLATION DIRECTORY: ~/.local/share/gem/ruby/3.5.0+2
  - CREDENTIALS FILE: ~/.local/share/gem/credentials
  - RUBY EXECUTABLE: /home/aurele/.rubies/ruby-master/bin/ruby
  - GIT EXECUTABLE: /usr/bin/git
  - EXECUTABLE DIRECTORY: /home/aurele/.rubies/ruby-master/bin
  - SPEC CACHE DIRECTORY: /home/aurele/.cache/gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /home/aurele/.rubies/ruby-master/etc
  - RUBYGEMS PLATFORMS:
     - ruby
     - x86_64-linux
  - GEM PATHS:
     - /home/aurele/.rubies/ruby-master/lib/ruby/gems/3.5.0+2
     - ~/.local/share/gem/ruby/3.5.0+2
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => true
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/lib/jvm/openjdk24/bin
     - /home/aurele/.rubies/ruby-master/bin
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/bin
     - /usr/sbin
     - /sbin
     - /bin
     - /usr/lib/jvm/default-jdk/bin
     - /usr/lib/jvm/default-jre/bin
     - /home/aurele/.local/share/coursier/bin
     - /home/aurele/.cache/scalacli/local-repo/bin/scala-cli
     - /home/aurele/.rubies/ruby-master/lib/ruby/gems/3.5.0+2
     - /home/aurele/.local/share/gem/ruby/3.5.0+2

Ruby-LSP安装验证

~> gem list | grep ruby-lsp
ruby-lsp (0.24.1)
~> whereis ruby-lsp
ruby-lsp: /home/aurele/.rubies/ruby-master/bin/ruby-lsp

注:Ruby-LSP同时存在于gem源码目录和可执行目录是正常现象,gem安装时会自动将可执行文件链接到EXECUTABLE DIRECTORY。

问题现象

  • Helix执行:lsp-restart时提示Language server exited
  • 终端通过ps | where name == 'ruby-lsp'查询不到相关进程
  • 当前Helix语言配置文件~/.config/helix/languages.toml内容:
[language-server.ruby-lsp]
command = "ruby-lsp"
config = { diagnostics = true, formatting = true }
args = []


[[language]]
name = "ruby"
language-servers = ["ruby-lsp", "solargraph"]
auto-format = true
file-types = ["rb", "ru", "gemspec", { glob = "Rakefile" }, { glob = "Gemfile" }, { glob = "*.rake" }, ".irbrc", ".pryrc"]
shebangs = ["ruby"]
roots = ["Gemfile", ".git"]


[language.formatter]
command = "rubocop"
args = [
    "--stdin",
    "file.rb",
    "--format",
    "files",
    "--stderr",
    "--stdin-path",
    "file.rb",
]


[language.debugger]
name = "rdbg"
command = "rdbg"
args = ["--open", "--port", ":0"]
transport = "stdio"
templates = [
  { name = "start", request = "launch", completion = [ { name = "program", completion = "filename" } ], args = { command = "ruby", rubyopt = ["-rdebug/open_nonstop"], open = true, nonstop = true, program = "{0}" } },
  { name = "attach", request = "attach", completion = [ { name = "port", default = "4711" } ], args = { command = "attach", port = "{0}" } },
]


[language-server.ruby-lsp.capabilities]
completion = true
hover = true
definition = true
documentSymbol = true
foldingRange = true
selectionRange = true
inlayHint = true
onTypeFormatting = true
[language-server.ruby-lsp.diagnostics]
rubocop = true


[language-server.solargraph]
command = "solargraph"
args = ["stdio"]
completion = true
hover = true
diagnostics = true


[language.indent]
tab-width = 2
unit = "  "

排查与修复步骤

1. 验证Ruby-LSP独立运行能力

在终端直接执行ruby-lsp,查看是否能正常启动:

ruby-lsp

若启动失败,会输出具体错误信息(如依赖缺失、Ruby版本兼容问题)。由于使用的是Ruby 3.5.0dev开发版,建议:

  • 切换到Ruby稳定版(如3.3.x)测试兼容性
  • 安装旧版本Ruby-LSP尝试兼容:gem install ruby-lsp -v 0.23.0

2. 解决语言服务器冲突

当前配置同时启用ruby-lsp和solargraph,可能导致资源冲突。先单独测试Ruby-LSP,修改[[language]]配置:

[[language]]
name = "ruby"
language-servers = ["ruby-lsp"] # 移除solargraph
# 其余配置保持不变

3. 指定Ruby-LSP绝对路径

避免Helix无法定位可执行文件,直接写入绝对路径:

[language-server.ruby-lsp]
command = "/home/aurele/.rubies/ruby-master/bin/ruby-lsp"
config = { diagnostics = true, formatting = true }
args = []

4. 确保Helix继承正确环境变量

Helix启动时可能未继承Shell完整PATH,可通过启动脚本指定:

export PATH="/home/aurele/.rubies/ruby-master/bin:$PATH"
helix

5. 查看Helix LSP日志定位错误

在~/.config/helix/config.toml中添加日志配置:

[log]
level = "debug"
file = "~/.cache/helix/helix.log"

重启Helix后,查看~/.cache/helix/helix.log中ruby-lsp相关条目,定位具体错误原因。

6. 修复Ruby-LSP依赖

执行gem check ruby-lsp检查依赖完整性,若有缺失则重新安装:

gem install ruby-lsp --force

内容的提问来源于stack exchange,提问作者Aurélien Plazzotta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 21:34:57