From 15bc6dbc194a1a04fc1227262c1dbf6858f0387d Mon Sep 17 00:00:00 2001 From: Brad Cornes Date: Thu, 2 Jun 2022 14:40:37 +0100 Subject: [PATCH] Improve `theme` helper detection --- .../src/diagnostics/getInvalidConfigPathDiagnostics.ts | 2 +- packages/tailwindcss-language-service/src/hoverProvider.ts | 2 +- packages/tailwindcss-language-service/src/util/find.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/tailwindcss-language-service/src/diagnostics/getInvalidConfigPathDiagnostics.ts b/packages/tailwindcss-language-service/src/diagnostics/getInvalidConfigPathDiagnostics.ts index 553dafe..9eac0b2 100644 --- a/packages/tailwindcss-language-service/src/diagnostics/getInvalidConfigPathDiagnostics.ts +++ b/packages/tailwindcss-language-service/src/diagnostics/getInvalidConfigPathDiagnostics.ts @@ -179,7 +179,7 @@ export function getInvalidConfigPathDiagnostics( ranges.forEach((range) => { let text = document.getText(range) let matches = findAll( - /(?\s|^)(?config|theme)\((?['"])(?[^)]+)\k\)/g, + /(?\s|^)(?config|theme)\((?['"])(?[^)]+)\k[^)]*\)/g, text ) diff --git a/packages/tailwindcss-language-service/src/hoverProvider.ts b/packages/tailwindcss-language-service/src/hoverProvider.ts index 2ac7fcf..836d687 100644 --- a/packages/tailwindcss-language-service/src/hoverProvider.ts +++ b/packages/tailwindcss-language-service/src/hoverProvider.ts @@ -28,7 +28,7 @@ function provideCssHelperHover(state: State, document: TextDocument, position: P end: { line: position.line + 1, character: 0 }, }) - const match = line.match(/(?theme|config)\((?['"])(?[^)]+)\k\)/) + const match = line.match(/(?theme|config)\((?['"])(?[^)]+)\k[^)]*\)/) if (match === null) return null diff --git a/packages/tailwindcss-language-service/src/util/find.ts b/packages/tailwindcss-language-service/src/util/find.ts index 36e6dd1..299f777 100644 --- a/packages/tailwindcss-language-service/src/util/find.ts +++ b/packages/tailwindcss-language-service/src/util/find.ts @@ -341,7 +341,7 @@ export function findHelperFunctionsInRange( ): DocumentHelperFunction[] { const text = doc.getText(range) const matches = findAll( - /(?^|\s)(?theme|config)\((?:(?')([^']+)'|(?")([^"]+)")\)/gm, + /(?^|\s)(?theme|config)\((?:(?')([^']+)'|(?")([^"]+)")[^)]*\)/gm, text )