Compare commits
2 Commits
archive/he
...
archive/co
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d7a43c4143 | ||
|
|
248c56367f |
9
todo.sh
9
todo.sh
@@ -199,10 +199,7 @@ help()
|
|||||||
list [TERM...]
|
list [TERM...]
|
||||||
ls [TERM...]
|
ls [TERM...]
|
||||||
Displays all tasks that contain TERM(s) sorted by priority with line
|
Displays all tasks that contain TERM(s) sorted by priority with line
|
||||||
numbers. Each task must match all TERMs (logical AND); to display
|
numbers. If no TERM specified, lists entire todo.txt.
|
||||||
tasks that contain any TERM (logical OR), use
|
|
||||||
"TERM1\|TERM2\|..." (with quotes), or TERM1\\\|TERM2 (unquoted).
|
|
||||||
If no TERM specified, lists entire todo.txt.
|
|
||||||
|
|
||||||
listall [TERM...]
|
listall [TERM...]
|
||||||
lsa [TERM...]
|
lsa [TERM...]
|
||||||
@@ -218,7 +215,7 @@ help()
|
|||||||
lf [SRC [TERM...]]
|
lf [SRC [TERM...]]
|
||||||
Displays all the lines in SRC file located in the todo.txt directory,
|
Displays all the lines in SRC file located in the todo.txt directory,
|
||||||
sorted by priority with line numbers. If TERM specified, lists
|
sorted by priority with line numbers. If TERM specified, lists
|
||||||
all lines that contain TERM(s) in SRC file.
|
all lines that contain TERM in SRC file.
|
||||||
Without any arguments, the names of all text files in the todo.txt
|
Without any arguments, the names of all text files in the todo.txt
|
||||||
directory are listed.
|
directory are listed.
|
||||||
|
|
||||||
@@ -226,7 +223,7 @@ help()
|
|||||||
lsp [PRIORITY] [TERM...]
|
lsp [PRIORITY] [TERM...]
|
||||||
Displays all tasks prioritized PRIORITY.
|
Displays all tasks prioritized PRIORITY.
|
||||||
If no PRIORITY specified, lists all prioritized tasks.
|
If no PRIORITY specified, lists all prioritized tasks.
|
||||||
If TERM specified, lists only prioritized tasks that contain TERM(s).
|
If TERM specified, lists only prioritized tasks that contain TERM.
|
||||||
|
|
||||||
listproj
|
listproj
|
||||||
lsprj
|
lsprj
|
||||||
|
|||||||
@@ -38,20 +38,28 @@ _todo()
|
|||||||
+*) completions=$(TODOTXT_VERBOSE=0 todo.sh command listproj);;
|
+*) completions=$(TODOTXT_VERBOSE=0 todo.sh command listproj);;
|
||||||
@*) completions=$(TODOTXT_VERBOSE=0 todo.sh command listcon);;
|
@*) completions=$(TODOTXT_VERBOSE=0 todo.sh command listcon);;
|
||||||
*) if [[ "$cur" =~ ^[0-9]+$ ]]; then
|
*) if [[ "$cur" =~ ^[0-9]+$ ]]; then
|
||||||
local item=$(TODOTXT_VERBOSE=0 todo.sh -@ -+ -p -x command ls "^ *${cur} " | head -n 1)
|
|
||||||
|
|
||||||
# Remove the (padded) task number; we prepend the
|
# Remove the (padded) task number; we prepend the
|
||||||
# user-provided $cur.
|
# user-provided $cur instead.
|
||||||
item=${item#* }
|
# Remove the timestamp prepended by the -t option,
|
||||||
|
# and the done date (for done tasks); there's no
|
||||||
# Remove the timestamp prepended by the -t option;
|
# todo.txt option for that yet.
|
||||||
# there's no todo.txt option for that yet.
|
# But keep priority and "x"; they're short and may
|
||||||
item=${item#[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] }
|
# provide useful context.
|
||||||
|
# Remove any trailing whitespace; the Bash
|
||||||
|
# completion inserts a trailing space itself.
|
||||||
|
# Finally, limit the output to a single line just as
|
||||||
|
# a safety check of the ls action output.
|
||||||
|
local todo=$( \
|
||||||
|
TODOTXT_VERBOSE=0 todo.sh -@ -+ -p -x command ls "^ *${cur} " | \
|
||||||
|
sed -e 's/^ *[0-9]\+ //' -e 's/\((.) \)[0-9]\{2,4\}-[0-9]\{2\}-[0-9]\{2\} /\1/' \
|
||||||
|
-e 's/\([xX] \)\([0-9]\{2,4\}-[0-9]\{2\}-[0-9]\{2\} \)\{1,2\}/\1/' \
|
||||||
|
-e 's/[[:space:]]*$//' \
|
||||||
|
-e '1q' \
|
||||||
|
)
|
||||||
# Append task text as a shell comment. This
|
# Append task text as a shell comment. This
|
||||||
# completion can be a safety check before a
|
# completion can be a safety check before a
|
||||||
# destructive todo.txt operation.
|
# destructive todo.txt operation.
|
||||||
[ "$item" ] && COMPREPLY[0]="$cur # $item"
|
[ "$todo" ] && COMPREPLY[0]="$cur # $todo"
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
Reference in New Issue
Block a user