summaryrefslogtreecommitdiffstats
path: root/zsh/oh-my-zsh/plugins/dnote/_dnote
diff options
context:
space:
mode:
Diffstat (limited to 'zsh/oh-my-zsh/plugins/dnote/_dnote')
-rw-r--r--zsh/oh-my-zsh/plugins/dnote/_dnote39
1 files changed, 39 insertions, 0 deletions
diff --git a/zsh/oh-my-zsh/plugins/dnote/_dnote b/zsh/oh-my-zsh/plugins/dnote/_dnote
new file mode 100644
index 0000000..c8b3348
--- /dev/null
+++ b/zsh/oh-my-zsh/plugins/dnote/_dnote
@@ -0,0 +1,39 @@
+#compdef dnote
+
+local -a _1st_arguments
+
+_1st_arguments=(
+ 'add:add a new note'
+ 'view:list books, notes, or view a content'
+ 'edit:edit a note or a book'
+ 'remove:remove a note or a book'
+ 'find:find notes by keywords'
+ 'sync:sync data with the server'
+ 'login:login to the dnote server'
+ 'logout:logout from the dnote server'
+ 'version:print the current version'
+ 'help:get help about any command'
+)
+
+get_booknames() {
+ local names=$(dnote view --name-only)
+ local -a ret
+
+ while read -r line; do
+ ret+=("${line}")
+ done <<< "$names"
+
+ echo "$ret"
+}
+
+if (( CURRENT == 2 )); then
+ _describe -t commands "dnote subcommand" _1st_arguments
+ return
+elif (( CURRENT == 3 )); then
+ case "$words[2]" in
+ v|view|a|add)
+ _alternative \
+ "names:book names:($(get_booknames))"
+ esac
+fi
+