Add bash completion. Reindent zsh completion
This commit is contained in:
parent
bd3123de01
commit
5d7e6bb724
@ -142,3 +142,9 @@ Commands:
|
|||||||
|
|
||||||
И не забудте сделать симлинк (например) =/usr/local/bin/timer= на =worktimer.scm=.
|
И не забудте сделать симлинк (например) =/usr/local/bin/timer= на =worktimer.scm=.
|
||||||
|
|
||||||
|
** Автодополнение для bash
|
||||||
|
Автодополнение в bash включается так:
|
||||||
|
|
||||||
|
#+begin_src sh
|
||||||
|
$ . bash-completion/timer
|
||||||
|
#+end_src
|
||||||
|
|||||||
72
bash-completion/timer
Normal file
72
bash-completion/timer
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
_timer()
|
||||||
|
{
|
||||||
|
local uncomplete=${COMP_WORDS[COMP_CWORD]}
|
||||||
|
|
||||||
|
case "$COMP_CWORD" in
|
||||||
|
1)
|
||||||
|
# Commands
|
||||||
|
COMPREPLY=( $(compgen -W "start stop report deadline refresh help" -- $uncomplete) )
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
# Command argument 1
|
||||||
|
case "${COMP_WORDS[1]}" in
|
||||||
|
start)
|
||||||
|
local tasklist=$(timer tasklist)
|
||||||
|
COMPREPLY=( $(compgen -W "$tasklist" -- $uncomplete))
|
||||||
|
;;
|
||||||
|
report)
|
||||||
|
local tasklist=$(timer tasklist)
|
||||||
|
COMPREPLY=( $(compgen -W "day week month $tasklist" -- $uncomplete))
|
||||||
|
;;
|
||||||
|
deadline)
|
||||||
|
local deadlist=$(timer deadlist)
|
||||||
|
COMPREPLY=( $(compgen -W "set clear all $deadlist" -- $uncomplete))
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
# Command argument 2
|
||||||
|
case "${COMP_WORDS[1]}" in
|
||||||
|
report)
|
||||||
|
case "${COMP_WORDS[2]}" in
|
||||||
|
day)
|
||||||
|
local d=$(date +"%Y-%m-%d")
|
||||||
|
COMPREPLY=( $(compgen -W "$d" -- $uncomplete))
|
||||||
|
;;
|
||||||
|
week)
|
||||||
|
local d=$(date +"%Y-%m-%d")
|
||||||
|
COMPREPLY=( $(compgen -W "$d" -- $uncomplete))
|
||||||
|
;;
|
||||||
|
month)
|
||||||
|
local d=$(date +"%Y-%m-%d")
|
||||||
|
COMPREPLY=( $(compgen -W "$d" -- $uncomplete))
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
deadline)
|
||||||
|
case "${COMP_WORDS[2]}" in
|
||||||
|
set)
|
||||||
|
local tasklist=$(timer tasklist)
|
||||||
|
local d=$(date +"%Y-%m-%d")
|
||||||
|
COMPREPLY=( $(compgen -W "$tasklist $d" -- $uncomplete))
|
||||||
|
;;
|
||||||
|
clear)
|
||||||
|
local deadlist=$(timer deadlist)
|
||||||
|
COMPREPLY=( $(compgen -W "$deadlist" -- $uncomplete))
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
4)
|
||||||
|
# Command argument 3
|
||||||
|
if [ "${COMP_WORDS[1]}" = "deadline" ]
|
||||||
|
then
|
||||||
|
local d=$(date +"%Y-%m-%d")
|
||||||
|
COMPREPLY=( $(compgen -W "$d" -- $uncomplete))
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
complete -F _timer timer
|
||||||
@ -12,10 +12,12 @@ _timer() {
|
|||||||
|
|
||||||
case "$state" in
|
case "$state" in
|
||||||
(command)
|
(command)
|
||||||
|
# Commands
|
||||||
_arguments '1:commands:(start stop report deadline refresh help)'
|
_arguments '1:commands:(start stop report deadline refresh help)'
|
||||||
;;
|
;;
|
||||||
|
|
||||||
(arg1)
|
(arg1)
|
||||||
|
# Command argument 1
|
||||||
case $words[2] in
|
case $words[2] in
|
||||||
(start)
|
(start)
|
||||||
compadd $(timer tasklist)
|
compadd $(timer tasklist)
|
||||||
@ -30,6 +32,7 @@ _timer() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
(arg2)
|
(arg2)
|
||||||
|
# Command argument 2
|
||||||
case $words[2] in
|
case $words[2] in
|
||||||
(report)
|
(report)
|
||||||
case $words[3] in
|
case $words[3] in
|
||||||
@ -58,6 +61,7 @@ _timer() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
(arg3)
|
(arg3)
|
||||||
|
# Command argument 3
|
||||||
if [ "$words[2]" = "deadline" ]
|
if [ "$words[2]" = "deadline" ]
|
||||||
then
|
then
|
||||||
compadd $(date +"%Y-%m-%d")
|
compadd $(date +"%Y-%m-%d")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user