summaryrefslogtreecommitdiffstats
path: root/zsh/oh-my-zsh/plugins/dnote
diff options
context:
space:
mode:
authorLibravatarLibravatar Biswakalyan Bhuyan <biswa@surgot.in> 2022-10-03 21:42:20 +0530
committerLibravatarLibravatar Biswakalyan Bhuyan <biswa@surgot.in> 2022-10-03 21:42:20 +0530
commitaf120ab348f2e1a5a39dec035ed9dcf84189a64e (patch)
tree2a3aadd7ce1b7b771dfe3fe7c983569726c8d7ed /zsh/oh-my-zsh/plugins/dnote
downloaddotfiles-af120ab348f2e1a5a39dec035ed9dcf84189a64e.tar.gz
dotfiles-af120ab348f2e1a5a39dec035ed9dcf84189a64e.tar.bz2
dotfiles-af120ab348f2e1a5a39dec035ed9dcf84189a64e.zip
dotfiles
Diffstat (limited to 'zsh/oh-my-zsh/plugins/dnote')
-rw-r--r--zsh/oh-my-zsh/plugins/dnote/README.md51
-rw-r--r--zsh/oh-my-zsh/plugins/dnote/_dnote39
2 files changed, 90 insertions, 0 deletions
diff --git a/zsh/oh-my-zsh/plugins/dnote/README.md b/zsh/oh-my-zsh/plugins/dnote/README.md
new file mode 100644
index 0000000..e1b9b70
--- /dev/null
+++ b/zsh/oh-my-zsh/plugins/dnote/README.md
@@ -0,0 +1,51 @@
+# Dnote Plugin
+
+This plugin adds auto-completion for [Dnote](https://dnote.io) project.
+
+To use it, add `dnote` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(dnote)
+```
+
+## Usage
+
+At the basic level, this plugin completes all Dnote commands.
+
+```zsh
+$ dnote a(press <TAB> here)
+```
+
+would result in:
+
+```zsh
+$ dnote add
+```
+
+For some commands, this plugin dynamically suggests matching book names.
+
+For instance, if you have three books that begin with 'j': 'javascript', 'job', 'js',
+
+```zsh
+$ dnote view j(press <TAB> here)
+```
+
+would result in:
+
+```zsh
+$ dnote v j
+javascript job js
+```
+
+As another example,
+
+```zsh
+$ dnote edit ja(press <TAB> here)
+```
+
+would result in:
+
+
+```zsh
+$ dnote v javascript
+``````
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
+