#[derive(Clone, Copy)]
pub(super) struct CommandHint {
    pub(super) insert: &'static str,
    pub(super) display: &'static str,
    pub(super) desc_key: &'static str,
    pub(super) keep_open: bool,
    pub(super) help: bool,
}

pub(super) const COMMAND_HINTS: &[CommandHint] = &[
    CommandHint {
        insert: "run",
        display: "/run",
        desc_key: "cmd_run",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "code",
        display: "/code",
        desc_key: "cmd_code",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "next",
        display: "/next",
        desc_key: "cmd_next",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "generate ",
        display: "/generate <request>",
        desc_key: "cmd_generate",
        keep_open: true,
        help: true,
    },
    CommandHint {
        insert: "back",
        display: "/back",
        desc_key: "cmd_prev",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "problems",
        display: "/problems",
        desc_key: "cmd_list",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "open ",
        display: "/open <id>",
        desc_key: "cmd_open",
        keep_open: true,
        help: true,
    },
    CommandHint {
        insert: "answer",
        display: "/answer",
        desc_key: "cmd_giveup",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "hint ",
        display: "/hint <request>",
        desc_key: "cmd_hint",
        keep_open: true,
        help: true,
    },
    CommandHint {
        insert: "profile",
        display: "/profile",
        desc_key: "cmd_profile",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "difficulty auto",
        display: "/difficulty auto",
        desc_key: "cmd_difficulty",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "difficulty easy",
        display: "/difficulty easy",
        desc_key: "cmd_difficulty",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "difficulty medium",
        display: "/difficulty medium",
        desc_key: "cmd_difficulty",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "difficulty hard",
        display: "/difficulty hard",
        desc_key: "cmd_difficulty",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "topics ",
        display: "/topics <list>",
        desc_key: "cmd_topics",
        keep_open: true,
        help: true,
    },
    CommandHint {
        insert: "avoid ",
        display: "/avoid <list>",
        desc_key: "cmd_avoid",
        keep_open: true,
        help: true,
    },
    CommandHint {
        insert: "generate-languages ",
        display: "/generate-languages <list|all>",
        desc_key: "cmd_generate_languages",
        keep_open: true,
        help: true,
    },
    CommandHint {
        insert: "generate-ui ",
        display: "/generate-ui <list|all>",
        desc_key: "cmd_generate_ui",
        keep_open: true,
        help: true,
    },
    CommandHint {
        insert: "provider codex",
        display: "/provider codex",
        desc_key: "cmd_provider",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "provider claude",
        display: "/provider claude",
        desc_key: "cmd_provider",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "model auto",
        display: "/model auto",
        desc_key: "cmd_model_auto",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "model ",
        display: "/model <name>",
        desc_key: "cmd_model_custom",
        keep_open: true,
        help: false,
    },
    CommandHint {
        insert: "note",
        display: "/note",
        desc_key: "cmd_note",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "notes",
        display: "/notes",
        desc_key: "cmd_notes",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "effort auto",
        display: "/effort auto",
        desc_key: "cmd_effort_auto",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "effort low",
        display: "/effort low",
        desc_key: "cmd_effort",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "effort medium",
        display: "/effort medium",
        desc_key: "cmd_effort",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "effort high",
        display: "/effort high",
        desc_key: "cmd_effort",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "effort xhigh",
        display: "/effort xhigh",
        desc_key: "cmd_effort",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "effort max",
        display: "/effort max",
        desc_key: "cmd_effort_max",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "language python",
        display: "/language python",
        desc_key: "cmd_lang",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "language ts",
        display: "/language ts",
        desc_key: "cmd_lang",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "language java",
        display: "/language java",
        desc_key: "cmd_lang",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "language rust",
        display: "/language rust",
        desc_key: "cmd_lang",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "ui en",
        display: "/ui en",
        desc_key: "cmd_ui",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "ui ko",
        display: "/ui ko",
        desc_key: "cmd_ui",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "ui ja",
        display: "/ui ja",
        desc_key: "cmd_ui",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "ui zh",
        display: "/ui zh",
        desc_key: "cmd_ui",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "ui es",
        display: "/ui es",
        desc_key: "cmd_ui",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "theme dark",
        display: "/theme dark",
        desc_key: "cmd_theme",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "theme light",
        display: "/theme light",
        desc_key: "cmd_theme",
        keep_open: false,
        help: false,
    },
    CommandHint {
        insert: "update",
        display: "/update",
        desc_key: "cmd_update",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "help",
        display: "/help",
        desc_key: "cmd_help",
        keep_open: false,
        help: true,
    },
    CommandHint {
        insert: "exit",
        display: "/exit",
        desc_key: "cmd_exit",
        keep_open: false,
        help: true,
    },
];
