Ruby
Ruby 拡張を使用して、Ruby のサポートを利用できます。
Ruby 拡張では、ERB ファイルのサポートも提供されています。
言語サーバーの選択
Ruby 拡張では、solargraph
と ruby-lsp
の両方の言語サーバーのサポートを提供しています。
solargraph
はデフォルトで有効になっています。
ruby-lsp
に切り替えるには、settings.json
に以下を追加します。
{
"languages": {
"Ruby": {
"language_servers": ["ruby-lsp", "!solargraph", "!rubocop", "..."]
}
}
}
Ruby 拡張では、攻撃の検出と自動修正のための rubocop
言語サーバーのサポートも提供されています。有効にするには、settings.json
に以下を追加します。
{
"languages": {
"Ruby": {
"language_servers": ["rubocop", "ruby-lsp", "!solargraph", "..."]
}
}
}
solargraph
の設定
現在、Zed では Solargraph が自動的にインストールされません。Solargraph を使用する場合は、gem をインストールする必要があります。Zed は PATH
上で solargraph
という実行可能ファイルを探します。
次のコマンドを使用して、gem を手動でインストールできます。
gem install solargraph
または、プロジェクトで Bundler を使用している場合は、Gemfile
に Solargraph gem を追加できます。
gem 'solargraph', group: :development
Solargraph では、書式設定と診断はデフォルトで無効になっています。settings.json
に以下を追加することで、Zed にそれらを有効にすることを指示できます。
{
"lsp": {
"solargraph": {
"initialization_options": {
"diagnostics": true,
"formatting": true
}
}
}
}
設定
Solargraph は、プロジェクトのルートにある .solargraph.yml
というファイルから設定を読み込みます。このファイルの詳細については、Solargraph 設定ドキュメントを参照してください。
ruby-lsp
の設定
現在、Zed では Ruby LSP が自動的にインストールされません。Ruby LSP を使用するには、gem をインストールする必要があります。Zed は PATH
上で ruby-lsp
という実行可能ファイルを探します。
次のコマンドを使用して、gem を手動でインストールできます。
gem install ruby-lsp
Ruby LSP では、Zed でまだサポートされていないプルベースの診断が使用されます。settings.json
に以下を追加することで、Zed にそれを無効にすることを指示できます。
{
"lsp": {
"ruby-lsp": {
"initialization_options": {
"enabledFeatures": {
"diagnostics": false
}
}
}
}
}
rubocop
LSP の設定
現在、Zed では rubocop
が自動的にインストールされません。rubocop
を使用するには、gem をインストールする必要があります。Zed は PATH
上で rubocop
という実行可能ファイルを探します。
次のコマンドを使用して、gem を手動でインストールできます。
gem install rubocop
Rubocop では、非推奨の自動修正がデフォルトで無効になっています。settings.json
に以下を追加することで、Zed にそれを有効にすることを指示できます。
{
"lsp": {
"rubocop": {
"initialization_options": {
"safeAutocorrect": false
}
}
}
}
Ruby で Tailwind CSS 言語サーバーを使用する
Tailwind CSS 言語サーバー を Ruby と ERB ファイルで使用できます。
そのためには、settings.json
に以下を追加して、言語サーバーが Ruby/ERB ファイルで CSS クラスを探す場所を認識できるように構成する必要があります。
{
"languages": {
"Ruby": {
"language_servers": ["tailwindcss-language-server", "..."]
}
},
"lsp": {
"tailwindcss-language-server": {
"settings": {
"includeLanguages": {
"erb": "html",
"ruby": "html"
},
"experimental": {
"classRegex": ["\\bclass:\\s*['\"]([^'\"]*)['\"]"]
}
}
}
}
}
これらの設定を使用すると、class:
キーに続く ERB ファイル内の HTML 属性や Ruby/ERB ストリングにある Tailwind CSS クラスの補完が行われます。例
# Ruby file:
def method
div(class: "pl-2 <completion here>") do
p(class: "mt-2 <completion here>") { "Hello World" }
end
end
# ERB file:
<%= link_to "Hello", "/hello", class: "pl-2 <completion here>" %>
<a href="/hello" class="pl-2 <completion here>">Hello</a>