@@ -188,7 +188,10 @@ pub trait CommandExt: Sized {
188
188
. _arg ( flag ( "examples" , examples) . help_heading ( heading:: TARGET_SELECTION ) )
189
189
. _arg (
190
190
optional_multi_opt ( "example" , "NAME" , example)
191
- . help_heading ( heading:: TARGET_SELECTION ) ,
191
+ . help_heading ( heading:: TARGET_SELECTION )
192
+ . add ( clap_complete:: ArgValueCandidates :: new (
193
+ get_example_candidates,
194
+ ) ) ,
192
195
)
193
196
}
194
197
@@ -206,7 +209,11 @@ pub trait CommandExt: Sized {
206
209
)
207
210
. _arg ( flag ( "bins" , bins) . help_heading ( heading:: TARGET_SELECTION ) )
208
211
. _arg (
209
- optional_multi_opt ( "example" , "NAME" , example) . help_heading ( heading:: TARGET_SELECTION ) ,
212
+ optional_multi_opt ( "example" , "NAME" , example)
213
+ . help_heading ( heading:: TARGET_SELECTION )
214
+ . add ( clap_complete:: ArgValueCandidates :: new (
215
+ get_example_candidates,
216
+ ) ) ,
210
217
)
211
218
. _arg ( flag ( "examples" , examples) . help_heading ( heading:: TARGET_SELECTION ) )
212
219
}
@@ -218,7 +225,11 @@ pub trait CommandExt: Sized {
218
225
. add ( clap_complete:: ArgValueCandidates :: new ( get_bin_candidates) ) ,
219
226
)
220
227
. _arg (
221
- optional_multi_opt ( "example" , "NAME" , example) . help_heading ( heading:: TARGET_SELECTION ) ,
228
+ optional_multi_opt ( "example" , "NAME" , example)
229
+ . help_heading ( heading:: TARGET_SELECTION )
230
+ . add ( clap_complete:: ArgValueCandidates :: new (
231
+ get_example_candidates,
232
+ ) ) ,
222
233
)
223
234
}
224
235
@@ -1048,6 +1059,17 @@ pub fn lockfile_path(
1048
1059
return Ok ( Some ( path) ) ;
1049
1060
}
1050
1061
1062
+ fn get_example_candidates ( ) -> Vec < clap_complete:: CompletionCandidate > {
1063
+ get_targets_from_metadata ( )
1064
+ . unwrap_or_default ( )
1065
+ . into_iter ( )
1066
+ . filter_map ( |target| match target. kind ( ) {
1067
+ TargetKind :: ExampleBin => Some ( clap_complete:: CompletionCandidate :: new ( target. name ( ) ) ) ,
1068
+ _ => None ,
1069
+ } )
1070
+ . collect :: < Vec < _ > > ( )
1071
+ }
1072
+
1051
1073
fn get_bench_candidates ( ) -> Vec < clap_complete:: CompletionCandidate > {
1052
1074
get_targets_from_metadata ( )
1053
1075
. unwrap_or_default ( )
0 commit comments