添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在 Visual Studio Code 中使用 Ruby

Ruby 是一种动态的开源编程语言,以其简洁性和高效性而闻名。Ruby 的理念是让开发者快乐,它拥有富有表现力和优雅的语法。它通常用于使用各种不同框架进行 Web 开发,以及用于脚本编写,允许在构建原型时快速迭代。

本主题详细介绍了如何在 Visual Studio Code 中使用 Ruby LSP 扩展来设置和使用 Ruby。

通过版本管理器安装 Ruby

虽然 Ruby 默认安装在某些操作系统上(例如 macOS 和某些 Linux 发行版),但我们建议使用版本管理器(例如 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 功能,但您也可以参阅 https://github.com/Shopify/ruby-lsp 上的扩展文档。

检查您的安装

安装后,检查语言状态项以查看 Ruby LSP 服务器的状态。如果已配置版本管理器,则它应显示您的项目的正确 Ruby 版本。服务器状态应显示“正在启动”或“正在运行”,而不是“错误”。

该扩展会自动生成一个 .ruby-lsp 文件夹,其中包含一个自定义包,其中包含语言服务器 gem ruby-lsp 。无需任何配置。

默认情况下,该扩展会尝试自动检测您正在使用的 Ruby 版本管理器,并相应地使用正确的版本和路径。如果要自定义该行为,请在用户 设置 中设置以下配置

"rubyLsp.rubyVersionManager" : { "identifier" : "rbenv"

该扩展将定期尝试自动更新 ruby-lsp 语言服务器 gem;如果您想强制执行此操作,请使用命令面板( ⇧⌘P (Windows、Linux Ctrl+Shift+P )执行“**Ruby LSP: 更新语言服务器 gem**”。

如果您有任何问题,请参阅 故障排除 以获取后续步骤。

导航和 IntelliSense

Ruby LSP 提供了几个与导航和 IntelliSense 相关的功能,例如转到定义、悬停、工作区符号、文档符号、补全和签名帮助。

Sorry, your browser doesn't support HTML 5 video.

要详细了解如何使用 VS Code 快速浏览源代码,请参阅 代码导航

Ruby LSP 能够显示有关代码中推断或隐式值的有用信息。在下面的示例中,您可以看到 StandardError 显示为在空的 rescue 调用中被捕获的隐式异常类。

虽然内联提示有助于理解您的代码,但您也可以通过“**编辑器 > 内联提示: 已启用**”设置( editor.inlayHints.enabled )禁用该功能,或使用以下内容仅针对 Ruby LSP 禁用该功能

"rubyLsp.enabledFeatures": {
    "inlayHint": false,

语义语法高亮显示

由于对项目源代码有深入的了解,因此 Ruby LSP 能够使用 语义语法高亮显示 和样式。

例如,它可以突出显示

  • 一致地调用方法,而不会将其与局部变量混淆。
  • 局部参数(例如方法、块或 lambda 参数)在其存在范围内的位置一致。
  • **注意**:此屏幕截图使用的是 Ruby 扩展包 中包含的 Spinel 主题。主题必须使用 Ruby LSP 提供的信息才能为 Ruby 文件提供丰富的突出显示。

    要使用此功能,必须在编辑器中启用语义高亮显示。

    "editor.semanticHighlighting.enabled": true,
    

    代码检查和格式化

    默认情况下,Ruby LSP 通过与 RuboCop 集成来提供代码检查和格式化功能。您可以使用 ⇧⌥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
    

    当代码检查器在您的源代码中发现错误和警告时,Ruby LSP 通常可以提供建议的快速修复(也称为代码操作),这些修复可以通过编辑器中的灯泡悬停来访问。您可以通过 ⌘.(Windows、Linux Ctrl+. 快速打开可用的快速修复。

    另外,代码操作小部件:包括附近的快速修复 (editor.codeActionWidget.includeNearbyQuickFixes) 是默认启用的设置,它将激活 ⌘. (Windows、Linux Ctrl+.)(命令 ID editor.action.quickFix)行中最近的快速修复,无论光标在该行的哪个位置。

    该命令会突出显示将使用快速修复进行重构或修复的源代码。仍然可以在光标位置激活正常的代码操作和非修复重构。

    除了快速修复之外,Ruby LSP 还通过代码操作提供重构选项。例如,它可以通过单击将 Ruby 表达式提取到局部变量中。

    Ruby LSP 扩展使用 debug gem(Ruby 的官方调试器)支持调试。或者,开发人员也可以安装 VS Code RDBG 扩展以获得调试功能。

    以下文档适用于 Ruby LSP 的调试器客户端。请参阅 RDBG 的自述文件 以获取有关如何配置它的说明。

    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 文件,然后单击编辑器中的左侧边 gutter 以设置断点。它应该显示为一个红点。

    通过选择运行和调试下的所需任务并单击开始调试按钮(默认键盘快捷键 F5)来开始调试。

    这是对 VS Code 中 Ruby LSP 扩展功能的简要概述。有关更多信息,请参阅 Ruby LSP 自述文件 中提供的详细信息,包括如何调整特定的 VS Code 编辑器 配置。

    要及时了解 Ruby LSP 扩展的最新功能/错误修复,请参阅 monorepo 的“发布”页面,其中包括服务器和 VS Code 扩展实现。

    如果您有任何问题或功能请求,请随时在 Ruby LSP 的 GitHub 仓库 中记录它们。

    如果您想了解有关 VS Code 的更多信息,请尝试以下主题

  • 基本编辑 - VS Code 编辑器基础知识的快速介绍。
  • 安装扩展 - 了解市场中提供的其他扩展。
  • 代码导航 - 在源代码中快速移动。
  •