Visual Studio 代码中的 Ruby
Ruby是一种动态的开源编程语言,以其简单性和生产力而闻名。凭借富有表现力和优雅的语法,Ruby 哲学的一部分就是让开发人员感到高兴。它通常用于具有一系列不同框架的 Web 开发以及脚本编写,从而在构建原型时允许快速迭代。
本主题详细介绍了如何在 Visual Studio Code 中设置和使用 Ruby 以及 Ruby LSP扩展。
安装
通过版本管理器安装 Ruby
虽然 Ruby 默认安装在某些操作系统(例如 macOS 和某些 Linux 发行版)上,但我们建议使用版本管理器(例如rbenv),以便能够在 Windows、macOS 和 Linux 上访问较新版本的 Ruby。请遵循适合您的平台的安装指南。
注意:与在计算机上安装任何新工具集一样,您需要确保重新启动终端/命令提示符和 VS Code 实例,以使用平台 PATH 变量中更新的工具集位置。
在 VS Code 中安装 Ruby LSP 扩展
您可以通过扩展视图 ( ⇧⌘X (Windows、Linux Ctrl+Shift+X ) ) 并搜索“Ruby LSP”,从 VS Code 中查找并安装 Ruby LSP 扩展。
我们将在本主题中讨论许多 Ruby LSP 功能,但您也可以参阅https://github.com/Shopify/vscode-ruby-lsp上的扩展文档。
检查您的安装
安装完成后,查看语言状态项即可查看Ruby LSP服务器的状态。如果版本管理器已配置,它应该显示适合您的项目的 Ruby 版本。服务器状态应显示正在启动或正在运行,但不显示错误。
该扩展会.ruby-lsp
自动生成一个文件夹,其中包含包含语言服务器 gem 的自定义捆绑包ruby-lsp
。不需要任何配置。
默认情况下,扩展会尝试自动检测您正在使用的 Ruby 版本管理器,并相应地使用正确的版本和路径。如果您想自定义该行为,请在用户设置中设置以下配置:
"rubyLsp.rubyVersionManager": "rbenv"
ruby-lsp
该扩展将自动尝试每天更新一次语言服务器 gem;如果您想强制执行此操作,请使用命令面板 ( ⇧⌘P (Windows、Linux Ctrl+Shift+P ) ) 执行Ruby LSP: Update language server gem。
如果您有任何问题,请参阅后续步骤的故障排除。
主要特点
符号检测
Ruby LSP 解析源代码,并为大纲窗格、文件面包屑和符号搜索提供符号检测和导航(默认情况下可通过⇧⌘O(Windows、Linux Ctrl+Shift+O)访问)。
要了解有关使用 VS Code 快速浏览源代码的更多信息,请查看代码导航。
镶嵌提示
Ruby LSP 能够显示有关代码中推断或隐式值的有用信息。在下面的示例中,您可以看到StandardError
显示为在空调用中被拯救的隐式异常类rescue
。
虽然嵌入提示有助于理解代码,但您还可以通过编辑器 > 嵌入提示:已启用设置 ( editor.inlayHints.enabled
) 禁用该功能,或使用以下命令仅针对 Ruby LSP 禁用该功能:
"rubyLsp.enabledFeatures": {
"inlayHint": false,
}
代码片段
当您输入 Ruby 文件时,Ruby LSP 可能会建议扩展用于常见 Ruby 操作的代码片段,例如创建新方法、类、块或测试样板。要查看完整列表,请查看 Ruby LSP GitHub 存储库中的片段文件。
语义语法高亮
由于对项目源代码的丰富理解,Ruby LSP 能够使用语义语法突出显示和样式设置。
例如,它可以突出显示:
- 方法调用一致,不会与局部变量混淆。
- 局部参数(例如方法、块或 lambda 参数)在它们存在的范围内一致。
注意:此屏幕截图使用的是Ruby 扩展包中包含的 Spinel 主题。主题必须使用 Ruby LSP 显示的信息,以便为 Ruby 文件提供丰富的突出显示。
要使用此功能,编辑器必须启用语义突出显示。
"editor.semanticHighlighting.enabled": true,
语法检查和格式化
默认情况下,Ruby LSP 通过与RuboCop集成提供 linting 和格式化。您可以使用⇧⌥F(Windows Shift+Alt+F、Linux Ctrl+Shift+I)或从命令面板运行格式化文档命令( ⇧⌘P(Windows、Linux Ctrl+Shift+P))来格式化 Ruby 文件)或编辑器中的上下文菜单。
如果您的项目不使用 RuboCop,Ruby LSP 将使用SyntaxTree格式化文件。
您还可以在每次保存时运行格式化程序(编辑器:保存时格式化),以在您工作时自动保持 Ruby 代码正确格式化。为此,您必须启用保存格式。
"editor.formatOnSave": true
Ruby LSP 扩展还使用类型上的格式提供了一些方便的补全。例如,它将自动继续注释行并自动关闭end
标记、管道或字符串插值大括号。要在类型上使用格式,请确保在编辑器中启用它:
"editor.formatOnType": true
快速修复
当 linter 在源代码中发现错误和警告时,Ruby LSP 通常可以提供建议的快速修复(也称为代码操作),可以通过编辑器中的灯泡悬停来获得这些建议。您可以通过 ⌘ 快速打开可用的快速修复。(Windows、Linux Ctrl+。)。
重构
除了快速修复之外,Ruby LSP 还通过代码操作提供重构选项。例如,只需单击一下即可将 Ruby 表达式提取到局部变量中。
使用 rdbg 进行调试支持
为了在 VS Code 内部提供调试支持,Ruby LSP 需要 VS Code RDBG 扩展才能连接到调试(Ruby 的官方调试器)。
安装调试支持
安装VS Code RDBG扩展。
设置调试配置
要使用调试器,您需要在文件中创建调试配置launch.json
。该配置允许您将参数传递给程序、运行预启动任务、设置环境变量等等。
要创建launch.json
Ruby 程序:
- 在调试视图 ( ⇧⌘D (Windows、Linux Ctrl+Shift+D ) ) 中,选择创建 launch.json 文件链接。
- 这将显示一个包含多种默认启动配置类型的下拉列表。您可以选择第一个选项,但我们将添加更多配置。
- 我们现在可以编辑创建的
.vscode/launch.json
文件以添加更多方式来启动 Ruby 程序进行调试。
例子:
{
"version": "0.2.0",
"configurations": [
// Run all tests in a file using Minitest
{
"type": "rdbg",
"name": "Minitest - current file",
"request": "launch",
"script": "-Itest ${file}",
"askParameters": false
},
// If your test runner supports line numbers, such as in Rails,
// you can add a task like this one to run only the test under the cursor
{
"name": "Minitest - current line",
"type": "rdbg",
"request": "launch",
"command": "${workspaceRoot}/bin/rails",
"script": "test",
"args": ["${file}:${lineNumber}"],
"askParameters": false
},
// Attach the debugger to an active process (for example, Rails server)
{
"type": "rdbg",
"name": "Attach with rdbg",
"request": "attach"
}
]
}
添加启动配置后,我们可以通过添加断点并执行启动任务来调试 Ruby 程序。
-
打开 Ruby 文件并单击编辑器中的左侧装订线以设置断点。它应该显示为红点。
-
通过在运行和调试下选择所需的任务并单击开始调试按钮(默认键盘快捷键F5)来开始调试。
下一步
本文简要概述了 VS Code 中的 Ruby LSP 扩展功能。有关更多信息,请参阅 Ruby LSP README中提供的详细信息,包括如何调整特定的VS Code 编辑器配置。
要了解 Ruby LSP 扩展的最新功能/错误修复,请参阅语言服务器 gem和Ruby LSP 扩展的版本页面。
如果您有任何问题或功能请求,请随时将其记录在 Ruby LSP 扩展GitHub 存储库中。
如果您想了解有关 VS Code 的更多信息,请尝试以下主题:
- 基本编辑- VS Code 编辑器基础知识的快速介绍。
- 安装扩展- 了解Marketplace中提供的其他扩展。
- 代码导航- 快速浏览源代码。