/
completion.test
266 lines (266 loc) · 8.65 KB
/
completion.test
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
// RUN: mlir-lsp-server -lit-test < %s | FileCheck -strict-whitespace %s
{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":123,"rootPath":"mlir","capabilities":{},"trace":"off"}}
// -----
{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{
"uri":"test:///foo.mlir",
"languageId":"mlir",
"version":1,
"text":"#attr = i32\n!alias = i32\nfunc.func private @foo(%arg: i32) -> i32 {\n%cast = \"builtin.unrealized_conversion_cast\"() : () -> (!pdl.value)\nreturn %"
}}}
// -----
{"jsonrpc":"2.0","id":1,"method":"textDocument/completion","params":{
"textDocument":{"uri":"test:///foo.mlir"},
"position":{"line":2,"character":0}
}}
// CHECK-LABEL: "id": 1
// CHECK-NEXT: "jsonrpc": "2.0",
// CHECK-NEXT: "result": {
// CHECK-NEXT: "isIncomplete": false,
// CHECK-NEXT: "items": [
// CHECK: {
// CHECK: "detail": "dialect",
// CHECK: "insertTextFormat": 1,
// CHECK: "kind": 9,
// CHECK: "label": "builtin",
// CHECK: "sortText": "3"
// CHECK: },
// CHECK: {
// CHECK: "detail": "operation",
// CHECK: "insertTextFormat": 1,
// CHECK: "kind": 5,
// CHECK: "label": "module",
// CHECK: "sortText": "1"
// CHECK: }
// CHECK: ]
// CHECK-NEXT: }
// -----
{"jsonrpc":"2.0","id":2,"method":"textDocument/completion","params":{
"textDocument":{"uri":"test:///foo.mlir"},
"position":{"line":3,"character":9}
}}
// CHECK-LABEL: "id": 2
// CHECK-NEXT: "jsonrpc": "2.0",
// CHECK-NEXT: "result": {
// CHECK-NEXT: "isIncomplete": false,
// CHECK-NEXT: "items": [
// CHECK: {
// CHECK: "detail": "dialect",
// CHECK: "insertTextFormat": 1,
// CHECK: "kind": 9,
// CHECK: "label": "builtin",
// CHECK: "sortText": "3"
// CHECK: },
// CHECK-NOT: "detail": "operation",
// CHECK: ]
// CHECK-NEXT: }
// -----
{"jsonrpc":"2.0","id":3,"method":"textDocument/completion","params":{
"textDocument":{"uri":"test:///foo.mlir"},
"position":{"line":3,"character":17}
}}
// CHECK-LABEL: "id": 3
// CHECK-NEXT: "jsonrpc": "2.0",
// CHECK-NEXT: "result": {
// CHECK-NEXT: "isIncomplete": false,
// CHECK-NEXT: "items": [
// CHECK-NOT: "detail": "dialect",
// CHECK: {
// CHECK: "detail": "operation",
// CHECK: "insertTextFormat": 1,
// CHECK: "kind": 5,
// CHECK: "label": "module",
// CHECK: "sortText": "1"
// CHECK: }
// CHECK: ]
// CHECK-NEXT: }
// -----
{"jsonrpc":"2.0","id":4,"method":"textDocument/completion","params":{
"textDocument":{"uri":"test:///foo.mlir"},
"position":{"line":4,"character":8}
}}
// CHECK-LABEL: "id": 4
// CHECK-NEXT: "jsonrpc": "2.0",
// CHECK-NEXT: "result": {
// CHECK-NEXT: "isIncomplete": false,
// CHECK-NEXT: "items": [
// CHECK-NEXT: {
// CHECK-NEXT: "detail": "builtin.unrealized_conversion_cast: !pdl.value",
// CHECK-NEXT: "insertText": "cast",
// CHECK-NEXT: "insertTextFormat": 1,
// CHECK-NEXT: "kind": 6,
// CHECK-NEXT: "label": "%cast"
// CHECK-NEXT: },
// CHECK-NEXT: {
// CHECK-NEXT: "detail": "arg #0: i32",
// CHECK-NEXT: "insertText": "arg",
// CHECK-NEXT: "insertTextFormat": 1,
// CHECK-NEXT: "kind": 6,
// CHECK-NEXT: "label": "%arg"
// CHECK-NEXT: }
// CHECK: ]
// CHECK-NEXT: }
// -----
{"jsonrpc":"2.0","id":5,"method":"textDocument/completion","params":{
"textDocument":{"uri":"test:///foo.mlir"},
"position":{"line":2,"character":10}
}}
// CHECK-LABEL: "id": 5
// CHECK-NEXT: "jsonrpc": "2.0",
// CHECK-NEXT: "result": {
// CHECK-NEXT: "isIncomplete": false,
// CHECK-NEXT: "items": [
// CHECK-NEXT: {
// CHECK-NEXT: "detail": "optional",
// CHECK-NEXT: "insertTextFormat": 1,
// CHECK-NEXT: "kind": 14,
// CHECK-NEXT: "label": "public",
// CHECK-NEXT: "sortText": "0"
// CHECK-NEXT: },
// CHECK-NEXT: {
// CHECK-NEXT: "detail": "optional",
// CHECK-NEXT: "insertTextFormat": 1,
// CHECK-NEXT: "kind": 14,
// CHECK-NEXT: "label": "private",
// CHECK-NEXT: "sortText": "0"
// CHECK-NEXT: },
// CHECK-NEXT: {
// CHECK-NEXT: "detail": "optional",
// CHECK-NEXT: "insertTextFormat": 1,
// CHECK-NEXT: "kind": 14,
// CHECK-NEXT: "label": "nested",
// CHECK-NEXT: "sortText": "0"
// CHECK-NEXT: }
// CHECK-NEXT: ]
// CHECK-NEXT: }
// -----
{"jsonrpc":"2.0","id":6,"method":"textDocument/completion","params":{
"textDocument":{"uri":"test:///foo.mlir"},
"position":{"line":0,"character":8}
}}
// CHECK-LABEL: "id": 6
// CHECK-NEXT: "jsonrpc": "2.0",
// CHECK-NEXT: "result": {
// CHECK-NEXT: "isIncomplete": false,
// CHECK-NEXT: "items": [
// CHECK: {
// CHECK: "insertTextFormat": 1,
// CHECK: "kind": 5,
// CHECK: "label": "false"
// CHECK: },
// CHECK: {
// CHECK: "insertTextFormat": 1,
// CHECK: "kind": 5,
// CHECK: "label": "loc"
// CHECK: },
// CHECK: {
// CHECK: "insertTextFormat": 1,
// CHECK: "kind": 5,
// CHECK: "label": "true"
// CHECK: },
// CHECK: {
// CHECK: "insertTextFormat": 1,
// CHECK: "kind": 5,
// CHECK: "label": "unit"
// CHECK: }
// CHECK: ]
// CHECK: }
// -----
{"jsonrpc":"2.0","id":7,"method":"textDocument/completion","params":{
"textDocument":{"uri":"test:///foo.mlir"},
"position":{"line":3,"character":56}
}}
// CHECK-LABEL: "id": 7
// CHECK-NEXT: "jsonrpc": "2.0",
// CHECK-NEXT: "result": {
// CHECK-NEXT: "isIncomplete": false,
// CHECK-NEXT: "items": [
// CHECK: {
// CHECK: "insertTextFormat": 1,
// CHECK: "kind": 5,
// CHECK: "label": "index"
// CHECK: },
// CHECK: {
// CHECK: "insertTextFormat": 1,
// CHECK: "kind": 5,
// CHECK: "label": "none"
// CHECK: },
// CHECK: {
// CHECK: "insertText": "i",
// CHECK: "insertTextFormat": 1,
// CHECK: "kind": 5,
// CHECK: "label": "i<N>"
// CHECK: }
// CHECK: ]
// CHECK-NEXT: }
// -----
{"jsonrpc":"2.0","id":8,"method":"textDocument/completion","params":{
"textDocument":{"uri":"test:///foo.mlir"},
"position":{"line":3,"character":57}
}}
// CHECK-LABEL: "id": 8
// CHECK-NEXT: "jsonrpc": "2.0",
// CHECK-NEXT: "result": {
// CHECK-NEXT: "isIncomplete": false,
// CHECK-NEXT: "items": [
// CHECK: {
// CHECK: "detail": "dialect",
// CHECK: "insertTextFormat": 1,
// CHECK: "kind": 9,
// CHECK: "label": "builtin",
// CHECK: "sortText": "3"
// CHECK: },
// CHECK: {
// CHECK: "detail": "alias: i32",
// CHECK: "insertTextFormat": 1,
// CHECK: "kind": 5,
// CHECK: "label": "alias",
// CHECK: "sortText": "2"
// CHECK: }
// CHECK: ]
// CHECK-NEXT: }
// -----
{"jsonrpc":"2.0","id":9,"method":"textDocument/completion","params":{
"textDocument":{"uri":"test:///foo.mlir"},
"position":{"line":3,"character":61}
}}
// CHECK-LABEL: "id": 9
// CHECK-NEXT: "jsonrpc": "2.0",
// CHECK-NEXT: "result": {
// CHECK-NEXT: "isIncomplete": false,
// CHECK-NEXT: "items": [
// CHECK-NEXT: {
// CHECK-NEXT: "insertTextFormat": 1,
// CHECK-NEXT: "kind": 14,
// CHECK-NEXT: "label": "attribute",
// CHECK-NEXT: "sortText": "0"
// CHECK-NEXT: },
// CHECK-NEXT: {
// CHECK-NEXT: "insertTextFormat": 1,
// CHECK-NEXT: "kind": 14,
// CHECK-NEXT: "label": "operation",
// CHECK-NEXT: "sortText": "0"
// CHECK-NEXT: },
// CHECK-NEXT: {
// CHECK-NEXT: "insertTextFormat": 1,
// CHECK-NEXT: "kind": 14,
// CHECK-NEXT: "label": "range",
// CHECK-NEXT: "sortText": "0"
// CHECK-NEXT: },
// CHECK-NEXT: {
// CHECK-NEXT: "insertTextFormat": 1,
// CHECK-NEXT: "kind": 14,
// CHECK-NEXT: "label": "type",
// CHECK-NEXT: "sortText": "0"
// CHECK-NEXT: },
// CHECK-NEXT: {
// CHECK-NEXT: "insertTextFormat": 1,
// CHECK-NEXT: "kind": 14,
// CHECK-NEXT: "label": "value",
// CHECK-NEXT: "sortText": "0"
// CHECK-NEXT: }
// CHECK-NEXT: ]
// CHECK-NEXT: }
// -----
{"jsonrpc":"2.0","id":10,"method":"shutdown"}
// -----
{"jsonrpc":"2.0","method":"exit"}