Skip to content

Commit 2f936d9

Browse files
committed
Refactor
1 parent 7f89613 commit 2f936d9

File tree

2 files changed

+26
-16
lines changed

2 files changed

+26
-16
lines changed

packages/tailwindcss-language-server/tests/completions/completions.test.js

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -983,7 +983,7 @@ defineTest({
983983
})
984984

985985
defineTest({
986-
name: 'Completions for outline and border utilities have simplified details',
986+
name: 'Completions for several utilities have simplified details',
987987
fs: {
988988
'app.css': css`
989989
@import 'tailwindcss';
@@ -993,24 +993,30 @@ defineTest({
993993
handle: async ({ client }) => {
994994
let document = await client.open({
995995
lang: 'html',
996-
text: html`<div class="border-0 outline-0"></div>`,
996+
text: html`<div class=""></div>`,
997997
})
998998

999-
// <div class="border-0 outline-0"></div>
1000-
// ^
1001-
let completionA = await document.completions({ line: 0, character: 20 })
999+
// <div class=""></div>
1000+
// ^
1001+
let list = await document.completions({ line: 0, character: 12 })
1002+
let items = list?.items ?? []
10021003

1003-
// <div class="border-0 outline-0"></div>
1004-
// ^
1005-
let completionB = await document.completions({ line: 0, character: 30 })
1004+
let map = {
1005+
'border-0': 'border-width: 0px;',
1006+
'outline-0': 'outline-width: 0px;',
1007+
}
1008+
1009+
let requests = await Promise.all(
1010+
Object.keys(map).map(async (label) => {
1011+
let item = items.find((item) => item.label === label)
1012+
if (!item) throw new Error(`Item not found for label: ${label}`)
10061013

1007-
let border = completionA?.items.find((item) => item.label === 'border-0')
1008-
let outline = completionB?.items.find((item) => item.label === 'outline-0')
1014+
let resolved = await client.conn.sendRequest('completionItem/resolve', item)
10091015

1010-
let borderResolved = await client.conn.sendRequest('completionItem/resolve', border)
1011-
let outlineResolved = await client.conn.sendRequest('completionItem/resolve', outline)
1016+
return [label, resolved.detail]
1017+
}),
1018+
)
10121019

1013-
expect(borderResolved).toMatchObject({ detail: 'border-width: 0px;' })
1014-
expect(outlineResolved).toMatchObject({ detail: 'outline-width: 0px;' })
1020+
expect(Object.fromEntries(requests)).toEqual(map)
10151021
},
10161022
})

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2306,9 +2306,13 @@ export async function resolveCompletionItem(
23062306
}
23072307
})
23082308

2309+
let ignoredValues = new Set([
2310+
'var(--tw-border-style)',
2311+
'var(--tw-outline-style)',
2312+
])
2313+
23092314
base.walkDecls((node) => {
2310-
if (node.value === 'var(--tw-border-style)') return
2311-
if (node.value === 'var(--tw-outline-style)') return
2315+
if (ignoredValues.has(node.value)) return
23122316

23132317
decls.push(node)
23142318
})

0 commit comments

Comments
 (0)