const completionSpec: Fig.Spec = { name: "doing", description: "A CLI for a What Was I Doing system", subcommands: [ { name: "again", description: "Repeat last entry as new entry", options: [ { name: ["-X", "--noauto"], description: "Exclude auto tags and default tags", }, { name: ["--ask"], description: "Prompt for note via multi-line input", }, { name: ["--since"], description: "Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["-e", "--editor"], description: "Edit entry with vim", }, { name: ["-i", "--interactive"], description: "Select item to resume from a menu of matching entries", }, { name: ["--in"], description: "Add new entry to section", args: { name: "SECTION_NAME", description: "SECTION_NAME", }, }, { name: ["-n", "--note"], description: "Include a note", args: { name: "TEXT", description: "TEXT", }, }, { name: ["--not"], description: "Repeat items that *don't* match search/tag filters", }, { name: ["-s", "--section"], description: "Get last entry from a specific section", args: { name: "NAME", description: "NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "resume", description: "Repeat last entry as new entry", options: [ { name: ["-X", "--noauto"], description: "Exclude auto tags and default tags", }, { name: ["--ask"], description: "Prompt for note via multi-line input", }, { name: ["--since"], description: "Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["-e", "--editor"], description: "Edit entry with vim", }, { name: ["-i", "--interactive"], description: "Select item to resume from a menu of matching entries", }, { name: ["--in"], description: "Add new entry to section", args: { name: "SECTION_NAME", description: "SECTION_NAME", }, }, { name: ["-n", "--note"], description: "Include a note", args: { name: "TEXT", description: "TEXT", }, }, { name: ["--not"], description: "Repeat items that *don't* match search/tag filters", }, { name: ["-s", "--section"], description: "Get last entry from a specific section", args: { name: "NAME", description: "NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "archive", description: "Move entries between sections", options: [ { name: ["--after"], description: "Archive entries newer than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--before"], description: "Archive entries older than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["--from"], description: "Date range", args: { name: "DATE_OR_RANGE", description: "DATE_OR_RANGE", }, }, { name: ["-k", "--keep"], description: "How many items to keep", args: { name: "X", description: "X", }, }, { name: ["--label"], description: "Label moved items with @from(SECTION_NAME)", }, { name: ["--not"], description: "Archive items that *don't* match search/tag filters", }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-t", "--to"], description: "Move entries to", args: { name: "SECTION_NAME", description: "SECTION_NAME", }, }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "move", description: "Move entries between sections", options: [ { name: ["--after"], description: "Archive entries newer than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--before"], description: "Archive entries older than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["--from"], description: "Date range", args: { name: "DATE_OR_RANGE", description: "DATE_OR_RANGE", }, }, { name: ["-k", "--keep"], description: "How many items to keep", args: { name: "X", description: "X", }, }, { name: ["--label"], description: "Label moved items with @from(SECTION_NAME)", }, { name: ["--not"], description: "Archive items that *don't* match search/tag filters", }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-t", "--to"], description: "Move entries to", args: { name: "SECTION_NAME", description: "SECTION_NAME", }, }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "autotag", description: "Autotag last entry or filtered entries", options: [ { name: ["--bool"], description: "Boolean", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["-c", "--count"], description: "How many recent entries to autotag", args: { name: "COUNT", description: "COUNT", }, }, { name: ["--force"], description: "Don't ask permission to autotag all entries when count is 0", }, { name: ["-i", "--interactive"], description: "Select item(s) to tag from a menu of matching entries", }, { name: ["-s", "--section"], description: "Section", args: { name: "SECTION_NAME", description: "SECTION_NAME", }, }, { name: ["--search"], description: "Autotag entries matching search filter", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--tag"], description: "Autotag the last X entries containing TAG", args: { name: "TAG", description: "TAG", }, }, { name: ["-u", "--unfinished"], description: "Autotag last entry", }, ], }, { name: "cancel", description: "End last X entries with no time tracked", options: [ { name: ["-a", "--archive"], description: "Archive entries", }, { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["-i", "--interactive"], description: "Select item(s) to cancel from a menu of matching entries", }, { name: ["--not"], description: "Cancel items that *don't* match search/tag filters", }, { name: ["-s", "--section"], description: "Section", args: { name: "NAME", description: "NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["-u", "--unfinished"], description: "Cancel last entry", }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "changes", description: "List recent changes in Doing", options: [ { name: ["-C", "--changes"], description: "Only output changes", }, { name: ["-a", "--all"], description: "Display all versions", }, { name: ["-i", "--interactive"], description: "Open changelog in interactive viewer", }, { name: ["-l", "--lookup"], description: "Look up a specific version", args: { name: "VERSION", description: "VERSION", }, }, { name: ["--markdown"], description: "Output raw Markdown", }, { name: ["--only"], description: "Only show changes of type(s)", args: { name: "TYPES", description: "TYPES", }, }, { name: ["-p", "--prefix"], description: "Include", }, { name: ["--render"], description: "Force rendered output", }, { name: ["-s", "--search"], description: "Show changelogs matching search terms", args: { name: "arg", description: "arg", }, }, { name: ["--sort"], description: "Sort order", args: { name: "ORDER", description: "ORDER", }, }, ], }, { name: "changelog", description: "List recent changes in Doing", options: [ { name: ["-C", "--changes"], description: "Only output changes", }, { name: ["-a", "--all"], description: "Display all versions", }, { name: ["-i", "--interactive"], description: "Open changelog in interactive viewer", }, { name: ["-l", "--lookup"], description: "Look up a specific version", args: { name: "VERSION", description: "VERSION", }, }, { name: ["--markdown"], description: "Output raw Markdown", }, { name: ["--only"], description: "Only show changes of type(s)", args: { name: "TYPES", description: "TYPES", }, }, { name: ["-p", "--prefix"], description: "Include", }, { name: ["--render"], description: "Force rendered output", }, { name: ["-s", "--search"], description: "Show changelogs matching search terms", args: { name: "arg", description: "arg", }, }, { name: ["--sort"], description: "Sort order", args: { name: "ORDER", description: "ORDER", }, }, ], }, { name: "colors", description: "List available color variables for configuration templates and views", }, { name: "commands", description: "Enable and disable Doing commands", }, { name: "completion", description: "Generate shell completion scripts for doing", options: [ { name: ["-t", "--type"], description: "Deprecated", args: { name: "arg", description: "arg", }, }, ], }, { name: "config", description: "Edit the configuration file or output a value from it", options: [ { name: ["-d", "--dump"], description: "DEPRECATED", }, { name: ["-u", "--update"], description: "DEPRECATED", }, ], }, { name: "done", description: "Add a completed item with @done(date)", options: [ { name: ["-X", "--noauto"], description: "Exclude auto tags and default tags", }, { name: ["-a", "--archive"], description: "Immediately archive the entry", }, { name: ["--ask"], description: "Prompt for note via multi-line input", }, { name: ["--finished"], description: "Set finish date to specific date/time", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--since"], description: "Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--date"], description: "Include date", }, { name: ["-e", "--editor"], description: "Edit entry with vim", }, { name: ["--from"], description: "Start and end times as a date/time range `doing done --from \"1am to 8am\"`", args: { name: "TIME_RANGE", description: "TIME_RANGE", }, }, { name: ["-n", "--note"], description: "Include a note", args: { name: "TEXT", description: "TEXT", }, }, { name: ["-r", "--remove"], description: "Remove @done tag", }, { name: ["-s", "--section"], description: "Section", args: { name: "NAME", description: "NAME", }, }, { name: ["--for"], description: "Set completion date to start date plus interval", args: { name: "INTERVAL", description: "INTERVAL", }, }, { name: ["-u", "--unfinished"], description: "Finish last entry not already marked @done", }, ], }, { name: "did", description: "Add a completed item with @done(date)", options: [ { name: ["-X", "--noauto"], description: "Exclude auto tags and default tags", }, { name: ["-a", "--archive"], description: "Immediately archive the entry", }, { name: ["--ask"], description: "Prompt for note via multi-line input", }, { name: ["--finished"], description: "Set finish date to specific date/time", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--since"], description: "Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--date"], description: "Include date", }, { name: ["-e", "--editor"], description: "Edit entry with vim", }, { name: ["--from"], description: "Start and end times as a date/time range `doing done --from \"1am to 8am\"`", args: { name: "TIME_RANGE", description: "TIME_RANGE", }, }, { name: ["-n", "--note"], description: "Include a note", args: { name: "TEXT", description: "TEXT", }, }, { name: ["-r", "--remove"], description: "Remove @done tag", }, { name: ["-s", "--section"], description: "Section", args: { name: "NAME", description: "NAME", }, }, { name: ["--for"], description: "Set completion date to start date plus interval", args: { name: "INTERVAL", description: "INTERVAL", }, }, { name: ["-u", "--unfinished"], description: "Finish last entry not already marked @done", }, ], }, { name: "finish", description: "Mark last X entries as @done", options: [ { name: ["-a", "--archive"], description: "Archive entries", }, { name: ["--finished"], description: "Set finish date to specific date/time", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--auto"], description: "Auto-generate finish dates from next entry's start time", }, { name: ["--started"], description: "Backdate completed date to date string [4pm|20m|2h|yesterday noon]", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["--date"], description: "Include date", }, { name: ["--from"], description: "Start and end times as a date/time range `doing done --from \"1am to 8am\"`", args: { name: "TIME_RANGE", description: "TIME_RANGE", }, }, { name: ["-i", "--interactive"], description: "Select item(s) to finish from a menu of matching entries", }, { name: ["--not"], description: "Finish items that *don't* match search/tag filters", }, { name: ["-r", "--remove"], description: "Remove @done tag", }, { name: ["-s", "--section"], description: "Section", args: { name: "NAME", description: "NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--for"], description: "Set completion date to start date plus interval", args: { name: "INTERVAL", description: "INTERVAL", }, }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["-u", "--unfinished"], description: "Finish last entry", }, { name: ["--update"], description: "Overwrite existing @done tag with new date", }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "grep", description: "Search for entries", options: [ { name: ["--after"], description: "Search entries newer than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--before"], description: "Search entries older than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["--config_template"], description: "Output using a template from configuration", args: { name: "TEMPLATE_KEY", description: "TEMPLATE_KEY", }, }, { name: ["-d", "--delete"], description: "Delete matching entries", }, { name: ["--duration"], description: "Show elapsed time on entries without @done tag", }, { name: ["-e", "--editor"], description: "Edit matching entries with vim", }, { name: ["--from"], description: "Date range", args: { name: "DATE_OR_RANGE", description: "DATE_OR_RANGE", }, }, { name: ["-h", "--hilite"], description: "Highlight search matches in output", }, { name: ["-i", "--interactive"], description: "Display an interactive menu of results to perform further operations", }, { name: ["--not"], description: "Search items that *don't* match search/tag filters", }, { name: ["-o", "--output"], description: "Output to export format", args: { name: "FORMAT", description: "FORMAT", }, }, { name: ["--only_timed"], description: "Only show items with recorded time intervals", }, { name: ["-s", "--section"], description: "Section", args: { name: "NAME", description: "NAME", }, }, { name: ["--save"], description: "Save all current command line options as a new view", args: { name: "VIEW_NAME", description: "VIEW_NAME", }, }, { name: ["-t", "--times"], description: "Show time intervals on @done tasks", }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--tag_order"], description: "Tag sort direction", args: { name: "DIRECTION", description: "DIRECTION", }, }, { name: ["--tag_sort"], description: "Sort tags by", args: { name: "KEY", description: "KEY", }, }, { name: ["--template"], description: "Override output format with a template string containing %placeholders", args: { name: "TEMPLATE_STRING", description: "TEMPLATE_STRING", }, }, { name: ["--title"], description: "Title string to be used for output formats that require it", args: { name: "TITLE", description: "TITLE", }, }, { name: ["--totals"], description: "Show time totals at the end of output", }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact string matching", }, ], }, { name: "search", description: "Search for entries", options: [ { name: ["--after"], description: "Search entries newer than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--before"], description: "Search entries older than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["--config_template"], description: "Output using a template from configuration", args: { name: "TEMPLATE_KEY", description: "TEMPLATE_KEY", }, }, { name: ["-d", "--delete"], description: "Delete matching entries", }, { name: ["--duration"], description: "Show elapsed time on entries without @done tag", }, { name: ["-e", "--editor"], description: "Edit matching entries with vim", }, { name: ["--from"], description: "Date range", args: { name: "DATE_OR_RANGE", description: "DATE_OR_RANGE", }, }, { name: ["-h", "--hilite"], description: "Highlight search matches in output", }, { name: ["-i", "--interactive"], description: "Display an interactive menu of results to perform further operations", }, { name: ["--not"], description: "Search items that *don't* match search/tag filters", }, { name: ["-o", "--output"], description: "Output to export format", args: { name: "FORMAT", description: "FORMAT", }, }, { name: ["--only_timed"], description: "Only show items with recorded time intervals", }, { name: ["-s", "--section"], description: "Section", args: { name: "NAME", description: "NAME", }, }, { name: ["--save"], description: "Save all current command line options as a new view", args: { name: "VIEW_NAME", description: "VIEW_NAME", }, }, { name: ["-t", "--times"], description: "Show time intervals on @done tasks", }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--tag_order"], description: "Tag sort direction", args: { name: "DIRECTION", description: "DIRECTION", }, }, { name: ["--tag_sort"], description: "Sort tags by", args: { name: "KEY", description: "KEY", }, }, { name: ["--template"], description: "Override output format with a template string containing %placeholders", args: { name: "TEMPLATE_STRING", description: "TEMPLATE_STRING", }, }, { name: ["--title"], description: "Title string to be used for output formats that require it", args: { name: "TITLE", description: "TITLE", }, }, { name: ["--totals"], description: "Show time totals at the end of output", }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact string matching", }, ], }, { name: "help", description: "Shows a list of commands or help for one command", options: [ ], }, { name: "import", description: "Import entries from an external source", options: [ { name: ["--after"], description: "Import entries newer than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--autotag"], description: "Autotag entries", }, { name: ["--before"], description: "Import entries older than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["--from"], description: "Date range", args: { name: "DATE_OR_RANGE", description: "DATE_OR_RANGE", }, }, { name: ["--not"], description: "Import items that *don't* match search/tag/date filters", }, { name: ["--only_timed"], description: "Only import items with recorded time intervals", }, { name: ["--overlap"], description: "Allow entries that overlap existing times", }, { name: ["--prefix"], description: "Prefix entries with", args: { name: "PREFIX", description: "PREFIX", }, }, { name: ["-s", "--section"], description: "Target section", args: { name: "NAME", description: "NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-t", "--tag"], description: "Tag all imported entries", args: { name: "TAGS", description: "TAGS", }, }, { name: ["--type"], description: "Import type", args: { name: "TYPE", description: "TYPE", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "last", description: "Show the last entry", options: [ { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["--config_template"], description: "Output using a template from configuration", args: { name: "TEMPLATE_KEY", description: "TEMPLATE_KEY", }, }, { name: ["-d", "--delete"], description: "Delete the last entry", }, { name: ["--duration"], description: "Show elapsed time if entry is not tagged @done", }, { name: ["-e", "--editor"], description: "Edit entry with vim", }, { name: ["-h", "--hilite"], description: "Highlight search matches in output", }, { name: ["--not"], description: "Show items that *don't* match search/tag filters", }, { name: ["-o", "--output"], description: "Output to export format", args: { name: "FORMAT", description: "FORMAT", }, }, { name: ["-s", "--section"], description: "Specify a section", args: { name: "NAME", description: "NAME", }, }, { name: ["--save"], description: "Save all current command line options as a new view", args: { name: "VIEW_NAME", description: "VIEW_NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--template"], description: "Override output format with a template string containing %placeholders", args: { name: "TEMPLATE_STRING", description: "TEMPLATE_STRING", }, }, { name: ["--title"], description: "Title string to be used for output formats that require it", args: { name: "TITLE", description: "TITLE", }, }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "mark", description: "Mark last entry as flagged", options: [ { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["-c", "--count"], description: "How many recent entries to tag", args: { name: "COUNT", description: "COUNT", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["-d", "--date"], description: "Include current date/time with tag", }, { name: ["--force"], description: "Don't ask permission to flag all entries when count is 0", }, { name: ["-i", "--interactive"], description: "Select item(s) to flag from a menu of matching entries", }, { name: ["--not"], description: "Flag items that *don't* match search/tag filters", }, { name: ["-r", "--remove"], description: "Remove flag", }, { name: ["-s", "--section"], description: "Section", args: { name: "SECTION_NAME", description: "SECTION_NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["-u", "--unfinished"], description: "Flag last entry", }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "flag", description: "Mark last entry as flagged", options: [ { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["-c", "--count"], description: "How many recent entries to tag", args: { name: "COUNT", description: "COUNT", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["-d", "--date"], description: "Include current date/time with tag", }, { name: ["--force"], description: "Don't ask permission to flag all entries when count is 0", }, { name: ["-i", "--interactive"], description: "Select item(s) to flag from a menu of matching entries", }, { name: ["--not"], description: "Flag items that *don't* match search/tag filters", }, { name: ["-r", "--remove"], description: "Remove flag", }, { name: ["-s", "--section"], description: "Section", args: { name: "SECTION_NAME", description: "SECTION_NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["-u", "--unfinished"], description: "Flag last entry", }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "meanwhile", description: "Finish any running @meanwhile tasks and optionally create a new one", options: [ { name: ["-X", "--noauto"], description: "Exclude auto tags and default tags", }, { name: ["-a", "--archive"], description: "Archive previous @meanwhile entry", }, { name: ["--ask"], description: "Prompt for note via multi-line input", }, { name: ["--since"], description: "Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["-e", "--editor"], description: "Edit entry with vim", }, { name: ["-n", "--note"], description: "Include a note", args: { name: "TEXT", description: "TEXT", }, }, { name: ["-s", "--section"], description: "Section", args: { name: "NAME", description: "NAME", }, }, ], }, { name: "note", description: "Add a note to the last entry", options: [ { name: ["--ask"], description: "Prompt for note via multi-line input", }, { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["-e", "--editor"], description: "Edit entry with vim", }, { name: ["-i", "--interactive"], description: "Select item for new note from a menu of matching entries", }, { name: ["--not"], description: "Note items that *don't* match search/tag filters", }, { name: ["-r", "--remove"], description: "Replace/Remove last entry's note", }, { name: ["-s", "--section"], description: "Section", args: { name: "NAME", description: "NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "now", description: "Add an entry", options: [ { name: ["-X", "--noauto"], description: "Exclude auto tags and default tags", }, { name: ["--ask"], description: "Prompt for note via multi-line input", }, { name: ["--since"], description: "Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["-e", "--editor"], description: "Edit entry with vim", }, { name: ["-f", "--finish_last"], description: "Timed entry", }, { name: ["--from"], description: "Set a start and optionally end time as a date range", args: { name: "TIME_RANGE", description: "TIME_RANGE", }, }, { name: ["-n", "--note"], description: "Include a note", args: { name: "TEXT", description: "TEXT", }, }, { name: ["-s", "--section"], description: "Section", args: { name: "NAME", description: "NAME", }, }, ], }, { name: "next", description: "Add an entry", options: [ { name: ["-X", "--noauto"], description: "Exclude auto tags and default tags", }, { name: ["--ask"], description: "Prompt for note via multi-line input", }, { name: ["--since"], description: "Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["-e", "--editor"], description: "Edit entry with vim", }, { name: ["-f", "--finish_last"], description: "Timed entry", }, { name: ["--from"], description: "Set a start and optionally end time as a date range", args: { name: "TIME_RANGE", description: "TIME_RANGE", }, }, { name: ["-n", "--note"], description: "Include a note", args: { name: "TEXT", description: "TEXT", }, }, { name: ["-s", "--section"], description: "Section", args: { name: "NAME", description: "NAME", }, }, ], }, { name: "on", description: "List entries for a date", options: [ { name: ["--after"], description: "View entries after specified time", args: { name: "TIME_STRING", description: "TIME_STRING", }, }, { name: ["--before"], description: "View entries before specified time", args: { name: "TIME_STRING", description: "TIME_STRING", }, }, { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["--config_template"], description: "Output using a template from configuration", args: { name: "TEMPLATE_KEY", description: "TEMPLATE_KEY", }, }, { name: ["--duration"], description: "Show elapsed time on entries without @done tag", }, { name: ["--from"], description: "Time range to show `doing on --from \"12pm to 4pm\"`", args: { name: "TIME_RANGE", description: "TIME_RANGE", }, }, { name: ["--not"], description: "Show items that *don't* match search/tag filters", }, { name: ["-o", "--output"], description: "Output to export format", args: { name: "FORMAT", description: "FORMAT", }, }, { name: ["--only_timed"], description: "Only show items with recorded time intervals", }, { name: ["-s", "--section"], description: "Section", args: { name: "NAME", description: "NAME", }, }, { name: ["--save"], description: "Save all current command line options as a new view", args: { name: "VIEW_NAME", description: "VIEW_NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-t", "--times"], description: "Show time intervals on @done tasks", }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--tag_order"], description: "Tag sort direction", args: { name: "DIRECTION", description: "DIRECTION", }, }, { name: ["--tag_sort"], description: "Sort tags by", args: { name: "KEY", description: "KEY", }, }, { name: ["--template"], description: "Override output format with a template string containing %placeholders", args: { name: "TEMPLATE_STRING", description: "TEMPLATE_STRING", }, }, { name: ["--title"], description: "Title string to be used for output formats that require it", args: { name: "TITLE", description: "TITLE", }, }, { name: ["--totals"], description: "Show time totals at the end of output", }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "open", description: "Open the \"doing\" file in an editor", options: [ { name: ["-a", "--app"], description: "Open with app name", args: { name: "APP_NAME", description: "APP_NAME", }, }, { name: ["-b", "--bundle_id"], description: "Open with app bundle id", args: { name: "BUNDLE_ID", description: "BUNDLE_ID", }, }, { name: ["-e", "--editor"], description: "Open with editor command", args: { name: "COMMAND", description: "COMMAND", }, }, ], }, { name: "plugins", description: "List installed plugins", options: [ { name: ["-c", "--column"], description: "List in single column for completion", }, { name: ["-t", "--type"], description: "List plugins of type", args: { name: "TYPE", description: "TYPE", }, }, ], }, { name: "recent", description: "List recent entries", options: [ { name: ["--config_template"], description: "Output using a template from configuration", args: { name: "TEMPLATE_KEY", description: "TEMPLATE_KEY", }, }, { name: ["--duration"], description: "Show elapsed time on entries without @done tag", }, { name: ["-i", "--interactive"], description: "Select from a menu of matching entries to perform additional operations", }, { name: ["-o", "--output"], description: "Output to export format", args: { name: "FORMAT", description: "FORMAT", }, }, { name: ["--only_timed"], description: "Only show items with recorded time intervals", }, { name: ["-s", "--section"], description: "Section", args: { name: "NAME", description: "NAME", }, }, { name: ["--save"], description: "Save all current command line options as a new view", args: { name: "VIEW_NAME", description: "VIEW_NAME", }, }, { name: ["-t", "--times"], description: "Show time intervals on @done tasks", }, { name: ["--tag_order"], description: "Tag sort direction", args: { name: "DIRECTION", description: "DIRECTION", }, }, { name: ["--tag_sort"], description: "Sort tags by", args: { name: "KEY", description: "KEY", }, }, { name: ["--template"], description: "Override output format with a template string containing %placeholders", args: { name: "TEMPLATE_STRING", description: "TEMPLATE_STRING", }, }, { name: ["--title"], description: "Title string to be used for output formats that require it", args: { name: "TITLE", description: "TITLE", }, }, { name: ["--totals"], description: "Show time totals at the end of output", }, ], }, { name: "redo", description: "Redo an undo command", options: [ { name: ["-f", "--file"], description: "Specify alternate doing file", args: { name: "PATH", description: "PATH", }, }, { name: ["-i", "--interactive"], description: "Select from an interactive menu", }, ], }, { name: "reset", description: "Reset the start time of an entry", options: [ { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["--from"], description: "Start and end times as a date/time range `doing done --from \"1am to 8am\"`", args: { name: "TIME_RANGE", description: "TIME_RANGE", }, }, { name: ["-i", "--interactive"], description: "Select from a menu of matching entries", }, { name: ["--not"], description: "Reset items that *don't* match search/tag filters", }, { name: ["-r", "--resume"], description: "Resume entry", }, { name: ["-s", "--section"], description: "Limit search to section", args: { name: "NAME", description: "NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--for"], description: "Set completion date to start date plus interval", args: { name: "INTERVAL", description: "INTERVAL", }, }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "begin", description: "Reset the start time of an entry", options: [ { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["--from"], description: "Start and end times as a date/time range `doing done --from \"1am to 8am\"`", args: { name: "TIME_RANGE", description: "TIME_RANGE", }, }, { name: ["-i", "--interactive"], description: "Select from a menu of matching entries", }, { name: ["--not"], description: "Reset items that *don't* match search/tag filters", }, { name: ["-r", "--resume"], description: "Resume entry", }, { name: ["-s", "--section"], description: "Limit search to section", args: { name: "NAME", description: "NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--for"], description: "Set completion date to start date plus interval", args: { name: "INTERVAL", description: "INTERVAL", }, }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "rotate", description: "Move entries to archive file", options: [ { name: ["--before"], description: "Rotate entries older than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["-k", "--keep"], description: "How many items to keep in each section", args: { name: "X", description: "X", }, }, { name: ["--not"], description: "Rotate items that *don't* match search/tag filters", }, { name: ["-s", "--section"], description: "Section to rotate", args: { name: "SECTION_NAME", description: "SECTION_NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "sections", description: "List", }, { name: "select", description: "Display an interactive menu to perform operations", options: [ { name: ["-a", "--archive"], description: "Archive selected items", }, { name: ["--after"], description: "Select entries newer than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--resume"], description: "Copy selection as a new entry with current time and no @done tag", }, { name: ["--before"], description: "Select entries older than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["-c", "--cancel"], description: "Cancel selected items", }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["-d", "--delete"], description: "Delete selected items", }, { name: ["-e", "--editor"], description: "Edit selected item(s)", }, { name: ["-f", "--finish"], description: "Add @done with current time to selected item(s)", }, { name: ["--flag"], description: "Add flag to selected item(s)", }, { name: ["--force"], description: "Perform action without confirmation", }, { name: ["--from"], description: "Date range", args: { name: "DATE_OR_RANGE", description: "DATE_OR_RANGE", }, }, { name: ["-m", "--move"], description: "Move selected items to section", args: { name: "SECTION", description: "SECTION", }, }, { name: ["--menu"], description: "Use --no-menu to skip the interactive menu", }, { name: ["--not"], description: "Select items that *don't* match search/tag filters", }, { name: ["-o", "--output"], description: "Output entries to format", args: { name: "FORMAT", description: "FORMAT", }, }, { name: ["-q", "--query"], description: "Initial search query for filtering", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-r", "--remove"], description: "Reverse -c", }, { name: ["-s", "--section"], description: "Select from a specific section", args: { name: "SECTION", description: "SECTION", }, }, { name: ["--save_to"], description: "Save selected entries to file using --output format", args: { name: "FILE", description: "FILE", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-t", "--tag"], description: "Tag selected entries", args: { name: "TAG", description: "TAG", }, }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "show", description: "List all entries", options: [ { name: ["-a", "--age"], description: "Age", args: { name: "AGE", description: "AGE", }, }, { name: ["--after"], description: "Show entries newer than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--before"], description: "Show entries older than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["-c", "--count"], description: "Max count to show", args: { name: "MAX", description: "MAX", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["--config_template"], description: "Output using a template from configuration", args: { name: "TEMPLATE_KEY", description: "TEMPLATE_KEY", }, }, { name: ["--duration"], description: "Show elapsed time on entries without @done tag", }, { name: ["-e", "--editor"], description: "Edit matching entries with vim", }, { name: ["--from"], description: "Date range", args: { name: "DATE_OR_RANGE", description: "DATE_OR_RANGE", }, }, { name: ["-h", "--hilite"], description: "Highlight search matches in output", }, { name: ["-i", "--interactive"], description: "Select from a menu of matching entries to perform additional operations", }, { name: ["-m", "--menu"], description: "Select section or tag to display from a menu", }, { name: ["--not"], description: "Show items that *don't* match search/tag filters", }, { name: ["-o", "--output"], description: "Output to export format", args: { name: "FORMAT", description: "FORMAT", }, }, { name: ["--only_timed"], description: "Only show items with recorded time intervals", }, { name: ["-s", "--section"], description: "Only show entries within section", args: { name: "NAME", description: "NAME", }, }, { name: ["--save"], description: "Save all current command line options as a new view", args: { name: "VIEW_NAME", description: "VIEW_NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--sort"], description: "Sort order", args: { name: "ORDER", description: "ORDER", }, }, { name: ["-t", "--times"], description: "Show time intervals on @done tasks", }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--tag_order"], description: "Tag sort direction", args: { name: "DIRECTION", description: "DIRECTION", }, }, { name: ["--tag_sort"], description: "Sort tags by", args: { name: "KEY", description: "KEY", }, }, { name: ["--template"], description: "Override output format with a template string containing %placeholders", args: { name: "TEMPLATE_STRING", description: "TEMPLATE_STRING", }, }, { name: ["--title"], description: "Title string to be used for output formats that require it", args: { name: "TITLE", description: "TITLE", }, }, { name: ["--totals"], description: "Show time totals at the end of output", }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "since", description: "List entries since a date", options: [ { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["--config_template"], description: "Output using a template from configuration", args: { name: "TEMPLATE_KEY", description: "TEMPLATE_KEY", }, }, { name: ["--duration"], description: "Show elapsed time on entries without @done tag", }, { name: ["--not"], description: "Since items that *don't* match search/tag filters", }, { name: ["-o", "--output"], description: "Output to export format", args: { name: "FORMAT", description: "FORMAT", }, }, { name: ["--only_timed"], description: "Only show items with recorded time intervals", }, { name: ["-s", "--section"], description: "Section", args: { name: "NAME", description: "NAME", }, }, { name: ["--save"], description: "Save all current command line options as a new view", args: { name: "VIEW_NAME", description: "VIEW_NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-t", "--times"], description: "Show time intervals on @done tasks", }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--tag_order"], description: "Tag sort direction", args: { name: "DIRECTION", description: "DIRECTION", }, }, { name: ["--tag_sort"], description: "Sort tags by", args: { name: "KEY", description: "KEY", }, }, { name: ["--template"], description: "Override output format with a template string containing %placeholders", args: { name: "TEMPLATE_STRING", description: "TEMPLATE_STRING", }, }, { name: ["--title"], description: "Title string to be used for output formats that require it", args: { name: "TITLE", description: "TITLE", }, }, { name: ["--totals"], description: "Show time totals at the end of output", }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "tag", description: "Add tag(s) to last entry", options: [ { name: ["-a", "--autotag"], description: "Autotag entries based on autotag configuration in ~/", }, { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["-c", "--count"], description: "How many recent entries to tag", args: { name: "COUNT", description: "COUNT", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["-d", "--date"], description: "Include current date/time with tag", }, { name: ["--force"], description: "Don't ask permission to tag all entries when count is 0", }, { name: ["-i", "--interactive"], description: "Select item(s) to tag from a menu of matching entries", }, { name: ["--not"], description: "Tag items that *don't* match search/tag filters", }, { name: ["-r", "--remove"], description: "Remove given tag(s)", }, { name: ["--regex"], description: "Interpret tag string as regular expression", }, { name: ["--rename"], description: "Replace existing tag with tag argument", args: { name: "ORIG_TAG", description: "ORIG_TAG", }, }, { name: ["-s", "--section"], description: "Section", args: { name: "SECTION_NAME", description: "SECTION_NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["-u", "--unfinished"], description: "Tag last entry", }, { name: ["-v", "--value"], description: "Include a value", args: { name: "VALUE", description: "VALUE", }, }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "tag_dir", description: "Set the default tags for the current directory", options: [ { name: ["--clear"], description: "Remove all default_tags from the local", }, { name: ["-e", "--editor"], description: "Use default editor to edit tag list", }, { name: ["-r", "--remove"], description: "Delete tag(s) from the current list", }, ], }, { name: "tags", description: "List all tags in the current Doing file", options: [ { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["-c", "--counts"], description: "Show count of occurrences", }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["-i", "--interactive"], description: "Select items to scan from a menu of matching entries", }, { name: ["-l", "--line"], description: "Output in a single line with @ symbols", }, { name: ["--not"], description: "Show items that *don't* match search/tag filters", }, { name: ["-o", "--order"], description: "Sort order", args: { name: "ORDER", description: "ORDER", }, }, { name: ["-s", "--section"], description: "Section", args: { name: "SECTION_NAME", description: "SECTION_NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--sort"], description: "Sort by name or count", args: { name: "SORT_ORDER", description: "SORT_ORDER", }, }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "template", description: "Output HTML", options: [ { name: ["-c", "--column"], description: "List in single column for completion", }, { name: ["-l", "--list"], description: "List all available templates", }, { name: ["-p", "--path"], description: "Save template to alternate location", args: { name: "DIRECTORY", description: "DIRECTORY", }, }, { name: ["-s", "--save"], description: "Save template to file instead of STDOUT", }, ], }, { name: "test", description: "Test Stuff", }, { name: "today", description: "List entries from today", options: [ { name: ["--after"], description: "View entries after specified time", args: { name: "TIME_STRING", description: "TIME_STRING", }, }, { name: ["--before"], description: "View entries before specified time", args: { name: "TIME_STRING", description: "TIME_STRING", }, }, { name: ["--config_template"], description: "Output using a template from configuration", args: { name: "TEMPLATE_KEY", description: "TEMPLATE_KEY", }, }, { name: ["--duration"], description: "Show elapsed time on entries without @done tag", }, { name: ["--from"], description: "Time range to show `doing today --from \"12pm to 4pm\"`", args: { name: "TIME_RANGE", description: "TIME_RANGE", }, }, { name: ["-o", "--output"], description: "Output to export format", args: { name: "FORMAT", description: "FORMAT", }, }, { name: ["--only_timed"], description: "Only show items with recorded time intervals", }, { name: ["-s", "--section"], description: "Specify a section", args: { name: "NAME", description: "NAME", }, }, { name: ["--save"], description: "Save all current command line options as a new view", args: { name: "VIEW_NAME", description: "VIEW_NAME", }, }, { name: ["-t", "--times"], description: "Show time intervals on @done tasks", }, { name: ["--tag_order"], description: "Tag sort direction", args: { name: "DIRECTION", description: "DIRECTION", }, }, { name: ["--tag_sort"], description: "Sort tags by", args: { name: "KEY", description: "KEY", }, }, { name: ["--template"], description: "Override output format with a template string containing %placeholders", args: { name: "TEMPLATE_STRING", description: "TEMPLATE_STRING", }, }, { name: ["--title"], description: "Title string to be used for output formats that require it", args: { name: "TITLE", description: "TITLE", }, }, { name: ["--totals"], description: "Show time totals at the end of output", }, ], }, { name: "undo", description: "Undo the last X changes to the Doing file", options: [ { name: ["-f", "--file"], description: "Specify alternate doing file", args: { name: "PATH", description: "PATH", }, }, { name: ["-i", "--interactive"], description: "Select from recent backups", }, { name: ["-p", "--prune"], description: "Remove old backups", args: { name: "COUNT", description: "COUNT", }, }, { name: ["-r", "--redo"], description: "Redo last undo", }, ], }, { name: "update", description: "Update doing to the latest version", options: [ { name: ["--beta"], description: "Check for pre-release version", }, ], }, { name: "view", description: "Display a user-created view", options: [ { name: ["--after"], description: "Show entries newer than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--age"], description: "Age", args: { name: "AGE", description: "AGE", }, }, { name: ["--before"], description: "Show entries older than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["--bool"], description: "Boolean used to combine multiple tags", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["-c", "--count"], description: "Count to display", args: { name: "COUNT", description: "COUNT", }, }, { name: ["--case"], description: "Case sensitivity for search string matching [(c)ase-sensitive", args: { name: "TYPE", description: "TYPE", }, }, { name: ["--color"], description: "Include colors in output", }, { name: ["--config_template"], description: "Output using a template from configuration", args: { name: "TEMPLATE_KEY", description: "TEMPLATE_KEY", }, }, { name: ["--duration"], description: "Show elapsed time on entries without @done tag", }, { name: ["--from"], description: "Date range", args: { name: "DATE_OR_RANGE", description: "DATE_OR_RANGE", }, }, { name: ["-h", "--hilite"], description: "Highlight search matches in output", }, { name: ["-i", "--interactive"], description: "Select from a menu of matching entries to perform additional operations", }, { name: ["--not"], description: "Show items that *don't* match search/tag filters", }, { name: ["-o", "--output"], description: "Output to export format", args: { name: "FORMAT", description: "FORMAT", }, }, { name: ["--only_timed"], description: "Only show items with recorded time intervals", }, { name: ["-s", "--section"], description: "Section", args: { name: "NAME", description: "NAME", }, }, { name: ["--search"], description: "Filter entries using a search query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-t", "--times"], description: "Show time intervals on @done tasks", }, { name: ["--tag"], description: "Filter entries by tag", args: { name: "TAG", description: "TAG", }, }, { name: ["--tag_order"], description: "Tag sort direction", args: { name: "DIRECTION", description: "DIRECTION", }, }, { name: ["--tag_sort"], description: "Sort tags by", args: { name: "KEY", description: "KEY", }, }, { name: ["--template"], description: "Override output format with a template string containing %placeholders", args: { name: "TEMPLATE_STRING", description: "TEMPLATE_STRING", }, }, { name: ["--totals"], description: "Show intervals with totals at the end of output", }, { name: ["--val"], description: "Perform a tag value query", args: { name: "QUERY", description: "QUERY", }, }, { name: ["-x", "--exact"], description: "Force exact search string matching", }, ], }, { name: "views", description: "List available custom views", options: [ { name: ["-c", "--column"], description: "List in single column", }, { name: ["-e", "--editor"], description: "Open YAML for view in editor", }, { name: ["-o", "--output"], description: "Output/edit view in alternative format", args: { name: "FORMAT", description: "FORMAT", }, }, { name: ["-r", "--remove"], description: "Delete view config", }, ], }, { name: "wiki", description: "Output a tag wiki", options: [ { name: ["--after"], description: "Include entries newer than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["-b", "--bool"], description: "Tag boolean", args: { name: "BOOLEAN", description: "BOOLEAN", }, }, { name: ["--before"], description: "Include entries older than date", args: { name: "DATE_STRING", description: "DATE_STRING", }, }, { name: ["-f", "--from"], description: "Date range to include", args: { name: "DATE_OR_RANGE", description: "DATE_OR_RANGE", }, }, { name: ["--only_timed"], description: "Only show items with recorded time intervals", }, { name: ["-s", "--section"], description: "Section to rotate", args: { name: "SECTION_NAME", description: "SECTION_NAME", }, }, { name: ["--search"], description: "Search filter", args: { name: "QUERY", description: "QUERY", }, }, { name: ["--tag"], description: "Tag filter", args: { name: "TAG", description: "TAG", }, }, ], }, { name: "yesterday", description: "List entries from yesterday", options: [ { name: ["--after"], description: "View entries after specified time", args: { name: "TIME_STRING", description: "TIME_STRING", }, }, { name: ["--before"], description: "View entries before specified time", args: { name: "TIME_STRING", description: "TIME_STRING", }, }, { name: ["--config_template"], description: "Output using a template from configuration", args: { name: "TEMPLATE_KEY", description: "TEMPLATE_KEY", }, }, { name: ["--duration"], description: "Show elapsed time on entries without @done tag", }, { name: ["--from"], description: "Time range to show `doing yesterday --from \"12pm to 4pm\"`", args: { name: "TIME_RANGE", description: "TIME_RANGE", }, }, { name: ["-o", "--output"], description: "Output to export format", args: { name: "FORMAT", description: "FORMAT", }, }, { name: ["--only_timed"], description: "Only show items with recorded time intervals", }, { name: ["-s", "--section"], description: "Specify a section", args: { name: "NAME", description: "NAME", }, }, { name: ["--save"], description: "Save all current command line options as a new view", args: { name: "VIEW_NAME", description: "VIEW_NAME", }, }, { name: ["-t", "--times"], description: "Show time intervals on @done tasks", }, { name: ["--tag_order"], description: "Tag sort direction", args: { name: "DIRECTION", description: "DIRECTION", }, }, { name: ["--tag_sort"], description: "Sort tags by", args: { name: "KEY", description: "KEY", }, }, { name: ["--template"], description: "Override output format with a template string containing %placeholders", args: { name: "TEMPLATE_STRING", description: "TEMPLATE_STRING", }, }, { name: ["--title"], description: "Title string to be used for output formats that require it", args: { name: "TITLE", description: "TITLE", }, }, { name: ["--totals"], description: "Show time totals at the end of output", }, ], }, ], }; export default completionSpec;