taskwarriorSpec top-level property
Completion spec for taskwarrior CLI
Implementation
final FigSpec taskwarriorSpec = FigSpec(
name: 'taskwarrior',
description: 'A command line todo manager',
args: [
Arg(
name: 'filters',
description: 'Search criteria that select tasks',
isOptional: true,
isVariadic: true,
generators: filtersWithTasks)
],
subcommands: [
Subcommand(
name: 'active',
description:
'Shows all tasks matching the filter, that are started but not completed',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'all',
description:
'Shows all tasks matching the filter, including parents of recurring tasks',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'blocked',
description:
'Shows all tasks matching the filter, that are currently blocked by other tasks',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'blocking',
description:
'Shows all tasks matching the filter, that block other tasks',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'burndown.daily',
description:
'Shows a graphical burndown chart, by day. Is affected by the context',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'burndown.weekly',
description:
'Shows a graphical burndown chart, by week. Note that \'burndown\' is an alias to the \'burndown.weekly\' report. Is affected by the context',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'burndown.monthly',
description:
'Shows a graphical burndown chart, by month. Is affected by the context',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'calendar',
description: 'Shows a monthly calendar with due tasks marked',
args: [
Arg(
name: 'year',
description: 'The year number',
isOptional: true,
isVariadic: true),
Arg(
name: 'month',
description: 'The year number',
isOptional: true,
isVariadic: true),
Arg(
name: 'due',
description: 'Show tasks that are due',
isOptional: true,
isVariadic: true)
]),
Subcommand(
name: 'commands',
description:
'Shows all the supported commands, with some details of each'),
Subcommand(
name: 'diagnostics',
description:
'Shows diagnostic information, of the kind needed when reporting a problem'),
Subcommand(name: 'logo', description: 'Displays the Taskwarrior logo'),
Subcommand(
name: 'news',
description:
'Guides the user through important release notes anytime a new version of Taskwarrior is installed'),
Subcommand(name: 'reports', description: 'Lists all supported reports'),
Subcommand(
name: 'completed',
description: 'Shows all tasks matching the filter that are completed',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'count',
description:
'Display only a count of tasks matching the filter. Is affected by the context',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'export',
description:
'Exports all tasks in the JSON format matching the filter',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'ghistory.annual',
description: 'Shows a graphical report of task status by year',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'ghistory.monthly',
description: 'Shows a graphical report of task status by month',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'ghistory.weekly',
description: 'Shows a graphical report of task status by week',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'ghistory.daily',
description: 'Shows a graphical report of task status by day',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(name: 'help', description: 'Shows the long usage text'),
Subcommand(
name: 'history.annual',
description: 'Shows a report of task history by year',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'history.monthly',
description: 'Shows a report of task history by month',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'history.weekly',
description: 'Shows a report of task history by week',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'history.daily',
description: 'Shows a report of task history by day',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'ids',
description:
'Applies the filter then extracts only the task IDs and presents them as a space-separated list',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'uuids',
description:
'Applies the filter on all tasks (even deleted and completed tasks) then extracts only the task UUIDs and presents them as a space-separated list',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'udas',
description:
'Shows a list of UDAs that are defined, including their name, type, label, and allowed values'),
Subcommand(
name: 'information',
description: 'Shows all data and metadata for the specified tasks',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'long',
description:
'Provides the most detailed listing of tasks matching the filter',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'ls',
description: 'Provides a short listing of tasks matching the filter',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'minimal',
description:
'Provides a minimal listing of tasks matching the filter',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'newest',
description: 'Shows the newest tasks matching the filter',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'next',
description:
'Shows a page of the most urgent tasks, sorted by urgency, which is a calculated value',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'ready',
description:
'Shows a page of the most urgent ready tasks, sorted by urgency with started tasks first',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'oldest',
description: 'Shows the oldest tasks matching the filter',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'overdue',
description:
'Shows all incomplete tasks matching the filter that are beyond their due date',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'projects',
description:
'Lists all project names that are current used by pending tasks, and the number of tasks for each',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'recurring',
description: 'Shows all recurring tasks matching the filter',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'unblocked',
description:
'Shows all tasks that are not currently blocked by other tasks, matching the filter',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'waiting',
description: 'Shows all waiting tasks matching the filter',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'add',
description: 'Adds a new pending task to the task list',
args: [
Arg(
name: 'mods',
description: 'Changes to apply to the selected tasks',
isOptional: true,
isVariadic: true,
generators: modifications)
]),
Subcommand(
name: 'annotate',
description: 'Adds an annotation to an existing task',
args: [
Arg(
name: 'mods',
description: 'Changes to apply to the selected tasks',
isOptional: true,
isVariadic: true,
generators: modifications)
]),
Subcommand(
name: 'append',
description: 'Appends description text to an existing task',
args: [
Arg(
name: 'mods',
description: 'Changes to apply to the selected tasks',
isOptional: true,
isVariadic: true,
generators: modifications)
]),
Subcommand(
name: ['delete', 'rm'],
description: 'Deletes the specified task from the task list',
args: [
Arg(
name: 'Task',
description: 'The task to delete',
isVariadic: true,
generators: modifications)
]),
Subcommand(
name: 'denotate',
description: 'Deletes an annotation for the specified task',
args: [
Arg(
name: 'mods',
description: 'Changes to apply to the selected tasks',
isOptional: true,
generators: modifications)
]),
Subcommand(
name: 'done',
description: 'Marks the specified task as done',
args: [
Arg(
name: 'mods',
description: 'Changes to apply to the selected tasks',
isOptional: true,
isVariadic: true,
generators: modifications)
]),
Subcommand(
name: 'duplicate',
description: 'Duplicates the specified task and allows modifications',
args: [
Arg(
name: 'mods',
description: 'Changes to apply to the selected tasks',
isOptional: true,
isVariadic: true,
generators: modifications)
]),
Subcommand(
name: 'edit',
description:
'Launches a text editor to let you modify all aspects of a task directly',
args: [
Arg(
name: 'Task',
description: 'The task to edit',
generators: listTasks)
]),
Subcommand(
name: 'log',
description:
'Adds a new task that is already completed, to the task list',
args: [
Arg(
name: 'mods',
description: 'Changes to apply to the selected tasks',
isOptional: true,
isVariadic: true,
generators: modifications)
]),
Subcommand(
name: 'modify',
description: 'Modifies the existing task with provided information',
args: [
Arg(
name: 'mods',
description: 'Changes to apply to the selected tasks',
isOptional: true,
isVariadic: true,
generators: modifications)
]),
Subcommand(
name: 'prepend',
description: 'Prepends description text to and existing task',
args: [
Arg(
name: 'mods',
description: 'Changes to apply to the selected tasks',
isOptional: true,
isVariadic: true,
generators: modifications)
]),
Subcommand(
name: 'purge',
description:
'Permanently removes the specified tasks from the data files',
args: [
Arg(
name: 'mods',
description: 'Changes to apply to the selected tasks',
isOptional: true,
isVariadic: true,
generators: modifications)
]),
Subcommand(
name: 'start',
description: 'Marks the specified tasks as started',
args: [
Arg(
name: 'mods',
description: 'Changes to apply to the selected tasks',
isOptional: true,
isVariadic: true,
generators: modifications)
]),
Subcommand(
name: 'stop',
description: 'Removes the start time from the specified task',
args: [
Arg(
name: 'mods',
description: 'Changes to apply to the selected tasks',
isOptional: true,
isVariadic: true,
generators: modifications)
]),
Subcommand(
name: 'context',
description: 'Sets the currently active context',
subcommands: [
Subcommand(
name: 'delete',
description: 'Deletes the context with the name',
args: [Arg(name: 'name', isVariadic: true)]),
Subcommand(
name: 'define',
description:
'Defines a new context with the name and definition filter',
args: [
Arg(name: 'name', isVariadic: true),
Arg(
name: 'mods',
description: 'Changes to apply to the selected tasks',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'list',
description:
'Outputs a list of available contexts along with their definitions'),
Subcommand(
name: 'none',
description:
'Clears the currently active context, if any was set'),
Subcommand(
name: 'show',
description:
'Shows the currently active context, along with its definition')
],
args: [
Arg(name: 'name', isVariadic: true)
]),
Subcommand(
name: 'stats',
description: 'Shows statistics of the tasks defined by the filter',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'summary',
description: 'Shows a report of aggregated task status by project',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'tags',
description: 'Show a list of all tags used',
args: [
Arg(
name: 'filters',
description: 'Task search criteria',
isOptional: true,
isVariadic: true,
generators: filters)
]),
Subcommand(
name: 'timesheet',
description: 'Shows a weekly report of tasks completed and started',
args: [Arg(name: 'weeks', isOptional: true, isVariadic: true)]),
Subcommand(name: 'undo', description: 'Reverts the most recent action'),
Subcommand(
name: 'version', description: 'Shows the Taskwarrior version number')
],
options: [
Option(
name: '--version',
description:
'This is the only conventional command line argument that Taskwarrior supports, and is intended for add-on scripts to verify the version number of an installed Taskwarrior without invoking the mechanisms that create default files')
]);