From 699cf2ce74e40e7c5068cf93a6bd6a74b24c5ec3 Mon Sep 17 00:00:00 2001 From: Maksim Terpilovskii Date: Thu, 20 Mar 2025 15:20:36 +0400 Subject: fix(tailwindcss): improved tailwindcss detection (#3648) Problem: The Tailwind CSS language server is enabled for any workspace containing a `.git` folder, a `node_modules` folder, or a `package.json` file, which is not ideal. Solution: Introduce a specific check for the `tailwindcss` package within `package.json` file using `insert_package_json` method from `util` (this approach is used in `eslint` config). Since the latest version of Tailwind CSS (v4) no longer requires `postcss.config.*` and `tailwind.config.*` files, these can no longer be relied upon as sole criteria for enabling Tailwind CSS LSP. --- lua/lspconfig/configs/tailwindcss.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'lua') diff --git a/lua/lspconfig/configs/tailwindcss.lua b/lua/lspconfig/configs/tailwindcss.lua index 9bbf70f1..36becb87 100644 --- a/lua/lspconfig/configs/tailwindcss.lua +++ b/lua/lspconfig/configs/tailwindcss.lua @@ -100,7 +100,7 @@ return { end end, root_dir = function(fname) - return util.root_pattern( + local root_file = { 'tailwind.config.js', 'tailwind.config.cjs', 'tailwind.config.mjs', @@ -108,10 +108,10 @@ return { 'postcss.config.js', 'postcss.config.cjs', 'postcss.config.mjs', - 'postcss.config.ts' - )(fname) or vim.fs.dirname(vim.fs.find('package.json', { path = fname, upward = true })[1]) or vim.fs.dirname( - vim.fs.find('node_modules', { path = fname, upward = true })[1] - ) or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + 'postcss.config.ts', + } + root_file = util.insert_package_json(root_file, 'tailwindcss', fname) + return util.root_pattern(unpack(root_file))(fname) end, }, docs = { -- cgit v1.2.3-70-g09d2