parent
08b04f5df2
commit
3e16d64347
2 changed files with 156 additions and 128 deletions
@ -1,12 +1,19 @@ |
||||
## ZSH-Geeknote |
||||
ZSH-Geeknote |
||||
============ |
||||
|
||||
[Geeknote](https://github.com/VitaliyRodnenko/geeknote) plugin for oh-my-zsh. |
||||
|
||||
Plugins provides: |
||||
|
||||
- auto completion of commands and their options |
||||
- alias `gn` |
||||
* auto completion of commands and their options |
||||
* alias `gn` |
||||
|
||||
You can find information how to install Geeknote and it's available commands on the [project website](http://www.geeknote.me/). |
||||
## Installation |
||||
|
||||
Maintainer : Ján Koščo ([@s7anley](https://twitter.com/s7anley)) |
||||
### oh-my-zsh |
||||
This plugin is already bundled in oh-my-zsh. To enable just configure plugin definition |
||||
|
||||
plugins=( ... geeknote ...) |
||||
|
||||
### Antigen |
||||
Use [Antigen's](https://github.com/zsh-users/antigen) bundle command to install by adding `antigen bundle s7anley/zsh-geeknote` to your `.zshrc` along with your other plugins. |
||||
|
||||
@ -1,136 +1,157 @@ |
||||
#compdef geeknote |
||||
# --------------- ------------------------------------------------------------ |
||||
# Name : _geeknote |
||||
# Synopsis : zsh completion for geeknote |
||||
# Author : Ján Koščo <3k.stanley@gmail.com> |
||||
# HomePage : http://www.geeknote.me |
||||
# Version : 0.1 |
||||
# Tag : [ shell, zsh, completion, evernote ] |
||||
# Copyright : © 2014 by Ján Koščo, |
||||
# Released under current GPL license. |
||||
# --------------- ------------------------------------------------------------ |
||||
|
||||
# Geeknote Autocomplete plugin for Zsh |
||||
# Requires: Geeknote installed |
||||
# Author : Ján Koščo (@s7anley) |
||||
|
||||
__login() { |
||||
# no arguments |
||||
} |
||||
|
||||
__logout() { |
||||
_arguments \ |
||||
'--force[Do not ask about logging out.]' |
||||
} |
||||
|
||||
__settings() { |
||||
_arguments \ |
||||
"--editor+[Set the editor, which use to edit and create notes.]::" |
||||
} |
||||
|
||||
__create() { |
||||
_arguments \ |
||||
'--title+[The note title.]::' \ |
||||
'--content+[The note content.]::' \ |
||||
'--tags+[One tag or the list of tags which will be added to the note.]::' \ |
||||
'--notebook+[Set the notebook where to save note.]::' \ |
||||
'--resource+[Add a resource to the note.]::' |
||||
} |
||||
|
||||
__edit() { |
||||
_arguments \ |
||||
'--note+[The name or ID from the previous search of a note to edit.]::' \ |
||||
'--title+[Set new title of the note.]::' \ |
||||
'--content+[Set new content of the note.]::' \ |
||||
'--tags+[Set new list o tags for the note.]::' \ |
||||
'--notebook+[Assign new notebook for the note.]::' \ |
||||
'--resource+[Add a resource to the note.]::' |
||||
} |
||||
|
||||
__find() { |
||||
_arguments \ |
||||
'--search+[Text to search.]::' \ |
||||
'--tags+[Notes with which tag/tags to search.]::' \ |
||||
'--notebook+[In which notebook search the note.]::' \ |
||||
'--date+[Set date in format dd.mm.yyyy or date range dd.mm.yyyy-dd.mm.yyyy.]::' \ |
||||
'--count+[How many notes show in the result list.]::' \ |
||||
'--with-url[Add direct url of each note in results to Evernote web-version.]' \ |
||||
'--content-search[Search by content, not by title.]' \ |
||||
'--exact-entry[Search for exact entry of the request.]' |
||||
} |
||||
|
||||
__show() { |
||||
_arguments \ |
||||
'--note+[The name or ID from the previous search of a note to show.]::' \ |
||||
'--raw[Show the raw note body.]' |
||||
} |
||||
|
||||
__remove() { |
||||
_arguments \ |
||||
'--note+[The name or ID from the previous search of a note to remove.]::' \ |
||||
'--force[Do not ask about removing.]' |
||||
} |
||||
|
||||
__notebook-list() { |
||||
# no arguments |
||||
} |
||||
|
||||
__notebook-create() { |
||||
_arguments \ |
||||
'--title+[Set the title of new notebook.]::' |
||||
} |
||||
|
||||
__notebook-edit() { |
||||
_arguments \ |
||||
'--title+[Set the title of new notebook.]::' \ |
||||
'--notebook+[The name of a notebook to rename.]::' |
||||
} |
||||
|
||||
__tag-list() { |
||||
# no arguments |
||||
} |
||||
|
||||
__tag-create() { |
||||
_arguments \ |
||||
'--title+[Set the title of new tag.]::' |
||||
} |
||||
|
||||
__tag-edit() { |
||||
_arguments \ |
||||
'--tagname+[The name of a tag to rename.]::' \ |
||||
'--title+[Set the new name of tag.]::' |
||||
} |
||||
|
||||
__user() { |
||||
_arguments \ |
||||
'--full[Show full information.]' |
||||
} |
||||
|
||||
local -a _1st_arguments |
||||
_1st_arguments=( |
||||
'login' |
||||
'logout' |
||||
'settings' |
||||
'create' |
||||
'edit' |
||||
'find' |
||||
'show' |
||||
'remove' |
||||
'notebook-list' |
||||
'notebook-create' |
||||
'notebook-edit' |
||||
'tag-list' |
||||
'tag-create' |
||||
'tag-edit' |
||||
'tag-remove' |
||||
'gnsync' |
||||
'user' |
||||
'login':'Authorize in Evernote.' |
||||
'logout':'Logout from Evernote.' |
||||
'settings':'Show and edit current settings.' |
||||
'create':'Create note in Evernote.' |
||||
'edit':'Edit note in Evernote.' |
||||
'find':'Search notes in Evernote.' |
||||
'show':'Output note in the terminal.' |
||||
'remove':'Remove note from Evernote.' |
||||
'notebook-list':'Show the list of existing notebooks in your Evernote.' |
||||
'notebook-create':'Create new notebook.' |
||||
'notebook-edit':'Edit/rename notebook.' |
||||
'tag-list':'Show the list of existing tags in your Evernote.' |
||||
'tag-create':'Create new tag.' |
||||
'tag-edit':'Edit/rename tag.' |
||||
'user':'Show information about active user.' |
||||
) |
||||
|
||||
_arguments '*:: :->command' |
||||
|
||||
if (( CURRENT == 1 )); then |
||||
_describe -t commands "geeknote command" _1st_arguments |
||||
return |
||||
_describe -t commands "geeknote command" _1st_arguments |
||||
return |
||||
fi |
||||
|
||||
local -a _command_args |
||||
case "$words[1]" in |
||||
user) |
||||
_command_args=( |
||||
'(--full)--full' \ |
||||
) |
||||
;; |
||||
logout) |
||||
_command_args=( |
||||
'(--force)--force' \ |
||||
) |
||||
;; |
||||
settings) |
||||
_command_args=( |
||||
'(--editor)--editor' \ |
||||
) |
||||
;; |
||||
create) |
||||
_command_args=( |
||||
'(-t|--title)'{-t,--title}'[note title]' \ |
||||
'(-c|--content)'{-c,--content}'[note content]' \ |
||||
'(-tg|--tags)'{-tg,--tags}'[one tag or the list of tags which will be added to the note]' \ |
||||
'(-nb|--notebook)'{-nb,--notebook}'[name of notebook where to save note]' \ |
||||
) |
||||
;; |
||||
edit) |
||||
_command_args=( |
||||
'(-n|--note)'{-n,--note}'[name or ID from the previous search of a note to edit]' \ |
||||
'(-t|--title)'{-t,--title}'[note title]' \ |
||||
'(-c|--content)'{-c,--content}'[note content]' \ |
||||
'(-tg|--tags)'{-tg,--tags}'[one tag or the list of tags which will be added to the note]' \ |
||||
'(-nb|--notebook)'{-nb,--notebook}'[name of notebook where to save note]' \ |
||||
) |
||||
;; |
||||
remove) |
||||
_command_args=( |
||||
'(-n|--note)'{-n,--note}'[name or ID from the previous search of a note to edit]' \ |
||||
'(--force)--force' \ |
||||
) |
||||
;; |
||||
show) |
||||
_command_args=( |
||||
'(-n|--note)'{-n,--note}'[name or ID from the previous search of a note to edit]' \ |
||||
) |
||||
;; |
||||
find) |
||||
_command_args=( |
||||
'(-s|--search)'{-s,--search}'[text to search]' \ |
||||
'(-tg|--tags)'{-tg,--tags}'[notes with which tag/tags to search]' \ |
||||
'(-nb|--notebook)'{-nb,--notebook}'[in which notebook search the note]' \ |
||||
'(-d|--date)'{-d,--date}'[date in format dd.mm.yyyy or date range dd.mm.yyyy-dd.mm.yyyy]' \ |
||||
'(-cn|--count)'{-cn,--count}'[how many notes show in the result list]' \ |
||||
'(-uo|--url-only)'{-uo,--url-only}'[add direct url of each note in results to Evernote web-version]' \ |
||||
'(-ee|--exact-entry)'{-ee,--exact-entry}'[search for exact entry of the request]' \ |
||||
'(-cs|--content-search)'{-cs,--content-search}'[search by content, not by title]' \ |
||||
) |
||||
;; |
||||
notebook-create) |
||||
_command_args=( |
||||
'(-t|--title)'{-t,--title}'[notebook title]' \ |
||||
) |
||||
;; |
||||
notebook-edit) |
||||
_command_args=( |
||||
'(-nb|--notebook)'{-nb,--notebook}'[name of notebook to rename]' \ |
||||
'(-t|--title)'{-t,--title}'[new notebook title]' \ |
||||
) |
||||
;; |
||||
notebook-remove) |
||||
_command_args=( |
||||
'(-nb|--notebook)'{-nb,--notebook}'[name of notebook to remove]' \ |
||||
'(--force)--force' \ |
||||
) |
||||
;; |
||||
tag-create) |
||||
_command_args=( |
||||
'(-t|--title)'{-t,--title}'[title of tag]' \ |
||||
) |
||||
;; |
||||
tag-edit) |
||||
_command_args=( |
||||
'(-tgn|--tagname)'{-tgn,--tagname}'[tag to edit]' \ |
||||
'(-t|--title)'{-t,--title}'[new tag name]' \ |
||||
) |
||||
;; |
||||
tag-remove) |
||||
_command_args=( |
||||
'(-tgn|--tagname)'{-tgn,--tagname}'[tag to remove]' \ |
||||
'(--force)--force' \ |
||||
) |
||||
;; |
||||
esac |
||||
|
||||
_arguments \ |
||||
$_command_args \ |
||||
&& return 0 |
||||
login) |
||||
__login ;; |
||||
logout) |
||||
__logout ;; |
||||
settings) |
||||
__settings ;; |
||||
create) |
||||
__create ;; |
||||
edit) |
||||
__edit ;; |
||||
find) |
||||
__find ;; |
||||
show) |
||||
__show ;; |
||||
remove) |
||||
__remove ;; |
||||
notebook-list) |
||||
__notebook-list ;; |
||||
notebook-create) |
||||
__notebook-create ;; |
||||
notebook-edit) |
||||
__notebook-edit ;; |
||||
tag-list) |
||||
__tag-list ;; |
||||
tag-create) |
||||
__tag-create ;; |
||||
tag-edit) |
||||
__tag-edit ;; |
||||
user) |
||||
__user ;; |
||||
esac |
||||
|
||||
Loading…
Reference in new issue