@@ -680,15 +680,10 @@ baz
680680#[ test]
681681fn suggest_multi_positional ( ) {
682682 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" ] ) )
688684 . arg (
689685 clap:: Arg :: new ( "positional-2" )
690686 . value_parser ( [ "pos_2_a" , "pos_2_b" , "pos_2_c" ] )
691- . index ( 2 )
692687 . num_args ( 3 ) ,
693688 )
694689 . arg (
@@ -699,7 +694,7 @@ fn suggest_multi_positional() {
699694 ) ;
700695
701696 assert_data_eq ! (
702- complete!( cmd, "pos_1 pos_a [TAB]" ) ,
697+ complete!( cmd, "pos_1_a pos_2_a [TAB]" ) ,
703698 snapbox:: str ![ [ r#"
704699pos_2_a
705700pos_2_b
@@ -708,7 +703,7 @@ pos_2_c
708703 ) ;
709704
710705 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]" ) ,
712707 snapbox:: str ![ [ r#"
713708pos_2_a
714709pos_2_b
@@ -717,7 +712,7 @@ pos_2_c
717712 ) ;
718713
719714 assert_data_eq ! (
720- complete!( cmd, "--format json pos_1 [TAB]" ) ,
715+ complete!( cmd, "--format json pos_1_a [TAB]" ) ,
721716 snapbox:: str ![ [ r#"
722717pos_2_a
723718pos_2_b
@@ -728,7 +723,7 @@ pos_2_c
728723 ) ;
729724
730725 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]" ) ,
732727 snapbox:: str ![ [ r#"
733728pos_2_a
734729pos_2_b
@@ -737,15 +732,15 @@ pos_2_c
737732 ) ;
738733
739734 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]" ) ,
741736 snapbox:: str ![ [ r#"
742737--format
743738--help Print help
744739"# ] ]
745740 ) ;
746741
747742 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]" ) ,
749744 snapbox:: str ![ [ r#"
750745pos_2_a
751746pos_2_b
@@ -754,7 +749,7 @@ pos_2_c
754749 ) ;
755750
756751 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]" ) ,
758753 snapbox:: str ![ [ r#"
759754pos_2_a
760755pos_2_b
@@ -763,7 +758,10 @@ pos_2_c
763758 ) ;
764759
765760 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+ ) ,
767765 snapbox:: str ![ ]
768766 ) ;
769767}
@@ -772,9 +770,8 @@ pos_2_c
772770fn suggest_multi_positional_unbounded ( ) {
773771 let mut cmd = Command :: new ( "dynamic" )
774772 . 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" ] )
778775 . num_args ( 2 ..) ,
779776 )
780777 . arg (
@@ -785,17 +782,16 @@ fn suggest_multi_positional_unbounded() {
785782 ) ;
786783
787784 assert_data_eq ! (
788- complete!( cmd, "pos_1 [TAB]" ) ,
785+ complete!( cmd, "pos_1_a [TAB]" ) ,
789786 snapbox:: str ![ [ r#"
790- pos_1
791- pos_2
787+ pos_1_a
788+ pos_1_b
789+ pos_1_c
792790"# ] ]
793791 ) ;
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 ![ "" ] ) ;
797793 assert_data_eq ! (
798- complete!( cmd, "pos_1 --format [TAB]" ) ,
794+ complete!( cmd, "pos_1_a --format [TAB]" ) ,
799795 snapbox:: str ![ [ r#"
800796json
801797yaml
@@ -804,27 +800,48 @@ toml
804800 ) ;
805801
806802 assert_data_eq ! (
807- complete!( cmd, "pos_1 --format json [TAB]" ) ,
803+ complete!( cmd, "pos_1_a --format json [TAB]" ) ,
808804 snapbox:: str ![ [ r#"
809- pos_1
810- pos_2
805+ pos_1_a
806+ pos_1_b
807+ pos_1_c
811808--format
812809--help Print help
813810"# ] ]
814811 ) ;
815812
816813 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]" ) ,
818825 snapbox:: str ![ [ r#"
819826--format
820827--help Print help
821828"# ] ]
822829 ) ;
823830 assert_data_eq ! (
824- complete!( cmd, "pos_1 pos_2 --format json [TAB]" ) ,
831+ complete!( cmd, "pos_1_a pos_1_b --format [TAB]" ) ,
825832 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
828845--format
829846--help Print help
830847"# ] ]
@@ -847,7 +864,6 @@ fn suggest_delimiter_values() {
847864 )
848865 . arg (
849866 clap:: Arg :: new ( "pos" )
850- . index ( 1 )
851867 . value_parser ( [ "a_pos" , "b_pos" , "c_pos" ] )
852868 . value_delimiter ( ',' ) ,
853869 ) ;
@@ -1046,14 +1062,9 @@ fn suggest_positional_long_allow_hyphen() {
10461062 . arg (
10471063 clap:: Arg :: new ( "positional_a" )
10481064 . value_parser ( [ "--pos_a" ] )
1049- . index ( 1 )
10501065 . allow_hyphen_values ( true ) ,
10511066 )
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" ] ) ) ;
10571068
10581069 assert_data_eq ! (
10591070 complete!( cmd, "--format --json --pos[TAB]" ) ,
@@ -1104,14 +1115,9 @@ fn suggest_positional_short_allow_hyphen() {
11041115 . arg (
11051116 clap:: Arg :: new ( "positional_a" )
11061117 . value_parser ( [ "-a" ] )
1107- . index ( 1 )
11081118 . allow_hyphen_values ( true ) ,
11091119 )
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" ] ) ) ;
11151121
11161122 assert_data_eq ! (
11171123 complete!( cmd, "--format --json -a [TAB]" ) ,
0 commit comments