Files
2026-10-17 03:29:11 -03:00

30 lines
560 B
C++

#pragma once
#include <cstddef>
#include <string>
#include <vector>
// What kind of value an argument holds (drives tab completion).
enum class ArgKind {
None,
Task,
Account,
AccountOrDash,
AccountOrStatus,
Status,
Visibility,
TaskLevel,
AccountLevel,
File,
Editor
};
struct CommandSpec {
std::string key; // e.g. "tsk add"
std::string usage; // e.g. "tsk add <name> [acc] [status]"
std::string help;
std::size_t minArgs = 0;
std::size_t maxArgs = 0;
std::vector<ArgKind> argKinds;
};