Solargraph 在 Sublime Text 中需手动配置:确保 solargraph gem 可用、LSP-Solargraph 的 command 设为绝对路径、项目根目录存在 .solargraph.yml 文件,并禁用冲突插件。

Solargraph 在 Sublime Text 中不是开箱即用的——它依赖 Ruby 运行时、solargraph gem 的正确安装,以及 SublimeLSP 插件对语言服务器的精准调用。如果你已经装了 solargraph 但补全/跳转不工作,大概率是环境路径或插件冲突导致的。
确认 solargraph gem 是否真正可用
Sublime 不继承你的 shell 初始化(比如 ~/.zshrc),所以即使终端里 solargraph --version 能跑,Sublime 控制台(Ctrl+`)里也可能报 command not found。
- 在系统终端执行:
which solargraph和solargraph --version,记下完整路径(如/Users/you/.rbenv/shims/solargraph或/opt/homebrew/bin/solargraph) - 在 Sublime 的控制台(
View > Show Console)中运行相同命令;结果必须一致,否则 LSP 启动失败且无提示 - macOS M 系列用户若用
rbenv,需确保rbenv init已写入~/.zshrc,且 Sublime 是从终端用subl启动的(否则无法加载 shims)
只保留必要插件,禁用干扰项
多个 Ruby 插件共存会抢夺 .rb 文件的语法识别权,甚至让 SublimeLSP 降级为纯文本模式。
- 卸载所有非官方 Ruby LSP 相关插件:
Solargraph(单独插件)、ruby-solargraph、rebornix.ruby、Ruby Slim等 - 只保留:
SublimeLSP+LSP-Solargraph(由sublimelsp官方维护) - 重启 Sublime 后打开任意
.rb文件,右下角状态栏应显示Ruby (via LSP),不是Ruby或Solargraph
配置 LSP-Solargraph 的 command 为绝对路径
LSP-Solargraph 默认尝试用 solargraph 命令启动服务,但 Sublime 环境中 PATH 不可靠,必须显式指定可执行文件路径。
- 打开
Preferences > Package Settings > LSP > Servers Settings – LSP-Solargraph - 填入类似以下内容(路径替换成你前面
which solargraph的结果):{ "command": ["/Users/you/.rbenv/shims/solargraph", "stdio"], "enabled": true, "initializationOptions": { "enableDocumentSymbols": true } } - 不要用
["solargraph", "stdio"]—— 这是静默失败最常见原因 - 如果用
rbenv,确保rbenv rehash已执行,且solargraphshim 指向当前 Ruby 版本下的 gem
项目根目录必须有 .solargraph.yml(否则补全失效)
Solargraph 不会自动扫描整个项目,它依赖配置文件定义解析范围和加载方式。没有这个文件,LSP 只能做基础词法补全,看不到方法签名、参数提示或跨文件跳转。
- 在项目根目录新建
.solargraph.yml(注意开头是点,无后缀) - 最简有效内容:
--- include: - "**/*.rb" exclude: - ".git/**/*" - "vendor/**/*" require: []
- 如果项目用了
bundle,建议加一行require: ["bundler/setup"]并确保bundle exec solargraph stdio在终端能正常运行 - 修改后需重启 LSP(
Ctrl+Shift+P→LSP: Restart Servers)
Solargraph 的 Ruby 支持看似简单,实际卡点都在“环境一致性”上:终端能跑 ≠ Sublime 能跑,gem 装了 ≠ LSP 能调用,插件装了 ≠ 语法识别没被劫持。最容易被忽略的是 .solargraph.yml 缺失和 command 未写死绝对路径——这两处不出错,其他都白配。


















