Commit 5f18dbf8 authored by Sung Won Cho's avatar Sung Won Cho Committed by Robby Russell
Browse files

Add a completion plugin for dnote (#7885)

parent 36e13f48
# 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
``````
#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
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment