Ruby
Ruby 支援可透過 Ruby extension 取得。
Ruby extension 也提供對 ERB 檔案的支援。
選擇語言伺服器
Ruby extension 提供 solargraph
和 ruby-lsp
語言伺服器支援。
solargraph
預設為啟用狀態。
要切換至 ruby-lsp
,請將以下內容新增至您的 settings.json
{
"languages": {
"Ruby": {
"language_servers": ["ruby-lsp", "!solargraph", "!rubocop", "..."]
}
}
}
Ruby extension 也提供 rubocop
語言伺服器支援,用於偵測和自動修正錯誤。要啟用它,請將以下內容新增至您的 settings.json
{
"languages": {
"Ruby": {
"language_servers": ["rubocop", "ruby-lsp", "!solargraph", "..."]
}
}
}
設定 solargraph
Zed 目前不會自動安裝 Solargraph。要使用 Solargraph,您需要安裝該 gem。Zed 只會在您的 PATH
上尋找名為 solargraph
的可執行檔。
您可以使用以下指令手動安裝 gem
gem install solargraph
或者,如果您的專案使用 Bundler,您可以將 Solargraph gem 新增至您的 Gemfile
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 語言伺服器
可以在 Ruby 和 ERB 檔案中使用 Tailwind CSS 語言伺服器。
為此,您需要設定語言伺服器,讓它知道在哪裡尋找 Ruby/ERB 檔案中的 CSS 類別,方法是將以下內容新增至您的 settings.json
{
"languages": {
"Ruby": {
"language_servers": ["tailwindcss-language-server", "..."]
}
},
"lsp": {
"tailwindcss-language-server": {
"settings": {
"includeLanguages": {
"erb": "html",
"ruby": "html"
},
"experimental": {
"classRegex": ["\\bclass:\\s*['\"]([^'\"]*)['\"]"]
}
}
}
}
}
透過這些設定,您將在 ERB 檔案內的 HTML 屬性和 class:
鍵之後的 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>