Visual Studio Code 中的 Ruby
Ruby 是一种动态的开源编程语言,以其简洁和高效的功能著称。Ruby 拥有富有表现力且优雅的语法,其理念之一是让开发者满意。它常用于各种不同框架的网页开发和脚本编写,使构建原型时能够快速迭代。
本主题详细介绍了如何在Visual Studio Code中使用Ruby,并使用Ruby LSP扩展。

安装
通过版本管理器安装 Ruby
虽然 Ruby 默认安装在某些作系统上(如 macOS 和部分 Linux 发行版),但我们建议使用版本管理器访问更新版本的 Ruby,如 macOS 和 Linux 上的 rbenv,以及 Windows 上的 rbenv。请按照您平台的安装指南作。
注意:和安装任何新工具集一样,你需要确保重启终端/Commands提示符和 VS Code 实例,以便使用平台 PATH 变量中更新的工具集位置。
在VS Code中安装Ruby LSP扩展
你可以在 VS Code 中的扩展视图中找到并安装 Ruby LSP 扩展 (⇧⌘X(Windows,Linux Ctrl+Shift+X))并搜索“Ruby LSP”。

我们将在本主题中讨论许多Ruby LSP的功能,但你也可以参考扩展的文档和仓库。
检查你的安装情况
安装完成后,请在状态栏查看语言状态项,查看Ruby LSP服务器的状态。如果版本管理器已经配置好,它应该会显示适合你项目的 Ruby 版本。服务器状态应该显示启动或运行,但不会显示错误。

扩展生成.ruby-lsp自动文件夹,包含包含语言服务器宝石的自定义捆绑包红宝石-超速.不需要配置。
默认情况下,扩展会自动检测你使用的 Ruby 版本管理器,并相应使用正确的版本和路径。如果你想自定义这种行为,可以在用户设置中设置以下配置:
{
"rubyLsp.rubyVersionManager": {
"identifier": "rbenv"
}
}
扩展会自动尝试更新红宝石-超速语言服务器宝石定期发布;如果你想强制实现这一点,可以使用命令面板(⇧⌘P(Windows,Linux Ctrl+Shift+P))来执行 Ruby LSP: Update 语言服务器 gem。
如果遇到任何问题,请查看故障排除以了解下一步。
主要特色
导航与IntelliSense
Ruby LSP 提供多种导航和 IntelliSense 相关功能,如进入定义、悬停、工作区 符号、文档符号、完成和签名帮助。
想了解如何用 VS Code 快速处理源代码,请访问 Code Navigation。
镶嵌提示
Ruby LSP 能够显示关于你代码中推断或隐式值的有用信息。在下面的示例中,你可以看到标准误差被展示为隐含例外类被救出救援叫。

虽然嵌入提示有助于理解代码,但你也可以通过编辑器> Inlay提示:启用设置禁用该功能 (
"rubyLsp.enabledFeatures": {
"inlayHint": false,
}
语义句法高亮
Ruby LSP 能够使用语义、高亮和样式设计,这得益于其对项目源代码的丰富理解。
例如,它可以高亮:
- 方法调用保持一致,避免与本地变量混淆。
- 本地参数(如方法参数、块参数或λ参数)始终在它们存在的作用域内。

注意:这张截图使用了Ruby扩展包中包含的Spinel主题。主题必须利用Ruby LSP显示的信息,以便为Ruby文件提供丰富的高亮效果。
要使用此功能,编辑器必须启用语义高亮。
"editor.semanticHighlighting.enabled": true,
字条与格式化
默认情况下,Ruby LSP 通过与 Rubocop 集成提供 linting 和格式化。你可以用 ⇧⌥F(Windows Shift+Alt+F,Linux Ctrl+Shift+I)格式化 Ruby 文件,或者在命令面板中运行格式化文档命令(⇧⌘P(Windows,Linux Ctrl+Shift+P))或编辑器中的上下文菜单。
如果你的项目不使用 RuboCop,Ruby LSP 会用 SyntaxTree 格式化文件。

你还可以在每个存档上运行格式化器(编辑器:存档格式化),这样在工作时自动保持Ruby代码格式正确。要做到这一点,你必须在保存时启用格式化。
"editor.formatOnSave": true
Ruby LSP 扩展还提供了一些方便的 format on type 补全功能。例如,它会自动继续评论线和自动关闭结束标记、管道或字符串插值的卷括。要在类型中使用格式,请确保在编辑器中启用:
"editor.formatOnType": true
快速修复
当linter发现源代码中的错误和警告时,Ruby LSP通常可以提供建议的快速修复(也称为代码作),这些通过编辑器中的悬停灯泡即可获得。你可以通过⌘快速打开可用的快速修复。(Windows,Linux Ctrl+)。

此外,代码动作小部件:包含附近的快速修复 (
editor.action.quickFix),无论你的光标在该行的哪个位置。
该命令会高亮将通过快速修复重构或修复的源代码。正常的代码动作和非修复重构仍可在光标位置激活。
重构
除了快速修复,Ruby LSP 还通过代码动作提供重构选项。例如,它可以一键提取 Ruby 表达式到局部变量中。

调试
Ruby LSP 扩展支持使用调试宝石(Ruby 官方调试器)进行调试。或者,开发者也可以 同时安装VS Code RDBG扩展 为了获得调试功能。
以下文档是关于Ruby LSP调试客户端的。请参阅 RDBG 的 README 以获取配置说明。
调试测试
Ruby LSP 在单元测试之上添加了 CodeLens 按钮,允许你在测试资源管理器中运行示例,运行它们 在新终端或启动调试器。对于这些用途,无需配置。

启动任务调试
要在启动任务中使用调试器,你需要在launch.json档案。配置允许你配置程序执行。
要创建一个launch.json对于Ruby程序:
- 在调试视图(⇧⌘D(Windows,Linux Ctrl+Shift+D))中,选择创建launch.json文件链接。
- 该页面显示一个下拉菜单,包含多种默认启动配置类型。你可以选择第一个选项,但我们还会添加更多配置。
- 我们现在可以编辑已创建的内容
.vscode/launch.json文件以添加更多启动Ruby程序进行调试的方法。
示例:
{
"version": "0.2.0",
"configurations": [
// Launch the debugger for any given program. In this case, it will run the current file using Ruby
{
"type": "ruby_lsp",
"name": "Debug",
"request": "launch",
"program": "ruby ${file}"
},
// Launch the debugger for the current test file
{
"type": "ruby_lsp",
"request": "launch",
"name": "Debug test file",
"program": "ruby -Itest ${relativeFile}"
},
// Attach the debugger client to an existing Ruby process that has already been launched with the debugger
// server
{
"type": "ruby_lsp",
"request": "attach",
"name": "Attach to existing server"
}
]
}
添加启动配置后,我们可以通过添加断点和执行启动任务来调试 Ruby 程序。
-
打开一个Ruby文件,在编辑器中点击左边的下水道来设置断点。它应该显示为红点。

-
开始调试时,方法是在“运行”和调试“中选择目标任务,然后点击开始调试按钮(默认快捷键 F5)。

下一步
这是对 VS Code 中 Ruby LSP 扩展功能的简要概述。更多信息请参阅 Ruby LSP 文档中的详细信息,包括如何调整特定的 VS Code 编辑器配置。
想了解Ruby LSP扩展的最新功能和修复,请参见monorepo的发布页面,该页面包含服务器和VS Code扩展的实现。
如果你有任何问题或功能请求,欢迎在 Ruby LSP 的 GitHub 仓库中记录。
如果你想了解更多VS Code,可以尝试以下主题: