@@ -680,15 +680,10 @@ baz
680
680
#[ test]
681
681
fn suggest_multi_positional ( ) {
682
682
let mut cmd = Command :: new ( "dynamic" )
683
- . arg (
684
- clap:: Arg :: new ( "positional-1" )
685
- . value_parser ( [ "pos_1" ] )
686
- . index ( 1 ) ,
687
- )
683
+ . arg ( clap:: Arg :: new ( "positional-1" ) . value_parser ( [ "pos_1_a" , "pos_1_b" , "pos_1_c" ] ) )
688
684
. arg (
689
685
clap:: Arg :: new ( "positional-2" )
690
686
. value_parser ( [ "pos_2_a" , "pos_2_b" , "pos_2_c" ] )
691
- . index ( 2 )
692
687
. num_args ( 3 ) ,
693
688
)
694
689
. arg (
@@ -699,7 +694,7 @@ fn suggest_multi_positional() {
699
694
) ;
700
695
701
696
assert_data_eq ! (
702
- complete!( cmd, "pos_1 pos_a [TAB]" ) ,
697
+ complete!( cmd, "pos_1_a pos_2_a [TAB]" ) ,
703
698
snapbox:: str ![ [ r#"
704
699
pos_2_a
705
700
pos_2_b
@@ -708,7 +703,7 @@ pos_2_c
708
703
) ;
709
704
710
705
assert_data_eq ! (
711
- complete!( cmd, "pos_1 pos_a pos_b [TAB]" ) ,
706
+ complete!( cmd, "pos_1_a pos_2_a pos_2_b [TAB]" ) ,
712
707
snapbox:: str ![ [ r#"
713
708
pos_2_a
714
709
pos_2_b
@@ -717,7 +712,7 @@ pos_2_c
717
712
) ;
718
713
719
714
assert_data_eq ! (
720
- complete!( cmd, "--format json pos_1 [TAB]" ) ,
715
+ complete!( cmd, "--format json pos_1_a [TAB]" ) ,
721
716
snapbox:: str ![ [ r#"
722
717
pos_2_a
723
718
pos_2_b
@@ -728,7 +723,7 @@ pos_2_c
728
723
) ;
729
724
730
725
assert_data_eq ! (
731
- complete!( cmd, "--format json pos_1 pos_a [TAB]" ) ,
726
+ complete!( cmd, "--format json pos_1_a pos_2_a [TAB]" ) ,
732
727
snapbox:: str ![ [ r#"
733
728
pos_2_a
734
729
pos_2_b
@@ -737,15 +732,15 @@ pos_2_c
737
732
) ;
738
733
739
734
assert_data_eq ! (
740
- complete!( cmd, "--format json pos_1 pos_a pos_b pos_c [TAB]" ) ,
735
+ complete!( cmd, "--format json pos_1_a pos_2_a pos_2_b pos_2_c [TAB]" ) ,
741
736
snapbox:: str ![ [ r#"
742
737
--format
743
738
--help Print help
744
739
"# ] ]
745
740
) ;
746
741
747
742
assert_data_eq ! (
748
- complete!( cmd, "--format json -- pos_1 pos_a [TAB]" ) ,
743
+ complete!( cmd, "--format json -- pos_1_a pos_2_a [TAB]" ) ,
749
744
snapbox:: str ![ [ r#"
750
745
pos_2_a
751
746
pos_2_b
@@ -754,7 +749,7 @@ pos_2_c
754
749
) ;
755
750
756
751
assert_data_eq ! (
757
- complete!( cmd, "--format json -- pos_1 pos_a pos_b [TAB]" ) ,
752
+ complete!( cmd, "--format json -- pos_1_a pos_2_a pos_2_b [TAB]" ) ,
758
753
snapbox:: str ![ [ r#"
759
754
pos_2_a
760
755
pos_2_b
@@ -763,7 +758,10 @@ pos_2_c
763
758
) ;
764
759
765
760
assert_data_eq ! (
766
- complete!( cmd, "--format json -- pos_1 pos_a pos_b pos_c [TAB]" ) ,
761
+ complete!(
762
+ cmd,
763
+ "--format json -- pos_1_a pos_2_a pos_2_b pos_2_c [TAB]"
764
+ ) ,
767
765
snapbox:: str ![ ]
768
766
) ;
769
767
}
@@ -772,9 +770,8 @@ pos_2_c
772
770
fn suggest_multi_positional_unbounded ( ) {
773
771
let mut cmd = Command :: new ( "dynamic" )
774
772
. arg (
775
- clap:: Arg :: new ( "positional" )
776
- . value_parser ( [ "pos_1" , "pos_2" ] )
777
- . index ( 1 )
773
+ clap:: Arg :: new ( "positional-1" )
774
+ . value_parser ( [ "pos_1_a" , "pos_1_b" , "pos_1_c" ] )
778
775
. num_args ( 2 ..) ,
779
776
)
780
777
. arg (
@@ -785,17 +782,16 @@ fn suggest_multi_positional_unbounded() {
785
782
) ;
786
783
787
784
assert_data_eq ! (
788
- complete!( cmd, "pos_1 [TAB]" ) ,
785
+ complete!( cmd, "pos_1_a [TAB]" ) ,
789
786
snapbox:: str ![ [ r#"
790
- pos_1
791
- pos_2
787
+ pos_1_a
788
+ pos_1_b
789
+ pos_1_c
792
790
"# ] ]
793
791
) ;
794
-
795
- assert_data_eq ! ( complete!( cmd, "pos_1 --[TAB]" ) , snapbox:: str ![ "" ] ) ;
796
-
792
+ assert_data_eq ! ( complete!( cmd, "pos_1_a --[TAB]" ) , snapbox:: str ![ "" ] ) ;
797
793
assert_data_eq ! (
798
- complete!( cmd, "pos_1 --format [TAB]" ) ,
794
+ complete!( cmd, "pos_1_a --format [TAB]" ) ,
799
795
snapbox:: str ![ [ r#"
800
796
json
801
797
yaml
@@ -804,27 +800,48 @@ toml
804
800
) ;
805
801
806
802
assert_data_eq ! (
807
- complete!( cmd, "pos_1 --format json [TAB]" ) ,
803
+ complete!( cmd, "pos_1_a --format json [TAB]" ) ,
808
804
snapbox:: str ![ [ r#"
809
- pos_1
810
- pos_2
805
+ pos_1_a
806
+ pos_1_b
807
+ pos_1_c
811
808
--format
812
809
--help Print help
813
810
"# ] ]
814
811
) ;
815
812
816
813
assert_data_eq ! (
817
- complete!( cmd, "pos_1 pos_2 --[TAB]" ) ,
814
+ complete!( cmd, "pos_1_a pos_1_b [TAB]" ) ,
815
+ snapbox:: str ![ [ r#"
816
+ pos_1_a
817
+ pos_1_b
818
+ pos_1_c
819
+ --format
820
+ --help Print help
821
+ "# ] ]
822
+ ) ;
823
+ assert_data_eq ! (
824
+ complete!( cmd, "pos_1_a pos_1_b --[TAB]" ) ,
818
825
snapbox:: str ![ [ r#"
819
826
--format
820
827
--help Print help
821
828
"# ] ]
822
829
) ;
823
830
assert_data_eq ! (
824
- complete!( cmd, "pos_1 pos_2 --format json [TAB]" ) ,
831
+ complete!( cmd, "pos_1_a pos_1_b --format [TAB]" ) ,
825
832
snapbox:: str ![ [ r#"
826
- pos_1
827
- pos_2
833
+ json
834
+ yaml
835
+ toml
836
+ "# ] ]
837
+ ) ;
838
+
839
+ assert_data_eq ! (
840
+ complete!( cmd, "pos_1_a pos_1_b --format json [TAB]" ) ,
841
+ snapbox:: str ![ [ r#"
842
+ pos_1_a
843
+ pos_1_b
844
+ pos_1_c
828
845
--format
829
846
--help Print help
830
847
"# ] ]
@@ -847,7 +864,6 @@ fn suggest_delimiter_values() {
847
864
)
848
865
. arg (
849
866
clap:: Arg :: new ( "pos" )
850
- . index ( 1 )
851
867
. value_parser ( [ "a_pos" , "b_pos" , "c_pos" ] )
852
868
. value_delimiter ( ',' ) ,
853
869
) ;
@@ -1046,14 +1062,9 @@ fn suggest_positional_long_allow_hyphen() {
1046
1062
. arg (
1047
1063
clap:: Arg :: new ( "positional_a" )
1048
1064
. value_parser ( [ "--pos_a" ] )
1049
- . index ( 1 )
1050
1065
. allow_hyphen_values ( true ) ,
1051
1066
)
1052
- . arg (
1053
- clap:: Arg :: new ( "positional_b" )
1054
- . index ( 2 )
1055
- . value_parser ( [ "pos_b" ] ) ,
1056
- ) ;
1067
+ . arg ( clap:: Arg :: new ( "positional_b" ) . value_parser ( [ "pos_b" ] ) ) ;
1057
1068
1058
1069
assert_data_eq ! (
1059
1070
complete!( cmd, "--format --json --pos[TAB]" ) ,
@@ -1104,14 +1115,9 @@ fn suggest_positional_short_allow_hyphen() {
1104
1115
. arg (
1105
1116
clap:: Arg :: new ( "positional_a" )
1106
1117
. value_parser ( [ "-a" ] )
1107
- . index ( 1 )
1108
1118
. allow_hyphen_values ( true ) ,
1109
1119
)
1110
- . arg (
1111
- clap:: Arg :: new ( "positional_b" )
1112
- . index ( 2 )
1113
- . value_parser ( [ "pos_b" ] ) ,
1114
- ) ;
1120
+ . arg ( clap:: Arg :: new ( "positional_b" ) . value_parser ( [ "pos_b" ] ) ) ;
1115
1121
1116
1122
assert_data_eq ! (
1117
1123
complete!( cmd, "--format --json -a [TAB]" ) ,
0 commit comments