diff options
| author | Sasha <reactionnnnn@gmail.com> | 2025-04-21 17:42:09 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-21 07:42:09 -0700 |
| commit | 828aa3ded7870542f27daddb00deb23978cb8b66 (patch) | |
| tree | d3bdd50cee05802858f3ddecdc2fd9981bde8210 /lsp/tailwindcss.lua | |
| parent | docs: update configs.md (diff) | |
| download | nvim-lspconfig-828aa3ded7870542f27daddb00deb23978cb8b66.tar nvim-lspconfig-828aa3ded7870542f27daddb00deb23978cb8b66.tar.gz nvim-lspconfig-828aa3ded7870542f27daddb00deb23978cb8b66.tar.bz2 nvim-lspconfig-828aa3ded7870542f27daddb00deb23978cb8b66.tar.lz nvim-lspconfig-828aa3ded7870542f27daddb00deb23978cb8b66.tar.xz nvim-lspconfig-828aa3ded7870542f27daddb00deb23978cb8b66.tar.zst nvim-lspconfig-828aa3ded7870542f27daddb00deb23978cb8b66.zip | |
feat(tailwind): add `vim.lsp.config` support
Diffstat (limited to 'lsp/tailwindcss.lua')
| -rw-r--r-- | lsp/tailwindcss.lua | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/lsp/tailwindcss.lua b/lsp/tailwindcss.lua new file mode 100644 index 00000000..69415d50 --- /dev/null +++ b/lsp/tailwindcss.lua @@ -0,0 +1,116 @@ +---@brief +--- https://github.com/tailwindlabs/tailwindcss-intellisense +--- +--- Tailwind CSS Language Server can be installed via npm: +--- +--- npm install -g @tailwindcss/language-server + +return { + cmd = { 'tailwindcss-language-server', '--stdio' }, + -- filetypes copied and adjusted from tailwindcss-intellisense + filetypes = { + -- html + 'aspnetcorerazor', + 'astro', + 'astro-markdown', + 'blade', + 'clojure', + 'django-html', + 'htmldjango', + 'edge', + 'eelixir', -- vim ft + 'elixir', + 'ejs', + 'erb', + 'eruby', -- vim ft + 'gohtml', + 'gohtmltmpl', + 'haml', + 'handlebars', + 'hbs', + 'html', + 'htmlangular', + 'html-eex', + 'heex', + 'jade', + 'leaf', + 'liquid', + 'markdown', + 'mdx', + 'mustache', + 'njk', + 'nunjucks', + 'php', + 'razor', + 'slim', + 'twig', + -- css + 'css', + 'less', + 'postcss', + 'sass', + 'scss', + 'stylus', + 'sugarss', + -- js + 'javascript', + 'javascriptreact', + 'reason', + 'rescript', + 'typescript', + 'typescriptreact', + -- mixed + 'vue', + 'svelte', + 'templ', + }, + settings = { + tailwindCSS = { + validate = true, + lint = { + cssConflict = 'warning', + invalidApply = 'error', + invalidScreen = 'error', + invalidVariant = 'error', + invalidConfigPath = 'error', + invalidTailwindDirective = 'error', + recommendedVariantOrder = 'warning', + }, + classAttributes = { + 'class', + 'className', + 'class:list', + 'classList', + 'ngClass', + }, + includeLanguages = { + eelixir = 'html-eex', + eruby = 'erb', + templ = 'html', + htmlangular = 'html', + }, + }, + }, + before_init = function(_, config) + if not config.settings then + config.settings = {} + end + if not config.settings.editor then + config.settings.editor = {} + end + if not config.settings.editor.tabSize then + config.settings.editor.tabSize = vim.lsp.util.get_effective_tabstop() + end + end, + workspace_required = true, + root_markers = { + 'tailwind.config.js', + 'tailwind.config.cjs', + 'tailwind.config.mjs', + 'tailwind.config.ts', + 'postcss.config.js', + 'postcss.config.cjs', + 'postcss.config.mjs', + 'postcss.config.ts', + }, +} |
