aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src/completion/presentation.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_ide/src/completion/presentation.rs')
-rw-r--r--crates/ra_ide/src/completion/presentation.rs217
1 files changed, 110 insertions, 107 deletions
diff --git a/crates/ra_ide/src/completion/presentation.rs b/crates/ra_ide/src/completion/presentation.rs
index 61565c84f..4fdc2f0bb 100644
--- a/crates/ra_ide/src/completion/presentation.rs
+++ b/crates/ra_ide/src/completion/presentation.rs
@@ -491,13 +491,14 @@ mod tests {
491 [ 491 [
492 CompletionItem { 492 CompletionItem {
493 label: "Foo", 493 label: "Foo",
494 source_range: 121..123, 494 source_range: 56..58,
495 delete: 121..123, 495 delete: 56..58,
496 insert: "Foo", 496 insert: "Foo",
497 kind: EnumVariant, 497 kind: EnumVariant,
498 detail: "{ x: i32, y: i32 }", 498 detail: "{ x: i32, y: i32 }",
499 }, 499 },
500 ]"### 500 ]
501 "###
501 ); 502 );
502 } 503 }
503 504
@@ -517,15 +518,16 @@ mod tests {
517 [ 518 [
518 CompletionItem { 519 CompletionItem {
519 label: "Foo(…)", 520 label: "Foo(…)",
520 source_range: 115..117, 521 source_range: 50..52,
521 delete: 115..117, 522 delete: 50..52,
522 insert: "Foo($0)", 523 insert: "Foo($0)",
523 kind: EnumVariant, 524 kind: EnumVariant,
524 lookup: "Foo", 525 lookup: "Foo",
525 detail: "(i32, i32)", 526 detail: "(i32, i32)",
526 trigger_call_info: true, 527 trigger_call_info: true,
527 }, 528 },
528 ]"### 529 ]
530 "###
529 ); 531 );
530 } 532 }
531 533
@@ -545,13 +547,14 @@ mod tests {
545 [ 547 [
546 CompletionItem { 548 CompletionItem {
547 label: "Foo", 549 label: "Foo",
548 source_range: 104..106, 550 source_range: 39..41,
549 delete: 104..106, 551 delete: 39..41,
550 insert: "Foo", 552 insert: "Foo",
551 kind: EnumVariant, 553 kind: EnumVariant,
552 detail: "()", 554 detail: "()",
553 }, 555 },
554 ]"### 556 ]
557 "###
555 ); 558 );
556 } 559 }
557 560
@@ -573,8 +576,8 @@ mod tests {
573 [ 576 [
574 CompletionItem { 577 CompletionItem {
575 label: "main()", 578 label: "main()",
576 source_range: 203..206, 579 source_range: 122..125,
577 delete: 203..206, 580 delete: 122..125,
578 insert: "main()$0", 581 insert: "main()$0",
579 kind: Function, 582 kind: Function,
580 lookup: "main", 583 lookup: "main",
@@ -582,8 +585,8 @@ mod tests {
582 }, 585 },
583 CompletionItem { 586 CompletionItem {
584 label: "something_deprecated()", 587 label: "something_deprecated()",
585 source_range: 203..206, 588 source_range: 122..125,
586 delete: 203..206, 589 delete: 122..125,
587 insert: "something_deprecated()$0", 590 insert: "something_deprecated()$0",
588 kind: Function, 591 kind: Function,
589 lookup: "something_deprecated", 592 lookup: "something_deprecated",
@@ -592,8 +595,8 @@ mod tests {
592 }, 595 },
593 CompletionItem { 596 CompletionItem {
594 label: "something_else_deprecated()", 597 label: "something_else_deprecated()",
595 source_range: 203..206, 598 source_range: 122..125,
596 delete: 203..206, 599 delete: 122..125,
597 insert: "something_else_deprecated()$0", 600 insert: "something_else_deprecated()$0",
598 kind: Function, 601 kind: Function,
599 lookup: "something_else_deprecated", 602 lookup: "something_else_deprecated",
@@ -619,8 +622,8 @@ mod tests {
619 [ 622 [
620 CompletionItem { 623 CompletionItem {
621 label: "main()", 624 label: "main()",
622 source_range: 61..64, 625 source_range: 28..31,
623 delete: 61..64, 626 delete: 28..31,
624 insert: "main()$0", 627 insert: "main()$0",
625 kind: Function, 628 kind: Function,
626 lookup: "main", 629 lookup: "main",
@@ -628,8 +631,8 @@ mod tests {
628 }, 631 },
629 CompletionItem { 632 CompletionItem {
630 label: "no_args()", 633 label: "no_args()",
631 source_range: 61..64, 634 source_range: 28..31,
632 delete: 61..64, 635 delete: 28..31,
633 insert: "no_args()$0", 636 insert: "no_args()$0",
634 kind: Function, 637 kind: Function,
635 lookup: "no_args", 638 lookup: "no_args",
@@ -649,8 +652,8 @@ mod tests {
649 [ 652 [
650 CompletionItem { 653 CompletionItem {
651 label: "main()", 654 label: "main()",
652 source_range: 80..85, 655 source_range: 47..52,
653 delete: 80..85, 656 delete: 47..52,
654 insert: "main()$0", 657 insert: "main()$0",
655 kind: Function, 658 kind: Function,
656 lookup: "main", 659 lookup: "main",
@@ -658,8 +661,8 @@ mod tests {
658 }, 661 },
659 CompletionItem { 662 CompletionItem {
660 label: "with_args(…)", 663 label: "with_args(…)",
661 source_range: 80..85, 664 source_range: 47..52,
662 delete: 80..85, 665 delete: 47..52,
663 insert: "with_args(${1:x}, ${2:y})$0", 666 insert: "with_args(${1:x}, ${2:y})$0",
664 kind: Function, 667 kind: Function,
665 lookup: "with_args", 668 lookup: "with_args",
@@ -680,8 +683,8 @@ mod tests {
680 [ 683 [
681 CompletionItem { 684 CompletionItem {
682 label: "main()", 685 label: "main()",
683 source_range: 110..115, 686 source_range: 77..82,
684 delete: 110..115, 687 delete: 77..82,
685 insert: "main()$0", 688 insert: "main()$0",
686 kind: Function, 689 kind: Function,
687 lookup: "main", 690 lookup: "main",
@@ -689,8 +692,8 @@ mod tests {
689 }, 692 },
690 CompletionItem { 693 CompletionItem {
691 label: "with_ignored_args(…)", 694 label: "with_ignored_args(…)",
692 source_range: 110..115, 695 source_range: 77..82,
693 delete: 110..115, 696 delete: 77..82,
694 insert: "with_ignored_args(${1:foo}, ${2:bar}, ${3:ho_ge_})$0", 697 insert: "with_ignored_args(${1:foo}, ${2:bar}, ${3:ho_ge_})$0",
695 kind: Function, 698 kind: Function,
696 lookup: "with_ignored_args", 699 lookup: "with_ignored_args",
@@ -716,8 +719,8 @@ mod tests {
716 [ 719 [
717 CompletionItem { 720 CompletionItem {
718 label: "foo()", 721 label: "foo()",
719 source_range: 163..164, 722 source_range: 66..67,
720 delete: 163..164, 723 delete: 66..67,
721 insert: "foo()$0", 724 insert: "foo()$0",
722 kind: Method, 725 kind: Method,
723 lookup: "foo", 726 lookup: "foo",
@@ -742,8 +745,8 @@ mod tests {
742 [ 745 [
743 CompletionItem { 746 CompletionItem {
744 label: "foo_ignored_args(…)", 747 label: "foo_ignored_args(…)",
745 source_range: 194..195, 748 source_range: 97..98,
746 delete: 194..195, 749 delete: 97..98,
747 insert: "foo_ignored_args(${1:a}, ${2:b})$0", 750 insert: "foo_ignored_args(${1:a}, ${2:b})$0",
748 kind: Method, 751 kind: Method,
749 lookup: "foo_ignored_args", 752 lookup: "foo_ignored_args",
@@ -771,23 +774,23 @@ mod tests {
771 [ 774 [
772 CompletionItem { 775 CompletionItem {
773 label: "None", 776 label: "None",
774 source_range: 144..147, 777 source_range: 79..82,
775 delete: 144..147, 778 delete: 79..82,
776 insert: "None", 779 insert: "None",
777 kind: EnumVariant, 780 kind: EnumVariant,
778 detail: "()", 781 detail: "()",
779 }, 782 },
780 CompletionItem { 783 CompletionItem {
781 label: "Option", 784 label: "Option",
782 source_range: 144..147, 785 source_range: 79..82,
783 delete: 144..147, 786 delete: 79..82,
784 insert: "Option", 787 insert: "Option",
785 kind: Enum, 788 kind: Enum,
786 }, 789 },
787 CompletionItem { 790 CompletionItem {
788 label: "Some(…)", 791 label: "Some(…)",
789 source_range: 144..147, 792 source_range: 79..82,
790 delete: 144..147, 793 delete: 79..82,
791 insert: "Some($0)", 794 insert: "Some($0)",
792 kind: EnumVariant, 795 kind: EnumVariant,
793 lookup: "Some", 796 lookup: "Some",
@@ -796,8 +799,8 @@ mod tests {
796 }, 799 },
797 CompletionItem { 800 CompletionItem {
798 label: "main()", 801 label: "main()",
799 source_range: 144..147, 802 source_range: 79..82,
800 delete: 144..147, 803 delete: 79..82,
801 insert: "main()$0", 804 insert: "main()$0",
802 kind: Function, 805 kind: Function,
803 lookup: "main", 806 lookup: "main",
@@ -822,23 +825,23 @@ mod tests {
822 [ 825 [
823 CompletionItem { 826 CompletionItem {
824 label: "None", 827 label: "None",
825 source_range: 185..188, 828 source_range: 104..107,
826 delete: 185..188, 829 delete: 104..107,
827 insert: "None", 830 insert: "None",
828 kind: EnumVariant, 831 kind: EnumVariant,
829 detail: "()", 832 detail: "()",
830 }, 833 },
831 CompletionItem { 834 CompletionItem {
832 label: "Option", 835 label: "Option",
833 source_range: 185..188, 836 source_range: 104..107,
834 delete: 185..188, 837 delete: 104..107,
835 insert: "Option", 838 insert: "Option",
836 kind: Enum, 839 kind: Enum,
837 }, 840 },
838 CompletionItem { 841 CompletionItem {
839 label: "Some(…)", 842 label: "Some(…)",
840 source_range: 185..188, 843 source_range: 104..107,
841 delete: 185..188, 844 delete: 104..107,
842 insert: "Some($0)", 845 insert: "Some($0)",
843 kind: EnumVariant, 846 kind: EnumVariant,
844 lookup: "Some", 847 lookup: "Some",
@@ -872,23 +875,23 @@ mod tests {
872 [ 875 [
873 CompletionItem { 876 CompletionItem {
874 label: "ManualVtable", 877 label: "ManualVtable",
875 source_range: 295..299, 878 source_range: 182..186,
876 delete: 295..299, 879 delete: 182..186,
877 insert: "ManualVtable", 880 insert: "ManualVtable",
878 kind: Struct, 881 kind: Struct,
879 }, 882 },
880 CompletionItem { 883 CompletionItem {
881 label: "main", 884 label: "main",
882 source_range: 295..299, 885 source_range: 182..186,
883 delete: 295..299, 886 delete: 182..186,
884 insert: "main", 887 insert: "main",
885 kind: Function, 888 kind: Function,
886 detail: "fn main() -> ManualVtable", 889 detail: "fn main() -> ManualVtable",
887 }, 890 },
888 CompletionItem { 891 CompletionItem {
889 label: "somefn", 892 label: "somefn",
890 source_range: 295..299, 893 source_range: 182..186,
891 delete: 295..299, 894 delete: 182..186,
892 insert: "somefn", 895 insert: "somefn",
893 kind: Function, 896 kind: Function,
894 detail: "fn somefn(with: u8, a: u8, lot: u8, of: u8, args: u8)", 897 detail: "fn somefn(with: u8, a: u8, lot: u8, of: u8, args: u8)",
@@ -916,8 +919,8 @@ mod tests {
916 [ 919 [
917 CompletionItem { 920 CompletionItem {
918 label: "foo(…)", 921 label: "foo(…)",
919 source_range: 171..172, 922 source_range: 74..75,
920 delete: 171..172, 923 delete: 74..75,
921 insert: "foo(${1:x})$0", 924 insert: "foo(${1:x})$0",
922 kind: Method, 925 kind: Method,
923 lookup: "foo", 926 lookup: "foo",
@@ -951,8 +954,8 @@ mod tests {
951 [ 954 [
952 CompletionItem { 955 CompletionItem {
953 label: "foo(…)", 956 label: "foo(…)",
954 source_range: 171..172, 957 source_range: 74..75,
955 delete: 171..172, 958 delete: 74..75,
956 insert: "foo($0)", 959 insert: "foo($0)",
957 kind: Method, 960 kind: Method,
958 lookup: "foo", 961 lookup: "foo",
@@ -1062,16 +1065,16 @@ mod tests {
1062 [ 1065 [
1063 CompletionItem { 1066 CompletionItem {
1064 label: "Vec<…>", 1067 label: "Vec<…>",
1065 source_range: 61..63, 1068 source_range: 28..30,
1066 delete: 61..63, 1069 delete: 28..30,
1067 insert: "Vec<$0>", 1070 insert: "Vec<$0>",
1068 kind: Struct, 1071 kind: Struct,
1069 lookup: "Vec", 1072 lookup: "Vec",
1070 }, 1073 },
1071 CompletionItem { 1074 CompletionItem {
1072 label: "foo(…)", 1075 label: "foo(…)",
1073 source_range: 61..63, 1076 source_range: 28..30,
1074 delete: 61..63, 1077 delete: 28..30,
1075 insert: "foo(${1:xs})$0", 1078 insert: "foo(${1:xs})$0",
1076 kind: Function, 1079 kind: Function,
1077 lookup: "foo", 1080 lookup: "foo",
@@ -1092,16 +1095,16 @@ mod tests {
1092 [ 1095 [
1093 CompletionItem { 1096 CompletionItem {
1094 label: "Vec<…>", 1097 label: "Vec<…>",
1095 source_range: 64..66, 1098 source_range: 31..33,
1096 delete: 64..66, 1099 delete: 31..33,
1097 insert: "Vec<$0>", 1100 insert: "Vec<$0>",
1098 kind: TypeAlias, 1101 kind: TypeAlias,
1099 lookup: "Vec", 1102 lookup: "Vec",
1100 }, 1103 },
1101 CompletionItem { 1104 CompletionItem {
1102 label: "foo(…)", 1105 label: "foo(…)",
1103 source_range: 64..66, 1106 source_range: 31..33,
1104 delete: 64..66, 1107 delete: 31..33,
1105 insert: "foo(${1:xs})$0", 1108 insert: "foo(${1:xs})$0",
1106 kind: Function, 1109 kind: Function,
1107 lookup: "foo", 1110 lookup: "foo",
@@ -1122,15 +1125,15 @@ mod tests {
1122 [ 1125 [
1123 CompletionItem { 1126 CompletionItem {
1124 label: "Vec", 1127 label: "Vec",
1125 source_range: 68..70, 1128 source_range: 35..37,
1126 delete: 68..70, 1129 delete: 35..37,
1127 insert: "Vec", 1130 insert: "Vec",
1128 kind: Struct, 1131 kind: Struct,
1129 }, 1132 },
1130 CompletionItem { 1133 CompletionItem {
1131 label: "foo(…)", 1134 label: "foo(…)",
1132 source_range: 68..70, 1135 source_range: 35..37,
1133 delete: 68..70, 1136 delete: 35..37,
1134 insert: "foo(${1:xs})$0", 1137 insert: "foo(${1:xs})$0",
1135 kind: Function, 1138 kind: Function,
1136 lookup: "foo", 1139 lookup: "foo",
@@ -1151,15 +1154,15 @@ mod tests {
1151 [ 1154 [
1152 CompletionItem { 1155 CompletionItem {
1153 label: "Vec", 1156 label: "Vec",
1154 source_range: 61..63, 1157 source_range: 28..30,
1155 delete: 61..63, 1158 delete: 28..30,
1156 insert: "Vec", 1159 insert: "Vec",
1157 kind: Struct, 1160 kind: Struct,
1158 }, 1161 },
1159 CompletionItem { 1162 CompletionItem {
1160 label: "foo(…)", 1163 label: "foo(…)",
1161 source_range: 61..63, 1164 source_range: 28..30,
1162 delete: 61..63, 1165 delete: 28..30,
1163 insert: "foo(${1:xs})$0", 1166 insert: "foo(${1:xs})$0",
1164 kind: Function, 1167 kind: Function,
1165 lookup: "foo", 1168 lookup: "foo",
@@ -1254,24 +1257,24 @@ mod tests {
1254 [ 1257 [
1255 CompletionItem { 1258 CompletionItem {
1256 label: "another_field", 1259 label: "another_field",
1257 source_range: 201..201, 1260 source_range: 136..136,
1258 delete: 201..201, 1261 delete: 136..136,
1259 insert: "another_field", 1262 insert: "another_field",
1260 kind: Field, 1263 kind: Field,
1261 detail: "i64", 1264 detail: "i64",
1262 }, 1265 },
1263 CompletionItem { 1266 CompletionItem {
1264 label: "my_string", 1267 label: "my_string",
1265 source_range: 201..201, 1268 source_range: 136..136,
1266 delete: 201..201, 1269 delete: 136..136,
1267 insert: "my_string", 1270 insert: "my_string",
1268 kind: Field, 1271 kind: Field,
1269 detail: "{unknown}", 1272 detail: "{unknown}",
1270 }, 1273 },
1271 CompletionItem { 1274 CompletionItem {
1272 label: "the_field", 1275 label: "the_field",
1273 source_range: 201..201, 1276 source_range: 136..136,
1274 delete: 201..201, 1277 delete: 136..136,
1275 insert: "the_field", 1278 insert: "the_field",
1276 kind: Field, 1279 kind: Field,
1277 detail: "u32", 1280 detail: "u32",
@@ -1298,16 +1301,16 @@ mod tests {
1298 [ 1301 [
1299 CompletionItem { 1302 CompletionItem {
1300 label: "another_field", 1303 label: "another_field",
1301 source_range: 208..208, 1304 source_range: 143..143,
1302 delete: 208..208, 1305 delete: 143..143,
1303 insert: "another_field", 1306 insert: "another_field",
1304 kind: Field, 1307 kind: Field,
1305 detail: "i64", 1308 detail: "i64",
1306 }, 1309 },
1307 CompletionItem { 1310 CompletionItem {
1308 label: "another_good_type", 1311 label: "another_good_type",
1309 source_range: 208..208, 1312 source_range: 143..143,
1310 delete: 208..208, 1313 delete: 143..143,
1311 insert: "another_good_type", 1314 insert: "another_good_type",
1312 kind: Field, 1315 kind: Field,
1313 detail: "u32", 1316 detail: "u32",
@@ -1315,8 +1318,8 @@ mod tests {
1315 }, 1318 },
1316 CompletionItem { 1319 CompletionItem {
1317 label: "the_field", 1320 label: "the_field",
1318 source_range: 208..208, 1321 source_range: 143..143,
1319 delete: 208..208, 1322 delete: 143..143,
1320 insert: "the_field", 1323 insert: "the_field",
1321 kind: Field, 1324 kind: Field,
1322 detail: "u32", 1325 detail: "u32",
@@ -1346,16 +1349,16 @@ mod tests {
1346 [ 1349 [
1347 CompletionItem { 1350 CompletionItem {
1348 label: "another_field", 1351 label: "another_field",
1349 source_range: 270..270, 1352 source_range: 189..189,
1350 delete: 270..270, 1353 delete: 189..189,
1351 insert: "another_field", 1354 insert: "another_field",
1352 kind: Field, 1355 kind: Field,
1353 detail: "i64", 1356 detail: "i64",
1354 }, 1357 },
1355 CompletionItem { 1358 CompletionItem {
1356 label: "another_good_type", 1359 label: "another_good_type",
1357 source_range: 270..270, 1360 source_range: 189..189,
1358 delete: 270..270, 1361 delete: 189..189,
1359 insert: "another_good_type", 1362 insert: "another_good_type",
1360 kind: Field, 1363 kind: Field,
1361 detail: "u32", 1364 detail: "u32",
@@ -1363,8 +1366,8 @@ mod tests {
1363 }, 1366 },
1364 CompletionItem { 1367 CompletionItem {
1365 label: "the_field", 1368 label: "the_field",
1366 source_range: 270..270, 1369 source_range: 189..189,
1367 delete: 270..270, 1370 delete: 189..189,
1368 insert: "the_field", 1371 insert: "the_field",
1369 kind: Field, 1372 kind: Field,
1370 detail: "u32", 1373 detail: "u32",
@@ -1394,8 +1397,8 @@ mod tests {
1394 [ 1397 [
1395 CompletionItem { 1398 CompletionItem {
1396 label: "another_field", 1399 label: "another_field",
1397 source_range: 336..336, 1400 source_range: 239..239,
1398 delete: 336..336, 1401 delete: 239..239,
1399 insert: "another_field", 1402 insert: "another_field",
1400 kind: Field, 1403 kind: Field,
1401 detail: "i64", 1404 detail: "i64",
@@ -1403,16 +1406,16 @@ mod tests {
1403 }, 1406 },
1404 CompletionItem { 1407 CompletionItem {
1405 label: "another_good_type", 1408 label: "another_good_type",
1406 source_range: 336..336, 1409 source_range: 239..239,
1407 delete: 336..336, 1410 delete: 239..239,
1408 insert: "another_good_type", 1411 insert: "another_good_type",
1409 kind: Field, 1412 kind: Field,
1410 detail: "u32", 1413 detail: "u32",
1411 }, 1414 },
1412 CompletionItem { 1415 CompletionItem {
1413 label: "the_field", 1416 label: "the_field",
1414 source_range: 336..336, 1417 source_range: 239..239,
1415 delete: 336..336, 1418 delete: 239..239,
1416 insert: "the_field", 1419 insert: "the_field",
1417 kind: Field, 1420 kind: Field,
1418 detail: "u32", 1421 detail: "u32",
@@ -1441,16 +1444,16 @@ mod tests {
1441 [ 1444 [
1442 CompletionItem { 1445 CompletionItem {
1443 label: "another_field", 1446 label: "another_field",
1444 source_range: 328..328, 1447 source_range: 231..231,
1445 delete: 328..328, 1448 delete: 231..231,
1446 insert: "another_field", 1449 insert: "another_field",
1447 kind: Field, 1450 kind: Field,
1448 detail: "i64", 1451 detail: "i64",
1449 }, 1452 },
1450 CompletionItem { 1453 CompletionItem {
1451 label: "another_good_type", 1454 label: "another_good_type",
1452 source_range: 328..328, 1455 source_range: 231..231,
1453 delete: 328..328, 1456 delete: 231..231,
1454 insert: "another_good_type", 1457 insert: "another_good_type",
1455 kind: Field, 1458 kind: Field,
1456 detail: "u32", 1459 detail: "u32",
@@ -1458,8 +1461,8 @@ mod tests {
1458 }, 1461 },
1459 CompletionItem { 1462 CompletionItem {
1460 label: "the_field", 1463 label: "the_field",
1461 source_range: 328..328, 1464 source_range: 231..231,
1462 delete: 328..328, 1465 delete: 231..231,
1463 insert: "the_field", 1466 insert: "the_field",
1464 kind: Field, 1467 kind: Field,
1465 detail: "u32", 1468 detail: "u32",
@@ -1485,15 +1488,15 @@ mod tests {
1485 [ 1488 [
1486 CompletionItem { 1489 CompletionItem {
1487 label: "WorldSnapshot", 1490 label: "WorldSnapshot",
1488 source_range: 132..133, 1491 source_range: 71..72,
1489 delete: 132..133, 1492 delete: 71..72,
1490 insert: "WorldSnapshot", 1493 insert: "WorldSnapshot",
1491 kind: Struct, 1494 kind: Struct,
1492 }, 1495 },
1493 CompletionItem { 1496 CompletionItem {
1494 label: "go(…)", 1497 label: "go(…)",
1495 source_range: 132..133, 1498 source_range: 71..72,
1496 delete: 132..133, 1499 delete: 71..72,
1497 insert: "go(${1:world})$0", 1500 insert: "go(${1:world})$0",
1498 kind: Function, 1501 kind: Function,
1499 lookup: "go", 1502 lookup: "go",
@@ -1502,8 +1505,8 @@ mod tests {
1502 }, 1505 },
1503 CompletionItem { 1506 CompletionItem {
1504 label: "world", 1507 label: "world",
1505 source_range: 132..133, 1508 source_range: 71..72,
1506 delete: 132..133, 1509 delete: 71..72,
1507 insert: "world", 1510 insert: "world",
1508 kind: Binding, 1511 kind: Binding,
1509 detail: "&WorldSnapshot", 1512 detail: "&WorldSnapshot",