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

Emacs 29.3中M-x eglot无法连接solargraph的问题咨询

在Emacs 29.3中配置Eglot+Solargraph解决Ruby文件报错问题

你的思路部分正确,但存在细节偏差,以下是明确的结论和配置步骤:

对你思路的修正

  • 不需要单独搭建独立Ruby/Rails应用部署solargraph,全局或项目本地安装即可满足需求
  • 在当前应用安装solargraph及solargraph-rails(Rails项目)是正确方向,但无需手动启动服务器,Eglot可自动调用solargraph
  • 修改eglot-server-programs匹配Rails 3000端口完全没必要,solargraph作为LSP服务的端口和Rails开发服务器端口无关

正确配置步骤

1. 安装Solargraph

有两种安装方式可选:

  • 全局安装(适用于所有Ruby项目):
    gem install solargraph solargraph-rails
    
    安装后执行which solargraph,若能输出可执行文件路径,说明已在PATH中。
  • 项目本地安装(适用于隔离的Gem环境):
    在项目Gemfile的development组中添加:
    group :development do
      gem 'solargraph'
      gem 'solargraph-rails' # Rails项目必须,用于增强框架代码提示
    end
    
    然后执行:
    bundle install
    

2. 配置Eglot适配Solargraph

  • 若为全局安装:默认Eglot会自动识别并调用solargraph,无需额外配置。
  • 若为项目本地bundle安装:需修改Emacs配置,让Eglot通过bundle启动solargraph:
    (setq eglot-server-programs
          (append eglot-server-programs
                  '((ruby-mode . ("bundle" "exec" "solargraph" "socket" "--port" :autoport))
                    (ruby-ts-mode . ("bundle" "exec" "solargraph" "socket" "--port" :autoport)))))
    

3. 初始化Rails项目Solargraph配置(推荐)

对于Rails项目,执行以下命令生成适配框架的solargraph配置文件,提升代码提示精度:

# 全局安装时
solargraph rails setup
# 本地bundle安装时
bundle exec solargraph rails setup

该命令会生成.solargraph.yml,包含Rails项目的路径、依赖等配置。

4. 验证启动

打开Ruby/Rails文件,执行M-x eglot,即可正常连接solargraph服务。若仍有问题,可手动启动solargraph后再让Eglot连接:

solargraph socket --port 7658

同时修改Emacs配置指定端口:

(setq eglot-server-programs
      (append eglot-server-programs
              '((ruby-mode . ("solargraph" "socket" "--port" "7658")))))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 20:23:24