summaryrefslogtreecommitdiff
path: root/plugins/frontend-search
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/frontend-search')
-rw-r--r--plugins/frontend-search/README.md17
-rw-r--r--plugins/frontend-search/_frontend-search.sh128
-rw-r--r--plugins/frontend-search/frontend-search.plugin.zsh19
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'