在 Visual Studio Code 中使用 Ruby
Ruby 是一种动态的开源编程语言,以其简单性和生产力而闻名。Ruby 哲学的一部分是拥有富有表现力和优雅的语法,旨在让开发人员感到快乐。它通常与各种不同的框架一起用于 Web 开发,也可用于脚本编写,以便在构建原型时实现快速迭代。
本主题详细介绍了如何在 Visual Studio Code 中使用 Ruby LSP 扩展设置和使用 Ruby。
安装
通过版本管理器安装 Ruby
虽然某些操作系统(例如 macOS 和某些 Linux 发行版)默认安装了 Ruby,但我们建议使用版本管理器(例如 rbenv),以便在 Windows、macOS 和 Linux 上访问更新版本的 Ruby。请按照适用于您的平台的安装指南进行操作。
注意:与在您的机器上安装任何新工具集一样,您需要确保重新启动您的终端/命令提示符和 VS Code 实例,以便在平台的 PATH 变量中使用更新后的工具集位置。
在 VS Code 中安装 Ruby LSP 扩展
您可以通过 VS Code 内的扩展视图(⇧⌘X (Windows, Linux Ctrl+Shift+X))找到并安装 Ruby LSP 扩展,然后搜索 'Ruby LSP'。
我们将在本主题中讨论许多 Ruby LSP 功能,但您也可以参阅该扩展程序的文档和存储库。
检查您的安装
安装后,检查语言状态项以查看 Ruby LSP 服务器的状态。如果已配置版本管理器,则应显示项目的正确 Ruby 版本。服务器状态应显示正在启动或正在运行,而不是错误。
该扩展程序会自动生成一个包含自定义 Bundle 的 .ruby-lsp
文件夹,该 Bundle 包含语言服务器 gem ruby-lsp
。无需进行配置。
默认情况下,该扩展程序会尝试自动检测您正在使用的 Ruby 版本管理器,并相应地使用正确的版本和路径。如果您想自定义此行为,请在您的用户设置中设置以下配置
{
"rubyLsp.rubyVersionManager": {
"identifier": "rbenv"
}
}
该扩展程序会自动尝试定期更新 ruby-lsp
语言服务器 gem;如果您想强制执行此操作,请使用命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))执行Ruby LSP: Update language server gem。
如果您遇到任何问题,请参阅故障排除以了解后续步骤。
主要功能
导航和智能感知
Ruby LSP 提供了多种与导航和智能感知相关的功能,例如跳转到定义、悬停提示、工作区符号、文档符号、补全和签名帮助。
要详细了解如何在 VS Code 中快速浏览源代码,请查看代码导航。
嵌入提示
Ruby LSP 能够显示有关代码中推断或隐式值的有用信息。在下面的示例中,您可以看到 StandardError
显示为在空的 rescue
调用中隐式捕获的异常类。
虽然嵌入提示有助于理解您的代码,您也可以通过Editor > Inlay Hints: Enabled设置(editor.inlayHints.enabled)禁用该功能,或者使用以下设置仅为 Ruby LSP 禁用此功能
"rubyLsp.enabledFeatures": {
"inlayHint": false,
}
语义语法高亮
Ruby LSP 能够使用语义语法高亮和样式设置,因为它对项目源代码有丰富的理解。
例如,它可以高亮显示
- 一致的方法调用,不会将其与局部变量混淆。
- 在其作用域内一致地高亮显示局部参数(例如方法、块或 lambda 参数)。
注意:此截图使用了包含在Ruby 扩展包中的 Spinel 主题。主题必须利用 Ruby LSP 提供的信息才能为 Ruby 文件提供丰富的高亮显示。
要使用此功能,编辑器必须启用语义高亮。
"editor.semanticHighlighting.enabled": true,
Linting 和格式化
默认情况下,Ruby LSP 通过与 RuboCop 集成提供 Linting 和格式化功能。您可以使用⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I)或从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))或编辑器中的上下文菜单运行格式化文档命令来格式化您的 Ruby 文件。
如果您的项目不使用 RuboCop,Ruby LSP 将使用 SyntaxTree 格式化文件。
您还可以在每次保存时运行格式化程序(Editor: Format On Save),以便在您工作时自动保持 Ruby 代码的正确格式。为此,您必须启用保存时格式化功能。
"editor.formatOnSave": true
Ruby LSP 扩展程序还提供了一些方便的格式化输入补全功能。例如,它会自动续写注释行,并自动关闭 end
标记、管道或字符串插值大括号。要使用格式化输入补全,请确保它在编辑器中启用
"editor.formatOnType": true
快速修复
当 linter 在您的源代码中发现错误和警告时,Ruby LSP 通常可以提供建议的快速修复(也称为代码操作),这些建议通过编辑器中的灯泡悬停提示提供。您可以通过⌘. (Windows, Linux Ctrl+.)快速打开可用的快速修复。
此外,默认情况下启用了Code Action Widget: Include Nearby Quick Fixes设置(editor.codeActionWidget.includeNearbyQuickFixes),该设置将激活行中最接近的快速修复,无论您的光标在该行中的位置如何(命令 ID editor.action.quickFix
)。
该命令会高亮显示将通过快速修复重构或修复的源代码。常规的代码操作和非修复重构仍可在光标位置激活。
重构
除了快速修复外,Ruby LSP 还通过代码操作提供重构选项。例如,它只需单击即可将 Ruby 表达式提取到局部变量中。
调试
Ruby LSP 扩展程序支持使用 debug gem(Ruby 的官方调试器)进行调试。此外,开发人员还可以安装 VS Code RDBG 扩展程序以获得调试功能。
以下文档适用于 Ruby LSP 的调试器客户端。有关如何配置它的说明,请参阅 RDBG 的 README。
调试测试
Ruby LSP 在单元测试上方添加了 CodeLens 按钮,使您能够在测试资源管理器中运行示例、在新终端中运行它们或启动调试器。对于这些用途,无需进行配置。
通过启动任务进行调试
要通过启动任务使用调试器,您需要在 launch.json
文件中创建调试配置。配置允许您配置要执行的程序。
为 Ruby 程序创建 launch.json
文件
- 在调试视图(⇧⌘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 扩展程序的最新功能/错误修复,请参阅单仓库的发布页面,其中包含服务器和 VS Code 扩展程序的实现。
如果您有任何问题或功能请求,请随时在 Ruby LSP 的GitHub 仓库中记录它们。
如果您想详细了解 VS Code,请尝试以下主题