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-railswhich solargraph,若能输出可执行文件路径,说明已在PATH中。 - 项目本地安装(适用于隔离的Gem环境):
在项目Gemfile的development组中添加:
然后执行:group :development do gem 'solargraph' gem 'solargraph-rails' # Rails项目必须,用于增强框架代码提示 endbundle 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
相关产品推荐
相关产品推荐

