Commit da7aba4
committed
feat(_comp_compgen): support
The Bash builtin `compgen -P prefix ... -- "$cur"` prepends the prefix
AFTER filtering completions using `$cur`. However, we usually want to
filter completions with "$cur" starting with the prefix.
To properly handle such a situation, one first needs to check if the
current content of "$cur" is compatible. Then, one needs to modify
$cur to remove the prefix part, generate completions, and prepends the
prefix to the generated completions. This pattern is used frequently
in the codebase, so it is good to handle it within `_comp_compgen`.
This patch implements the option `-P` of `_comp_compgen`. When a
non-empty string is specified to the `-P` option, it performs the
necessary operations: the check and adjustment of $cur, the proper
filtering by the prefix string, and prepending of the prefix string.-P prefix with auto-adjusted cur
1 parent 6bd5e26 commit da7aba4
File tree
3 files changed
+118
-10
lines changed- doc
- test/t/unit
3 files changed
+118
-10
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
439 | 439 | | |
440 | 440 | | |
441 | 441 | | |
| 442 | + | |
442 | 443 | | |
443 | 444 | | |
444 | 445 | | |
| |||
449 | 450 | | |
450 | 451 | | |
451 | 452 | | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
452 | 457 | | |
453 | 458 | | |
454 | 459 | | |
| |||
478 | 483 | | |
479 | 484 | | |
480 | 485 | | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
481 | 493 | | |
482 | 494 | | |
483 | 495 | | |
| |||
562 | 574 | | |
563 | 575 | | |
564 | 576 | | |
| 577 | + | |
565 | 578 | | |
566 | 579 | | |
567 | 580 | | |
| |||
572 | 585 | | |
573 | 586 | | |
574 | 587 | | |
575 | | - | |
| 588 | + | |
576 | 589 | | |
577 | 590 | | |
578 | 591 | | |
| |||
601 | 614 | | |
602 | 615 | | |
603 | 616 | | |
| 617 | + | |
604 | 618 | | |
605 | 619 | | |
606 | 620 | | |
| |||
636 | 650 | | |
637 | 651 | | |
638 | 652 | | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
639 | 666 | | |
640 | 667 | | |
641 | 668 | | |
| |||
657 | 684 | | |
658 | 685 | | |
659 | 686 | | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
660 | 692 | | |
661 | 693 | | |
662 | 694 | | |
| |||
680 | 712 | | |
681 | 713 | | |
682 | 714 | | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
683 | 720 | | |
684 | 721 | | |
685 | 722 | | |
| |||
694 | 731 | | |
695 | 732 | | |
696 | 733 | | |
697 | | - | |
698 | | - | |
699 | 734 | | |
700 | 735 | | |
701 | 736 | | |
| |||
708 | 743 | | |
709 | 744 | | |
710 | 745 | | |
| 746 | + | |
| 747 | + | |
711 | 748 | | |
712 | 749 | | |
713 | 750 | | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
714 | 756 | | |
715 | 757 | | |
716 | 758 | | |
717 | 759 | | |
718 | 760 | | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
719 | 768 | | |
720 | 769 | | |
721 | 770 | | |
| |||
770 | 819 | | |
771 | 820 | | |
772 | 821 | | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
773 | 829 | | |
774 | 830 | | |
775 | 831 | | |
| |||
794 | 850 | | |
795 | 851 | | |
796 | 852 | | |
797 | | - | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
798 | 860 | | |
799 | 861 | | |
800 | 862 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
172 | 172 | | |
173 | 173 | | |
174 | 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 | + | |
0 commit comments