blob: 7e76051a4abe01a49162316d1622bac90755e091 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
#compdef devtodo todo tda tde tdd tdr
## completion for devtodo 0.1.20
## Daniel Friesel <derf@derf.homelinux.org>
## https://derf.homelinux.org/~derf/dotfiles/completion/_devtodo
typeset -a arg_generic arg_add
typeset -A arg_pair arg_desc
typeset expl
arg_add=(
'-p[priority]:priority:_priority'
'-g[parent item]:parent:_index'
)
arg_generic=(
'--remove[remove items]:index:_index'
'--database[database file]:file:_files'
'--global-database[global database file]:file:_files'
'*--colour[item color]:color:_color'
'--force-colour[force use of colors]'
'--mono[no colors]'
'--help[display help]'
'--version[display version]'
'--title[todo title]:string: '
'--date-format[strftime time formet]:time string: '
'*--format[define format]:format:_format'
'*--use-format[output format]:format:_format'
'--sort[sort database]:expression: '
'--paranoid[paranoid parmissions etc]'
'--database-loaders[loader order]:database loader: '
'--backup[backup database]:count: '
'--timeout[display timeout]:seconds: '
'--purge[purge completed items]:days: '
)
arg_pair=(
'verbose' 'v'
'add' 'a'
'graft' 'g'
'link' 'l'
'reparent' 'R'
'priority' 'p'
'edit' 'e'
'done' 'd'
'not-done' 'D'
'global' 'G'
'TODO' 'T'
'all' 'A'
'filter' 'f'
)
arg_desc=(
'verbose' '[be verbose]'
'add' '[add item]:item'
'graft' '[parent item]:parent:_index'
'link' '[link file into database]:database:_files'
'reparent' '[change item parent]:index:_index'
'priority' '[item priority]:priority:_priority'
'edit' '[edit item]:index:_index'
'done' '[mark as done]:index:_index'
'not-done' '[mark as undone]:index:_index -u'
'global' '[use global database]'
'TODO' '[generate TODO file]'
'all' '[show all items]'
'filter' '[show items matching filter]:filter'
)
for arg in ${(k)arg_pair}; {
arg_generic+='(--'$arg')-'${arg_pair[$arg]}${arg_desc[$arg]}
arg_generic+='(-'${arg_pair[$arg]}')--'${arg}${arg_desc[$arg]}
}
function _index () {
typeset i
typeset -a index desc tdoptions
for i in $*; do
case $i in
-u) tdoptions=(--filter done)
esac
done
for i in $(todo $tdoptions --format display='%n '); do
index+=${i}:$(todo $tdoptions --format display='%t' $i)
done
_describe -t items index index
}
function _color () {
if compset -P '*='; then
_wanted color expl 'color' \
compadd black red green yellow blue magenta cyan white default
else
_wanted item expl 'item' \
compadd -S '=' veryhigh high medium low verylow title info
fi
}
function _format () {
}
function _priority () {
}
case $service in
tda)
_arguments -s $arg_add
;;
tde|tdd)
_arguments -s ':index:_index'
;;
tdr)
zstyle ':completion:*:tdr:*' ignore-line yes
_arguments -s '*:index:_index'
;;
*todo)
_arguments -s $arg_generic
;;
esac
|