From 45b61297113c7c2d2cb0eeb80537c8fa944865df Mon Sep 17 00:00:00 2001 From: willmendesneto Date: Thu, 19 Jun 2014 23:27:40 -0300 Subject: Add new plugin: "frontend-search" --- plugins/frontend-search/README.md | 82 +++++++++++ plugins/frontend-search/frontend-search.plugin.zsh | 151 +++++++++++++++++++++ 2 files changed, 233 insertions(+) create mode 100644 plugins/frontend-search/README.md create mode 100644 plugins/frontend-search/frontend-search.plugin.zsh (limited to 'plugins/frontend-search') diff --git a/plugins/frontend-search/README.md b/plugins/frontend-search/README.md new file mode 100644 index 000000000..32784d03b --- /dev/null +++ b/plugins/frontend-search/README.md @@ -0,0 +1,82 @@ +## Rationale ## + +The idea for this script is to help searches in important doc contents from frontend. + +## 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. + +```bash +... +plugins=( ... frontend-search) +... +``` + +## Commands ## + +All command searches are accept only in format + +* `frontend ` + +The search content are + +* `jquery ` +* `mdn ` +* `compass ` +* `html5please ` +* `caniuse ` +* `aurajs ` +* `dartlang ` +* `lodash ` +* `qunit ` +* `fontello ` +* `bootsnipp ` +* `cssflow ` +* `codepen ` +* `unheap ` +* `bem &as_sitesearch=bem.info>` +* `smacss &as_sitesearch=smacss.com>` +* `angularjs &as_sitesearch=angularjs.org>` +* `reactjs &as_sitesearch=facebook.github.io/react>` +* `emberjs ` + + +## Aliases ## + +There are a few aliases presented as well: + +* `jquery` A shorthand for `frontend jquery` +* `mdn` A shorthand for `frontend mdn` +* `compass` A shorthand for `frontend compass` +* `html5please` A shorthand for `frontend html5please` +* `caniuse` A shorthand for `frontend caniuse` +* `aurajs` A shorthand for `frontend aurajs` +* `dartlang` A shorthand for `frontend dartlang` +* `lodash` A shorthand for `frontend lodash` +* `qunit` A shorthand for `frontend qunit` +* `fontello` A shorthand for `frontend fontello` +* `bootsnipp` A shorthand for `frontend bootsnipp` +* `cssflow` A shorthand for `frontend cssflow` +* `codepen` A shorthand for `frontend codepen` +* `unheap` A shorthand for `frontend unheap` +* `bem` A shorthand for `frontend bem` +* `smacss` A shorthand for `frontend smacss` +* `angularjs` A shorthand for `frontend angularjs` +* `reactjs` A shorthand for `frontend reactjs` +* `emberjs` A shorthand for `frontend emberjs` + +## Author + +**Wilson Mendes (willmendesneto)** ++ ++ + +New features comming soon. diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh new file mode 100644 index 000000000..38b1a80ea --- /dev/null +++ b/plugins/frontend-search/frontend-search.plugin.zsh @@ -0,0 +1,151 @@ +# frontend from terminal + +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 \n" + return 1 + 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)' ]]; + then + echo "Search valid search content $1 not supported." + echo "Valid contents: (formats 'frontend ' or '')" + echo "* jquery" + echo "* mdn" + echo "* compass" + echo "* html5please" + echo "* caniuse" + echo "* aurajs" + echo "* dartlang" + echo "* lodash" + echo "* qunit" + echo "* fontello" + echo "* bootsnipp" + echo "* cssflow" + echo "* codepen" + echo "* unheap" + echo "* bem" + echo "* smacss" + echo "* angularjs" + echo "* reactjs" + echo "* emberjs" + echo "" + + return 1 + fi + + local url="http://" + local query="" + + case "$1" in + "jquery") + url="${url}api.jquery.com" + url="${url}/?s=$2" ;; + "mdn") + url="${url}developer.mozilla.org" + url="${url}/search?q=$2" ;; + "compass") + url="${url}compass-style.org" + url="${url}/search?q=$2" ;; + "html5please") + url="${url}html5please.com" + url="${url}/#$2" ;; + "caniuse") + url="${url}caniuse.com" + url="${url}/#search=$2" ;; + "aurajs") + url="${url}aurajs.com" + url="${url}/api/#stq=$2" ;; + "dartlang") + url="${url}api.dartlang.org/apidocs/channels/stable/dartdoc-viewer" + url="${url}/dart-$2" ;; + "qunit") + url="${url}api.qunitjs.com" + url="${url}/?s=$2" ;; + "fontello") + url="${url}fontello.com" + url="${url}/#search=$2" ;; + "bootsnipp") + url="${url}bootsnipp.com" + url="${url}/search?q=$2" ;; + "cssflow") + url="${url}cssflow.com" + url="${url}/search?q=$2" ;; + "codepen") + url="${url}codepen.io" + url="${url}/search?q=$2" ;; + "unheap") + url="${url}www.unheap.com" + url="${url}/?s=$2" ;; + "bem") + url="${url}google.com" + url="${url}/search?as_q=$2&as_sitesearch=bem.info" ;; + "smacss") + url="${url}google.com" + url="${url}/search?as_q=$2&as_sitesearch=smacss.com" ;; + "angularjs") + url="${url}google.com" + url="${url}/search?as_q=$2&as_sitesearch=angularjs.org" ;; + "reactjs") + url="${url}google.com" + url="${url}/search?as_q=$2&as_sitesearch=facebook.github.io/react" ;; + "emberjs") + url="${url}emberjs.com" + url="${url}/api/#stq=$2&stp=1" ;; + *) echo "INVALID PARAM!" + return ;; + esac + + echo "$url" + + $open_cmd "$url" + +} + +# javascript +alias jquery='frontend jquery' +alias mdn='frontend mdn' + +# pre processors frameworks +alias compass='frontend compass' + +# important links +alias html5please='frontend html5please' +alias caniuse='frontend caniuse' + +# components and libraries +alias aurajs='frontend aurajs' +alias dartlang='frontend dartlang' +alias lodash='frontend lodash' + +#tests +alias qunit='frontend qunit' + +#fonts +alias fontello='frontend fontello' + +# snippets +alias bootsnipp='frontend bootsnipp' +alias cssflow='frontend cssflow' +alias codepen='frontend codepen' +alias unheap='frontend unheap' + +# css architecture +alias bem='frontend bem' +alias smacss='frontend smacss' + +# frameworks +alias angularjs='frontend angularjs' +alias reactjs='frontend reactjs' +alias emberjs='frontend emberjs' -- cgit v1.2.3-70-g09d2 From 6f1eb081e343208f881b19d1c9499e6e93b29e4b Mon Sep 17 00:00:00 2001 From: willmendesneto Date: Thu, 16 Oct 2014 23:32:42 -0300 Subject: Fix error using compass search alias --- plugins/frontend-search/frontend-search.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/frontend-search') diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh index 38b1a80ea..f1d45b0d1 100644 --- a/plugins/frontend-search/frontend-search.plugin.zsh +++ b/plugins/frontend-search/frontend-search.plugin.zsh @@ -118,7 +118,7 @@ alias jquery='frontend jquery' alias mdn='frontend mdn' # pre processors frameworks -alias compass='frontend compass' +alias compassdoc='frontend compass' # important links alias html5please='frontend html5please' -- cgit v1.2.3-70-g09d2 From eea77b7cb7a8d64a03d7eddc5e0f05e122b82546 Mon Sep 17 00:00:00 2001 From: Will Mendes Date: Sat, 18 Apr 2015 20:59:13 -0300 Subject: Add stackoverflow link --- plugins/frontend-search/README.md | 2 ++ plugins/frontend-search/frontend-search.plugin.zsh | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'plugins/frontend-search') diff --git a/plugins/frontend-search/README.md b/plugins/frontend-search/README.md index 32784d03b..c1ccc9092 100644 --- a/plugins/frontend-search/README.md +++ b/plugins/frontend-search/README.md @@ -47,6 +47,7 @@ The search content are * `angularjs &as_sitesearch=angularjs.org>` * `reactjs &as_sitesearch=facebook.github.io/react>` * `emberjs ` +* `stackoverflow ` ## Aliases ## @@ -72,6 +73,7 @@ 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 diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh index f1d45b0d1..c9e51b2e0 100644 --- a/plugins/frontend-search/frontend-search.plugin.zsh +++ b/plugins/frontend-search/frontend-search.plugin.zsh @@ -17,7 +17,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 ' or '')" @@ -40,6 +40,7 @@ function frontend() { echo "* angularjs" echo "* reactjs" echo "* emberjs" + echo "* stackoverflow" echo "" return 1 @@ -103,6 +104,9 @@ function frontend() { "emberjs") url="${url}emberjs.com" url="${url}/api/#stq=$2&stp=1" ;; + "stackoverflow") + url="${url}https://stackoverflow.com" + url="${url}/search?q=$2" ;; *) echo "INVALID PARAM!" return ;; esac @@ -149,3 +153,6 @@ alias smacss='frontend smacss' alias angularjs='frontend angularjs' alias reactjs='frontend reactjs' alias emberjs='frontend emberjs' + +# search websites +alias stackoverflow='frontend stackoverflow' -- cgit v1.2.3-70-g09d2 From 05f2ad3dbb537bcbfbf3acf54221552d036de997 Mon Sep 17 00:00:00 2001 From: Will Mendes Date: Thu, 23 Apr 2015 00:38:25 -0300 Subject: fix stackoverflow url in search --- plugins/frontend-search/frontend-search.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/frontend-search') diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh index c9e51b2e0..b9fb8634c 100644 --- a/plugins/frontend-search/frontend-search.plugin.zsh +++ b/plugins/frontend-search/frontend-search.plugin.zsh @@ -105,7 +105,7 @@ function frontend() { url="${url}emberjs.com" url="${url}/api/#stq=$2&stp=1" ;; "stackoverflow") - url="${url}https://stackoverflow.com" + url="${url}stackoverflow.com" url="${url}/search?q=$2" ;; *) echo "INVALID PARAM!" return ;; -- cgit v1.2.3-70-g09d2 From 590d3935955dfcda42bdc9edc94b30855c29305e Mon Sep 17 00:00:00 2001 From: Will Mendes Date: Sun, 26 Apr 2015 11:43:45 -0300 Subject: Add autocomplete for frontend-search --- plugins/frontend-search/README.md | 15 ++-- plugins/frontend-search/_frontend-search.sh | 128 ++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+), 9 deletions(-) create mode 100644 plugins/frontend-search/_frontend-search.sh (limited to 'plugins/frontend-search') diff --git a/plugins/frontend-search/README.md b/plugins/frontend-search/README.md index c1ccc9092..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=( ... frontend-search) ... ``` + ## Commands ## All command searches are accept only in format @@ -75,9 +70,11 @@ There are a few aliases presented as well: * `emberjs` A shorthand for `frontend emberjs` * `stackoverflow` A shorthand for `frontend stackoverflow` + ## Author **Wilson Mendes (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 -- cgit v1.2.3-70-g09d2 From d1d06b5675bebbe54f3d876eb993b6e89d8963c7 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 5 Aug 2015 00:32:57 +0200 Subject: Use standard open command in current plugins Substitutes the current duplicate logic for the standard and cross-platform function open_command in plugins: frontend-search, jira, node, web-search --- plugins/frontend-search/frontend-search.plugin.zsh | 10 +--------- plugins/jira/jira.plugin.zsh | 15 ++++----------- plugins/node/node.plugin.zsh | 10 +--------- plugins/web-search/web-search.plugin.zsh | 12 +----------- 4 files changed, 7 insertions(+), 40 deletions(-) (limited to 'plugins/frontend-search') diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh index b9fb8634c..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 \n" @@ -113,7 +105,7 @@ function frontend() { echo "$url" - $open_cmd "$url" + open_command "$url" } diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index ca540c84c..9a8932702 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -11,13 +11,6 @@ # Usage: jira # opens a new issue # jira ABC-123 # Opens an existing issue open_jira_issue () { - local open_cmd - if [[ "$OSTYPE" = darwin* ]]; then - open_cmd='open' - else - open_cmd='xdg-open' - fi - if [ -f .jira-url ]; then jira_url=$(cat .jira-url) elif [ -f ~/.jira-url ]; then @@ -39,7 +32,7 @@ open_jira_issue () { if [ -z "$1" ]; then echo "Opening new issue" - $open_cmd "${jira_url}/secure/CreateIssue!default.jspa" + open_command "${jira_url}/secure/CreateIssue!default.jspa" elif [[ "$1" = "assigned" || "$1" = "reported" ]]; then jira_query $@ else @@ -52,9 +45,9 @@ open_jira_issue () { fi if [[ "x$JIRA_RAPID_BOARD" = "xtrue" ]]; then - $open_cmd "$jira_url/issues/$jira_prefix$1$addcomment" + open_command "$jira_url/issues/$jira_prefix$1$addcomment" else - $open_cmd "$jira_url/browse/$jira_prefix$1$addcomment" + open_command "$jira_url/browse/$jira_prefix$1$addcomment" fi fi } @@ -90,7 +83,7 @@ jira_query () { return 1 fi echo "Browsing issues ${verb} ${preposition} ${jira_name}" - $open_cmd "${jira_url}/secure/IssueNavigator.jspa?reset=true&jqlQuery=${lookup}+%3D+%22${jira_name}%22+AND+resolution+%3D+unresolved+ORDER+BY+priority+DESC%2C+created+ASC" + open_command "${jira_url}/secure/IssueNavigator.jspa?reset=true&jqlQuery=${lookup}+%3D+%22${jira_name}%22+AND+resolution+%3D+unresolved+ORDER+BY+priority+DESC%2C+created+ASC" } alias jira='open_jira_issue' diff --git a/plugins/node/node.plugin.zsh b/plugins/node/node.plugin.zsh index 39d8b10d9..2463815ac 100644 --- a/plugins/node/node.plugin.zsh +++ b/plugins/node/node.plugin.zsh @@ -1,13 +1,5 @@ # Open the node api for your current version to the optional section. # TODO: Make the section part easier to use. function node-docs { - # get the open command - local open_cmd - if [[ "$OSTYPE" = darwin* ]]; then - open_cmd='open' - else - open_cmd='xdg-open' - fi - - $open_cmd "http://nodejs.org/docs/$(node --version)/api/all.html#all_$1" + open_command "http://nodejs.org/docs/$(node --version)/api/all.html#all_$1" } diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index d407edb96..7c3ad9046 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -14,16 +14,6 @@ function web_search() { github "https://github.com/search?q=" ) - # define the open command - case "$OSTYPE" in - darwin*) open_cmd="open" ;; - cygwin*) open_cmd="cygstart" ;; - linux*) open_cmd="xdg-open" ;; - *) echo "Platform $OSTYPE not supported" - return 1 - ;; - esac - # check whether the search engine is supported if [[ -z "$urls[$1]" ]]; then echo "Search engine $1 not supported." @@ -41,7 +31,7 @@ function web_search() { url="${(j://:)${(s:/:)urls[$1]}[1,2]}" fi - nohup $open_cmd "$url" &>/dev/null + open_command "$url" } -- cgit v1.2.3-70-g09d2