aboutsummaryrefslogtreecommitdiff
path: root/functions
diff options
context:
space:
mode:
authorCamil Staps2016-02-09 13:33:49 +0100
committerCamil Staps2016-11-30 19:11:06 +0100
commitae4fdb755a6e07e9f86ae34551987a446092f0db (patch)
tree2b754ae5b224c3d9fe7d073228d220555fcebac1 /functions
parenttype pass (diff)
zsh
Diffstat (limited to 'functions')
-rw-r--r--functions/_boom29
-rw-r--r--functions/_brew65
-rw-r--r--functions/_c5
-rw-r--r--functions/_git-rm7
-rw-r--r--functions/c24
-rw-r--r--functions/extract27
-rw-r--r--functions/gf4
7 files changed, 161 insertions, 0 deletions
diff --git a/functions/_boom b/functions/_boom
new file mode 100644
index 0000000..74e5d4e
--- /dev/null
+++ b/functions/_boom
@@ -0,0 +1,29 @@
+#compdef boom
+
+local state line cmds ret=1
+
+_arguments -C '1: :->cmds' '*: :->args'
+
+case $state in
+ cmds)
+ local -a cmds
+ cmds=(
+ 'all:show all items in all lists'
+ 'edit:edit the boom JSON file in $EDITOR'
+ 'help:help text'
+ )
+ _describe -t commands 'boom command' cmds && ret=0
+ _values 'lists' $(boom | awk '{print $1}')
+ ;;
+ args)
+ case $line[1] in
+ (boom|all|edit|help)
+ ;;
+ *)
+ _values 'items' `boom $line[1] | awk '{print $1}' | sed -e 's/://'` 2>/dev/null && ret=0
+ ;;
+ esac
+ ;;
+esac
+
+return ret
diff --git a/functions/_brew b/functions/_brew
new file mode 100644
index 0000000..8ba6889
--- /dev/null
+++ b/functions/_brew
@@ -0,0 +1,65 @@
+#compdef brew
+
+# Brew ZSH completion function
+# Drop this somewhere in your $fpath (like /usr/share/zsh/site-functions)
+# and rename it _brew
+#
+# altered from _fink
+
+_brew_all_formulae() {
+ formulae=(`brew search`)
+}
+
+_brew_installed_formulae() {
+ installed_formulae=(`brew list`)
+}
+
+local -a _1st_arguments
+_1st_arguments=(
+ 'install:install a formula'
+ 'remove:remove a formula'
+ 'search:search for a formula (/regex/ or string)'
+ 'list:list files in a formula or not-installed formulae'
+ 'link:link a formula'
+ 'unlink:unlink a formula'
+ 'home:visit the homepage of a formula or the brew project'
+ 'info:information about a formula'
+ 'prune:remove dead links'
+ 'update:freshen up links'
+ 'log:git commit log for a formula'
+ 'create:create a new formula'
+ 'edit:edit a formula'
+)
+
+local expl
+local -a formula installed_formulae
+
+_arguments \
+ '(-v --verbose)'{-v,--verbose}'[verbose]' \
+ '(--version)--version[version information]' \
+ '(--prefix)--prefix[where brew lives on this system]' \
+ '(--cache)--cache[brew cache]' \
+ '*:: :->subcmds' && return 0
+
+if (( CURRENT == 1 )); then
+ _describe -t commands "brew subcommand" _1st_arguments
+ return
+fi
+
+case "$words[1]" in
+ list)
+ _arguments \
+ '(--unbrewed)--unbrewed[files in brew --prefix not controlled by brew]' \
+ '1: :->forms' && return 0
+
+ if [[ "$state" == forms ]]; then
+ _brew_installed_formulae
+ _requested installed_formulae expl 'installed formulae' compadd -a installed_formulae
+ fi ;;
+ install|home|log|info)
+ _brew_all_formulae
+ _wanted formulae expl 'all formulae' compadd -a formulae ;;
+ remove|edit|xo)
+ _brew_installed_formulae
+ _wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae ;;
+esac
diff --git a/functions/_c b/functions/_c
new file mode 100644
index 0000000..39d8cb8
--- /dev/null
+++ b/functions/_c
@@ -0,0 +1,5 @@
+#compdef c
+_files -W $PROJECTS -/
+_files -W $GOPATH/src/github.com -/
+
+# See further documentation in `functions/c`.
diff --git a/functions/_git-rm b/functions/_git-rm
new file mode 100644
index 0000000..a10baf9
--- /dev/null
+++ b/functions/_git-rm
@@ -0,0 +1,7 @@
+#compdef git-rm
+_arguments -S -A '-*' \
+ '-f[override the up-to-date check]' \
+ "-n[don't actually remove the files, just show if they exist in the index]" \
+ '-r[allow recursive removal when a leading directory-name is given]' \
+ '--cached[only remove files from the index]' && ret=0
+_files
diff --git a/functions/c b/functions/c
new file mode 100644
index 0000000..486a3c6
--- /dev/null
+++ b/functions/c
@@ -0,0 +1,24 @@
+#!/bin/zsh
+#
+# This lets you quickly jump into a project directory.
+#
+# Type:
+#
+# c <tab>
+#
+# ...to autocomplete on all of your projects in the directories specified in
+# `functions/_c`. Typically I'm using it like:
+#
+# c holm<tab>/bo<tab>
+#
+# ...to quickly jump into holman/boom, for example.
+#
+# This also accounts for how Go structures its projects. For example, it will
+# autocomplete both on $PROJECTS, and also assume you want to autocomplete on
+# your Go projects in $GOPATH/src.
+
+if [ ! -z "$1" ] && [ -s "$GOPATH/src/github.com/$1" ]; then
+ cd "$GOPATH/src/github.com/$1"
+else
+ cd "$PROJECTS/$1"
+fi
diff --git a/functions/extract b/functions/extract
new file mode 100644
index 0000000..018d569
--- /dev/null
+++ b/functions/extract
@@ -0,0 +1,27 @@
+# credit: http://nparikh.org/notes/zshrc.txt
+# Usage: extract <file>
+# Description: extracts archived files / mounts disk images
+# Note: .dmg/hdiutil is Mac OS X-specific.
+extract () {
+ if [ -f $1 ]; then
+ case $1 in
+ *.tar.bz2) tar -jxvf $1 ;;
+ *.tar.gz) tar -zxvf $1 ;;
+ *.bz2) bunzip2 $1 ;;
+ *.dmg) hdiutil mount $1 ;;
+ *.gz) gunzip $1 ;;
+ *.tar) tar -xvf $1 ;;
+ *.tbz2) tar -jxvf $1 ;;
+ *.tgz) tar -zxvf $1 ;;
+ *.zip) unzip $1 ;;
+ *.ZIP) unzip $1 ;;
+ *.pax) cat $1 | pax -r ;;
+ *.pax.Z) uncompress $1 --stdout | pax -r ;;
+ *.Z) uncompress $1 ;;
+ *) echo "'$1' cannot be extracted/mounted via extract()" ;;
+ esac
+ else
+ echo "'$1' is not a valid file"
+ fi
+}
+
diff --git a/functions/gf b/functions/gf
new file mode 100644
index 0000000..0de3e89
--- /dev/null
+++ b/functions/gf
@@ -0,0 +1,4 @@
+gf() {
+ local branch=$1
+ git checkout -b $branch origin/$branch
+} \ No newline at end of file