mirror of
https://github.com/storytold/deckcraft.git
synced 2026-10-24 10:37:03 -06:00
describe keeps a remark with its option and allows a bare call
animation.remove's remark belongs to its `ids` option, so describe shows it there instead of as a note on the whole command. A command with an all-optional set of parameters is suggested as a bare id. [claude-opus-5-5] on behalf of hoblin
This commit is contained in:
@@ -252,7 +252,8 @@ fn describe(id: Option<&str>) -> Result<(), String> {
|
||||
if !answer.trim().is_empty() {
|
||||
outln!("Answers with {}.", answer.trim());
|
||||
}
|
||||
let call = if params.iter().all(|p| p.optional) { c.id.to_string() } else { format!("'{}={{…}}'", c.id) };
|
||||
let bare = params.is_empty() || params.iter().any(|p| params.iter().filter(|q| q.object == p.object).all(|q| q.optional));
|
||||
let call = if bare { c.id.to_string() } else { format!("'{}={{…}}'", c.id) };
|
||||
outln!("\nRun it with: deckcraft-cli run --cmd {call}");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -115,6 +115,9 @@ Run it with: deckcraft-cli run --cmd 'format.size={…}'
|
||||
#[test]
|
||||
fn describe_shows_alternative_sets_of_parameters() {
|
||||
assert!(stdout(&cli(&["describe", "slide.go"])).contains("Parameters:\n either:\n index\n or:\n id\n"));
|
||||
let remove = stdout(&cli(&["describe", "animation.remove"]));
|
||||
assert!(remove.contains(" or:\n ids, optional (all of the shapes' animations)\n"), "{remove}");
|
||||
assert!(remove.ends_with("Run it with: deckcraft-cli run --cmd animation.remove\n") && !remove.contains("Note:"), "{remove}");
|
||||
assert!(stdout(&cli(&["describe", "shape.move"])).contains(
|
||||
" either:
|
||||
dx, optional pt (relative)
|
||||
|
||||
@@ -28,7 +28,7 @@ pub fn specs() -> Vec<CommandSpec> {
|
||||
has_selection,
|
||||
add
|
||||
),
|
||||
cmd!("animation.remove", "Remove Animation", ["Animation Pane"], None, "{index} | {ids?} (all of the shapes' animations)", has_slide, remove),
|
||||
cmd!("animation.remove", "Remove Animation", ["Animation Pane"], None, "{index} | {ids? (all of the shapes' animations)}", has_slide, remove),
|
||||
cmd!("animation.move", "Reorder Animation", ["Animations", "Timing"], None, "{index, to}", has_slide, move_anim),
|
||||
cmd!(
|
||||
"animation.timing",
|
||||
|
||||
Reference in New Issue
Block a user