aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src/completion/complete_keyword.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_ide_api/src/completion/complete_keyword.rs')
-rw-r--r--crates/ra_ide_api/src/completion/complete_keyword.rs960
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}