@@ -983,7 +983,7 @@ defineTest({
983
983
} )
984
984
985
985
defineTest ( {
986
- name : 'Completions for outline and border utilities have simplified details' ,
986
+ name : 'Completions for several utilities have simplified details' ,
987
987
fs : {
988
988
'app.css' : css `
989
989
@import 'tailwindcss';
@@ -993,24 +993,59 @@ defineTest({
993
993
handle : async ( { client } ) => {
994
994
let document = await client . open ( {
995
995
lang : 'html' ,
996
- text : html `< div class ="border-0 outline-0 "> </ div > ` ,
996
+ text : html `< div class =""> </ div > ` ,
997
997
} )
998
998
999
- // <div class="border-0 outline-0"></div>
1000
- // ^
1001
- let completionA = await document . completions ( { line : 0 , character : 20 } )
1002
-
1003
- // <div class="border-0 outline-0"></div>
1004
- // ^
1005
- let completionB = await document . completions ( { line : 0 , character : 30 } )
1006
-
1007
- let border = completionA ?. items . find ( ( item ) => item . label === 'border-0' )
1008
- let outline = completionB ?. items . find ( ( item ) => item . label === 'outline-0' )
1009
-
1010
- let borderResolved = await client . conn . sendRequest ( 'completionItem/resolve' , border )
1011
- let outlineResolved = await client . conn . sendRequest ( 'completionItem/resolve' , outline )
999
+ // <div class=""></div>
1000
+ // ^
1001
+ let list = await document . completions ( { line : 0 , character : 12 } )
1002
+ let items = list ?. items ?? [ ]
1003
+
1004
+ let utilities = new Set ( [
1005
+ 'border-0' ,
1006
+ 'outline-0' ,
1007
+ 'leading-0' ,
1008
+ 'duration-1000' ,
1009
+ 'font-bold' ,
1010
+ 'ease-linear' ,
1011
+ 'ease-initial' ,
1012
+
1013
+ 'space-x-0' ,
1014
+ 'space-y-0' ,
1015
+ 'divide-x-0' ,
1016
+ 'divide-y-0' ,
1017
+
1018
+ 'tracking-wide' ,
1019
+
1020
+ 'from-red-500' ,
1021
+ 'via-red-500' ,
1022
+ 'to-red-500' ,
1023
+ ] )
1024
+
1025
+ items = items . filter ( ( item ) => utilities . has ( item . label ) )
1026
+
1027
+ items = await Promise . all (
1028
+ items . map ( ( item ) => client . conn . sendRequest ( 'completionItem/resolve' , item ) ) ,
1029
+ )
1012
1030
1013
- expect ( borderResolved ) . toMatchObject ( { detail : 'border-width: 0px;' } )
1014
- expect ( outlineResolved ) . toMatchObject ( { detail : 'outline-width: 0px;' } )
1031
+ let details = items . map ( ( item ) => item . detail )
1032
+
1033
+ expect ( details ) . toEqual ( [
1034
+ 'border-width: 0px;' ,
1035
+ 'border-inline-start-width: calc(0px * var(--tw-divide-x-reverse)); border-inline-end-width: calc(0px * calc(1 - var(--tw-divide-x-reverse)));' ,
1036
+ 'border-top-width: calc(0px * var(--tw-divide-y-reverse)); border-bottom-width: calc(0px * calc(1 - var(--tw-divide-y-reverse)));' ,
1037
+ 'transition-duration: 1000ms;' ,
1038
+ '--tw-ease: initial;' ,
1039
+ 'transition-timing-function: linear;' ,
1040
+ 'font-weight: 700;' ,
1041
+ '--tw-gradient-from: oklch(63.7% 0.237 25.331);' ,
1042
+ 'line-height: 0rem /* 0px */;' ,
1043
+ 'outline-width: 0px;' ,
1044
+ 'margin-inline-start: calc(0rem /* 0px */ * var(--tw-space-x-reverse)); margin-inline-end: calc(0rem /* 0px */ * calc(1 - var(--tw-space-x-reverse)));' ,
1045
+ 'margin-block-start: calc(0rem /* 0px */ * var(--tw-space-y-reverse)); margin-block-end: calc(0rem /* 0px */ * calc(1 - var(--tw-space-y-reverse)));' ,
1046
+ '--tw-gradient-to: oklch(63.7% 0.237 25.331);' ,
1047
+ 'letter-spacing: 0.025em;' ,
1048
+ '--tw-gradient-via: oklch(63.7% 0.237 25.331);' ,
1049
+ ] )
1015
1050
} ,
1016
1051
} )
0 commit comments