diff --git a/packages/tailwindcss-language-service/src/completionProvider.ts b/packages/tailwindcss-language-service/src/completionProvider.ts index 40f3dee..0ba869c 100644 --- a/packages/tailwindcss-language-service/src/completionProvider.ts +++ b/packages/tailwindcss-language-service/src/completionProvider.ts @@ -158,14 +158,14 @@ function provideClassAttributeCompletions( end: position, }) - const match = findLast(/(?:\s|:)class(?:Name)?=['"`{]/gi, str) + const match = findLast(/(?:\s|:)(?:class(?:Name)?|\[ngClass\])=['"`{]/gi, str) if (match === null) { return null } const lexer = - match[0][0] === ':' + match[0][0] === ':' || match[0].trim().startsWith('[ngClass]') ? getComputedClassAttributeLexer() : getClassAttributeLexer() lexer.reset(str.substr(match.index + match[0].length - 1)) diff --git a/packages/tailwindcss-language-service/src/util/find.ts b/packages/tailwindcss-language-service/src/util/find.ts index e80dfb2..15bb694 100644 --- a/packages/tailwindcss-language-service/src/util/find.ts +++ b/packages/tailwindcss-language-service/src/util/find.ts @@ -135,14 +135,14 @@ export function findClassListsInHtmlRange( range?: Range ): DocumentClassList[] { const text = doc.getText(range) - const matches = findAll(/(?:\s|:)class(?:Name)?=['"`{]/g, text) + const matches = findAll(/(?:\s|:)(?:class(?:Name)?|\[ngClass\])=['"`{]/g, text) const result: DocumentClassList[] = [] matches.forEach((match) => { const subtext = text.substr(match.index + match[0].length - 1) let lexer = - match[0][0] === ':' + match[0][0] === ':' || match[0].trim().startsWith('[ngClass]') ? getComputedClassAttributeLexer() : getClassAttributeLexer() lexer.reset(subtext)