From ecd28c7518fe08ae8d29abd94d7d60eb6b7fada8 Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Tue, 2 Jul 2024 13:28:19 -0400 Subject: [PATCH 1/4] Fix initialization when path has parentheses --- packages/tailwindcss-language-server/src/tw.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tailwindcss-language-server/src/tw.ts b/packages/tailwindcss-language-server/src/tw.ts index ecfbee0a..4cffc77b 100644 --- a/packages/tailwindcss-language-server/src/tw.ts +++ b/packages/tailwindcss-language-server/src/tw.ts @@ -820,7 +820,7 @@ export class TW { console.debug('[GLOBAL] Checking selectors', documentSelector) for (let selector of documentSelector) { - let pattern = selector.pattern.replace(/[\[\]{}]/g, (m) => `\\${m}`) + let pattern = selector.pattern.replace(/[\[\]{}()]/g, (m) => `\\${m}`) if (pattern.startsWith('!')) { if (picomatch(pattern.slice(1), { dot: true })(fsPath)) { From 8ec6e448cc829b0a232f4ab0a192a8eae11db3c7 Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Tue, 2 Jul 2024 13:29:40 -0400 Subject: [PATCH 2/4] Add test --- .../tests/env/document-selection.test.js | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 packages/tailwindcss-language-server/tests/env/document-selection.test.js diff --git a/packages/tailwindcss-language-server/tests/env/document-selection.test.js b/packages/tailwindcss-language-server/tests/env/document-selection.test.js new file mode 100644 index 00000000..0789760a --- /dev/null +++ b/packages/tailwindcss-language-server/tests/env/document-selection.test.js @@ -0,0 +1,92 @@ +import { test } from 'vitest' +import * as path from 'node:path' +import { withFixture, withWorkspace } from '../common' +import { DidChangeWorkspaceFoldersNotification, HoverRequest } from 'vscode-languageserver' + +withFixture('document-selection/basic', (c) => { + test('basic: should provide hovers', async ({ expect }) => { + let textDocument = await c.openDocument({ + text: '
', + }) + + let res = await c.sendRequest(HoverRequest.type, { + textDocument, + position: { line: 0, character: 13 }, + }) + + expect(res).toEqual({ + contents: { + language: 'css', + value: + '.bg-\\[\\#000\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity)) /* #000000 */;\n}', + }, + range: { start: { line: 0, character: 12 }, end: { line: 0, character: 21 } }, + }) + }) +}) + +withFixture('document-selection/(parens)', (c) => { + test('parens: should provide hovers', async ({ expect }) => { + let textDocument = await c.openDocument({ + text: '
', + }) + + let res = await c.sendRequest(HoverRequest.type, { + textDocument, + position: { line: 0, character: 13 }, + }) + + expect(res).toEqual({ + contents: { + language: 'css', + value: + '.bg-\\[\\#000\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity)) /* #000000 */;\n}', + }, + range: { start: { line: 0, character: 12 }, end: { line: 0, character: 21 } }, + }) + }) +}) + +withFixture('document-selection/[brackets]', (c) => { + test('brackets: should provide hovers', async ({ expect }) => { + let textDocument = await c.openDocument({ + text: '
', + }) + + let res = await c.sendRequest(HoverRequest.type, { + textDocument, + position: { line: 0, character: 13 }, + }) + + expect(res).toEqual({ + contents: { + language: 'css', + value: + '.bg-\\[\\#000\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity)) /* #000000 */;\n}', + }, + range: { start: { line: 0, character: 12 }, end: { line: 0, character: 21 } }, + }) + }) +}) + +withFixture('document-selection/{curlies}', (c) => { + test('curlies: should provide hovers', async ({ expect }) => { + let textDocument = await c.openDocument({ + text: '
', + }) + + let res = await c.sendRequest(HoverRequest.type, { + textDocument, + position: { line: 0, character: 13 }, + }) + + expect(res).toEqual({ + contents: { + language: 'css', + value: + '.bg-\\[\\#000\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity)) /* #000000 */;\n}', + }, + range: { start: { line: 0, character: 12 }, end: { line: 0, character: 21 } }, + }) + }) +}) From e15f78c9d8ae563743c6558b6da9b9253c674c0b Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Tue, 2 Jul 2024 13:30:41 -0400 Subject: [PATCH 3/4] Add fixtures --- .../tests/fixtures/document-selection/(parens)/file.html | 1 + .../fixtures/document-selection/(parens)/tailwind.config.js | 3 +++ .../tests/fixtures/document-selection/[brackets]/file.html | 1 + .../fixtures/document-selection/[brackets]/tailwind.config.js | 3 +++ .../tests/fixtures/document-selection/basic/file.html | 1 + .../tests/fixtures/document-selection/basic/tailwind.config.js | 3 +++ .../tests/fixtures/document-selection/{curlies}/file.html | 1 + .../fixtures/document-selection/{curlies}/tailwind.config.js | 3 +++ 8 files changed, 16 insertions(+) create mode 100644 packages/tailwindcss-language-server/tests/fixtures/document-selection/(parens)/file.html create mode 100644 packages/tailwindcss-language-server/tests/fixtures/document-selection/(parens)/tailwind.config.js create mode 100644 packages/tailwindcss-language-server/tests/fixtures/document-selection/[brackets]/file.html create mode 100644 packages/tailwindcss-language-server/tests/fixtures/document-selection/[brackets]/tailwind.config.js create mode 100644 packages/tailwindcss-language-server/tests/fixtures/document-selection/basic/file.html create mode 100644 packages/tailwindcss-language-server/tests/fixtures/document-selection/basic/tailwind.config.js create mode 100644 packages/tailwindcss-language-server/tests/fixtures/document-selection/{curlies}/file.html create mode 100644 packages/tailwindcss-language-server/tests/fixtures/document-selection/{curlies}/tailwind.config.js diff --git a/packages/tailwindcss-language-server/tests/fixtures/document-selection/(parens)/file.html b/packages/tailwindcss-language-server/tests/fixtures/document-selection/(parens)/file.html new file mode 100644 index 00000000..434d0847 --- /dev/null +++ b/packages/tailwindcss-language-server/tests/fixtures/document-selection/(parens)/file.html @@ -0,0 +1 @@ +
test
diff --git a/packages/tailwindcss-language-server/tests/fixtures/document-selection/(parens)/tailwind.config.js b/packages/tailwindcss-language-server/tests/fixtures/document-selection/(parens)/tailwind.config.js new file mode 100644 index 00000000..40b8bc3f --- /dev/null +++ b/packages/tailwindcss-language-server/tests/fixtures/document-selection/(parens)/tailwind.config.js @@ -0,0 +1,3 @@ +export default { + // +} diff --git a/packages/tailwindcss-language-server/tests/fixtures/document-selection/[brackets]/file.html b/packages/tailwindcss-language-server/tests/fixtures/document-selection/[brackets]/file.html new file mode 100644 index 00000000..5ae2a5d8 --- /dev/null +++ b/packages/tailwindcss-language-server/tests/fixtures/document-selection/[brackets]/file.html @@ -0,0 +1 @@ +
test
diff --git a/packages/tailwindcss-language-server/tests/fixtures/document-selection/[brackets]/tailwind.config.js b/packages/tailwindcss-language-server/tests/fixtures/document-selection/[brackets]/tailwind.config.js new file mode 100644 index 00000000..40b8bc3f --- /dev/null +++ b/packages/tailwindcss-language-server/tests/fixtures/document-selection/[brackets]/tailwind.config.js @@ -0,0 +1,3 @@ +export default { + // +} diff --git a/packages/tailwindcss-language-server/tests/fixtures/document-selection/basic/file.html b/packages/tailwindcss-language-server/tests/fixtures/document-selection/basic/file.html new file mode 100644 index 00000000..91f93485 --- /dev/null +++ b/packages/tailwindcss-language-server/tests/fixtures/document-selection/basic/file.html @@ -0,0 +1 @@ +
test
diff --git a/packages/tailwindcss-language-server/tests/fixtures/document-selection/basic/tailwind.config.js b/packages/tailwindcss-language-server/tests/fixtures/document-selection/basic/tailwind.config.js new file mode 100644 index 00000000..40b8bc3f --- /dev/null +++ b/packages/tailwindcss-language-server/tests/fixtures/document-selection/basic/tailwind.config.js @@ -0,0 +1,3 @@ +export default { + // +} diff --git a/packages/tailwindcss-language-server/tests/fixtures/document-selection/{curlies}/file.html b/packages/tailwindcss-language-server/tests/fixtures/document-selection/{curlies}/file.html new file mode 100644 index 00000000..b536d149 --- /dev/null +++ b/packages/tailwindcss-language-server/tests/fixtures/document-selection/{curlies}/file.html @@ -0,0 +1 @@ +
test
diff --git a/packages/tailwindcss-language-server/tests/fixtures/document-selection/{curlies}/tailwind.config.js b/packages/tailwindcss-language-server/tests/fixtures/document-selection/{curlies}/tailwind.config.js new file mode 100644 index 00000000..40b8bc3f --- /dev/null +++ b/packages/tailwindcss-language-server/tests/fixtures/document-selection/{curlies}/tailwind.config.js @@ -0,0 +1,3 @@ +export default { + // +} From 07c6b6f3f2c314ee0d77d58ed5d77abf172bf3af Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Tue, 2 Jul 2024 13:56:04 -0400 Subject: [PATCH 4/4] Update changelog --- packages/vscode-tailwindcss/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/vscode-tailwindcss/CHANGELOG.md b/packages/vscode-tailwindcss/CHANGELOG.md index caff8e99..71cc3f94 100644 --- a/packages/vscode-tailwindcss/CHANGELOG.md +++ b/packages/vscode-tailwindcss/CHANGELOG.md @@ -4,6 +4,7 @@ - Fix detection of v3 insiders builds ([#1007](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1007)) - Make sure language-specific settings are passed to our language server ([#1006](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1006)) +- Fix initialization when path contains parentheses ([#1009](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1009)) ## 0.12.3