ENH: completion offers projects and contexts from done.txt.
This is useful when there are no open projects/contexts any more, but one wants to re-use an existing name.
This commit is contained in:
@@ -12,9 +12,16 @@ cat > todo.txt <<EOF
|
|||||||
notice the sunflowers +sunflowers @outside @garden +shared +landscape
|
notice the sunflowers +sunflowers @outside @garden +shared +landscape
|
||||||
stop
|
stop
|
||||||
EOF
|
EOF
|
||||||
|
cat > done.txt <<EOF
|
||||||
|
x 2012-02-21 +herbs @oriental buy spices
|
||||||
|
x 2012-02-21 +slack @home watch tv
|
||||||
|
EOF
|
||||||
test_todo_completion 'all contexts' 'todo.sh list @' '@garden @outdoor @outside'
|
test_todo_completion 'all contexts' 'todo.sh list @' '@garden @outdoor @outside'
|
||||||
test_todo_completion 'contexts beginning with o' 'todo.sh list @o' '@outdoor @outside'
|
test_todo_completion 'contexts beginning with o' 'todo.sh list @o' '@outdoor @outside'
|
||||||
test_todo_completion 'contexts beginning with outs' 'todo.sh list @outs' '@outside'
|
test_todo_completion 'contexts beginning with outs' 'todo.sh list @outs' '@outside'
|
||||||
test_todo_completion 'contexts beginning with x' 'todo.sh list @x' ''
|
test_todo_completion 'contexts beginning with x' 'todo.sh list @x' ''
|
||||||
|
|
||||||
|
test_todo_completion 'contexts from done tasks beginning with h' 'todo.sh list @h' '@home'
|
||||||
|
test_todo_completion 'contexts from done tasks beginning with or' 'todo.sh list @or' '@oriental'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|||||||
@@ -12,9 +12,16 @@ cat > todo.txt <<EOF
|
|||||||
notice the sunflowers +sunflowers @outside @garden +shared +landscape
|
notice the sunflowers +sunflowers @outside @garden +shared +landscape
|
||||||
stop
|
stop
|
||||||
EOF
|
EOF
|
||||||
|
cat > done.txt <<EOF
|
||||||
|
x 2012-02-21 +herbs @oriental buy spices
|
||||||
|
x 2012-02-21 +slack @home watch tv
|
||||||
|
EOF
|
||||||
test_todo_completion 'all projects' 'todo.sh list +' '+landscape +roses +shared +sunflowers'
|
test_todo_completion 'all projects' 'todo.sh list +' '+landscape +roses +shared +sunflowers'
|
||||||
test_todo_completion 'projects beginning with s' 'todo.sh list +s' '+shared +sunflowers'
|
test_todo_completion 'projects beginning with s' 'todo.sh list +s' '+shared +sunflowers'
|
||||||
test_todo_completion 'projects beginning with ro' 'todo.sh list +ro' '+roses'
|
test_todo_completion 'projects beginning with ro' 'todo.sh list +ro' '+roses'
|
||||||
test_todo_completion 'projects beginning with x' 'todo.sh list +x' ''
|
test_todo_completion 'projects beginning with x' 'todo.sh list +x' ''
|
||||||
|
|
||||||
|
test_todo_completion 'projects from done tasks beginning with h' 'todo.sh list +h' '+herbs'
|
||||||
|
test_todo_completion 'projects from done tasks beginning with sl' 'todo.sh list +sl' '+slack'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|||||||
@@ -35,8 +35,18 @@ _todo()
|
|||||||
completions=$(TODOTXT_VERBOSE=0 todo.sh command listfile);;
|
completions=$(TODOTXT_VERBOSE=0 todo.sh command listfile);;
|
||||||
-*) completions="$allCommands $OPTS";;
|
-*) completions="$allCommands $OPTS";;
|
||||||
*) case "$cur" in
|
*) case "$cur" in
|
||||||
+*) completions=$(TODOTXT_VERBOSE=0 todo.sh command listproj);;
|
+*) completions=$(TODOTXT_VERBOSE=0 todo.sh command listproj)
|
||||||
@*) completions=$(TODOTXT_VERBOSE=0 todo.sh command listcon);;
|
COMPREPLY=( $( compgen -W "$completions" -- $cur ))
|
||||||
|
[ ${#COMPREPLY[@]} -gt 0 ] && return 0
|
||||||
|
# Fall back to projects extracted from done tasks.
|
||||||
|
completions=$(TODOTXT_VERBOSE=0 TODOTXT_SOURCEVAR=\$DONE_FILE todo.sh command listproj)
|
||||||
|
;;
|
||||||
|
@*) completions=$(TODOTXT_VERBOSE=0 todo.sh command listcon)
|
||||||
|
COMPREPLY=( $( compgen -W "$completions" -- $cur ))
|
||||||
|
[ ${#COMPREPLY[@]} -gt 0 ] && return 0
|
||||||
|
# Fall back to contexts extracted from done tasks.
|
||||||
|
completions=$(TODOTXT_VERBOSE=0 TODOTXT_SOURCEVAR=\$DONE_FILE todo.sh command listcon)
|
||||||
|
;;
|
||||||
*) if [[ "$cur" =~ ^[0-9]+$ ]]; then
|
*) if [[ "$cur" =~ ^[0-9]+$ ]]; then
|
||||||
# Remove the (padded) task number; we prepend the
|
# Remove the (padded) task number; we prepend the
|
||||||
# user-provided $cur instead.
|
# user-provided $cur instead.
|
||||||
|
|||||||
Reference in New Issue
Block a user