1
+ // @ts -check
1
2
import { test } from 'vitest'
2
3
import { init } from '../common'
3
- import { CompletionRequest , HoverRequest } from 'vscode-languageserver'
4
4
5
5
test ( 'Unknown languages do not provide completions' , async ( { expect } ) => {
6
- let c = await init ( 'basic' )
6
+ let { client } = await init ( 'basic' )
7
7
8
- let textDocument = await c . openDocument ( {
8
+ let doc = await client . open ( {
9
9
lang : 'some-lang' ,
10
10
text : '<div class="bg-[#000]">' ,
11
11
} )
12
12
13
- let hover = await c . sendRequest ( HoverRequest . type , {
14
- textDocument,
15
- position : { line : 0 , character : 13 } ,
16
- } )
13
+ let hover = await doc . hover ( { line : 0 , character : 13 } )
17
14
18
15
expect ( hover ) . toEqual ( null )
19
16
20
- let completion = await c . sendRequest ( CompletionRequest . type , {
21
- textDocument,
17
+ let completion = await doc . completions ( {
22
18
position : { line : 0 , character : 13 } ,
23
19
context : { triggerKind : 1 } ,
24
20
} )
@@ -27,23 +23,20 @@ test('Unknown languages do not provide completions', async ({ expect }) => {
27
23
} )
28
24
29
25
test ( 'Custom languages may be specified via init options (deprecated)' , async ( { expect } ) => {
30
- let c = await init ( 'basic' , {
26
+ let { client } = await init ( 'basic' , {
31
27
options : {
32
28
userLanguages : {
33
29
'some-lang' : 'html' ,
34
30
} ,
35
31
} ,
36
32
} )
37
33
38
- let textDocument = await c . openDocument ( {
34
+ let doc = await client . open ( {
39
35
lang : 'some-lang' ,
40
36
text : '<div class="bg-[#000]">' ,
41
37
} )
42
38
43
- let hover = await c . sendRequest ( HoverRequest . type , {
44
- textDocument,
45
- position : { line : 0 , character : 13 } ,
46
- } )
39
+ let hover = await doc . hover ( { line : 0 , character : 13 } )
47
40
48
41
expect ( hover ) . toEqual ( {
49
42
contents : {
@@ -54,35 +47,31 @@ test('Custom languages may be specified via init options (deprecated)', async ({
54
47
range : { start : { line : 0 , character : 12 } , end : { line : 0 , character : 21 } } ,
55
48
} )
56
49
57
- let completion = await c . sendRequest ( CompletionRequest . type , {
58
- textDocument,
50
+ let completion = await doc . completions ( {
59
51
position : { line : 0 , character : 13 } ,
60
52
context : { triggerKind : 1 } ,
61
53
} )
62
54
63
- expect ( completion . items . length ) . toBe ( 11509 )
55
+ expect ( completion ? .items . length ) . toBe ( 11509 )
64
56
} )
65
57
66
58
test ( 'Custom languages may be specified via settings' , async ( { expect } ) => {
67
- let c = await init ( 'basic' )
68
-
69
- await c . updateSettings ( {
70
- tailwindCSS : {
71
- includeLanguages : {
72
- 'some-lang' : 'html' ,
59
+ let { client } = await init ( 'basic' , {
60
+ settings : {
61
+ tailwindCSS : {
62
+ includeLanguages : {
63
+ 'some-lang' : 'html' ,
64
+ } ,
73
65
} ,
74
66
} ,
75
67
} )
76
68
77
- let textDocument = await c . openDocument ( {
69
+ let doc = await client . open ( {
78
70
lang : 'some-lang' ,
79
71
text : '<div class="bg-[#000]">' ,
80
72
} )
81
73
82
- let hover = await c . sendRequest ( HoverRequest . type , {
83
- textDocument,
84
- position : { line : 0 , character : 13 } ,
85
- } )
74
+ let hover = await doc . hover ( { line : 0 , character : 13 } )
86
75
87
76
expect ( hover ) . toEqual ( {
88
77
contents : {
@@ -93,60 +82,51 @@ test('Custom languages may be specified via settings', async ({ expect }) => {
93
82
range : { start : { line : 0 , character : 12 } , end : { line : 0 , character : 21 } } ,
94
83
} )
95
84
96
- let completion = await c . sendRequest ( CompletionRequest . type , {
97
- textDocument,
85
+ let completion = await doc . completions ( {
98
86
position : { line : 0 , character : 13 } ,
99
87
context : { triggerKind : 1 } ,
100
88
} )
101
89
102
- expect ( completion . items . length ) . toBe ( 11509 )
90
+ expect ( completion ? .items . length ) . toBe ( 11509 )
103
91
} )
104
92
105
93
test ( 'Custom languages are merged from init options and settings' , async ( { expect } ) => {
106
- let c = await init ( 'basic' , {
94
+ let { client } = await init ( 'basic' , {
107
95
options : {
108
96
userLanguages : {
109
97
'some-lang' : 'html' ,
110
98
} ,
111
99
} ,
112
- } )
113
100
114
- await c . updateSettings ( {
115
- tailwindCSS : {
116
- includeLanguages : {
117
- 'other-lang' : 'html' ,
101
+ settings : {
102
+ tailwindCSS : {
103
+ includeLanguages : {
104
+ 'other-lang' : 'html' ,
105
+ } ,
118
106
} ,
119
107
} ,
120
108
} )
121
109
122
- let textDocument = await c . openDocument ( {
110
+ let doc = await client . open ( {
123
111
lang : 'some-lang' ,
124
112
text : '<div class="bg-[#000]">' ,
125
113
} )
126
114
127
- let hover = await c . sendRequest ( HoverRequest . type , {
128
- textDocument,
129
- position : { line : 0 , character : 13 } ,
130
- } )
115
+ let hover = await doc . hover ( { line : 0 , character : 13 } )
131
116
132
- let completion = await c . sendRequest ( CompletionRequest . type , {
133
- textDocument,
117
+ let completion = await doc . completions ( {
134
118
position : { line : 0 , character : 13 } ,
135
119
context : { triggerKind : 1 } ,
136
120
} )
137
121
138
- textDocument = await c . openDocument ( {
122
+ let doc2 = await client . open ( {
139
123
lang : 'other-lang' ,
140
124
text : '<div class="bg-[#000]">' ,
141
125
} )
142
126
143
- let hover2 = await c . sendRequest ( HoverRequest . type , {
144
- textDocument,
145
- position : { line : 0 , character : 13 } ,
146
- } )
127
+ let hover2 = await doc2 . hover ( { line : 0 , character : 13 } )
147
128
148
- let completion2 = await c . sendRequest ( CompletionRequest . type , {
149
- textDocument,
129
+ let completion2 = await doc2 . completions ( {
150
130
position : { line : 0 , character : 13 } ,
151
131
context : { triggerKind : 1 } ,
152
132
} )
@@ -169,36 +149,33 @@ test('Custom languages are merged from init options and settings', async ({ expe
169
149
range : { start : { line : 0 , character : 12 } , end : { line : 0 , character : 21 } } ,
170
150
} )
171
151
172
- expect ( completion . items . length ) . toBe ( 11509 )
173
- expect ( completion2 . items . length ) . toBe ( 11509 )
152
+ expect ( completion ? .items . length ) . toBe ( 11509 )
153
+ expect ( completion2 ? .items . length ) . toBe ( 11509 )
174
154
} )
175
155
176
156
test ( 'Language mappings from settings take precedence' , async ( { expect } ) => {
177
- let c = await init ( 'basic' , {
157
+ let { client } = await init ( 'basic' , {
178
158
options : {
179
159
userLanguages : {
180
160
'some-lang' : 'css' ,
181
161
} ,
182
162
} ,
183
- } )
184
163
185
- await c . updateSettings ( {
186
- tailwindCSS : {
187
- includeLanguages : {
188
- 'some-lang' : 'html' ,
164
+ settings : {
165
+ tailwindCSS : {
166
+ includeLanguages : {
167
+ 'some-lang' : 'html' ,
168
+ } ,
189
169
} ,
190
170
} ,
191
171
} )
192
172
193
- let textDocument = await c . openDocument ( {
173
+ let doc = await client . open ( {
194
174
lang : 'some-lang' ,
195
175
text : '<div class="bg-[#000]">' ,
196
176
} )
197
177
198
- let hover = await c . sendRequest ( HoverRequest . type , {
199
- textDocument,
200
- position : { line : 0 , character : 13 } ,
201
- } )
178
+ let hover = await doc . hover ( { line : 0 , character : 13 } )
202
179
203
180
expect ( hover ) . toEqual ( {
204
181
contents : {
@@ -209,11 +186,10 @@ test('Language mappings from settings take precedence', async ({ expect }) => {
209
186
range : { start : { line : 0 , character : 12 } , end : { line : 0 , character : 21 } } ,
210
187
} )
211
188
212
- let completion = await c . sendRequest ( CompletionRequest . type , {
213
- textDocument,
189
+ let completion = await doc . completions ( {
214
190
position : { line : 0 , character : 13 } ,
215
191
context : { triggerKind : 1 } ,
216
192
} )
217
193
218
- expect ( completion . items . length ) . toBe ( 11509 )
194
+ expect ( completion ? .items . length ) . toBe ( 11509 )
219
195
} )
0 commit comments