diff --git a/packages/tailwindcss-language-server/package.json b/packages/tailwindcss-language-server/package.json index 63089551..d31549e7 100644 --- a/packages/tailwindcss-language-server/package.json +++ b/packages/tailwindcss-language-server/package.json @@ -40,7 +40,7 @@ "@tailwindcss/forms": "0.5.3", "@tailwindcss/language-service": "workspace:*", "@tailwindcss/line-clamp": "0.4.2", - "@tailwindcss/oxide": "^4.0.0-alpha.19", + "@tailwindcss/oxide": "^4.0.15", "@tailwindcss/typography": "0.5.7", "@types/braces": "3.0.1", "@types/color-name": "^1.1.3", diff --git a/packages/tailwindcss-language-server/src/oxide.ts b/packages/tailwindcss-language-server/src/oxide.ts index bb8700ff..5dad7553 100644 --- a/packages/tailwindcss-language-server/src/oxide.ts +++ b/packages/tailwindcss-language-server/src/oxide.ts @@ -68,7 +68,7 @@ async function loadOxideAtPath(id: string): Promise { let oxide = await import(id) // This is a much older, unsupported version of Oxide before v4.0.0-alpha.1 - if (!oxide.scanDir) return null + if (!oxide.scanDir && !oxide.Scanner) return null return oxide } @@ -101,7 +101,7 @@ interface ScanResult { * For example, the `sources` option is ignored before v4.0.0-alpha.19. */ export async function scan(options: ScanOptions): Promise { - const oxide = await loadOxideAtPath(options.oxidePath) + let oxide = await loadOxideAtPath(options.oxidePath) if (!oxide) return null // V1 diff --git a/packages/tailwindcss-language-server/src/project-locator.test.ts b/packages/tailwindcss-language-server/src/project-locator.test.ts index 6414a099..f350dba1 100644 --- a/packages/tailwindcss-language-server/src/project-locator.test.ts +++ b/packages/tailwindcss-language-server/src/project-locator.test.ts @@ -9,7 +9,7 @@ import { css, defineTest, js, json, scss, Storage, TestUtils } from './testing' let settings: Settings = { tailwindCSS: { files: { - exclude: [], + exclude: ['**/.git/**', '**/node_modules/**', '**/.hg/**', '**/.svn/**'], }, }, } as any @@ -114,10 +114,7 @@ testFixture('v4/workspaces', [ { config: 'packages/admin/app.css', selectors: [ - '{URL}/node_modules/tailwindcss/**', - '{URL}/node_modules/tailwindcss/index.css', - '{URL}/node_modules/tailwindcss/theme.css', - '{URL}/node_modules/tailwindcss/utilities.css', + '{URL}/packages/admin/*', '{URL}/packages/admin/**', '{URL}/packages/admin/app.css', '{URL}/packages/admin/package.json', @@ -126,15 +123,12 @@ testFixture('v4/workspaces', [ { config: 'packages/web/app.css', selectors: [ - '{URL}/node_modules/tailwindcss/**', - '{URL}/node_modules/tailwindcss/index.css', - '{URL}/node_modules/tailwindcss/theme.css', - '{URL}/node_modules/tailwindcss/utilities.css', '{URL}/packages/style-export/**', '{URL}/packages/style-export/lib.css', '{URL}/packages/style-export/theme.css', '{URL}/packages/style-main-field/**', '{URL}/packages/style-main-field/lib.css', + '{URL}/packages/web/*', '{URL}/packages/web/**', '{URL}/packages/web/app.css', '{URL}/packages/web/package.json', @@ -147,28 +141,24 @@ testFixture('v4/auto-content', [ { config: 'src/app.css', content: [ + '{URL}/*', '{URL}/package.json', '{URL}/src/index.html', '{URL}/src/components/example.html', - '{URL}/src/**/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}', + '{URL}/src/**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}', ], }, ]) testFixture('v4/auto-content-split', [ - // - { - // TODO: This should _probably_ not be present - config: 'node_modules/tailwindcss/index.css', - content: [], - }, { config: 'src/app.css', content: [ + '{URL}/*', '{URL}/package.json', '{URL}/src/index.html', '{URL}/src/components/example.html', - '{URL}/src/**/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}', + '{URL}/src/**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}', ], }, ]) @@ -178,23 +168,23 @@ testFixture('v4/custom-source', [ { config: 'admin/app.css', content: [ - '{URL}/admin/**/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}', - '{URL}/admin/**/*.bin', + '{URL}/*', '{URL}/admin/foo.bin', + '{URL}/admin/{**/*.bin,**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}}', '{URL}/package.json', '{URL}/shared.html', - '{URL}/web/**/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}', + '{URL}/web/**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}', ], }, { config: 'web/app.css', content: [ - '{URL}/admin/**/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}', - '{URL}/web/*.bin', - '{URL}/web/bar.bin', + '{URL}/*', + '{URL}/admin/**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}', '{URL}/package.json', '{URL}/shared.html', - '{URL}/web/**/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}', + '{URL}/web/bar.bin', + '{URL}/web/{**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue},*.bin}', ], }, ]) @@ -203,7 +193,7 @@ testFixture('v4/missing-files', [ // { config: 'app.css', - content: ['{URL}/package.json'], + content: ['{URL}/*', '{URL}/package.json'], }, ]) @@ -212,8 +202,9 @@ testFixture('v4/path-mappings', [ { config: 'app.css', content: [ + '{URL}/*', '{URL}/package.json', - '{URL}/src/**/*.{py,tpl,js,vue,php,mjs,cts,jsx,tsx,rhtml,slim,handlebars,twig,rs,njk,svelte,liquid,pug,md,ts,heex,mts,astro,nunjucks,rb,eex,haml,cjs,html,hbs,jade,aspx,razor,erb,mustache,mdx}', + '{URL}/src/**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}', '{URL}/src/a/my-config.ts', '{URL}/src/a/my-plugin.ts', '{URL}/tsconfig.json', @@ -225,7 +216,7 @@ testFixture('v4/invalid-import-order', [ // { config: 'tailwind.css', - content: ['{URL}/package.json'], + content: ['{URL}/*', '{URL}/package.json'], }, ]) diff --git a/packages/vscode-tailwindcss/CHANGELOG.md b/packages/vscode-tailwindcss/CHANGELOG.md index 9b0498db..0ec6c3a4 100644 --- a/packages/vscode-tailwindcss/CHANGELOG.md +++ b/packages/vscode-tailwindcss/CHANGELOG.md @@ -2,7 +2,7 @@ ## Prerelease -- Nothing yet! +- Fix content detection when using v4.0+ ([#1280](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1280)) # 0.14.11 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6367f5ae..ab264604 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,8 +51,8 @@ importers: specifier: 0.4.2 version: 0.4.2(tailwindcss@3.4.17) '@tailwindcss/oxide': - specifier: ^4.0.0-alpha.19 - version: 4.0.0-alpha.19 + specifier: ^4.0.15 + version: 4.0.15 '@tailwindcss/typography': specifier: 0.5.7 version: 0.5.7(tailwindcss@3.4.17) @@ -890,68 +890,74 @@ packages: peerDependencies: tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1' - '@tailwindcss/oxide-android-arm64@4.0.0-alpha.19': - resolution: {integrity: sha512-NhpXem1j7g0uSGyLucmMj0VVQMeUrWc6kR/Ymnri3tpw2eaykgFYwLfdnI7jdJRxUxa/nNJip9yBJ3diZXl60w==} + '@tailwindcss/oxide-android-arm64@4.0.15': + resolution: {integrity: sha512-EBuyfSKkom7N+CB3A+7c0m4+qzKuiN0WCvzPvj5ZoRu4NlQadg/mthc1tl5k9b5ffRGsbDvP4k21azU4VwVk3Q==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.0.0-alpha.19': - resolution: {integrity: sha512-KCdalT+huX2cW9snNmPr+B66V91cSzIobBCXVgYCPCh0NZF4ueKu+X+kQN2gFxurDUm/D+aKW/0rQUIsUmFpdQ==} + '@tailwindcss/oxide-darwin-arm64@4.0.15': + resolution: {integrity: sha512-ObVAnEpLepMhV9VoO0JSit66jiN5C4YCqW3TflsE9boo2Z7FIjV80RFbgeL2opBhtxbaNEDa6D0/hq/EP03kgQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.0.0-alpha.19': - resolution: {integrity: sha512-ETOWA08loUmOVTEa3zhRhY8HyqdGtR9DNhXdrRZBi67ZwCAmA+jg5B+mZaYeQJ6CjETx07BnhcGmmxGz3/6c8w==} + '@tailwindcss/oxide-darwin-x64@4.0.15': + resolution: {integrity: sha512-IElwoFhUinOr9MyKmGTPNi1Rwdh68JReFgYWibPWTGuevkHkLWKEflZc2jtI5lWZ5U9JjUnUfnY43I4fEXrc4g==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.0.0-alpha.19': - resolution: {integrity: sha512-uB0rYLpqPnmyqtYSKHu1AtnHeerNcVH+de0sIufGCBDFGYNxmW8feCKNZwo6r7U/Fzg+AF9BOjwvdvd4yLfQ8g==} + '@tailwindcss/oxide-freebsd-x64@4.0.15': + resolution: {integrity: sha512-6BLLqyx7SIYRBOnTZ8wgfXANLJV5TQd3PevRJZp0vn42eO58A2LykRKdvL1qyPfdpmEVtF+uVOEZ4QTMqDRAWA==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.0-alpha.19': - resolution: {integrity: sha512-hIfm6DNh18rkz2PFRsQANINH0tpso6/vaU8p0Qw7rgYqqrxJTRpyLVsnvx3ahMOplJrDT6Z+Nfak8udnZN2C/Q==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.15': + resolution: {integrity: sha512-Zy63EVqO9241Pfg6G0IlRIWyY5vNcWrL5dd2WAKVJZRQVeolXEf1KfjkyeAAlErDj72cnyXObEZjMoPEKHpdNw==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.0.0-alpha.19': - resolution: {integrity: sha512-n1Hr+8Hup2GLmeonQy9ydZxMBCs0FR1rcv4K7AHip+6PbD0se8k9LBIZac3OguFNj2hTehiadaiRb18rsVUw0g==} + '@tailwindcss/oxide-linux-arm64-gnu@4.0.15': + resolution: {integrity: sha512-2NemGQeaTbtIp1Z2wyerbVEJZTkAWhMDOhhR5z/zJ75yMNf8yLnE+sAlyf6yGDNr+1RqvWrRhhCFt7i0CIxe4Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-arm64-musl@4.0.0-alpha.19': - resolution: {integrity: sha512-KhwthLZh9Js3t5URkuRURw45iU3rSh9vhuHRaV4KQT10ZFiXQMUlFfMKJyxRMcgC2fcL5vsiqwjOaMwp7Y8vsQ==} + '@tailwindcss/oxide-linux-arm64-musl@4.0.15': + resolution: {integrity: sha512-342GVnhH/6PkVgKtEzvNVuQ4D+Q7B7qplvuH20Cfz9qEtydG6IQczTZ5IT4JPlh931MG1NUCVxg+CIorr1WJyw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-x64-gnu@4.0.0-alpha.19': - resolution: {integrity: sha512-qqEuULSiczyZkdWVzwkiiFyOYqx5RR2De75iwYREzXUuHRHval1ep2qO7tvZdgt37t2vgjoQwaPA6zO+JGUa+Q==} + '@tailwindcss/oxide-linux-x64-gnu@4.0.15': + resolution: {integrity: sha512-g76GxlKH124RuGqacCEFc2nbzRl7bBrlC8qDQMiUABkiifDRHOIUjgKbLNG4RuR9hQAD/MKsqZ7A8L08zsoBrw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-linux-x64-musl@4.0.0-alpha.19': - resolution: {integrity: sha512-JKTYCiNz83sYl2FgKJk3dL11FS4dAj7Rgmuz3TVANmeMYTBtwmFPthoH0qAmF+hjPJgT5Ne7lSwplfuHJAD3MQ==} + '@tailwindcss/oxide-linux-x64-musl@4.0.15': + resolution: {integrity: sha512-Gg/Y1XrKEvKpq6WeNt2h8rMIKOBj/W3mNa5NMvkQgMC7iO0+UNLrYmt6zgZufht66HozNpn+tJMbbkZ5a3LczA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-win32-x64-msvc@4.0.0-alpha.19': - resolution: {integrity: sha512-D43tji14+i/GhJn5YZX8c2FXFmAqlI6DDGX8caUM35dga/uT+sJUfLJ84YigJyvAdSF1gBVdm7MvhYRcVYHOwg==} + '@tailwindcss/oxide-win32-arm64-msvc@4.0.15': + resolution: {integrity: sha512-7QtSSJwYZ7ZK1phVgcNZpuf7c7gaCj8Wb0xjliligT5qCGCp79OV2n3SJummVZdw4fbTNKUOYMO7m1GinppZyA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.0.15': + resolution: {integrity: sha512-JQ5H+5MLhOjpgNp6KomouE0ZuKmk3hO5h7/ClMNAQ8gZI2zkli3IH8ZqLbd2DVfXDbdxN2xvooIEeIlkIoSCqw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.0.0-alpha.19': - resolution: {integrity: sha512-DdkrVz/MKPoe9v7W3c0+SEFKRDIPMSsxgN7gPC+xeTnTL4BGoT5b1EiVGFuXWEyLbDmWztuN6z75Yuze2BwvMQ==} + '@tailwindcss/oxide@4.0.15': + resolution: {integrity: sha512-e0uHrKfPu7JJGMfjwVNyt5M0u+OP8kUmhACwIRlM+JNBuReDVQ63yAD1NWe5DwJtdaHjugNBil76j+ks3zlk6g==} engines: {node: '>= 10'} '@tailwindcss/typography@0.5.7': @@ -3099,48 +3105,52 @@ snapshots: dependencies: tailwindcss: 3.4.17 - '@tailwindcss/oxide-android-arm64@4.0.0-alpha.19': + '@tailwindcss/oxide-android-arm64@4.0.15': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.0.15': optional: true - '@tailwindcss/oxide-darwin-arm64@4.0.0-alpha.19': + '@tailwindcss/oxide-darwin-x64@4.0.15': optional: true - '@tailwindcss/oxide-darwin-x64@4.0.0-alpha.19': + '@tailwindcss/oxide-freebsd-x64@4.0.15': optional: true - '@tailwindcss/oxide-freebsd-x64@4.0.0-alpha.19': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.15': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.0-alpha.19': + '@tailwindcss/oxide-linux-arm64-gnu@4.0.15': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.0.0-alpha.19': + '@tailwindcss/oxide-linux-arm64-musl@4.0.15': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.0.0-alpha.19': + '@tailwindcss/oxide-linux-x64-gnu@4.0.15': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.0.0-alpha.19': + '@tailwindcss/oxide-linux-x64-musl@4.0.15': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.0.0-alpha.19': + '@tailwindcss/oxide-win32-arm64-msvc@4.0.15': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.0.0-alpha.19': + '@tailwindcss/oxide-win32-x64-msvc@4.0.15': optional: true - '@tailwindcss/oxide@4.0.0-alpha.19': + '@tailwindcss/oxide@4.0.15': optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.0.0-alpha.19 - '@tailwindcss/oxide-darwin-arm64': 4.0.0-alpha.19 - '@tailwindcss/oxide-darwin-x64': 4.0.0-alpha.19 - '@tailwindcss/oxide-freebsd-x64': 4.0.0-alpha.19 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.0-alpha.19 - '@tailwindcss/oxide-linux-arm64-gnu': 4.0.0-alpha.19 - '@tailwindcss/oxide-linux-arm64-musl': 4.0.0-alpha.19 - '@tailwindcss/oxide-linux-x64-gnu': 4.0.0-alpha.19 - '@tailwindcss/oxide-linux-x64-musl': 4.0.0-alpha.19 - '@tailwindcss/oxide-win32-x64-msvc': 4.0.0-alpha.19 + '@tailwindcss/oxide-android-arm64': 4.0.15 + '@tailwindcss/oxide-darwin-arm64': 4.0.15 + '@tailwindcss/oxide-darwin-x64': 4.0.15 + '@tailwindcss/oxide-freebsd-x64': 4.0.15 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.15 + '@tailwindcss/oxide-linux-arm64-gnu': 4.0.15 + '@tailwindcss/oxide-linux-arm64-musl': 4.0.15 + '@tailwindcss/oxide-linux-x64-gnu': 4.0.15 + '@tailwindcss/oxide-linux-x64-musl': 4.0.15 + '@tailwindcss/oxide-win32-arm64-msvc': 4.0.15 + '@tailwindcss/oxide-win32-x64-msvc': 4.0.15 '@tailwindcss/typography@0.5.7(tailwindcss@3.4.17)': dependencies: