Rails 插件

Ruby LSP Rails 是一个 Ruby LSP 插件,它使用 Rails 特有的功能增强了基础 Ruby LSP 的功能。它提供了改进的代码导航,针对 Rails 特定元素的文档符号,以及运行时自省功能。

与正在运行的 Rails 实例通信,以提供有关应用程序的动态信息,从而实现更准确和上下文感知的语言服务器功能。

目录

安装

Rails 插件是自动安装的。

Ruby LSP 会检测 Rails 项目并为您安装 Rails 插件

运行时自省

LSP 工具通常基于静态分析,但 ruby-lsp-rails 实际上会与您的 Rails 应用程序通信以获取某些功能。

当 Ruby LSP Rails 启动时,它会生成一个 rails runner 实例,该实例运行 server.rb。该插件通过管道(即 stdinstdout)与此进程通信,以获取有关应用程序的运行时信息。

当扩展停止时(例如通过退出编辑器),服务器实例将被关闭。

功能

文档符号

文档符号是一种表示文档结构的方式。它们用于提供文档的快速概览并允许快速导航。

Ruby LSP 已经为 Ruby 文件提供文档符号,例如类、模块、方法等。但 Rails 插件为 Rails 特定功能提供了额外的文档符号。

在 VS Code 中,您可以通过按 Ctrl + Shift + O 打开文档符号视图。

Active Record 回调、验证和关联

使用 文档符号 功能在 Active Record 回调、验证和关联之间导航。

Document Symbol for Active Record Callbacks, Validations, and Associations

Active Support 测试用例

使用 文档符号 功能在 Active Support 测试用例之间导航。

Document Symbol for tests

跳转到控制器操作路由

使用 Code Lens 功能导航到控制器操作的路由定义。

Go to Controller Action Route

跳转到控制器操作视图

使用 Code Lens 功能导航到控制器操作的视图文件。

Go to Controller Action View

跳转到定义

跳转到定义是一项功能,可让您导航到符号的定义。

在 VS Code 中,您可以通过 3 种不同的方式触发跳转到定义

  • 从上下文菜单中选择 跳转到定义
  • 在符号上按 F12
  • 在符号上按 Cmd + 单击

在以下演示中,我们将使用 Cmd + 单击 方法来触发跳转到定义。

跳转到 Active Record 回调和验证定义

导航到 Active Record 回调和验证的定义。

Go to Active Record Callback and Validation Definitions

跳转到 Active Record 关联

导航到 Active Record 关联的定义。

Go to Active Record Associations

跳转到路由助手定义

Go to Route Helper Definitions

Ruby 文件操作

Ruby LSP 扩展在资源管理器视图中提供了一个 Ruby 文件操作 图标,可用于触发 Rails generateRails destroy 命令。

Ruby file operations

命令

这些命令也可在命令面板中使用。

Rails Generate

Rails Generate

Rails Destroy

Rails Destroy

运行和调试

Rails 插件提供了 3 种方式,可以使用 Code Lens 功能运行和调试 ActiveSupport 测试。

使用测试资源管理器运行测试

Run Tests With Test Explorer

在终端中运行测试

Run Tests In The Terminal

使用 VS Code 调试测试

Debug Tests With VS Code