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.
This commit is contained in:
16
todo.sh
16
todo.sh
@@ -57,6 +57,7 @@ shorthelp()
|
||||
help
|
||||
list|ls [TERM...]
|
||||
listall|lsa [TERM...]
|
||||
listaddons
|
||||
listcon|lsc
|
||||
listfile|lf [SRC [TERM...]]
|
||||
listpri|lsp [PRIORITIES] [TERM...]
|
||||
@@ -219,6 +220,9 @@ help()
|
||||
TERM specified, lists entire todo.txt AND done.txt
|
||||
concatenated and sorted.
|
||||
|
||||
listaddons
|
||||
Lists all added and overridden actions in the actions directory.
|
||||
|
||||
listcon
|
||||
lsc
|
||||
Lists all the task contexts that start with the @ sign in todo.txt.
|
||||
@@ -1300,6 +1304,18 @@ note: PRIORITY must be anywhere from A to Z."
|
||||
fi
|
||||
;;
|
||||
|
||||
"listaddons" )
|
||||
if [ -d "$TODO_ACTIONS_DIR" ]; then
|
||||
cd "$TODO_ACTIONS_DIR" || exit $?
|
||||
for action in *
|
||||
do
|
||||
if [ -f "$action" -a -x "$action" ]; then
|
||||
echo "$action"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
;;
|
||||
|
||||
* )
|
||||
usage;;
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user