From 79a3f2b5a1341ba82af0fb9b57c69a0bd56f6a92 Mon Sep 17 00:00:00 2001 From: Brad Cornes Date: Fri, 13 Aug 2021 17:59:14 +0100 Subject: [PATCH] use character-base ranges when looking for classes --- .../tailwindcss-language-service/src/completionProvider.ts | 2 +- packages/tailwindcss-language-service/src/util/find.ts | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/tailwindcss-language-service/src/completionProvider.ts b/packages/tailwindcss-language-service/src/completionProvider.ts index 1124d5c..f873c6f 100644 --- a/packages/tailwindcss-language-service/src/completionProvider.ts +++ b/packages/tailwindcss-language-service/src/completionProvider.ts @@ -306,7 +306,7 @@ function provideClassAttributeCompletions( context?: CompletionContext ): CompletionList { let str = document.getText({ - start: { line: Math.max(position.line - 10, 0), character: 0 }, + start: document.positionAt(Math.max(0, document.offsetAt(position) - 500)), end: position, }) diff --git a/packages/tailwindcss-language-service/src/util/find.ts b/packages/tailwindcss-language-service/src/util/find.ts index ce7fe39..028bd59 100644 --- a/packages/tailwindcss-language-service/src/util/find.ts +++ b/packages/tailwindcss-language-service/src/util/find.ts @@ -360,9 +360,10 @@ export async function findClassNameAtPosition( position: Position ): Promise { let classNames = [] - const searchRange = { - start: { line: Math.max(position.line - 10, 0), character: 0 }, - end: { line: position.line + 10, character: 0 }, + const positionOffset = doc.offsetAt(position) + const searchRange: Range = { + start: doc.positionAt(Math.max(0, positionOffset - 500)), + end: doc.positionAt(positionOffset + 500), } if (isCssContext(state, doc, position)) {