diff options
Diffstat (limited to 'crates/ra_ide_api/src/completion/complete_keyword.rs')
-rw-r--r-- | crates/ra_ide_api/src/completion/complete_keyword.rs | 960 |
1 files changed, 493 insertions, 467 deletions
diff --git a/crates/ra_ide_api/src/completion/complete_keyword.rs b/crates/ra_ide_api/src/completion/complete_keyword.rs index 48c688a08..eb7cd9ac2 100644 --- a/crates/ra_ide_api/src/completion/complete_keyword.rs +++ b/crates/ra_ide_api/src/completion/complete_keyword.rs | |||
@@ -131,29 +131,31 @@ mod tests { | |||
131 | use <|> | 131 | use <|> |
132 | ", | 132 | ", |
133 | ), | 133 | ), |
134 | @r###"[ | 134 | @r###" |
135 | CompletionItem { | 135 | [ |
136 | label: "crate", | 136 | CompletionItem { |
137 | source_range: [21; 21), | 137 | label: "crate", |
138 | delete: [21; 21), | 138 | source_range: [21; 21), |
139 | insert: "crate::", | 139 | delete: [21; 21), |
140 | kind: Keyword, | 140 | insert: "crate::", |
141 | }, | 141 | kind: Keyword, |
142 | CompletionItem { | 142 | }, |
143 | label: "self", | 143 | CompletionItem { |
144 | source_range: [21; 21), | 144 | label: "self", |
145 | delete: [21; 21), | 145 | source_range: [21; 21), |
146 | insert: "self", | 146 | delete: [21; 21), |
147 | kind: Keyword, | 147 | insert: "self", |
148 | }, | 148 | kind: Keyword, |
149 | CompletionItem { | 149 | }, |
150 | label: "super", | 150 | CompletionItem { |
151 | source_range: [21; 21), | 151 | label: "super", |
152 | delete: [21; 21), | 152 | source_range: [21; 21), |
153 | insert: "super::", | 153 | delete: [21; 21), |
154 | kind: Keyword, | 154 | insert: "super::", |
155 | }, | 155 | kind: Keyword, |
156 | ]"### | 156 | }, |
157 | ] | ||
158 | "### | ||
157 | ); | 159 | ); |
158 | 160 | ||
159 | assert_debug_snapshot!( | 161 | assert_debug_snapshot!( |
@@ -162,22 +164,24 @@ mod tests { | |||
162 | use a::<|> | 164 | use a::<|> |
163 | ", | 165 | ", |
164 | ), | 166 | ), |
165 | @r###"[ | 167 | @r###" |
166 | CompletionItem { | 168 | [ |
167 | label: "self", | 169 | CompletionItem { |
168 | source_range: [24; 24), | 170 | label: "self", |
169 | delete: [24; 24), | 171 | source_range: [24; 24), |
170 | insert: "self", | 172 | delete: [24; 24), |
171 | kind: Keyword, | 173 | insert: "self", |
172 | }, | 174 | kind: Keyword, |
173 | CompletionItem { | 175 | }, |
174 | label: "super", | 176 | CompletionItem { |
175 | source_range: [24; 24), | 177 | label: "super", |
176 | delete: [24; 24), | 178 | source_range: [24; 24), |
177 | insert: "super::", | 179 | delete: [24; 24), |
178 | kind: Keyword, | 180 | insert: "super::", |
179 | }, | 181 | kind: Keyword, |
180 | ]"### | 182 | }, |
183 | ] | ||
184 | "### | ||
181 | ); | 185 | ); |
182 | 186 | ||
183 | assert_debug_snapshot!( | 187 | assert_debug_snapshot!( |
@@ -186,22 +190,24 @@ mod tests { | |||
186 | use a::{b, <|>} | 190 | use a::{b, <|>} |
187 | ", | 191 | ", |
188 | ), | 192 | ), |
189 | @r###"[ | 193 | @r###" |
190 | CompletionItem { | 194 | [ |
191 | label: "self", | 195 | CompletionItem { |
192 | source_range: [28; 28), | 196 | label: "self", |
193 | delete: [28; 28), | 197 | source_range: [28; 28), |
194 | insert: "self", | 198 | delete: [28; 28), |
195 | kind: Keyword, | 199 | insert: "self", |
196 | }, | 200 | kind: Keyword, |
197 | CompletionItem { | 201 | }, |
198 | label: "super", | 202 | CompletionItem { |
199 | source_range: [28; 28), | 203 | label: "super", |
200 | delete: [28; 28), | 204 | source_range: [28; 28), |
201 | insert: "super::", | 205 | delete: [28; 28), |
202 | kind: Keyword, | 206 | insert: "super::", |
203 | }, | 207 | kind: Keyword, |
204 | ]"### | 208 | }, |
209 | ] | ||
210 | "### | ||
205 | ); | 211 | ); |
206 | } | 212 | } |
207 | 213 | ||
@@ -215,43 +221,45 @@ mod tests { | |||
215 | } | 221 | } |
216 | ", | 222 | ", |
217 | ), | 223 | ), |
218 | @r###"[ | 224 | @r###" |
219 | CompletionItem { | 225 | [ |
220 | label: "if", | 226 | CompletionItem { |
221 | source_range: [49; 49), | 227 | label: "if", |
222 | delete: [49; 49), | 228 | source_range: [49; 49), |
223 | insert: "if $0 {}", | 229 | delete: [49; 49), |
224 | kind: Keyword, | 230 | insert: "if $0 {}", |
225 | }, | 231 | kind: Keyword, |
226 | CompletionItem { | 232 | }, |
227 | label: "loop", | 233 | CompletionItem { |
228 | source_range: [49; 49), | 234 | label: "loop", |
229 | delete: [49; 49), | 235 | source_range: [49; 49), |
230 | insert: "loop {$0}", | 236 | delete: [49; 49), |
231 | kind: Keyword, | 237 | insert: "loop {$0}", |
232 | }, | 238 | kind: Keyword, |
233 | CompletionItem { | 239 | }, |
234 | label: "match", | 240 | CompletionItem { |
235 | source_range: [49; 49), | 241 | label: "match", |
236 | delete: [49; 49), | 242 | source_range: [49; 49), |
237 | insert: "match $0 {}", | 243 | delete: [49; 49), |
238 | kind: Keyword, | 244 | insert: "match $0 {}", |
239 | }, | 245 | kind: Keyword, |
240 | CompletionItem { | 246 | }, |
241 | label: "return", | 247 | CompletionItem { |
242 | source_range: [49; 49), | 248 | label: "return", |
243 | delete: [49; 49), | 249 | source_range: [49; 49), |
244 | insert: "return;", | 250 | delete: [49; 49), |
245 | kind: Keyword, | 251 | insert: "return;", |
246 | }, | 252 | kind: Keyword, |
247 | CompletionItem { | 253 | }, |
248 | label: "while", | 254 | CompletionItem { |
249 | source_range: [49; 49), | 255 | label: "while", |
250 | delete: [49; 49), | 256 | source_range: [49; 49), |
251 | insert: "while $0 {}", | 257 | delete: [49; 49), |
252 | kind: Keyword, | 258 | insert: "while $0 {}", |
253 | }, | 259 | kind: Keyword, |
254 | ]"### | 260 | }, |
261 | ] | ||
262 | "### | ||
255 | ); | 263 | ); |
256 | } | 264 | } |
257 | 265 | ||
@@ -267,57 +275,59 @@ mod tests { | |||
267 | } | 275 | } |
268 | ", | 276 | ", |
269 | ), | 277 | ), |
270 | @r###"[ | 278 | @r###" |
271 | CompletionItem { | 279 | [ |
272 | label: "else", | 280 | CompletionItem { |
273 | source_range: [108; 108), | 281 | label: "else", |
274 | delete: [108; 108), | 282 | source_range: [108; 108), |
275 | insert: "else {$0}", | 283 | delete: [108; 108), |
276 | kind: Keyword, | 284 | insert: "else {$0}", |
277 | }, | 285 | kind: Keyword, |
278 | CompletionItem { | 286 | }, |
279 | label: "else if", | 287 | CompletionItem { |
280 | source_range: [108; 108), | 288 | label: "else if", |
281 | delete: [108; 108), | 289 | source_range: [108; 108), |
282 | insert: "else if $0 {}", | 290 | delete: [108; 108), |
283 | kind: Keyword, | 291 | insert: "else if $0 {}", |
284 | }, | 292 | kind: Keyword, |
285 | CompletionItem { | 293 | }, |
286 | label: "if", | 294 | CompletionItem { |
287 | source_range: [108; 108), | 295 | label: "if", |
288 | delete: [108; 108), | 296 | source_range: [108; 108), |
289 | insert: "if $0 {}", | 297 | delete: [108; 108), |
290 | kind: Keyword, | 298 | insert: "if $0 {}", |
291 | }, | 299 | kind: Keyword, |
292 | CompletionItem { | 300 | }, |
293 | label: "loop", | 301 | CompletionItem { |
294 | source_range: [108; 108), | 302 | label: "loop", |
295 | delete: [108; 108), | 303 | source_range: [108; 108), |
296 | insert: "loop {$0}", | 304 | delete: [108; 108), |
297 | kind: Keyword, | 305 | insert: "loop {$0}", |
298 | }, | 306 | kind: Keyword, |
299 | CompletionItem { | 307 | }, |
300 | label: "match", | 308 | CompletionItem { |
301 | source_range: [108; 108), | 309 | label: "match", |
302 | delete: [108; 108), | 310 | source_range: [108; 108), |
303 | insert: "match $0 {}", | 311 | delete: [108; 108), |
304 | kind: Keyword, | 312 | insert: "match $0 {}", |
305 | }, | 313 | kind: Keyword, |
306 | CompletionItem { | 314 | }, |
307 | label: "return", | 315 | CompletionItem { |
308 | source_range: [108; 108), | 316 | label: "return", |
309 | delete: [108; 108), | 317 | source_range: [108; 108), |
310 | insert: "return;", | 318 | delete: [108; 108), |
311 | kind: Keyword, | 319 | insert: "return;", |
312 | }, | 320 | kind: Keyword, |
313 | CompletionItem { | 321 | }, |
314 | label: "while", | 322 | CompletionItem { |
315 | source_range: [108; 108), | 323 | label: "while", |
316 | delete: [108; 108), | 324 | source_range: [108; 108), |
317 | insert: "while $0 {}", | 325 | delete: [108; 108), |
318 | kind: Keyword, | 326 | insert: "while $0 {}", |
319 | }, | 327 | kind: Keyword, |
320 | ]"### | 328 | }, |
329 | ] | ||
330 | "### | ||
321 | ); | 331 | ); |
322 | } | 332 | } |
323 | 333 | ||
@@ -332,43 +342,45 @@ mod tests { | |||
332 | } | 342 | } |
333 | ", | 343 | ", |
334 | ), | 344 | ), |
335 | @r###"[ | 345 | @r###" |
336 | CompletionItem { | 346 | [ |
337 | label: "if", | 347 | CompletionItem { |
338 | source_range: [56; 56), | 348 | label: "if", |
339 | delete: [56; 56), | 349 | source_range: [56; 56), |
340 | insert: "if $0 {}", | 350 | delete: [56; 56), |
341 | kind: Keyword, | 351 | insert: "if $0 {}", |
342 | }, | 352 | kind: Keyword, |
343 | CompletionItem { | 353 | }, |
344 | label: "loop", | 354 | CompletionItem { |
345 | source_range: [56; 56), | 355 | label: "loop", |
346 | delete: [56; 56), | 356 | source_range: [56; 56), |
347 | insert: "loop {$0}", | 357 | delete: [56; 56), |
348 | kind: Keyword, | 358 | insert: "loop {$0}", |
349 | }, | 359 | kind: Keyword, |
350 | CompletionItem { | 360 | }, |
351 | label: "match", | 361 | CompletionItem { |
352 | source_range: [56; 56), | 362 | label: "match", |
353 | delete: [56; 56), | 363 | source_range: [56; 56), |
354 | insert: "match $0 {}", | 364 | delete: [56; 56), |
355 | kind: Keyword, | 365 | insert: "match $0 {}", |
356 | }, | 366 | kind: Keyword, |
357 | CompletionItem { | 367 | }, |
358 | label: "return", | 368 | CompletionItem { |
359 | source_range: [56; 56), | 369 | label: "return", |
360 | delete: [56; 56), | 370 | source_range: [56; 56), |
361 | insert: "return $0;", | 371 | delete: [56; 56), |
362 | kind: Keyword, | 372 | insert: "return $0;", |
363 | }, | 373 | kind: Keyword, |
364 | CompletionItem { | 374 | }, |
365 | label: "while", | 375 | CompletionItem { |
366 | source_range: [56; 56), | 376 | label: "while", |
367 | delete: [56; 56), | 377 | source_range: [56; 56), |
368 | insert: "while $0 {}", | 378 | delete: [56; 56), |
369 | kind: Keyword, | 379 | insert: "while $0 {}", |
370 | }, | 380 | kind: Keyword, |
371 | ]"### | 381 | }, |
382 | ] | ||
383 | "### | ||
372 | ); | 384 | ); |
373 | assert_debug_snapshot!( | 385 | assert_debug_snapshot!( |
374 | do_keyword_completion( | 386 | do_keyword_completion( |
@@ -379,43 +391,45 @@ mod tests { | |||
379 | } | 391 | } |
380 | ", | 392 | ", |
381 | ), | 393 | ), |
382 | @r###"[ | 394 | @r###" |
383 | CompletionItem { | 395 | [ |
384 | label: "if", | 396 | CompletionItem { |
385 | source_range: [49; 49), | 397 | label: "if", |
386 | delete: [49; 49), | 398 | source_range: [49; 49), |
387 | insert: "if $0 {}", | 399 | delete: [49; 49), |
388 | kind: Keyword, | 400 | insert: "if $0 {}", |
389 | }, | 401 | kind: Keyword, |
390 | CompletionItem { | 402 | }, |
391 | label: "loop", | 403 | CompletionItem { |
392 | source_range: [49; 49), | 404 | label: "loop", |
393 | delete: [49; 49), | 405 | source_range: [49; 49), |
394 | insert: "loop {$0}", | 406 | delete: [49; 49), |
395 | kind: Keyword, | 407 | insert: "loop {$0}", |
396 | }, | 408 | kind: Keyword, |
397 | CompletionItem { | 409 | }, |
398 | label: "match", | 410 | CompletionItem { |
399 | source_range: [49; 49), | 411 | label: "match", |
400 | delete: [49; 49), | 412 | source_range: [49; 49), |
401 | insert: "match $0 {}", | 413 | delete: [49; 49), |
402 | kind: Keyword, | 414 | insert: "match $0 {}", |
403 | }, | 415 | kind: Keyword, |
404 | CompletionItem { | 416 | }, |
405 | label: "return", | 417 | CompletionItem { |
406 | source_range: [49; 49), | 418 | label: "return", |
407 | delete: [49; 49), | 419 | source_range: [49; 49), |
408 | insert: "return;", | 420 | delete: [49; 49), |
409 | kind: Keyword, | 421 | insert: "return;", |
410 | }, | 422 | kind: Keyword, |
411 | CompletionItem { | 423 | }, |
412 | label: "while", | 424 | CompletionItem { |
413 | source_range: [49; 49), | 425 | label: "while", |
414 | delete: [49; 49), | 426 | source_range: [49; 49), |
415 | insert: "while $0 {}", | 427 | delete: [49; 49), |
416 | kind: Keyword, | 428 | insert: "while $0 {}", |
417 | }, | 429 | kind: Keyword, |
418 | ]"### | 430 | }, |
431 | ] | ||
432 | "### | ||
419 | ); | 433 | ); |
420 | } | 434 | } |
421 | 435 | ||
@@ -431,43 +445,45 @@ mod tests { | |||
431 | } | 445 | } |
432 | ", | 446 | ", |
433 | ), | 447 | ), |
434 | @r###"[ | 448 | @r###" |
435 | CompletionItem { | 449 | [ |
436 | label: "if", | 450 | CompletionItem { |
437 | source_range: [97; 97), | 451 | label: "if", |
438 | delete: [97; 97), | 452 | source_range: [97; 97), |
439 | insert: "if $0 {}", | 453 | delete: [97; 97), |
440 | kind: Keyword, | 454 | insert: "if $0 {}", |
441 | }, | 455 | kind: Keyword, |
442 | CompletionItem { | 456 | }, |
443 | label: "loop", | 457 | CompletionItem { |
444 | source_range: [97; 97), | 458 | label: "loop", |
445 | delete: [97; 97), | 459 | source_range: [97; 97), |
446 | insert: "loop {$0}", | 460 | delete: [97; 97), |
447 | kind: Keyword, | 461 | insert: "loop {$0}", |
448 | }, | 462 | kind: Keyword, |
449 | CompletionItem { | 463 | }, |
450 | label: "match", | 464 | CompletionItem { |
451 | source_range: [97; 97), | 465 | label: "match", |
452 | delete: [97; 97), | 466 | source_range: [97; 97), |
453 | insert: "match $0 {}", | 467 | delete: [97; 97), |
454 | kind: Keyword, | 468 | insert: "match $0 {}", |
455 | }, | 469 | kind: Keyword, |
456 | CompletionItem { | 470 | }, |
457 | label: "return", | 471 | CompletionItem { |
458 | source_range: [97; 97), | 472 | label: "return", |
459 | delete: [97; 97), | 473 | source_range: [97; 97), |
460 | insert: "return $0", | 474 | delete: [97; 97), |
461 | kind: Keyword, | 475 | insert: "return $0", |
462 | }, | 476 | kind: Keyword, |
463 | CompletionItem { | 477 | }, |
464 | label: "while", | 478 | CompletionItem { |
465 | source_range: [97; 97), | 479 | label: "while", |
466 | delete: [97; 97), | 480 | source_range: [97; 97), |
467 | insert: "while $0 {}", | 481 | delete: [97; 97), |
468 | kind: Keyword, | 482 | insert: "while $0 {}", |
469 | }, | 483 | kind: Keyword, |
470 | ]"### | 484 | }, |
485 | ] | ||
486 | "### | ||
471 | ); | 487 | ); |
472 | } | 488 | } |
473 | 489 | ||
@@ -483,43 +499,45 @@ mod tests { | |||
483 | } | 499 | } |
484 | ", | 500 | ", |
485 | ), | 501 | ), |
486 | @r###"[ | 502 | @r###" |
487 | CompletionItem { | 503 | [ |
488 | label: "if", | 504 | CompletionItem { |
489 | source_range: [95; 95), | 505 | label: "if", |
490 | delete: [95; 95), | 506 | source_range: [95; 95), |
491 | insert: "if $0 {}", | 507 | delete: [95; 95), |
492 | kind: Keyword, | 508 | insert: "if $0 {}", |
493 | }, | 509 | kind: Keyword, |
494 | CompletionItem { | 510 | }, |
495 | label: "loop", | 511 | CompletionItem { |
496 | source_range: [95; 95), | 512 | label: "loop", |
497 | delete: [95; 95), | 513 | source_range: [95; 95), |
498 | insert: "loop {$0}", | 514 | delete: [95; 95), |
499 | kind: Keyword, | 515 | insert: "loop {$0}", |
500 | }, | 516 | kind: Keyword, |
501 | CompletionItem { | 517 | }, |
502 | label: "match", | 518 | CompletionItem { |
503 | source_range: [95; 95), | 519 | label: "match", |
504 | delete: [95; 95), | 520 | source_range: [95; 95), |
505 | insert: "match $0 {}", | 521 | delete: [95; 95), |
506 | kind: Keyword, | 522 | insert: "match $0 {}", |
507 | }, | 523 | kind: Keyword, |
508 | CompletionItem { | 524 | }, |
509 | label: "return", | 525 | CompletionItem { |
510 | source_range: [95; 95), | 526 | label: "return", |
511 | delete: [95; 95), | 527 | source_range: [95; 95), |
512 | insert: "return $0;", | 528 | delete: [95; 95), |
513 | kind: Keyword, | 529 | insert: "return $0;", |
514 | }, | 530 | kind: Keyword, |
515 | CompletionItem { | 531 | }, |
516 | label: "while", | 532 | CompletionItem { |
517 | source_range: [95; 95), | 533 | label: "while", |
518 | delete: [95; 95), | 534 | source_range: [95; 95), |
519 | insert: "while $0 {}", | 535 | delete: [95; 95), |
520 | kind: Keyword, | 536 | insert: "while $0 {}", |
521 | }, | 537 | kind: Keyword, |
522 | ]"### | 538 | }, |
539 | ] | ||
540 | "### | ||
523 | ); | 541 | ); |
524 | assert_debug_snapshot!( | 542 | assert_debug_snapshot!( |
525 | do_keyword_completion( | 543 | do_keyword_completion( |
@@ -533,43 +551,45 @@ mod tests { | |||
533 | } | 551 | } |
534 | ", | 552 | ", |
535 | ), | 553 | ), |
536 | @r###"[ | 554 | @r###" |
537 | CompletionItem { | 555 | [ |
538 | label: "if", | 556 | CompletionItem { |
539 | source_range: [95; 95), | 557 | label: "if", |
540 | delete: [95; 95), | 558 | source_range: [95; 95), |
541 | insert: "if $0 {}", | 559 | delete: [95; 95), |
542 | kind: Keyword, | 560 | insert: "if $0 {}", |
543 | }, | 561 | kind: Keyword, |
544 | CompletionItem { | 562 | }, |
545 | label: "loop", | 563 | CompletionItem { |
546 | source_range: [95; 95), | 564 | label: "loop", |
547 | delete: [95; 95), | 565 | source_range: [95; 95), |
548 | insert: "loop {$0}", | 566 | delete: [95; 95), |
549 | kind: Keyword, | 567 | insert: "loop {$0}", |
550 | }, | 568 | kind: Keyword, |
551 | CompletionItem { | 569 | }, |
552 | label: "match", | 570 | CompletionItem { |
553 | source_range: [95; 95), | 571 | label: "match", |
554 | delete: [95; 95), | 572 | source_range: [95; 95), |
555 | insert: "match $0 {}", | 573 | delete: [95; 95), |
556 | kind: Keyword, | 574 | insert: "match $0 {}", |
557 | }, | 575 | kind: Keyword, |
558 | CompletionItem { | 576 | }, |
559 | label: "return", | 577 | CompletionItem { |
560 | source_range: [95; 95), | 578 | label: "return", |
561 | delete: [95; 95), | 579 | source_range: [95; 95), |
562 | insert: "return $0;", | 580 | delete: [95; 95), |
563 | kind: Keyword, | 581 | insert: "return $0;", |
564 | }, | 582 | kind: Keyword, |
565 | CompletionItem { | 583 | }, |
566 | label: "while", | 584 | CompletionItem { |
567 | source_range: [95; 95), | 585 | label: "while", |
568 | delete: [95; 95), | 586 | source_range: [95; 95), |
569 | insert: "while $0 {}", | 587 | delete: [95; 95), |
570 | kind: Keyword, | 588 | insert: "while $0 {}", |
571 | }, | 589 | kind: Keyword, |
572 | ]"### | 590 | }, |
591 | ] | ||
592 | "### | ||
573 | ); | 593 | ); |
574 | } | 594 | } |
575 | 595 | ||
@@ -583,57 +603,59 @@ mod tests { | |||
583 | } | 603 | } |
584 | ", | 604 | ", |
585 | ), | 605 | ), |
586 | @r###"[ | 606 | @r###" |
587 | CompletionItem { | 607 | [ |
588 | label: "break", | 608 | CompletionItem { |
589 | source_range: [63; 63), | 609 | label: "break", |
590 | delete: [63; 63), | 610 | source_range: [63; 63), |
591 | insert: "break;", | 611 | delete: [63; 63), |
592 | kind: Keyword, | 612 | insert: "break;", |
593 | }, | 613 | kind: Keyword, |
594 | CompletionItem { | 614 | }, |
595 | label: "continue", | 615 | CompletionItem { |
596 | source_range: [63; 63), | 616 | label: "continue", |
597 | delete: [63; 63), | 617 | source_range: [63; 63), |
598 | insert: "continue;", | 618 | delete: [63; 63), |
599 | kind: Keyword, | 619 | insert: "continue;", |
600 | }, | 620 | kind: Keyword, |
601 | CompletionItem { | 621 | }, |
602 | label: "if", | 622 | CompletionItem { |
603 | source_range: [63; 63), | 623 | label: "if", |
604 | delete: [63; 63), | 624 | source_range: [63; 63), |
605 | insert: "if $0 {}", | 625 | delete: [63; 63), |
606 | kind: Keyword, | 626 | insert: "if $0 {}", |
607 | }, | 627 | kind: Keyword, |
608 | CompletionItem { | 628 | }, |
609 | label: "loop", | 629 | CompletionItem { |
610 | source_range: [63; 63), | 630 | label: "loop", |
611 | delete: [63; 63), | 631 | source_range: [63; 63), |
612 | insert: "loop {$0}", | 632 | delete: [63; 63), |
613 | kind: Keyword, | 633 | insert: "loop {$0}", |
614 | }, | 634 | kind: Keyword, |
615 | CompletionItem { | 635 | }, |
616 | label: "match", | 636 | CompletionItem { |
617 | source_range: [63; 63), | 637 | label: "match", |
618 | delete: [63; 63), | 638 | source_range: [63; 63), |
619 | insert: "match $0 {}", | 639 | delete: [63; 63), |
620 | kind: Keyword, | 640 | insert: "match $0 {}", |
621 | }, | 641 | kind: Keyword, |
622 | CompletionItem { | 642 | }, |
623 | label: "return", | 643 | CompletionItem { |
624 | source_range: [63; 63), | 644 | label: "return", |
625 | delete: [63; 63), | 645 | source_range: [63; 63), |
626 | insert: "return $0;", | 646 | delete: [63; 63), |
627 | kind: Keyword, | 647 | insert: "return $0;", |
628 | }, | 648 | kind: Keyword, |
629 | CompletionItem { | 649 | }, |
630 | label: "while", | 650 | CompletionItem { |
631 | source_range: [63; 63), | 651 | label: "while", |
632 | delete: [63; 63), | 652 | source_range: [63; 63), |
633 | insert: "while $0 {}", | 653 | delete: [63; 63), |
634 | kind: Keyword, | 654 | insert: "while $0 {}", |
635 | }, | 655 | kind: Keyword, |
636 | ]"### | 656 | }, |
657 | ] | ||
658 | "### | ||
637 | ); | 659 | ); |
638 | 660 | ||
639 | // No completion: lambda isolates control flow | 661 | // No completion: lambda isolates control flow |
@@ -645,43 +667,45 @@ mod tests { | |||
645 | } | 667 | } |
646 | ", | 668 | ", |
647 | ), | 669 | ), |
648 | @r###"[ | 670 | @r###" |
649 | CompletionItem { | 671 | [ |
650 | label: "if", | 672 | CompletionItem { |
651 | source_range: [68; 68), | 673 | label: "if", |
652 | delete: [68; 68), | 674 | source_range: [68; 68), |
653 | insert: "if $0 {}", | 675 | delete: [68; 68), |
654 | kind: Keyword, | 676 | insert: "if $0 {}", |
655 | }, | 677 | kind: Keyword, |
656 | CompletionItem { | 678 | }, |
657 | label: "loop", | 679 | CompletionItem { |
658 | source_range: [68; 68), | 680 | label: "loop", |
659 | delete: [68; 68), | 681 | source_range: [68; 68), |
660 | insert: "loop {$0}", | 682 | delete: [68; 68), |
661 | kind: Keyword, | 683 | insert: "loop {$0}", |
662 | }, | 684 | kind: Keyword, |
663 | CompletionItem { | 685 | }, |
664 | label: "match", | 686 | CompletionItem { |
665 | source_range: [68; 68), | 687 | label: "match", |
666 | delete: [68; 68), | 688 | source_range: [68; 68), |
667 | insert: "match $0 {}", | 689 | delete: [68; 68), |
668 | kind: Keyword, | 690 | insert: "match $0 {}", |
669 | }, | 691 | kind: Keyword, |
670 | CompletionItem { | 692 | }, |
671 | label: "return", | 693 | CompletionItem { |
672 | source_range: [68; 68), | 694 | label: "return", |
673 | delete: [68; 68), | 695 | source_range: [68; 68), |
674 | insert: "return $0;", | 696 | delete: [68; 68), |
675 | kind: Keyword, | 697 | insert: "return $0;", |
676 | }, | 698 | kind: Keyword, |
677 | CompletionItem { | 699 | }, |
678 | label: "while", | 700 | CompletionItem { |
679 | source_range: [68; 68), | 701 | label: "while", |
680 | delete: [68; 68), | 702 | source_range: [68; 68), |
681 | insert: "while $0 {}", | 703 | delete: [68; 68), |
682 | kind: Keyword, | 704 | insert: "while $0 {}", |
683 | }, | 705 | kind: Keyword, |
684 | ]"### | 706 | }, |
707 | ] | ||
708 | "### | ||
685 | ); | 709 | ); |
686 | } | 710 | } |
687 | 711 | ||
@@ -699,57 +723,59 @@ mod tests { | |||
699 | } | 723 | } |
700 | ", | 724 | ", |
701 | ), | 725 | ), |
702 | @r###"[ | 726 | @r###" |
703 | CompletionItem { | 727 | [ |
704 | label: "break", | 728 | CompletionItem { |
705 | source_range: [122; 124), | 729 | label: "break", |
706 | delete: [122; 124), | 730 | source_range: [122; 124), |
707 | insert: "break", | 731 | delete: [122; 124), |
708 | kind: Keyword, | 732 | insert: "break", |
709 | }, | 733 | kind: Keyword, |
710 | CompletionItem { | 734 | }, |
711 | label: "continue", | 735 | CompletionItem { |
712 | source_range: [122; 124), | 736 | label: "continue", |
713 | delete: [122; 124), | 737 | source_range: [122; 124), |
714 | insert: "continue", | 738 | delete: [122; 124), |
715 | kind: Keyword, | 739 | insert: "continue", |
716 | }, | 740 | kind: Keyword, |
717 | CompletionItem { | 741 | }, |
718 | label: "if", | 742 | CompletionItem { |
719 | source_range: [122; 124), | 743 | label: "if", |
720 | delete: [122; 124), | 744 | source_range: [122; 124), |
721 | insert: "if $0 {}", | 745 | delete: [122; 124), |
722 | kind: Keyword, | 746 | insert: "if $0 {}", |
723 | }, | 747 | kind: Keyword, |
724 | CompletionItem { | 748 | }, |
725 | label: "loop", | 749 | CompletionItem { |
726 | source_range: [122; 124), | 750 | label: "loop", |
727 | delete: [122; 124), | 751 | source_range: [122; 124), |
728 | insert: "loop {$0}", | 752 | delete: [122; 124), |
729 | kind: Keyword, | 753 | insert: "loop {$0}", |
730 | }, | 754 | kind: Keyword, |
731 | CompletionItem { | 755 | }, |
732 | label: "match", | 756 | CompletionItem { |
733 | source_range: [122; 124), | 757 | label: "match", |
734 | delete: [122; 124), | 758 | source_range: [122; 124), |
735 | insert: "match $0 {}", | 759 | delete: [122; 124), |
736 | kind: Keyword, | 760 | insert: "match $0 {}", |
737 | }, | 761 | kind: Keyword, |
738 | CompletionItem { | 762 | }, |
739 | label: "return", | 763 | CompletionItem { |
740 | source_range: [122; 124), | 764 | label: "return", |
741 | delete: [122; 124), | 765 | source_range: [122; 124), |
742 | insert: "return", | 766 | delete: [122; 124), |
743 | kind: Keyword, | 767 | insert: "return", |
744 | }, | 768 | kind: Keyword, |
745 | CompletionItem { | 769 | }, |
746 | label: "while", | 770 | CompletionItem { |
747 | source_range: [122; 124), | 771 | label: "while", |
748 | delete: [122; 124), | 772 | source_range: [122; 124), |
749 | insert: "while $0 {}", | 773 | delete: [122; 124), |
750 | kind: Keyword, | 774 | insert: "while $0 {}", |
751 | }, | 775 | kind: Keyword, |
752 | ]"### | 776 | }, |
777 | ] | ||
778 | "### | ||
753 | ) | 779 | ) |
754 | } | 780 | } |
755 | } | 781 | } |