Derive doc clap ordering for multiple Clap

Fix #2527
This commit is contained in:
Ivan Tham 2021-06-10 21:56:38 +08:00 committed by Pavan Kumar Sunkara
parent 69d75949df
commit f484e2da11
2 changed files with 45 additions and 1 deletions

View file

@ -340,8 +340,8 @@ pub fn gen_augment(
let app_methods = parent_attribute.top_level_methods();
let version = parent_attribute.version();
quote! {{
let #app_var = #app_var#app_methods;
#( #args )*
let #app_var = #app_var#app_methods;
#subcmd
#app_var#version
}}

View file

@ -12,7 +12,10 @@
// commit#ea76fa1b1b273e65e3b0b1046643715b49bec51f which is licensed under the
// MIT/Apache 2.0 license.
mod utils;
use clap::Clap;
use utils::get_help;
#[test]
fn flatten() {
@ -168,3 +171,44 @@ fn flatten_with_doc_comment() {
opts: DaemonOpts,
}
}
#[test]
fn docstrings_ordering_with_multiple_clap() {
/// This is the docstring for Flattened
#[derive(Clap)]
struct Flattened {
#[clap(long)]
foo: bool,
}
/// This is the docstring for Command
#[derive(Clap)]
struct Command {
#[clap(flatten)]
flattened: Flattened,
}
let short_help = get_help::<Command>();
assert!(short_help.contains("This is the docstring for Command"));
}
#[test]
fn docstrings_ordering_with_multiple_clap_partial() {
/// This is the docstring for Flattened
#[derive(Clap)]
struct Flattened {
#[clap(long)]
foo: bool,
}
#[derive(Clap)]
struct Command {
#[clap(flatten)]
flattened: Flattened,
}
let short_help = get_help::<Command>();
assert!(short_help.contains("This is the docstring for Flattened"));
}