Compare commits

..

15 Commits

Author SHA1 Message Date
Ingo Karkat
736e69bd6c Allow use of post_filter_command for listall and listpri, too.
For ls / _list(), custom add-ons can use post_filter_command for additional filtering before the highlighting is applied. Let's allow that for listall and listpri, too, although they employ post_filter_command themselves.
2012-04-25 14:48:09 +02:00
Gina Trapani
ebe6a403c8 Merge pull request #81 from todb-r7/master
.gitignore for local data files.
2012-03-26 11:56:04 -07:00
Tod Beardsley
a6fed991e5 Ignore user data.
If you run out of git checkouts, should probably ignore the todo.txt
data file (and friends).
2012-03-19 11:00:51 -05:00
Gina Trapani
94f770926b Merge pull request #80 from inkarkat/complete-enhancements
Complete enhancements
2012-03-01 10:26:17 -08:00
Ingo Karkat
322f3075d2 FIX: task number completion doesn't work on OS X.
The recently added tests revealed that. Because of the sed \+ bound. As in  f3fc18af6b, fall back to the \{1,\} basic regexp.
2012-02-29 09:00:35 +01:00
Ingo Karkat
bc81db2f2b ENH: Better completion for custom add-ons via new listaddons command.
The todo_completion had the problem that it didn't consider the todo.cfg itself for the location of TODO_ACTIONS_DIR, it just tried the default location or a globally exported config value. With the injection of custom configuration now in place, we can actually delegate the listing to todo.sh itself.
The added built-in "listaddons" command is used for that; it may also be helpful for troubleshooting or to find out about available add-ons. (But the help / shorthelp commands offer more information.)

Additionally, completion is now more precise; only executable actions and no subdirs are listed now; this is also covered by the enhanced test.

The last bonus: The custom add-on actions are now only determined when there's actually completion of commands.
2012-02-29 08:53:18 +01:00
Ingo Karkat
6259cdb6da Add test for custom add-on action completion. 2012-02-29 08:53:17 +01:00
Ingo Karkat
f76b6d5210 Add test for todo file completion. 2012-02-29 08:53:17 +01:00
Ingo Karkat
c1ad7f3560 Add more test cases for arguments and options completion. 2012-02-29 08:53:17 +01:00
Ingo Karkat
a777b266ed Add test for task number completion. 2012-02-29 08:53:17 +01:00
Ingo Karkat
ebce735d04 test-lib: Allow completions containing whitespace.
This is necessary to test the completion of task text.
2012-02-29 08:53:17 +01:00
Ingo Karkat
e5a308eb03 test-lib: Also document test_expect_code. 2012-02-29 08:53:16 +01:00
Ingo Karkat
e600a2162b ENH: completion can use different todo.sh locations and configurations.
This was previously not supported; todo_completion always used plain todo.sh from the PATH. Now it's possible to override the used executable (and configuration used through _todo_sh, set from a completion function wrapper.

Cp. http://tech.groups.yahoo.com/group/todotxt/message/4003
2012-02-29 08:53:16 +01:00
Ingo Karkat
3d0a4d0b30 test-lib: Add test_todo_custom_completion variant.
This extension of test_todo_completion additionally takes the completion function to use, so that customized completions for todo.sh aliases can be tested.
2012-02-29 08:53:16 +01:00
Gina Trapani
79f428779c Merge pull request #77 from inkarkat/complete-from-done
Complete from done
2012-02-28 13:53:54 -08:00
3 changed files with 6 additions and 3 deletions

3
.gitignore vendored
View File

@@ -1,3 +1,6 @@
VERSION-FILE
tests/test-results
tests/trash\ directory.*
done.txt
report.txt
todo.txt

View File

@@ -1105,7 +1105,7 @@ case $action in
TOTAL=$( sed -n '$ =' "$TODO_FILE" )
PADDING=${#TOTAL}
post_filter_command="awk -v TOTAL=$TOTAL -v PADDING=$PADDING '{ \$1 = sprintf(\"%\" PADDING \"d\", (\$1 > TOTAL ? 0 : \$1)); print }' "
post_filter_command="${post_filter_command:-}${post_filter_command:+ | }awk -v TOTAL=$TOTAL -v PADDING=$PADDING '{ \$1 = sprintf(\"%\" PADDING \"d\", (\$1 > TOTAL ? 0 : \$1)); print }' "
cat "$TODO_FILE" "$DONE_FILE" | TODOTXT_VERBOSE=0 _format '' "$PADDING" "$@"
if [ $TODOTXT_VERBOSE -gt 0 ]; then
@@ -1149,7 +1149,7 @@ case $action in
shift ## was "listpri", new $1 is priority to list or first TERM
pri=$(printf "%s\n" "$1" | tr 'a-z' 'A-Z' | grep -e '^[A-Z]$' -e '^[A-Z]-[A-Z]$') && shift || pri="A-Z"
post_filter_command="grep '^ *[0-9]\+ ([${pri}]) '"
post_filter_command="${post_filter_command:-}${post_filter_command:+ | }grep '^ *[0-9]\+ ([${pri}]) '"
_list "$TODO_FILE" "$@"
;;

View File

@@ -58,7 +58,7 @@ _todo()
# a safety check of the ls action output.
local todo=$( \
eval 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/' \
sed -e 's/^ *[0-9]\{1,\} //' -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' \