Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
38d25a33
Commit
38d25a33
authored
Aug 14, 2015
by
Marc Cornellà
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update taskwarrior completion to latest version (Jul 26 2015)
See relevant commit at:
https://git.tasktools.org/projects/TM/repos/task/commits/3158883dc4d251
parent
75844fe1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
75 additions
and
41 deletions
+75
-41
_task
plugins/taskwarrior/_task
+75
-41
No files found.
plugins/taskwarrior/_task
View file @
38d25a33
#compdef task
#compdef task
# zsh completion for taskwarrior
#
#
# taskwarrior - a command line task list manager.
# Copyright 2010 - 2015 Johannes Schlatow
#
# Copyright 2010 - 2011 Johannes Schlatow
# Copyright 2009 P.C. Shyamshankar
# Copyright 2009 P.C. Shyamshankar
#
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# Permission is hereby granted, free of charge, to any person obtaining a copy
...
@@ -30,6 +27,7 @@ typeset -g _task_cmds _task_projects _task_tags _task_config _task_modifiers
...
@@ -30,6 +27,7 @@ typeset -g _task_cmds _task_projects _task_tags _task_config _task_modifiers
_task_projects=($(task _projects))
_task_projects=($(task _projects))
_task_tags=($(task _tags))
_task_tags=($(task _tags))
_task_ids=($(task _ids))
_task_ids=($(task _ids))
_task_zshids=( ${(f)"$(task _zshids)"} )
_task_config=($(task _config))
_task_config=($(task _config))
_task_columns=($(task _columns))
_task_columns=($(task _columns))
_task_modifiers=(
_task_modifiers=(
...
@@ -50,11 +48,19 @@ _task_conjunctions=(
...
@@ -50,11 +48,19 @@ _task_conjunctions=(
'and' \
'and' \
'or' \
'or' \
'xor' \
'xor' \
'\)'
'\)' \
'\('
'\(' \
'<' \
'<=' \
'=' \
'!=' \
'>=' \
'>'
)
)
_task_cmds=($(task _commands))
_task_cmds=($(task _commands; task _aliases))
_task_zshcmds=( ${(f)"$(task _zshcommands)"} )
_task_zshcmds=( ${(f)"$(task _zshcommands)"} sentinel:sentinel:sentinel )
_task_aliases=($(task _aliases))
_task() {
_task() {
_arguments -s -S \
_arguments -s -S \
...
@@ -89,11 +95,13 @@ _regex_words values 'task dates' \
...
@@ -89,11 +95,13 @@ _regex_words values 'task dates' \
'soww:Start of work week' \
'soww:Start of work week' \
'socw:Start of calendar week' \
'socw:Start of calendar week' \
'som:Start of month' \
'som:Start of month' \
'soq:Start of quarter' \
'soy:Start of year' \
'soy:Start of year' \
'eow:End of week' \
'eow:End of week' \
'eoww:End of work week' \
'eoww:End of work week' \
'eocw:End of calendar week' \
'eocw:End of calendar week' \
'eom:End of month' \
'eom:End of month' \
'eoq:End of quarter' \
'eoy:End of year' \
'eoy:End of year' \
'mon:Monday' \
'mon:Monday' \
'tue:Tuesday'\
'tue:Tuesday'\
...
@@ -101,7 +109,16 @@ _regex_words values 'task dates' \
...
@@ -101,7 +109,16 @@ _regex_words values 'task dates' \
'thu:Thursday' \
'thu:Thursday' \
'fri:Friday' \
'fri:Friday' \
'sat:Saturday' \
'sat:Saturday' \
'sun:Sunday'
'sun:Sunday' \
'good*friday:Good Friday' \
'easter:Easter' \
'eastermonday:Easter Monday' \
'ascension:Ascension' \
'pentecost:Pentecost' \
'midsommar:Midsommar' \
'midsommarafton:Midsommarafton' \
'later:Later' \
'someday:Some Day'
_task_dates=("$reply[@]")
_task_dates=("$reply[@]")
local -a _task_reldates
local -a _task_reldates
...
@@ -121,6 +138,10 @@ task_dates=(
...
@@ -121,6 +138,10 @@ task_dates=(
\)
\)
)
)
local -a task_zshids
_regex_words values 'task IDs' $_task_zshids
task_zshids=("$reply[@]")
_regex_words values 'task frequencies' \
_regex_words values 'task frequencies' \
'daily:Every day' \
'daily:Every day' \
'day:Every day' \
'day:Every day' \
...
@@ -128,7 +149,7 @@ _regex_words values 'task frequencies' \
...
@@ -128,7 +149,7 @@ _regex_words values 'task frequencies' \
'weekly:Every week' \
'weekly:Every week' \
'biweekly:Every two weeks' \
'biweekly:Every two weeks' \
'fortnight:Every two weeks' \
'fortnight:Every two weeks' \
+
'monthly:Every month' \
'monthly:Every month' \
'quarterly:Every three months' \
'quarterly:Every three months' \
'semiannual:Every six months' \
'semiannual:Every six months' \
'annual:Every year' \
'annual:Every year' \
...
@@ -154,20 +175,25 @@ task_freqs=(
...
@@ -154,20 +175,25 @@ task_freqs=(
# attributes
# attributes
local -a task_attributes
local -a task_attributes
_regex_words -t ':' default 'task attributes' \
_regex_words -t ':' default 'task attributes' \
'des*cription:Task description text' \
'status:Status of task - pending, completed, deleted, waiting' \
'pro*ject:Project name:$task_projects' \
'pro*ject:Project name:$task_projects' \
'pri*ority:priority:$task_priorities' \
'du*e:Due date:$task_dates' \
'du*e:Due date:$task_dates' \
'wa*it:Date until task becomes pending:$task_dates' \
're*cur:Recurrence frequency:$task_freqs' \
're*cur:Recurrence frequency:$task_freqs' \
'pri*ority:priority:$task_priorities' \
'un*til:Expiration date:$task_dates' \
'un*til:Recurrence end date:$task_dates' \
'li*mit:Desired number of rows in report' \
'fg:Foreground color' \
'wa*it:Date until task becomes pending:$task_dates' \
'bg:Background color' \
'ent*ry:Date task was created:$task_dates' \
'li*mit:Desired number of rows in report'
'end:Date task was completed/deleted:$task_dates' \
'st*art:Date task was started:$task_dates' \
'sc*heduled:Date task is scheduled to start:$task_dates' \
'dep*ends:Other tasks that this task depends upon:$task_zshids'
task_attributes=("$reply[@]")
task_attributes=("$reply[@]")
args=(
args=(
\( "$task_attributes[@]" \|
\( "$task_attributes[@]" \|
\( /'(project|due|wait|recur|priority|until|fg|bg
|limit).'/- \( /$'[^:]#:'/ ":default:modifiers:compadd -S ':' -a _task_modifiers" \) \) \|
\( /'(project|description|status|entry|end|start|scheduled|depends|due|wait|recur|priority|until
|limit).'/- \( /$'[^:]#:'/ ":default:modifiers:compadd -S ':' -a _task_modifiers" \) \) \|
\( /'(rc).'/- \( /$'[^:]#:'/ ":arguments:config:compadd -S ':' -a _task_config" \) \) \|
\( /'(rc).'/- \( /$'[^:]#:'/ ":arguments:config:compadd -S ':' -a _task_config" \) \) \|
\( /'(+|-)'/- \( /"$word"/ ":values:remove tag:compadd -a _task_tags" \) \) \|
\( /'(+|-)'/- \( /"$word"/ ":values:remove tag:compadd -a _task_tags" \) \) \|
\( /"$word"/ \)
\( /"$word"/ \)
...
@@ -186,27 +212,6 @@ _task_filter() {
...
@@ -186,27 +212,6 @@ _task_filter() {
_describe -t default 'task conjunctions' _task_conjunctions
_describe -t default 'task conjunctions' _task_conjunctions
}
}
# merge completion
(( $+functions[_task_merge] )) ||
_task_merge() {
# TODO match URIs in .taskrc
_files
}
# push completion
(( $+functions[_task_push] )) ||
_task_push() {
# TODO match URIs in .taskrc
_files
}
# pull completion
(( $+functions[_task_pull] )) ||
_task_pull() {
# TODO match URIs in .taskrc
_files
}
# execute completion
# execute completion
(( $+functions[_task_execute] )) ||
(( $+functions[_task_execute] )) ||
_task_execute() {
_task_execute() {
...
@@ -219,6 +224,34 @@ _task_id() {
...
@@ -219,6 +224,34 @@ _task_id() {
_describe -t values 'task IDs' _task_zshids
_describe -t values 'task IDs' _task_zshids
}
}
# subcommand-only function
(( $+functions[_task_subcommands] )) ||
_task_subcommands() {
local -a subcommands
local _zshcmd
local cmd category desc
local lastcategory=''
# The list is sorted by category, in the right order.
for _zshcmd in "$_task_zshcmds[@]"; do
# Parse out the three fields
cmd=${_zshcmd%%:*}
category=${${_zshcmd#*:}%%:*}
desc=${_zshcmd#*:*:}
# Present each category as soon as the first entry in the *next* category
# is seen.
if [[ $category != $lastcategory && -n $lastcategory ]]; then
_describe -t ${lastcategory}-commands "task ${lastcategory} command" subcommands
subcommands=()
fi
# Log the subcommand; we will process it in some future iteration.
subcommands+=( "$cmd:$desc" )
lastcategory=$category
done
}
## first level completion => task sub-command completion
## first level completion => task sub-command completion
(( $+functions[_task_default] )) ||
(( $+functions[_task_default] )) ||
_task_default() {
_task_default() {
...
@@ -240,11 +273,12 @@ _task_default() {
...
@@ -240,11 +273,12 @@ _task_default() {
# update IDs
# update IDs
_task_zshids=( ${(f)"$(task _zshids)"} )
_task_zshids=( ${(f)"$(task _zshids)"} )
_describe -t commands 'task command' _task_zshcmds
_task_subcommands
_describe -t values 'task IDs' _task_zshids
_describe -t tasks 'task IDs' _task_zshids
_describe -t aliases 'task aliases' _task_aliases
_call_function ret _task_filter
_call_function ret _task_filter
return ret
return ret
}
}
_task
_task
"$@"
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment