Skip to content

Commit 78912d9

Browse files
committed
wip
1 parent b0102a3 commit 78912d9

File tree

2 files changed

+31
-12
lines changed

2 files changed

+31
-12
lines changed

packages/tailwindcss-language-service/src/completionProvider.ts

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,7 @@ function provideCssHelperCompletions(
569569
}
570570

571571
let obj: any
572-
let offset: number = 0
572+
let offset: number = keys[keys.length - 1].length
573573
let separator: string = separators.length ? separators[separators.length - 1] : null
574574

575575
if (keys.length === 1) {
@@ -588,6 +588,14 @@ function provideCssHelperCompletions(
588588

589589
if (!obj) return null
590590

591+
let editRange = {
592+
start: {
593+
line: position.line,
594+
character: position.character - offset,
595+
},
596+
end: position,
597+
}
598+
591599
return {
592600
isIncomplete: false,
593601
items: Object.keys(obj).map((item, index) => {
@@ -600,8 +608,8 @@ function provideCssHelperCompletions(
600608

601609
return {
602610
label: item,
603-
filterText: `${replaceDot ? '.' : ''}${item}`,
604611
sortText: naturalExpand(index),
612+
commitCharacters: [!item.includes('.') && '.', !item.includes('[') && '['].filter(Boolean),
605613
kind: color ? 16 : isObject(obj[item]) ? 9 : 10,
606614
// VS Code bug causes some values to not display in some cases
607615
detail: detail === '0' || detail === 'transparent' ? `${detail} ` : detail,
@@ -610,16 +618,23 @@ function provideCssHelperCompletions(
610618
? culori.formatRgb(color)
611619
: null,
612620
textEdit: {
613-
newText: `${replaceDot ? '[' : ''}${item}${insertClosingBrace ? ']' : ''}`,
614-
range: {
615-
start: {
616-
line: position.line,
617-
character:
618-
position.character - keys[keys.length - 1].length - (replaceDot ? 1 : 0) - offset,
619-
},
620-
end: position,
621-
},
621+
newText: `${item}${insertClosingBrace ? ']' : ''}`,
622+
range: editRange,
622623
},
624+
additionalTextEdits: replaceDot
625+
? [
626+
{
627+
newText: '[',
628+
range: {
629+
start: {
630+
...editRange.start,
631+
character: editRange.start.character - 1,
632+
},
633+
end: editRange.start,
634+
},
635+
},
636+
]
637+
: [],
623638
data: 'helper',
624639
}
625640
}),

packages/vscode-tailwindcss/src/extension.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,11 @@ export async function activate(context: ExtensionContext) {
378378
async resolveCompletionItem(item, token, next) {
379379
let result = await next(item, token)
380380
let selections = Window.activeTextEditor.selections
381-
if (selections.length > 1 && result.additionalTextEdits?.length > 0) {
381+
if (
382+
result['data'] === 'variant' &&
383+
selections.length > 1 &&
384+
result.additionalTextEdits?.length > 0
385+
) {
382386
let length =
383387
selections[0].start.character - result.additionalTextEdits[0].range.start.character
384388
let prefixLength =

0 commit comments

Comments
 (0)