diff options
Diffstat (limited to 'plugins/frontend-search')
-rw-r--r-- | plugins/frontend-search/README.md | 17 | ||||
-rw-r--r-- | plugins/frontend-search/_frontend-search.sh | 128 | ||||
-rw-r--r-- | plugins/frontend-search/frontend-search.plugin.zsh | 19 |
3 files changed, 145 insertions, 19 deletions
diff --git a/plugins/frontend-search/README.md b/plugins/frontend-search/README.md index 32784d03b..801d450f3 100644 --- a/plugins/frontend-search/README.md +++ b/plugins/frontend-search/README.md @@ -1,18 +1,12 @@ ## Rationale ## -The idea for this script is to help searches in important doc contents from frontend. +> Searches for your Frontend contents more easier + ## Instalation ## -I will send a Pull Request with this plugin for .oh-my-zsh official repository. If accept them, it's only add in plugins list that exists in ```.zshrc``` file. -For now, you can clone this repository and add in ```custom/plugins``` folder - -```bash -$ git clone git://github.com/willmendesneto/frontend-search.git ~/.oh-my-zsh/custom/plugins/frontend-search -``` - -After this, restart your terminal and frontend-search plugin is configurated in you CLI. +Open your `.zshrc` file and load `frontend-search` plugin ```bash ... @@ -20,6 +14,7 @@ plugins=( <your-plugins-list>... frontend-search) ... ``` + ## Commands ## All command searches are accept only in format @@ -47,6 +42,7 @@ The search content are * `angularjs <google.com/search?as_q=<search-term>&as_sitesearch=angularjs.org>` * `reactjs <google.com/search?as_q=<search-term>&as_sitesearch=facebook.github.io/react>` * `emberjs <emberjs.com>` +* `stackoverflow <stackoverflow.com>` ## Aliases ## @@ -72,10 +68,13 @@ There are a few aliases presented as well: * `angularjs` A shorthand for `frontend angularjs` * `reactjs` A shorthand for `frontend reactjs` * `emberjs` A shorthand for `frontend emberjs` +* `stackoverflow` A shorthand for `frontend stackoverflow` + ## Author **Wilson Mendes (willmendesneto)** ++ <https://plus.google.com/+WilsonMendes> + <https://twitter.com/willmendesneto> + <http://github.com/willmendesneto> diff --git a/plugins/frontend-search/_frontend-search.sh b/plugins/frontend-search/_frontend-search.sh new file mode 100644 index 000000000..252f21570 --- /dev/null +++ b/plugins/frontend-search/_frontend-search.sh @@ -0,0 +1,128 @@ +#compdef frontend + +zstyle ':completion:*:descriptions' format '%B%d%b' +zstyle ':completion::complete:frontend:*:commands' group-name commands +zstyle ':completion::complete:frontend:*:frontend_points' group-name frontend_points +zstyle ':completion::complete:frontend::' list-grouped + +zmodload zsh/mapfile + +function _frontend() { + local CONFIG=$HOME/.frontend-search + local ret=1 + + local -a commands + local -a frontend_points + + frontend_points=( "${(f)mapfile[$CONFIG]//$HOME/~}" ) + + commands=( + 'jquery: Search in jQuery website' + 'mdn: Search in MDN website' + 'compass: Search in COMPASS website' + 'html5please: Search in HTML5 Please website' + 'caniuse: Search in Can I Use website' + 'aurajs: Search in AuraJs website' + 'dartlang: Search in Dart website' + 'lodash: Search in Lo-Dash website' + 'qunit: Search in Qunit website' + 'fontello: Search in fontello website' + 'bootsnipp: Search in bootsnipp website' + 'cssflow: Search in cssflow website' + 'codepen: Search in codepen website' + 'unheap: Search in unheap website' + 'bem: Search in BEM website' + 'smacss: Search in SMACSS website' + 'angularjs: Search in Angular website' + 'reactjs: Search in React website' + 'emberjs: Search in Ember website' + 'stackoverflow: Search in StackOverflow website' + ) + + _arguments -C \ + '1: :->first_arg' \ + '2: :->second_arg' && ret=0 + + case $state in + first_arg) + _describe -t frontend_points "Warp points" frontend_points && ret=0 + _describe -t commands "Commands" commands && ret=0 + ;; + second_arg) + case $words[2] in + jquery) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + mdn) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + compass) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + html5please) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + caniuse) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + aurajs) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + dartlang) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + lodash) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + qunit) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + fontello) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + bootsnipp) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + cssflow) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + codepen) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + unheap) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + bem) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + smacss) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + angularjs) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + reactjs) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + emberjs) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + stackoverflow) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + esac + ;; + esac + + return $ret +} + +_frontend "$@" + +# Local Variables: +# mode: Shell-Script +# sh-indentation: 2 +# indent-tabs-mode: nil +# sh-basic-offset: 2 +# End: +# vim: ft=zsh sw=2 ts=2 et diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh index f1d45b0d1..f7485621b 100644 --- a/plugins/frontend-search/frontend-search.plugin.zsh +++ b/plugins/frontend-search/frontend-search.plugin.zsh @@ -2,14 +2,6 @@ function frontend() { - # get the open command - local open_cmd - if [[ $(uname -s) == 'Darwin' ]]; then - open_cmd='open' - else - open_cmd='xdg-open' - fi - # no keyword provided, simply show how call methods if [[ $# -le 1 ]]; then echo "Please provide a search-content and a search-term for app.\nEx:\nfrontend <search-content> <search-term>\n" @@ -17,7 +9,7 @@ function frontend() { fi # check whether the search engine is supported - if [[ ! $1 =~ '(jquery|mdn|compass|html5please|caniuse|aurajs|dartlang|qunit|fontello|bootsnipp|cssflow|codepen|unheap|bem|smacss|angularjs|reactjs|emberjs)' ]]; + if [[ ! $1 =~ '(jquery|mdn|compass|html5please|caniuse|aurajs|dartlang|qunit|fontello|bootsnipp|cssflow|codepen|unheap|bem|smacss|angularjs|reactjs|emberjs|stackoverflow)' ]]; then echo "Search valid search content $1 not supported." echo "Valid contents: (formats 'frontend <search-content>' or '<search-content>')" @@ -40,6 +32,7 @@ function frontend() { echo "* angularjs" echo "* reactjs" echo "* emberjs" + echo "* stackoverflow" echo "" return 1 @@ -103,13 +96,16 @@ function frontend() { "emberjs") url="${url}emberjs.com" url="${url}/api/#stq=$2&stp=1" ;; + "stackoverflow") + url="${url}stackoverflow.com" + url="${url}/search?q=$2" ;; *) echo "INVALID PARAM!" return ;; esac echo "$url" - $open_cmd "$url" + open_command "$url" } @@ -149,3 +145,6 @@ alias smacss='frontend smacss' alias angularjs='frontend angularjs' alias reactjs='frontend reactjs' alias emberjs='frontend emberjs' + +# search websites +alias stackoverflow='frontend stackoverflow' |