Improve REPL help message
Show help strings for children of a directive
This commit is contained in:
parent
3344f6827d
commit
d6019e6f9a
@ -49,8 +49,8 @@ impl CommandTree {
|
|||||||
}
|
}
|
||||||
pub fn get_help(&self) -> &str {
|
pub fn get_help(&self) -> &str {
|
||||||
match self {
|
match self {
|
||||||
CommandTree::Terminal { help_msg, ..} => help_msg.as_ref().map(|s| s.as_str()).unwrap_or(""),
|
CommandTree::Terminal { help_msg, ..} => help_msg.as_ref().map(|s| s.as_str()).unwrap_or("<no help text provided>"),
|
||||||
CommandTree::NonTerminal { help_msg, .. } => help_msg.as_ref().map(|s| s.as_str()).unwrap_or(""),
|
CommandTree::NonTerminal { help_msg, .. } => help_msg.as_ref().map(|s| s.as_str()).unwrap_or("<no help text provided>"),
|
||||||
CommandTree::Top(_) => ""
|
CommandTree::Top(_) => ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,12 @@ pub fn help(repl: &mut Repl, arguments: &[&str]) -> InterpreterDirectiveOutput {
|
|||||||
None => format!("Directive `{}` not found", commands.last().unwrap()),
|
None => format!("Directive `{}` not found", commands.last().unwrap()),
|
||||||
Some(dir) => {
|
Some(dir) => {
|
||||||
let mut buf = String::new();
|
let mut buf = String::new();
|
||||||
writeln!(buf, "`{}` - {}", dir.get_cmd(), dir.get_help()).unwrap();
|
let cmd = dir.get_cmd();
|
||||||
|
let children = dir.get_children();
|
||||||
|
writeln!(buf, "`{}` - {}", cmd, dir.get_help()).unwrap();
|
||||||
|
for sub in children.iter() {
|
||||||
|
writeln!(buf, "\t`{} {}` - {}", cmd, sub.get_cmd(), sub.get_help()).unwrap();
|
||||||
|
}
|
||||||
buf
|
buf
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user