From edc449275b6c04445f58b108ca0937a87c1e8430 Mon Sep 17 00:00:00 2001 From: Aditya Date: Mon, 27 Feb 2023 20:04:56 +0530 Subject: add zsh --- .../frontend-search/frontend-search.plugin.zsh | 111 +++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 oh-my-zsh/plugins/frontend-search/frontend-search.plugin.zsh (limited to 'oh-my-zsh/plugins/frontend-search/frontend-search.plugin.zsh') diff --git a/oh-my-zsh/plugins/frontend-search/frontend-search.plugin.zsh b/oh-my-zsh/plugins/frontend-search/frontend-search.plugin.zsh new file mode 100644 index 0000000..b9e2fe9 --- /dev/null +++ b/oh-my-zsh/plugins/frontend-search/frontend-search.plugin.zsh @@ -0,0 +1,111 @@ +alias angular='frontend angular' +alias angularjs='frontend angularjs' +alias bem='frontend bem' +alias bootsnipp='frontend bootsnipp' +alias bundlephobia='frontend bundlephobia' +alias caniuse='frontend caniuse' +alias codepen='frontend codepen' +alias compassdoc='frontend compassdoc' +alias cssflow='frontend cssflow' +alias dartlang='frontend dartlang' +alias emberjs='frontend emberjs' +alias flowtype='frontend flowtype' +alias fontello='frontend fontello' +alias github='frontend github' +alias html5please='frontend html5please' +alias jestjs='frontend jestjs' +alias jquery='frontend jquery' +alias lodash='frontend lodash' +alias mdn='frontend mdn' +alias nodejs='frontend nodejs' +alias npmjs='frontend npmjs' +alias packagephobia='frontend packagephobia' +alias qunit='frontend qunit' +alias reactjs='frontend reactjs' +alias smacss='frontend smacss' +alias stackoverflow='frontend stackoverflow' +alias typescript='frontend typescript' +alias unheap='frontend unheap' +alias vuejs='frontend vuejs' + +function _frontend_fallback() { + case "$FRONTEND_SEARCH_FALLBACK" in + duckduckgo) echo "https://duckduckgo.com/?sites=$1&q=" ;; + *) echo "https://google.com/search?as_sitesearch=$1&as_q=" ;; + esac +} + +function frontend() { + emulate -L zsh + + # define search context URLS + local -A urls + urls=( + angular 'https://angular.io/?search=' + angularjs $(_frontend_fallback 'angularjs.org') + bem $(_frontend_fallback 'bem.info') + bootsnipp 'https://bootsnipp.com/search?q=' + bundlephobia 'https://bundlephobia.com/result?p=' + caniuse 'https://caniuse.com/#search=' + codepen 'https://codepen.io/search/pens?q=' + compassdoc 'http://compass-style.org/search?q=' + cssflow 'http://www.cssflow.com/search?q=' + dartlang 'https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart:' + emberjs $(_frontend_fallback 'emberjs.com/') + flowtype $(_frontend_fallback 'flow.org/en/docs/') + fontello 'http://fontello.com/#search=' + github 'https://github.com/search?q=' + html5please 'https://html5please.com/#' + jestjs $(_frontend_fallback 'jestjs.io') + jquery 'https://api.jquery.com/?s=' + lodash 'https://devdocs.io/lodash/index#' + mdn 'https://developer.mozilla.org/search?q=' + nodejs $(_frontend_fallback 'nodejs.org/en/docs/') + npmjs 'https://www.npmjs.com/search?q=' + packagephobia 'https://packagephobia.now.sh/result?p=' + qunit 'https://api.qunitjs.com/?s=' + reactjs $(_frontend_fallback 'reactjs.org/') + smacss $(_frontend_fallback 'smacss.com') + stackoverflow 'https://stackoverflow.com/search?q=' + typescript $(_frontend_fallback 'www.typescriptlang.org/docs') + unheap 'http://www.unheap.com/?s=' + vuejs $(_frontend_fallback 'vuejs.org') + ) + + # show help for command list + if [[ $# -lt 2 ]]; then + print -P "Usage: frontend %Ucontext%u %Uterm%u [...%Umore%u] (or just: %Ucontext%u %Uterm%u [...%Umore%u])" + print -P "" + print -P "%Uterm%u and what follows is what will be searched for in the %Ucontext%u website," + print -P "and %Ucontext%u is one of the following:" + print -P "" + print -P " angular, angularjs, bem, bootsnipp, caniuse, codepen, compassdoc, cssflow, packagephobia" + print -P " dartlang, emberjs, fontello, flowtype, github, html5please, jestjs, jquery, lodash," + print -P " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia" + print -P "" + print -P "For example: frontend npmjs mocha (or just: npmjs mocha)." + print -P "" + return 1 + fi + + # check whether the search context is supported + if [[ -z "$urls[$1]" ]]; then + echo "Search context \"$1\" currently not supported." + echo "" + echo "Valid contexts are:" + echo "" + echo " angular, angularjs, bem, bootsnipp, caniuse, codepen, compassdoc, cssflow, packagephobia" + echo " dartlang, emberjs, fontello, github, html5please, jest, jquery, lodash," + echo " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia" + echo "" + return 1 + fi + + # build search url: + # join arguments passed with '%20', then append to search context URL + url="${urls[$1]}$(omz_urlencode -P ${@[2,-1]})" + + echo "Opening $url ..." + + open_command "$url" +} -- cgit v1.2.3