From a910f192db0a87d0a43ed64d52ec5fc7b966faee Mon Sep 17 00:00:00 2001 From: Thorsten Ball Date: Fri, 7 Jun 2024 13:43:57 +0200 Subject: [PATCH] docs: Document how to setup Tailwind CSS support in Ruby (#12762) Release Notes: - N/A --- docs/src/languages/ruby.md | 45 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/docs/src/languages/ruby.md b/docs/src/languages/ruby.md index caec781f55..f4744cf68b 100644 --- a/docs/src/languages/ruby.md +++ b/docs/src/languages/ruby.md @@ -81,3 +81,48 @@ Ruby LSP uses pull-based diagnostics which Zed doesn't support yet. We can tell } } ``` + + +## Using the Tailwind CSS Language Server with Ruby + +It's possible to use the [Tailwind CSS Language Server](https://github.com/tailwindlabs/tailwindcss-intellisense/tree/HEAD/packages/tailwindcss-language-server#readme) in Ruby and ERB files. + +In order to do that, you need to configure the language server so that it knows about where to look for CSS classes in Ruby/ERB files by adding the following to your `settings.json`: + +```json +{ + "languages": { + "Ruby": { + "language_servers": ["tailwindcss-language-server", "..."] + } + }, + "lsp": { + "tailwindcss-language-server": { + "settings": { + "includeLanguages": { + "erb": "html", + "ruby": "html" + }, + "experimental": { + "classRegex": ["\\bclass:\\s*['\"]([^'\"]*)['\"]"] + } + } + } + } +} +``` + +With these settings you will get completions for Tailwind CSS classes in HTML attributes inside ERB files and inside Ruby/ERB strings that are coming after a `class:` key. Examples: + +```ruby +# Ruby file: +def method + div(class: "pl-2 ") do + p(class: "mt-2 ") { "Hello World" } + end +end + +# ERB file: +<%= link_to "Hello", "/hello", class: "pl-2 " %> +Hello +```