Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Oh My Zsh
Commits
bf4d4db7
Commit
bf4d4db7
authored
Mar 14, 2014
by
Andrew vonderLuft
Browse files
Merge branch 'master' of
git://github.com/robbyrussell/oh-my-zsh
into dev
parents
8f797134
ee21fe94
Changes
73
Hide whitespace changes
Inline
Side-by-side
plugins/gitfast/_git
View file @
bf4d4db7
...
...
@@ -2,18 +2,19 @@
# zsh completion wrapper for git
#
# You need git's bash completion script installed somewhere, by default on the
# same directory as this script.
# Copyright (c) 2012-2013 Felipe Contreras <felipe.contreras@gmail.com>
#
# If your script is on ~/.git-completion.sh instead, you can configure it on
# your ~/.zshrc:
# You need git's bash completion script installed somewhere, by default it
# would be the location bash-completion uses.
#
# If your script is somewhere else, you can configure it on your ~/.zshrc:
#
# zstyle ':completion:*:*:git:*' script ~/.git-completion.sh
#
# The recommended way to install this script is to copy to
#
'~/.zsh/completion/_git', and
then add the following to your ~/.zshrc file:
# The recommended way to install this script is to copy to
'~/.zsh/_git', and
# then add the following to your ~/.zshrc file:
#
# fpath=(~/.zsh
/completion
$fpath)
# fpath=(~/.zsh $fpath)
complete ()
{
...
...
@@ -21,8 +22,23 @@ complete ()
return 0
}
zstyle -T ':completion:*:*:git:*' tag-order && \
zstyle ':completion:*:*:git:*' tag-order 'common-commands'
zstyle -s ":completion:*:*:git:*" script script
test -z "$script" && script="$(dirname ${funcsourcetrace[1]%:*})"/git-completion.bash
if [ -z "$script" ]; then
local -a locations
local e
locations=(
'/etc/bash_completion.d/git' # fedora, old debian
'/usr/share/bash-completion/completions/git' # arch, ubuntu, new debian
'/usr/share/bash-completion/git' # gentoo
$(dirname ${funcsourcetrace[1]%:*})/git-completion.bash
)
for e in $locations; do
test -f $e && script="$e" && break
done
fi
ZSH_VERSION='' . "$script"
__gitcomp ()
...
...
@@ -69,18 +85,131 @@ __gitcomp_file ()
compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
}
__git_zsh_bash_func ()
{
emulate -L ksh
local command=$1
local completion_func="_git_${command//-/_}"
declare -f $completion_func >/dev/null && $completion_func && return
local expansion=$(__git_aliased_command "$command")
if [ -n "$expansion" ]; then
completion_func="_git_${expansion//-/_}"
declare -f $completion_func >/dev/null && $completion_func
fi
}
__git_zsh_cmd_common ()
{
local -a list
list=(
add:'add file contents to the index'
bisect:'find by binary search the change that introduced a bug'
branch:'list, create, or delete branches'
checkout:'checkout a branch or paths to the working tree'
clone:'clone a repository into a new directory'
commit:'record changes to the repository'
diff:'show changes between commits, commit and working tree, etc'
fetch:'download objects and refs from another repository'
grep:'print lines matching a pattern'
init:'create an empty Git repository or reinitialize an existing one'
log:'show commit logs'
merge:'join two or more development histories together'
mv:'move or rename a file, a directory, or a symlink'
pull:'fetch from and merge with another repository or a local branch'
push:'update remote refs along with associated objects'
rebase:'forward-port local commits to the updated upstream head'
reset:'reset current HEAD to the specified state'
rm:'remove files from the working tree and from the index'
show:'show various types of objects'
status:'show the working tree status'
tag:'create, list, delete or verify a tag object signed with GPG')
_describe -t common-commands 'common commands' list && _ret=0
}
__git_zsh_cmd_alias ()
{
local -a list
list=(${${${(0)"$(git config -z --get-regexp '^alias\.')"}#alias.}%$'\n'*})
_describe -t alias-commands 'aliases' list $* && _ret=0
}
__git_zsh_cmd_all ()
{
local -a list
emulate ksh -c __git_compute_all_commands
list=( ${=__git_all_commands} )
_describe -t all-commands 'all commands' list && _ret=0
}
__git_zsh_main ()
{
local curcontext="$curcontext" state state_descr line
typeset -A opt_args
local -a orig_words
orig_words=( ${words[@]} )
_arguments -C \
'(-p --paginate --no-pager)'{-p,--paginate}'[pipe all output into ''less'']' \
'(-p --paginate)--no-pager[do not pipe git output into a pager]' \
'--git-dir=-[set the path to the repository]: :_directories' \
'--bare[treat the repository as a bare repository]' \
'(- :)--version[prints the git suite version]' \
'--exec-path=-[path to where your core git programs are installed]:: :_directories' \
'--html-path[print the path where git''s HTML documentation is installed]' \
'--info-path[print the path where the Info files are installed]' \
'--man-path[print the manpath (see `man(1)`) for the man pages]' \
'--work-tree=-[set the path to the working tree]: :_directories' \
'--namespace=-[set the git namespace]' \
'--no-replace-objects[do not use replacement refs to replace git objects]' \
'(- :)--help[prints the synopsis and a list of the most commonly used commands]: :->arg' \
'(-): :->command' \
'(-)*:: :->arg' && return
case $state in
(command)
_alternative \
'alias-commands:alias:__git_zsh_cmd_alias' \
'common-commands:common:__git_zsh_cmd_common' \
'all-commands:all:__git_zsh_cmd_all' && _ret=0
;;
(arg)
local command="${words[1]}" __git_dir
if (( $+opt_args[--bare] )); then
__git_dir='.'
else
__git_dir=${opt_args[--git-dir]}
fi
(( $+opt_args[--help] )) && command='help'
words=( ${orig_words[@]} )
__git_zsh_bash_func $command
;;
esac
}
_git ()
{
local _ret=1
() {
emulate -L ksh
local cur cword prev
cur=${words[CURRENT-1]}
prev=${words[CURRENT-2]}
let cword=CURRENT-1
__${service}_main
}
let _ret && _default -S '' && _ret=0
local cur cword prev
cur=${words[CURRENT]}
prev=${words[CURRENT-1]}
let cword=CURRENT-1
if (( $+functions[__${service}_zsh_main] )); then
__${service}_zsh_main
else
emulate ksh -c __${service}_main
fi
let _ret && _default && _ret=0
return _ret
}
...
...
plugins/gitfast/git-completion.bash
View file @
bf4d4db7
...
...
@@ -33,8 +33,6 @@ esac
# returns location of .git repo
__gitdir
()
{
# Note: this function is duplicated in git-prompt.sh
# When updating it, make sure you update the other one to match.
if
[
-z
"
${
1
-
}
"
]
;
then
if
[
-n
"
${
__git_dir
-
}
"
]
;
then
echo
"
$__git_dir
"
...
...
@@ -53,19 +51,6 @@ __gitdir ()
fi
}
__gitcomp_1
()
{
local
c
IFS
=
$'
\t\n
'
for
c
in
$1
;
do
c
=
"
$c$2
"
case
$c
in
--
*
=
*
|
*
.
)
;;
*
)
c
=
"
$c
"
;;
esac
printf
'%s\n'
"
$c
"
done
}
# The following function is based on code from:
#
# bash_completion - programmable completion functions for bash 3.2+
...
...
@@ -195,8 +180,18 @@ _get_comp_words_by_ref ()
}
fi
# Generates completion reply with compgen, appending a space to possible
# completion words, if necessary.
__gitcompadd
()
{
local
i
=
0
for
x
in
$1
;
do
if
[[
"
$x
"
==
"
$3
"
*
]]
;
then
COMPREPLY[i++]
=
"
$2$x$4
"
fi
done
}
# Generates completion reply, appending a space to possible completion words,
# if necessary.
# It accepts 1 to 4 arguments:
# 1: List of possible completion words.
# 2: A prefix to be added to each possible completion word (optional).
...
...
@@ -208,19 +203,25 @@ __gitcomp ()
case
"
$cur_
"
in
--
*
=
)
COMPREPLY
=()
;;
*
)
local
IFS
=
$'
\n
'
COMPREPLY
=(
$(
compgen
-P
"
${
2
-
}
"
\
-W
"
$(
__gitcomp_1
"
${
1
-
}
"
"
${
4
-
}
"
)
"
\
--
"
$cur_
"
)
)
local
c
i
=
0
IFS
=
$'
\t\n
'
for
c
in
$1
;
do
c
=
"
$c
${
4
-
}
"
if
[[
$c
==
"
$cur_
"
*
]]
;
then
case
$c
in
--
*
=
*
|
*
.
)
;;
*
)
c
=
"
$c
"
;;
esac
COMPREPLY[i++]
=
"
${
2
-
}
$c
"
fi
done
;;
esac
}
# Generates completion reply
with compgen
from newline-separated possible
#
completion words
by appending a space to all of them.
# Generates completion reply from newline-separated possible
completion words
# by appending a space to all of them.
# It accepts 1 to 4 arguments:
# 1: List of possible completion words, separated by a single newline.
# 2: A prefix to be added to each possible completion word (optional).
...
...
@@ -231,7 +232,7 @@ __gitcomp ()
__gitcomp_nl
()
{
local
IFS
=
$'
\n
'
COMPREPLY
=(
$(
compgen
-P
"
${
2
-
}
"
-S
"
${
4
-
}
"
-W
"
$1
"
--
"
${
3
-
$cur
}
"
)
)
__gitcompadd
"
$1
"
"
${
2
-
}
"
"
${
3
-
$cur
}
"
"
${
4
-
}
"
}
# Generates completion reply with compgen from newline-separated possible
...
...
@@ -249,106 +250,50 @@ __gitcomp_file ()
# since tilde expansion is not applied.
# This means that COMPREPLY will be empty and Bash default
# completion will be used.
COMPREPLY
=(
$(
compgen
-P
"
${
2
-
}
"
-W
"
$1
"
--
"
${
3
-
$cur
}
"
)
)
# Tell Bash that compspec generates filenames.
compopt
-o
filenames 2>/dev/null
}
__git_index_file_list_filter_compat
()
{
local
path
__gitcompadd
"
$1
"
"
${
2
-
}
"
"
${
3
-
$cur
}
"
""
while
read
-r
path
;
do
case
"
$path
"
in
?
*
/
*
)
echo
"
${
path
%%/*
}
/"
;;
*
)
echo
"
$path
"
;;
esac
done
# use a hack to enable file mode in bash < 4
compopt
-o
filenames +o nospace 2>/dev/null
||
compgen
-f
/non-existing-dir/
>
/dev/null
}
__git_index_file_list_filter_bash
()
{
local
path
while
read
-r
path
;
do
case
"
$path
"
in
?
*
/
*
)
# XXX if we append a slash to directory names when using
# `compopt -o filenames`, Bash will append another slash.
# This is pretty stupid, and this the reason why we have to
# define a compatible version for this function.
echo
"
${
path
%%/*
}
"
;;
*
)
echo
"
$path
"
;;
esac
done
}
# Process path list returned by "ls-files" and "diff-index --name-only"
# commands, in order to list only file names relative to a specified
# directory, and append a slash to directory names.
__git_index_file_list_filter
()
{
# Default to Bash >= 4.x
__git_index_file_list_filter_bash
}
# Execute git ls-files, returning paths relative to the directory
# specified in the first argument, and using the options specified in
# the second argument.
# Execute 'git ls-files', unless the --committable option is specified, in
# which case it runs 'git diff-index' to find out the files that can be
# committed. It return paths relative to the directory specified in the first
# argument, and using the options specified in the second argument.
__git_ls_files_helper
()
{
(
test
-n
"
${
CDPATH
+set
}
"
&&
unset
CDPATH
# NOTE: $2 is not quoted in order to support multiple options
cd
"
$1
"
&&
git ls-files
--exclude-standard
$2
cd
"
$1
"
if
[
"
$2
"
==
"--committable"
]
;
then
git diff-index
--name-only
--relative
HEAD
else
# NOTE: $2 is not quoted in order to support multiple options
git ls-files
--exclude-standard
$2
fi
)
2>/dev/null
}
# Execute git diff-index, returning paths relative to the directory
# specified in the first argument, and using the tree object id
# specified in the second argument.
__git_diff_index_helper
()
{
(
test
-n
"
${
CDPATH
+set
}
"
&&
unset
CDPATH
cd
"
$1
"
&&
git diff-index
--name-only
--relative
"
$2
"
)
2>/dev/null
}
# __git_index_files accepts 1 or 2 arguments:
# 1: Options to pass to ls-files (required).
# Supported options are --cached, --modified, --deleted, --others,
# and --directory.
# 2: A directory path (optional).
# If provided, only files within the specified directory are listed.
# Sub directories are never recursed. Path must have a trailing
# slash.
__git_index_files
()
{
local dir
=
"
$(
__gitdir
)
"
root
=
"
${
2
-.
}
"
local dir
=
"
$(
__gitdir
)
"
root
=
"
${
2
-.
}
"
file
if
[
-d
"
$dir
"
]
;
then
__git_ls_files_helper
"
$root
"
"
$1
"
| __git_index_file_list_filter |
sort
|
uniq
fi
}
# __git_diff_index_files accepts 1 or 2 arguments:
# 1) The id of a tree object.
# 2) A directory path (optional).
# If provided, only files within the specified directory are listed.
# Sub directories are never recursed. Path must have a trailing
# slash.
__git_diff_index_files
()
{
local dir
=
"
$(
__gitdir
)
"
root
=
"
${
2
-.
}
"
if
[
-d
"
$dir
"
]
;
then
__git_diff_index_helper
"
$root
"
"
$1
"
| __git_index_file_list_filter |
sort
|
uniq
__git_ls_files_helper
"
$root
"
"
$1
"
|
while
read
-r
file
;
do
case
"
$file
"
in
?
*
/
*
)
echo
"
${
file
%%/*
}
"
;;
*
)
echo
"
$file
"
;;
esac
done
|
sort
|
uniq
fi
}
...
...
@@ -424,14 +369,8 @@ __git_refs ()
done
;;
*
)
git ls-remote
"
$dir
"
HEAD ORIG_HEAD
'refs/tags/*'
'refs/heads/*'
'refs/remotes/*'
2>/dev/null |
\
while
read
-r
hash
i
;
do
case
"
$i
"
in
*
^
{}
)
;;
refs/
*
)
echo
"
${
i
#refs/*/
}
"
;;
*
)
echo
"
$i
"
;;
esac
done
echo
"HEAD"
git
for
-each-ref
--format
=
"%(refname:short)"
--
"refs/remotes/
$dir
/"
|
sed
-e
"s#^
$dir
/##"
;;
esac
}
...
...
@@ -549,44 +488,23 @@ __git_complete_revlist_file ()
}
# __git_complete_index_file requires 1 argument: the options to pass to
# ls-file
# __git_complete_index_file requires 1 argument:
# 1: the options to pass to ls-file
#
# The exception is --committable, which finds the files appropriate commit.
__git_complete_index_file
()
{
local
pfx
cur_
=
"
$cur
"
local
pfx
=
""
cur_
=
"
$cur
"
case
"
$cur_
"
in
?
*
/
*
)
pfx
=
"
${
cur_
%/*
}
"
cur_
=
"
${
cur_
##*/
}
"
pfx
=
"
${
pfx
}
/"
__gitcomp_file
"
$(
__git_index_files
"
$1
"
"
$pfx
"
)
"
"
$pfx
"
"
$cur_
"
;;
*
)
__gitcomp_file
"
$(
__git_index_files
"
$1
"
)
"
""
"
$cur_
"
;;
esac
}
# __git_complete_diff_index_file requires 1 argument: the id of a tree
# object
__git_complete_diff_index_file
()
{
local
pfx
cur_
=
"
$cur
"
case
"
$cur_
"
in
?
*
/
*
)
pfx
=
"
${
cur_
%/*
}
"
cur_
=
"
${
cur_
##*/
}
"
pfx
=
"
${
pfx
}
/"
__gitcomp_file
"
$(
__git_diff_index_files
"
$1
"
"
$pfx
"
)
"
"
$pfx
"
"
$cur_
"
;;
*
)
__gitcomp_file
"
$(
__git_diff_index_files
"
$1
"
)
"
""
"
$cur_
"
;;
esac
__gitcomp_file
"
$(
__git_index_files
"
$1
"
"
$pfx
"
)
"
"
$pfx
"
"
$cur_
"
}
__git_complete_file
()
...
...
@@ -614,7 +532,6 @@ __git_complete_remote_or_refspec ()
case
"
$cmd
"
in
push
)
no_complete_refspec
=
1
;;
fetch
)
COMPREPLY
=()
return
;;
*
)
;;
...
...
@@ -630,7 +547,6 @@ __git_complete_remote_or_refspec ()
return
fi
if
[
$no_complete_refspec
=
1
]
;
then
COMPREPLY
=()
return
fi
[
"
$remote
"
=
"."
]
&&
remote
=
...
...
@@ -732,6 +648,7 @@ __git_list_porcelain_commands ()
cat-file
)
: plumbing
;;
check-attr
)
: plumbing
;;
check-ignore
)
: plumbing
;;
check-mailmap
)
: plumbing
;;
check-ref-format
)
: plumbing
;;
checkout-index
)
: plumbing
;;
commit-tree
)
: plumbing
;;
...
...
@@ -951,7 +868,6 @@ _git_am ()
"
return
esac
COMPREPLY
=()
}
_git_apply
()
...
...
@@ -971,7 +887,6 @@ _git_apply ()
"
return
esac
COMPREPLY
=()
}
_git_add
()
...
...
@@ -1031,7 +946,6 @@ _git_bisect ()
__gitcomp_nl
"
$(
__git_refs
)
"
;;
*
)
COMPREPLY
=()
;;
esac
}
...
...
@@ -1124,9 +1038,14 @@ _git_cherry ()
_git_cherry_pick
()
{
local dir
=
"
$(
__gitdir
)
"
if
[
-f
"
$dir
"
/CHERRY_PICK_HEAD
]
;
then
__gitcomp
"--continue --quit --abort"
return
fi
case
"
$cur
"
in
--
*
)
__gitcomp
"--edit --no-commit"
__gitcomp
"--edit --no-commit
--signoff --strategy= --mainline
"
;;
*
)
__gitcomp_nl
"
$(
__git_refs
)
"
...
...
@@ -1170,7 +1089,6 @@ _git_clone ()
return
;;
esac
COMPREPLY
=()
}
_git_commit
()
...
...
@@ -1182,13 +1100,6 @@ _git_commit ()
;;
esac
case
"
$prev
"
in
-c
|
-C
)
__gitcomp_nl
"
$(
__git_refs
)
"
""
"
${
cur
}
"
return
;;
esac
case
"
$cur
"
in
--cleanup
=
*
)
__gitcomp
"default strip verbatim whitespace
...
...
@@ -1218,7 +1129,7 @@ _git_commit ()
esac
if
git rev-parse
--verify
--quiet
HEAD
>
/dev/null
;
then
__git_complete_
diff_
index_file
"
HEAD
"
__git_complete_index_file
"
--committable
"
else
# This is the first commit
__git_complete_index_file
"--cached"
...
...
@@ -1251,7 +1162,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
--no-prefix --src-prefix= --dst-prefix=
--inter-hunk-context=
--patience --histogram --minimal
--raw
--raw
--word-diff
--dirstat --dirstat= --dirstat-by-file
--dirstat-by-file= --cumulative
--diff-algorithm=
...
...
@@ -1299,7 +1210,7 @@ _git_difftool ()
return
;;
esac
__git_complete_file
__git_complete_
revlist_
file
}
__git_fetch_options
=
"
...
...
@@ -1319,11 +1230,12 @@ _git_fetch ()
}
__git_format_patch_options
=
"
--stdout --attach --no-attach --thread --thread= --
output-directory
--stdout --attach --no-attach --thread --thread= --
no-thread
--numbered --start-number --numbered-files --keep-subject --signoff
--signature --no-signature --in-reply-to= --cc= --full-index --binary
--not --all --cover-letter --no-prefix --src-prefix= --dst-prefix=
--inline --suffix= --ignore-if-in-upstream --subject-prefix=
--output-directory --reroll-count --to= --quiet --notes
"
_git_format_patch
()
...
...
@@ -1354,7 +1266,6 @@ _git_fsck ()
return
;;
esac
COMPREPLY
=()
}
_git_gc
()
...
...
@@ -1365,7 +1276,6 @@ _git_gc ()
return
;;
esac
COMPREPLY
=()
}
_git_gitk
()
...
...
@@ -1442,7 +1352,6 @@ _git_init ()
return
;;
esac
COMPREPLY
=()
}
_git_ls_files
()
...
...
@@ -1578,7 +1487,6 @@ _git_mergetool ()
return
;;
esac
COMPREPLY
=()
}
_git_merge_base
()
...
...
@@ -1819,7 +1727,7 @@ __git_config_get_set_variables ()
_git_config
()
{
case
"
$prev
"
in
branch.
*
.remote
)
branch.
*
.remote
|branch.
*
.pushremote
)
__gitcomp_nl
"
$(
__git_remotes
)
"
return
;;
...
...
@@ -1827,11 +1735,19 @@ _git_config ()
__gitcomp_nl
"
$(
__git_refs
)
"
return
;;
branch.
*
.rebase
)
__gitcomp
"false true"
return
;;
remote.pushdefault
)
__gitcomp_nl
"
$(
__git_remotes
)
"
return
;;
remote.
*
.fetch
)
local
remote
=
"
${
prev
#remote.
}
"
remote
=
"
${
remote
%.fetch
}
"
if
[
-z
"
$cur
"
]
;
then
COMPREPLY
=(
"refs/heads/"
)
__gitcomp_nl
"refs/heads/"
""
""
""
return
fi
__gitcomp_nl
"
$(
__git_refs_remotes
"
$remote
"
)
"
...
...
@@ -1866,6 +1782,10 @@ _git_config ()
"
return
;;
diff.submodule
)
__gitcomp
"log short"
return
;;
help.format
)
__gitcomp
"man info web html"
return
...
...
@@ -1891,7 +1811,6 @@ _git_config ()
return
;;
*
.
*
)
COMPREPLY
=()
return
;;
esac
...
...
@@ -1908,7 +1827,7 @@ _git_config ()
;;
branch.
*
.
*
)
local
pfx
=
"
${
cur
%.*
}
."
cur_
=
"
${
cur
##*.
}
"
__gitcomp
"remote merge mergeoptions rebase"
"
$pfx
"
"
$cur_
"
__gitcomp
"remote
pushremote
merge mergeoptions rebase"
"
$pfx
"
"
$cur_
"
return
;;
branch.
*
)
...
...
@@ -2039,7 +1958,6 @@ _git_config ()
core.fileMode
core.fsyncobjectfiles
core.gitProxy
core.ignoreCygwinFSTricks
core.ignoreStat
core.ignorecase
core.logAllRefUpdates
...
...
@@ -2061,13 +1979,14 @@ _git_config ()
core.whitespace
core.worktree
diff.autorefreshindex
diff.statGraphWidth
diff.external
diff.ignoreSubmodules
diff.mnemonicprefix
diff.noprefix
diff.renameLimit
diff.renames
diff.statGraphWidth
diff.submodule
diff.suppressBlankEmpty
diff.tool
diff.wordRegex
...
...
@@ -2202,6 +2121,7 @@ _git_config ()
receive.fsckObjects
receive.unpackLimit
receive.updateserverinfo
remote.pushdefault
remotes.
repack.usedeltabaseoffset
rerere.autoupdate
...
...
@@ -2272,7 +2192,6 @@ _git_remote ()
__gitcomp
"
$c
"
;;
*
)
COMPREPLY
=()
;;
esac
}
...
...
@@ -2356,7 +2275,7 @@ _git_show ()
return
;;
esac
__git_complete_file
__git_complete_
revlist_
file
}
_git_show_branch
()
...
...
@@ -2388,8 +2307,6 @@ _git_stash ()
*
)
if
[
-z
"
$(
__git_find_on_cmdline
"
$save_opts
"
)
"
]
;
then
__gitcomp
"
$subcommands
"
else
COMPREPLY
=()
fi
;;
esac
...
...
@@ -2402,14 +2319,12 @@ _git_stash ()
__gitcomp
"--index --quiet"
;;
show,--
*
|
drop,--
*
|
branch,--
*
)
COMPREPLY
=()
;;
show,
*
|
apply,
*
|
drop,
*
|
pop,
*
|
branch,
*
)
__gitcomp_nl
"
$(
git
--git-dir
=
"
$(
__gitdir
)
"
stash list
\
|
sed
-n
-e
's/:.*//p'
)
"
;;
*
)
COMPREPLY
=()
;;
esac
fi
...
...
@@ -2419,7 +2334,7 @@ _git_submodule ()
{
__git_has_doubledash
&&
return
local
subcommands
=
"add status init update summary foreach sync"
local
subcommands
=
"add status init
deinit
update summary foreach sync"
if
[
-z
"
$(
__git_find_on_cmdline
"
$subcommands
"
)
"
]
;
then
case
"
$cur
"
in
--
*
)
...
...
@@ -2451,7 +2366,7 @@ _git_svn ()
--no-metadata --use-svm-props --use-svnsync-props
--log-window-size= --no-checkout --quiet
--repack-flags --use-log-author --localtime
--ignore-paths=
$remote_opts
--ignore-paths=
--include-paths=
$remote_opts
"
local
init_opts
=
"
--template= --shared= --trunk= --tags=
...
...
@@ -2526,7 +2441,6 @@ _git_svn ()
__gitcomp
"--revision= --parent"
;;
*
)
COMPREPLY
=()
;;
esac
fi
...
...
@@ -2551,13 +2465,10 @@ _git_tag ()
case
"
$prev
"
in
-m
|
-F
)
COMPREPLY
=()
;;
-
*
|
tag
)
if
[
$f
=
1
]
;
then
__gitcomp_nl
"
$(
__git_tags
)
"
else
COMPREPLY
=()
fi
;;
*
)
...
...
@@ -2579,9 +2490,10 @@ __git_main ()
i
=
"
${
words
[c]
}
"
case
"
$i
"
in
--git-dir
=
*
)
__git_dir
=
"
${
i
#--git-dir=
}
"
;;
--git-dir
)
((
c++
))
;
__git_dir
=
"
${
words
[c]
}
"
;;
--bare
)
__git_dir
=
"."
;;
--help
)
command
=
"help"
;
break
;;
-c
)
c
=
$
((
++
c
))
;;
-c
|
--work-tree
|
--namespace
)
((
c
++
))
;;
-
*
)
;;
*
)
command
=
"
$i
"
;
break
;;
esac
...
...
@@ -2599,6 +2511,7 @@ __git_main ()
--exec-path
--exec-path=
--html-path
--man-path
--info-path
--work-tree=
--namespace=
...
...
@@ -2693,35 +2606,19 @@ if [[ -n ${ZSH_VERSION-} ]]; then
compadd
-Q
-p
"
${
2
-
}
"
-f
--
${
=1
}
&&
_ret
=
0
}
__git_zsh_helper
()
{
emulate
-L
ksh
local
cur cword prev
cur
=
${
words
[CURRENT-1]
}
prev
=
${
words
[CURRENT-2]
}
let
cword
=
CURRENT-1
__
${
service
}
_main
}
_git
()
{
emulate
-L
zsh
local
_ret
=
1
__git_zsh_helper
let
_ret
&&
_default
-S
''
&&
_ret
=
0
local
_ret
=
1 cur cword prev
cur
=
${
words
[CURRENT]
}
prev
=
${
words
[CURRENT-1]
}
let
cword
=
CURRENT-1
emulate ksh
-c
__
${
service
}
_main
let
_ret
&&
_default
&&
_ret
=
0
return
_ret
}
compdef _git git gitk
return
elif
[[
-n
${
BASH_VERSION
-
}
]]
;
then
if
((
${
BASH_VERSINFO
[0]
}
< 4
))
;
then
# compopt is not supported
__git_index_file_list_filter
()
{
__git_index_file_list_filter_compat
}
fi
fi
__git_func_wrap
()
...
...
plugins/gitfast/git-prompt.sh
View file @
bf4d4db7
...
...
@@ -3,7 +3,7 @@
# Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
# Distributed under the GNU General Public License, version 2.0.
#
# This script allows you to see
the current branch
in your prompt.
# This script allows you to see
repository status
in your prompt.
#
# To enable:
#
...
...
@@ -13,23 +13,27 @@
# 3a) Change your PS1 to call __git_ps1 as
# command-substitution:
# Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
# ZSH: PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
# ZSH:
setopt PROMPT_SUBST ;
PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
# the optional argument will be used as format string.
# 3b) Alternatively, if you are using bash, __git_ps1 can be
# used for PROMPT_COMMAND with two parameters, <pre> and
# <post>, which are strings you would put in $PS1 before
# and after the status string generated by the git-prompt
# machinery. e.g.
# PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
# will show username, at-sign, host, colon, cwd, then
# various status string, followed by dollar and SP, as
# your prompt.
# 3b) Alternatively, for a slightly faster prompt, __git_ps1 can
# be used for PROMPT_COMMAND in Bash or for precmd() in Zsh
# with two parameters, <pre> and <post>, which are strings
# you would put in $PS1 before and after the status string
# generated by the git-prompt machinery. e.g.
# Bash: PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
# will show username, at-sign, host, colon, cwd, then
# various status string, followed by dollar and SP, as
# your prompt.
# ZSH: precmd () { __git_ps1 "%n" ":%~$ " "|%s" }
# will show username, pipe, then various status string,
# followed by colon, cwd, dollar and SP, as your prompt.
# Optionally, you can supply a third argument with a printf
# format string to finetune the output of the branch status
#
# The argument to __git_ps1 will be displayed only if you are currently
# in a git repository. The %s token will be the name of the current
# branch.
# The repository status will be displayed only if you are currently in a
# git repository. The %s token is the placeholder for the shown status.
#
# The prompt status always includes the current branch name.
#
# In addition, if you set GIT_PS1_SHOWDIRTYSTATE to a nonempty value,
# unstaged (*) and staged (+) changes will be shown next to the branch
...
...
@@ -77,31 +81,8 @@
#
# If you would like a colored hint about the current dirty state, set
# GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
# the colored output of "git status -sb".
# __gitdir accepts 0 or 1 arguments (i.e., location)
# returns location of .git repo
__gitdir
()
{
# Note: this function is duplicated in git-completion.bash
# When updating it, make sure you update the other one to match.
if
[
-z
"
${
1
-
}
"
]
;
then
if
[
-n
"
${
__git_dir
-
}
"
]
;
then
echo
"
$__git_dir
"
elif
[
-n
"
${
GIT_DIR
-
}
"
]
;
then
test
-d
"
${
GIT_DIR
-
}
"
||
return
1
echo
"
$GIT_DIR
"
elif
[
-d
.git
]
;
then
echo
.git
else
git rev-parse
--git-dir
2>/dev/null
fi
elif
[
-d
"
$1
/.git"
]
;
then
echo
"
$1
/.git"
else
echo
"
$1
"
fi
}
# the colored output of "git status -sb" and are available only when
# using __git_ps1 for PROMPT_COMMAND or precmd.
# stores the divergence from upstream in $p
# used by GIT_PS1_SHOWUPSTREAM
...
...
@@ -124,7 +105,7 @@ __git_ps1_show_upstream ()
fi
;;
svn-remote.
*
.url
)
svn_remote[
$((${#
svn_remote
[@]
}
+
1
))
]=
"
$value
"
svn_remote[
$((${#
svn_remote
[@]
}
+
1
))
]=
"
$value
"
svn_url_pattern+
=
"
\\
|
$value
"
upstream
=
svn+git
# default upstream is SVN if available, else git
;;
...
...
@@ -146,10 +127,11 @@ __git_ps1_show_upstream ()
svn
*
)
# get the upstream from the "git-svn-id: ..." in a commit message
# (git-svn uses essentially the same procedure internally)
local
svn_upstream
=(
$(
git log
--first-parent
-1
\
local
-a
svn_upstream
svn_upstream
=(
$(
git log
--first-parent
-1
\
--grep
=
"^git-svn-id:
\(
${
svn_url_pattern
#??
}
\)
"
2>/dev/null
)
)
if
[[
0
-ne
${#
svn_upstream
[@]
}
]]
;
then
svn_upstream
=
${
svn_upstream
[
${#
svn_upstream
[@]
}
- 2
]
}
svn_upstream
=
${
svn_upstream
[
${#
svn_upstream
[@]
}
- 2]
}
svn_upstream
=
${
svn_upstream
%@*
}
local
n_stop
=
"
${#
svn_remote
[@]
}
"
for
((
n
=
1
;
n <
=
n_stop
;
n++
))
;
do
...
...
@@ -222,6 +204,51 @@ __git_ps1_show_upstream ()
}
# Helper function that is meant to be called from __git_ps1. It
# injects color codes into the appropriate gitstring variables used
# to build a gitstring.
__git_ps1_colorize_gitstring
()
{
if
[[
-n
${
ZSH_VERSION
-
}
]]
;
then
local
c_red
=
'%F{red}'
local
c_green
=
'%F{green}'
local
c_lblue
=
'%F{blue}'
local
c_clear
=
'%f'
else
# Using \[ and \] around colors is necessary to prevent
# issues with command line editing/browsing/completion!
local
c_red
=
'\[\e[31m\]'
local
c_green
=
'\[\e[32m\]'
local
c_lblue
=
'\[\e[1;34m\]'
local
c_clear
=
'\[\e[0m\]'
fi
local
bad_color
=
$c_red
local
ok_color
=
$c_green
local
flags_color
=
"
$c_lblue
"
local
branch_color
=
""
if
[
$detached
=
no
]
;
then
branch_color
=
"
$ok_color
"
else
branch_color
=
"
$bad_color
"
fi
c
=
"
$branch_color$c
"
z
=
"
$c_clear$z
"
if
[
"
$w
"
=
"*"
]
;
then
w
=
"
$bad_color$w
"
fi
if
[
-n
"
$i
"
]
;
then
i
=
"
$ok_color$i
"
fi
if
[
-n
"
$s
"
]
;
then
s
=
"
$flags_color$s
"
fi
if
[
-n
"
$u
"
]
;
then
u
=
"
$bad_color$u
"
fi
r
=
"
$c_clear$r
"
}
# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
# when called from PS1 using command substitution
...
...
@@ -254,39 +281,83 @@ __git_ps1 ()
;;
esac
local
g
=
"
$(
__gitdir
)
"
if
[
-z
"
$g
"
]
;
then
local
repo_info rev_parse_exit_code
repo_info
=
"
$(
git rev-parse
--git-dir
--is-inside-git-dir
\
--is-bare-repository
--is-inside-work-tree
\
--short
HEAD 2>/dev/null
)
"
rev_parse_exit_code
=
"
$?
"
if
[
-z
"
$repo_info
"
]
;
then
if
[
$pcmode
=
yes
]
;
then
#In PC mode PS1 always needs to be set
PS1
=
"
$ps1pc_start$ps1pc_end
"
fi
else
local
r
=
""
local
b
=
""
return
fi
local
short_sha
if
[
"
$rev_parse_exit_code
"
=
"0"
]
;
then
short_sha
=
"
${
repo_info
##*
$'
\n
'
}
"
repo_info
=
"
${
repo_info
%
$'
\n
'
*
}
"
fi
local
inside_worktree
=
"
${
repo_info
##*
$'
\n
'
}
"
repo_info
=
"
${
repo_info
%
$'
\n
'
*
}
"
local
bare_repo
=
"
${
repo_info
##*
$'
\n
'
}
"
repo_info
=
"
${
repo_info
%
$'
\n
'
*
}
"
local
inside_gitdir
=
"
${
repo_info
##*
$'
\n
'
}
"
local
g
=
"
${
repo_info
%
$'
\n
'
*
}
"
local
r
=
""
local
b
=
""
local
step
=
""
local
total
=
""
if
[
-d
"
$g
/rebase-merge"
]
;
then
read
b 2>/dev/null <
"
$g
/rebase-merge/head-name"
read
step 2>/dev/null <
"
$g
/rebase-merge/msgnum"
read
total 2>/dev/null <
"
$g
/rebase-merge/end"
if
[
-f
"
$g
/rebase-merge/interactive"
]
;
then
r
=
"|REBASE-i"
b
=
"
$(
cat
"
$g
/rebase-merge/head-name"
)
"
elif
[
-d
"
$g
/rebase-merge"
]
;
then
else
r
=
"|REBASE-m"
b
=
"
$(
cat
"
$g
/rebase-merge/head-name"
)
"
fi
else
if
[
-d
"
$g
/rebase-apply"
]
;
then
read
step 2>/dev/null <
"
$g
/rebase-apply/next"
read
total 2>/dev/null <
"
$g
/rebase-apply/last"
if
[
-f
"
$g
/rebase-apply/rebasing"
]
;
then
read
b 2>/dev/null <
"
$g
/rebase-apply/head-name"
r
=
"|REBASE"
elif
[
-f
"
$g
/rebase-apply/applying"
]
;
then
r
=
"|AM"
else
r
=
"|AM/REBASE"
fi
elif
[
-f
"
$g
/MERGE_HEAD"
]
;
then
r
=
"|MERGING"
elif
[
-f
"
$g
/CHERRY_PICK_HEAD"
]
;
then
r
=
"|CHERRY-PICKING"
elif
[
-f
"
$g
/REVERT_HEAD"
]
;
then
r
=
"|REVERTING"
elif
[
-f
"
$g
/BISECT_LOG"
]
;
then
r
=
"|BISECTING"
fi
if
[
-n
"
$b
"
]
;
then
:
elif
[
-h
"
$g
/HEAD"
]
;
then
# symlink symbolic ref
b
=
"
$(
git symbolic-ref HEAD 2>/dev/null
)
"
else
if
[
-d
"
$g
/rebase-apply"
]
;
then
if
[
-f
"
$g
/rebase-apply/rebasing"
]
;
then
r
=
"|REBASE"
elif
[
-f
"
$g
/rebase-apply/applying"
]
;
then
r
=
"|AM"
else
r
=
"|AM/REBASE"
local head
=
""
if
!
read head
2>/dev/null <
"
$g
/HEAD"
;
then
if
[
$pcmode
=
yes
]
;
then
PS1
=
"
$ps1pc_start$ps1pc_end
"
fi
elif
[
-f
"
$g
/MERGE_HEAD"
]
;
then
r
=
"|MERGING"
elif
[
-f
"
$g
/CHERRY_PICK_HEAD"
]
;
then
r
=
"|CHERRY-PICKING"
elif
[
-f
"
$g
/BISECT_LOG"
]
;
then
r
=
"|BISECTING"
return
fi
b
=
"
$(
git symbolic-ref HEAD 2>/dev/null
)
"
||
{
# is it a symbolic ref?
b
=
"
${
head
#ref
:
}
"
if
[
"
$head
"
=
"
$b
"
]
;
then
detached
=
yes
b
=
"
$(
case
"
${
GIT_PS1_DESCRIBE_STYLE
-
}
"
in
...
...
@@ -300,100 +371,75 @@ __git_ps1 ()
git describe
--tags
--exact-match
HEAD
;;
esac
2>/dev/null
)
"
||
b
=
"
$(
cut
-c1-7
"
$g
/HEAD"
2>/dev/null
)
..."
||
b
=
"unknown"
b
=
"
$short_sha
..."
b
=
"(
$b
)"
}
fi
fi
fi
if
[
-n
"
$step
"
]
&&
[
-n
"
$total
"
]
;
then
r
=
"
$r
$step
/
$total
"
fi
local
w
=
""
local
i
=
""
local
s
=
""
local
u
=
""
local
c
=
""
local
p
=
""
local
w
=
""
local
i
=
""
local
s
=
""
local
u
=
""
local
c
=
""
local
p
=
""
if
[
"true"
=
"
$(
git rev-parse
--is-inside-git-dir
2>/dev/null
)
"
]
;
then
if
[
"true"
=
"
$(
git rev-parse
--is-bare-repository
2>/dev/null
)
"
]
;
then
c
=
"BARE:"
if
[
"true"
=
"
$inside_gitdir
"
]
;
then
if
[
"true"
=
"
$bare_repo
"
]
;
then
c
=
"BARE:"
else
b
=
"GIT_DIR!"
fi
elif
[
"true"
=
"
$inside_worktree
"
]
;
then
if
[
-n
"
${
GIT_PS1_SHOWDIRTYSTATE
-
}
"
]
&&
[
"
$(
git config
--bool
bash.showDirtyState
)
"
!=
"false"
]
then
git diff
--no-ext-diff
--quiet
--exit-code
||
w
=
"*"
if
[
-n
"
$short_sha
"
]
;
then
git diff-index
--cached
--quiet
HEAD
--
||
i
=
"+"
else
b
=
"GIT_DIR!"
fi
elif
[
"true"
=
"
$(
git rev-parse
--is-inside-work-tree
2>/dev/null
)
"
]
;
then
if
[
-n
"
${
GIT_PS1_SHOWDIRTYSTATE
-
}
"
]
&&
[
"
$(
git config
--bool
bash.showDirtyState
)
"
!=
"false"
]
then
git diff
--no-ext-diff
--quiet
--exit-code
||
w
=
"*"
if
git rev-parse
--quiet
--verify
HEAD
>
/dev/null
;
then
git diff-index
--cached
--quiet
HEAD
--
||
i
=
"+"
else
i
=
"#"
fi
fi
if
[
-n
"
${
GIT_PS1_SHOWSTASHSTATE
-
}
"
]
;
then
git rev-parse
--verify
refs/stash
>
/dev/null 2>&1
&&
s
=
"$"
i
=
"#"
fi
fi
if
[
-n
"
${
GIT_PS1_SHOWSTASHSTATE
-
}
"
]
&&
[
-r
"
$g
/refs/stash"
]
;
then
s
=
"$"
fi
if
[
-n
"
${
GIT_PS1_SHOWUNTRACKEDFILES
-
}
"
]
&&
[
"
$(
git config
--bool
bash.showUntrackedFiles
)
"
!=
"false"
]
&&
[
-n
"
$(
git ls-files
--others
--exclude-standard
)
"
]
then
u
=
"%
%
"
fi
if
[
-n
"
${
GIT_PS1_SHOWUNTRACKEDFILES
-
}
"
]
&&
[
"
$(
git config
--bool
bash.showUntrackedFiles
)
"
!=
"false"
]
&&
git ls-files
--others
--exclude-standard
--error-unmatch
--
'*'
>
/dev/null 2>/dev/null
then
u
=
"%
${
ZSH_VERSION
+%
}
"
fi
if
[
-n
"
${
GIT_PS1_SHOWUPSTREAM
-
}
"
]
;
then
__git_ps1_show_upstream
fi
if
[
-n
"
${
GIT_PS1_SHOWUPSTREAM
-
}
"
]
;
then
__git_ps1_show_upstream
fi
fi
local
f
=
"
$w$i$s$u
"
if
[
$pcmode
=
yes
]
;
then
local
gitstring
=
if
[
-n
"
${
GIT_PS1_SHOWCOLORHINTS
-
}
"
]
;
then
local
c_red
=
'\e[31m'
local
c_green
=
'\e[32m'
local
c_lblue
=
'\e[1;34m'
local
c_clear
=
'\e[0m'
local
bad_color
=
$c_red
local
ok_color
=
$c_green
local
branch_color
=
"
$c_clear
"
local
flags_color
=
"
$c_lblue
"
local
branchstring
=
"
$c
${
b
##refs/heads/
}
"
local
z
=
"
${
GIT_PS1_STATESEPARATOR
-
" "
}
"
if
[
$detached
=
no
]
;
then
branch_color
=
"
$ok_color
"
else
branch_color
=
"
$bad_color
"
fi
# NO color option unless in PROMPT_COMMAND mode
if
[
$pcmode
=
yes
]
&&
[
-n
"
${
GIT_PS1_SHOWCOLORHINTS
-
}
"
]
;
then
__git_ps1_colorize_gitstring
fi
# Setting gitstring directly with \[ and \] around colors
# is necessary to prevent wrapping issues!
gitstring
=
"
\[
$branch_color
\]
$branchstring
\[
$c_clear
\]
"
local
f
=
"
$w$i$s$u
"
local
gitstring
=
"
$c
${
b
##refs/heads/
}${
f
:+
$z$f
}
$r$p
"
if
[
-n
"
$w$i$s$u$r$p
"
]
;
then
gitstring
=
"
$gitstring
"
fi
if
[
"
$w
"
=
"*"
]
;
then
gitstring
=
"
$gitstring
\[
$bad_color
\]
$w
"
fi
if
[
-n
"
$i
"
]
;
then
gitstring
=
"
$gitstring
\[
$ok_color
\]
$i
"
fi
if
[
-n
"
$s
"
]
;
then
gitstring
=
"
$gitstring
\[
$flags_color
\]
$s
"
fi
if
[
-n
"
$u
"
]
;
then
gitstring
=
"
$gitstring
\[
$bad_color
\]
$u
"
fi
gitstring
=
"
$gitstring
\[
$c_clear
\]
$r$p
"
else
gitstring
=
"
$c
${
b
##refs/heads/
}${
f
:+
$f
}
$r$p
"
fi
if
[
$pcmode
=
yes
]
;
then
if
[[
-n
${
ZSH_VERSION
-
}
]]
;
then
gitstring
=
$(
printf
--
"
$printf_format
"
"
$gitstring
"
)
PS1
=
"
$ps1pc_start$gitstring$ps1pc_end
"
else
# NO color option unless in PROMPT_COMMAND mode
printf
--
"
$printf_format
"
"
$c
${
b
##refs/heads/
}${
f
:+
$f
}
$r$p
"
printf
-v
gitstring
--
"
$printf_format
"
"
$gitstring
"
fi
PS1
=
"
$ps1pc_start$gitstring$ps1pc_end
"
else
printf
--
"
$printf_format
"
"
$gitstring
"
fi
}
plugins/github/github.plugin.zsh
View file @
bf4d4db7
...
...
@@ -84,5 +84,14 @@ exist_gh() { # [DIRECTORY]
git push
-u
origin master
}
# git.io "GitHub URL"
#
# Shorten GitHub url, example:
# https://github.com/nvogel/dotzsh > http://git.io/8nU25w
# source: https://github.com/nvogel/dotzsh
# documentation: https://github.com/blog/985-git-io-github-url-shortener
#
git.io
()
{
curl
-i
-s
http://git.io
-F
"url=
$1
"
|
grep
"Location"
|
cut
-f
2
-d
" "
}
# End Functions #############################################################
plugins/go/go.plugin.zsh
deleted
100644 → 0
View file @
8f797134
# install in /etc/zsh/zshrc or your personal .zshrc
# gc
prefixes
=(
5 6 8
)
for
p
in
$prefixes
;
do
compctl
-g
"*.
${
p
}
"
${
p
}
l
compctl
-g
"*.go"
${
p
}
g
done
# standard go tools
compctl
-g
"*.go"
gofmt
# gccgo
compctl
-g
"*.go"
gccgo
# go tool
__go_tool_complete
()
{
typeset
-a
commands build_flags
commands+
=(
'build[compile packages and dependencies]'
'clean[remove object files]'
'doc[run godoc on package sources]'
'fix[run go tool fix on packages]'
'fmt[run gofmt on package sources]'
'get[download and install packages and dependencies]'
'help[display help]'
'install[compile and install packages and dependencies]'
'list[list packages]'
'run[compile and run Go program]'
'test[test packages]'
'tool[run specified go tool]'
'version[print Go version]'
'vet[run go tool vet on packages]'
)
if
((
CURRENT
==
2
))
;
then
# explain go commands
_values
'go tool commands'
${
commands
[@]
}
return
fi
build_flags
=(
'-a[force reinstallation of packages that are already up-to-date]'
'-n[print the commands but do not run them]'
"-p[number of parallel builds]:number"
'-x[print the commands]'
"-work[print temporary directory name and keep it]"
"-gcflags[flags for 5g/6g/8g]:flags"
"-ldflags[flags for 5l/6l/8l]:flags"
"-gccgoflags[flags for gccgo]:flags"
)
__go_list
()
{
local
expl importpaths
declare
-a
importpaths
importpaths
=(
$(
go list
${
words
[
$CURRENT
]
}
... 2>/dev/null
)
)
_wanted importpaths expl
'import paths'
compadd
"
$@
"
-
"
${
importpaths
[@]
}
"
}
case
${
words
[2]
}
in
clean|doc
)
_arguments
-s
-w
:
'*:importpaths:__go_list'
;;
fix|fmt|list|vet
)
_alternative
':importpaths:__go_list'
':files:_path_files -g "*.go"'
;;
install
)
_arguments
-s
-w
:
${
build_flags
[@]
}
\
"-v[show package names]"
\
'*:importpaths:__go_list'
;;
get
)
_arguments
-s
-w
:
\
${
build_flags
[@]
}
;;
build
)
_arguments
-s
-w
:
\
${
build_flags
[@]
}
\
"-v[show package names]"
\
"-o[output file]:file:_files"
\
"*:args:{ _alternative ':importpaths:__go_list' ':files:_path_files -g
\"
*.go
\"
' }"
;;
test
)
_arguments
-s
-w
:
\
${
build_flags
[@]
}
\
"-c[do not run, compile the test binary]"
\
"-i[do not run, install dependencies]"
\
"-v[print test output]"
\
"-x[print the commands]"
\
"-short[use short mode]"
\
"-parallel[number of parallel tests]:number"
\
"-cpu[values of GOMAXPROCS to use]:number list"
\
"-run[run tests and examples matching regexp]:regexp"
\
"-bench[run benchmarks matching regexp]:regexp"
\
"-benchtime[run each benchmark during n seconds]:duration"
\
"-timeout[kill test after that duration]:duration"
\
"-cpuprofile[write CPU profile to file]:file:_files"
\
"-memprofile[write heap profile to file]:file:_files"
\
"-memprofilerate[set heap profiling rate]:number"
\
"*:args:{ _alternative ':importpaths:__go_list' ':files:_path_files -g
\"
*.go
\"
' }"
;;
help
)
_values
"
${
commands
[@]
}
"
\
'gopath[GOPATH environment variable]'
\
'importpath[description of import paths]'
\
'remote[remote import path syntax]'
\
'testflag[description of testing flags]'
\
'testfunc[description of testing functions]'
;;
run
)
_arguments
-s
-w
:
\
${
build_flags
[@]
}
\
'*:file:_path_files -g "*.go"'
;;
tool
)
if
((
CURRENT
==
3
))
;
then
_values
"go tool"
$(
go tool
)
return
fi
case
${
words
[3]
}
in
[
568]g
)
_arguments
-s
-w
:
\
'-I[search for packages in DIR]:includes:_path_files -/'
\
'-L[show full path in file:line prints]'
\
'-S[print the assembly language]'
\
'-V[print the compiler version]'
\
'-e[no limit on number of errors printed]'
\
'-h[panic on an error]'
\
'-l[disable inlining]'
\
'-m[print optimization decisions]'
\
'-o[file specify output file]:file'
\
'-p[assumed import path for this code]:importpath'
\
'-u[disable package unsafe]'
\
"*:file:_files -g '*.go'"
;;
[
568]l
)
local
O
=
${
words
[3]%l
}
_arguments
-s
-w
:
\
'-o[file specify output file]:file'
\
'-L[search for packages in DIR]:includes:_path_files -/'
\
"*:file:_files -g '*.[ao
$O
]'"
;;
dist
)
_values
"dist tool"
banner bootstrap clean
env install
version
;;
*
)
# use files by default
_files
;;
esac
;;
esac
}
compdef __go_tool_complete go
plugins/go/go.plugin.zsh
0 → 120000
View file @
bf4d4db7
../golang/golang.plugin.zsh
\ No newline at end of file
plugins/golang/golang.plugin.zsh
View file @
bf4d4db7
# From : http://golang.org/misc/zsh/go?m=text
# install in /etc/zsh/zshrc or your personal .zshrc
# gc
prefixes
=(
5 6 8
)
for
p
in
$prefixes
;
do
compctl
-g
"*.
${
p
}
"
${
p
}
l
compctl
-g
"*.go"
${
p
}
g
compctl
-g
"*.
${
p
}
"
${
p
}
l
compctl
-g
"*.go"
${
p
}
g
done
# standard go tools
...
...
@@ -19,6 +20,7 @@ __go_tool_complete() {
'build[compile packages and dependencies]'
'clean[remove object files]'
'doc[run godoc on package sources]'
'env[print Go environment information]'
'fix[run go tool fix on packages]'
'fmt[run gofmt on package sources]'
'get[download and install packages and dependencies]'
...
...
@@ -39,12 +41,17 @@ __go_tool_complete() {
build_flags
=(
'-a[force reinstallation of packages that are already up-to-date]'
'-n[print the commands but do not run them]'
"-p[number of parallel builds]:number"
'-p[number of parallel builds]:number'
'-race[enable data race detection]'
'-x[print the commands]'
"-work[print temporary directory name and keep it]"
"-gcflags[flags for 5g/6g/8g]:flags"
"-ldflags[flags for 5l/6l/8l]:flags"
"-gccgoflags[flags for gccgo]:flags"
'-work[print temporary directory name and keep it]'
'-ccflags[flags for 5c/6c/8c]:flags'
'-gcflags[flags for 5g/6g/8g]:flags'
'-ldflags[flags for 5l/6l/8l]:flags'
'-gccgoflags[flags for gccgo]:flags'
'-compiler[name of compiler to use]:name'
'-installsuffix[suffix to add to package directory]:suffix'
'-tags[list of build tags to consider satisfied]:tags'
)
__go_list
()
{
local
expl importpaths
...
...
@@ -62,7 +69,7 @@ __go_tool_complete() {
install
)
_arguments
-s
-w
:
${
build_flags
[@]
}
\
"-v[show package names]"
\
'*:importpaths:__go_list'
'*:importpaths:__go_list'
;;
get
)
_arguments
-s
-w
:
\
...
...
@@ -87,7 +94,10 @@ __go_tool_complete() {
"-cpu[values of GOMAXPROCS to use]:number list"
\
"-run[run tests and examples matching regexp]:regexp"
\
"-bench[run benchmarks matching regexp]:regexp"
\
"-benchtime[run each benchmark during n seconds]:duration"
\
"-benchmem[print memory allocation stats]"
\
"-benchtime[run each benchmark until taking this long]:duration"
\
"-blockprofile[write goroutine blocking profile to file]:file"
\
"-blockprofilerate[set sampling rate of goroutine blocking profile]:number"
\
"-timeout[kill test after that duration]:duration"
\
"-cpuprofile[write CPU profile to file]:file:_files"
\
"-memprofile[write heap profile to file]:file:_files"
\
...
...
@@ -97,7 +107,7 @@ __go_tool_complete() {
help
)
_values
"
${
commands
[@]
}
"
\
'gopath[GOPATH environment variable]'
\
'
importpath
[description of
import path
s]'
\
'
packages
[description of
package list
s]'
\
'remote[remote import path syntax]'
\
'testflag[description of testing flags]'
\
'testfunc[description of testing functions]'
...
...
@@ -147,4 +157,4 @@ __go_tool_complete() {
esac
}
compdef __go_tool_complete go
\ No newline at end of file
compdef __go_tool_complete go
plugins/lol/lol.plugin.zsh
View file @
bf4d4db7
...
...
@@ -36,3 +36,15 @@ alias nomnom='killall'
alias
byes
=
'exit'
alias
cya
=
'reboot'
alias
kthxbai
=
'halt'
alias
pwned
=
'ssh'
alias
hackzor
=
'git init'
alias
rulz
=
'git push'
alias
bringz
=
'git pull'
alias
chicken
=
'git add'
alias
oanward
=
'git commit -m'
alias
ooanward
=
'git commit -am'
alias
letcat
=
'git checkout'
alias
violenz
=
'git rebase'
plugins/mercurial/mercurial.plugin.zsh
View file @
bf4d4db7
...
...
@@ -13,7 +13,7 @@ alias hglr='hg pull --rebase'
alias
hgo
=
'hg outgoing'
alias
hgp
=
'hg push'
alias
hgs
=
'hg status'
alias
hgsl
=
'log --limit 20 --template "{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n" '
alias
hgsl
=
'
hg
log --limit 20 --template "{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n" '
# this is the 'git commit --amend' equivalent
alias
hgca
=
'hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip'
...
...
plugins/meteor/_meteor
0 → 100644
View file @
bf4d4db7
#compdef meteor
#autoload
# Meteor Autocomplete plugin for Oh-My-Zsh, based on homebrew completion
# Original author: Dimitri JORGE (https://github.com/jorge-d)
_meteor_all_packages() {
packages=(`meteor list | cut -d" " -f1`)
}
_meteor_installed_packages() {
installed_packages=(`meteor list --using`)
}
local -a _1st_arguments
_1st_arguments=(
'run:[Default] Run this project in local development mode'
'create:Create a new project'
'update:Upgrade this project to the latest version of Meteor'
'add:Add a package to this project'
'remove:Remove a package from this project'
'list:List available packages'
'help:Display Meteor help'
'bundle:Pack this project up into a tarball'
'mongo:Connect to the Mongo database for the specified site'
'deploy:Deploy this project to Meteor'
'logs:Show logs for specified site'
'reset:Reset the project state. Erases the local database.'
'test-packages:Test one or more packages'
)
local expl
local -a packages installed_packages
if (( CURRENT == 2 )); then
_describe -t commands "meteor subcommand" _1st_arguments
return
fi
case "$words[2]" in
help)
_describe -t commands "meteor subcommand" _1st_arguments ;;
remove)
_meteor_installed_packages
_wanted installed_packages expl 'installed packages' compadd -a installed_packages ;;
add)
_meteor_all_packages
_wanted packages expl 'all packages' compadd -a packages ;;
esac
\ No newline at end of file
plugins/mvn/mvn.plugin.zsh
View file @
bf4d4db7
...
...
@@ -52,6 +52,11 @@ alias mvnc='mvn clean'
alias
mvncom
=
'mvn compile'
alias
mvnt
=
'mvn test'
alias
mvnag
=
'mvn archetype:generate'
alias
mvn-updates
=
'mvn versions:display-dependency-updates'
alias
mvntc7
=
'mvn tomcat7:run'
alias
mvntc
=
'mvn tomcat:run'
alias
mvnjetty
=
'mvn jetty:run'
function
listMavenCompletions
{
reply
=(
...
...
plugins/pip/_pip
View file @
bf4d4db7
...
...
@@ -20,6 +20,7 @@ _1st_arguments=(
'bundle:create pybundles (archives containing multiple packages)'
'freeze:output all currently installed packages (exact versions) to stdout'
'help:show available commands'
'show:show information about installed packages'
'install:install packages'
'search:search PyPI'
'uninstall:uninstall packages'
...
...
@@ -76,4 +77,7 @@ case "$words[1]" in
uninstall)
_pip_installed
_wanted installed_pkgs expl 'installed packages' compadd -a installed_pkgs ;;
show)
_pip_installed
_wanted installed_pkgs expl 'installed packages' compadd -a installed_pkgs ;;
esac
plugins/rails/rails.plugin.zsh
View file @
bf4d4db7
function
_rails_command
()
{
if
[
-e
"
script/server
"
]
;
then
ruby script/
$@
if
[
-e
"
bin/rails
"
]
;
then
bin/rails
$@
elif
[
-e
"script/rails"
]
;
then
ruby script/rails
$@
elif
[
-e
"
bin/rails
"
]
;
then
bin/rails
$@
elif
[
-e
"
script/server
"
]
;
then
ruby script/
$@
else
rails
$@
fi
...
...
@@ -51,6 +51,7 @@ alias rds='rake db:seed'
alias
rdd
=
'rake db:drop'
alias
rdtc
=
'rake db:test:clone'
alias
rdtp
=
'rake db:test:prepare'
alias
rdmtc
=
'rake db:migrate db:test:clone'
alias
rlc
=
'rake log:clear'
alias
rn
=
'rake notes'
...
...
plugins/rbenv/rbenv.plugin.zsh
View file @
bf4d4db7
...
...
@@ -10,12 +10,18 @@ FOUND_RBENV=0
rbenvdirs
=(
"
$HOME
/.rbenv"
"/usr/local/rbenv"
"/opt/rbenv"
)
if
_homebrew-installed
&&
_rbenv-from-homebrew-installed
;
then
rbenvdirs
=(
$(
brew
--prefix
rbenv
)
"
${
rbenvdirs
[@]
}
"
)
if
[[
$RBENV_ROOT
=
''
]]
;
then
RBENV_ROOT
=
"
$HOME
/.rbenv"
fi
fi
for
rbenvdir
in
"
${
rbenvdirs
[@]
}
"
;
do
if
[
-d
$rbenvdir
/bin
-a
$FOUND_RBENV
-eq
0
]
;
then
FOUND_RBENV
=
1
export
RBENV_ROOT
=
$rbenvdir
if
[[
$RBENV_ROOT
=
''
]]
;
then
RBENV_ROOT
=
$rbenvdir
fi
export
RBENV_ROOT
export
PATH
=
${
rbenvdir
}
/bin:
$PATH
eval
"
$(
rbenv init
--no-rehash
- zsh
)
"
...
...
plugins/sublime/sublime.plugin.zsh
View file @
bf4d4db7
# Sublime Text 2 Aliases
local
_sublime_darwin_paths
>
/dev/null 2>&1
_sublime_darwin_paths
=(
"/usr/local/bin/subl"
"
$HOME
/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
"
$HOME
/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
"
$HOME
/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
"/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
"/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
"/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
)
if
[[
$(
'uname'
)
==
'Linux'
]]
;
then
if
[
-f
'/usr/bin/sublime_text'
]
;
then
st_run
()
{
nohup
/usr/bin/sublime_text
$@
>
/dev/null &
}
else
st_run
()
{
nohup
/usr/bin/sublime-text
$@
>
/dev/null &
}
fi
alias
st
=
st_run
local
_sublime_linux_paths
>
/dev/null 2>&1
_sublime_linux_paths
=(
"
$HOME
/bin/sublime_text"
"/opt/sublime_text/sublime_text"
"/usr/bin/sublime_text"
"/usr/local/bin/sublime_text"
)
for
_sublime_path
in
$_sublime_linux_paths
;
do
if
[[
-a
$_sublime_path
]]
;
then
st_run
()
{
$_sublime_path
$@
>
/dev/null 2>&1 &|
}
alias
st
=
st_run
break
fi
done
elif
[[
$(
'uname'
)
==
'Darwin'
]]
;
then
local
_sublime_darwin_paths
>
/dev/null 2>&1
_sublime_darwin_paths
=(
"/usr/local/bin/subl"
"/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
"/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
"/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
"
$HOME
/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
"
$HOME
/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
"
$HOME
/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
)
for
_sublime_path
in
$_sublime_darwin_paths
;
do
if
[[
-a
$_sublime_path
]]
;
then
...
...
plugins/svn-fast-info/svn-fast-info.plugin.zsh
0 → 100644
View file @
bf4d4db7
# vim:ft=zsh ts=2 sw=2 sts=2 et
#
# Faster alternative to the current SVN plugin implementation.
#
# Works with svn 1.6, 1.7, 1.8.
# Use `svn_prompt_info` method to enquire the svn data.
# It's faster because his efficient use of svn (single svn call) which saves a lot on a huge codebase
# It displays the current status of the local files (added, deleted, modified, replaced, or else...)
#
# Use as a drop-in replacement of the svn plugin not as complementary plugin
function
svn_prompt_info
()
{
local
info
info
=
$(
svn info 2>&1
)
||
return
1
;
# capture stdout and stderr
local
repo_need_upgrade
=
$(
svn_repo_need_upgrade
$info
)
if
[[
-n
$repo_need_upgrade
]]
;
then
printf
'%s%s%s%s%s%s%s\n'
\
$ZSH_PROMPT_BASE_COLOR
\
$ZSH_THEME_SVN_PROMPT_PREFIX
\
$ZSH_PROMPT_BASE_COLOR
\
$repo_need_upgrade
\
$ZSH_PROMPT_BASE_COLOR
\
$ZSH_THEME_SVN_PROMPT_SUFFIX
\
$ZSH_PROMPT_BASE_COLOR
else
printf
'%s%s%s %s%s:%s%s%s%s%s'
\
$ZSH_PROMPT_BASE_COLOR
\
$ZSH_THEME_SVN_PROMPT_PREFIX
\
\
"
$(
svn_status_info
$info
)
"
\
$ZSH_PROMPT_BASE_COLOR
\
\
$ZSH_THEME_BRANCH_NAME_COLOR
\
$(
svn_current_branch_name
$info
)
\
$ZSH_PROMPT_BASE_COLOR
\
\
$(
svn_current_revision
$info
)
\
$ZSH_PROMPT_BASE_COLOR
\
\
$ZSH_THEME_SVN_PROMPT_SUFFIX
\
$ZSH_PROMPT_BASE_COLOR
fi
}
function
svn_repo_need_upgrade
()
{
grep
-q
"E155036"
<<<
${
1
:-
$(
svn info 2> /dev/null
)
}
&&
\
echo
"E155036: upgrade repo with svn upgrade"
}
function
svn_current_branch_name
()
{
grep
'^URL:'
<<<
"
${
1
:-
$(
svn info 2> /dev/null
)
}
"
| egrep
-o
'(tags|branches)/[^/]+|trunk'
}
function
svn_repo_root_name
()
{
grep
'^Repository\ Root:'
<<<
"
${
1
:-
$(
svn info 2> /dev/null
)
}
"
|
sed
's#.*/##'
}
function
svn_current_revision
()
{
echo
"
${
1
:-
$(
svn info 2> /dev/null
)
}
"
|
sed
-n
's/Revision: //p'
}
function
svn_status_info
()
{
local
svn_status_string
=
"
$ZSH_THEME_SVN_PROMPT_CLEAN
"
local
svn_status
=
"
$(
svn status 2> /dev/null
)
"
;
if
grep
-E
'^\s*A'
&> /dev/null
<<<
$svn_status
;
then
svn_status_string
=
"
$svn_status_string
${
ZSH_THEME_SVN_PROMPT_ADDITIONS
:-
+
}
"
;
fi
if
grep
-E
'^\s*D'
&> /dev/null
<<<
$svn_status
;
then
svn_status_string
=
"
$svn_status_string
${
ZSH_THEME_SVN_PROMPT_DELETIONS
:-
✖
}
"
;
fi
if
grep
-E
'^\s*M'
&> /dev/null
<<<
$svn_status
;
then
svn_status_string
=
"
$svn_status_string
${
ZSH_THEME_SVN_PROMPT_MODIFICATIONS
:-
✎
}
"
;
fi
if
grep
-E
'^\s*[R~]'
&> /dev/null
<<<
$svn_status
;
then
svn_status_string
=
"
$svn_status_string
${
ZSH_THEME_SVN_PROMPT_REPLACEMENTS
:-
∿
}
"
;
fi
if
grep
-E
'^\s*\?'
&> /dev/null
<<<
$svn_status
;
then
svn_status_string
=
"
$svn_status_string
${
ZSH_THEME_SVN_PROMPT_UNTRACKED
:-
?
}
"
;
fi
if
grep
-E
'^\s*[CI!L]'
&> /dev/null
<<<
$svn_status
;
then
svn_status_string
=
"
$svn_status_string
${
ZSH_THEME_SVN_PROMPT_DIRTY
:-
'!'
}
"
;
fi
echo
$svn_status_string
}
plugins/wd/_wd.sh
View file @
bf4d4db7
#compdef wd.sh
zstyle
":completion:*:descriptions"
format
"%B%d%b"
CONFIG
=
$HOME
/.warprc
local
-a
main_commands
main_commands
=(
add:
'Adds the current working directory to your warp points'
#add'\!':'Overwrites existing warp point' # TODO: Fix
rm
:
'Removes the given warp point'
ls
:
'Outputs all stored warp points'
show:
'Outputs warp points to current directory'
)
local
-a
points
while
read
line
do
points+
=
$(
awk
"{ gsub(/
\/
Users
\/
$USER
|
\/
home
\/
$USER
/,
\"
~
\"
); print }"
<<<
$line
)
done
<
$CONFIG
_wd
()
{
# init variables
local
curcontext
=
"
$curcontext
"
state line
typeset
-A
opt_args
# init state
_arguments
\
'1: :->command'
\
'2: :->argument'
case
$state
in
command
)
compadd
"
$@
"
add
rm ls
show
_describe
-t
warp-points
'Warp points:'
points
&&
ret
=
0
;;
argument
)
case
$words
[
2]
in
rm
|
add!
)
_describe
-t
warp-points
'warp points'
points
&&
ret
=
0
;;
*
)
esac
esac
#compdef wd
zstyle
':completion:*:descriptions'
format
'%B%d%b'
zstyle
':completion::complete:wd:*:commands'
group-name commands
zstyle
':completion::complete:wd:*:warp_points'
group-name warp_points
zstyle
':completion::complete:wd::'
list-grouped
# Call `_wd()` when when trying to complete the command `wd`
zmodload zsh/mapfile
function
_wd
()
{
local
ret
=
1
local
CONFIG
=
$HOME
/.warprc
# Stolen from
# http://stackoverflow.com/questions/9000698/completion-when-program-has-sub-commands
# local curcontext="$curcontext" state line
# typeset -A opt_args
local
-a
commands
local
-a
warp_points
warp_points
=(
"
${
(f)mapfile[
$CONFIG
]
}
"
)
# LIST="${mapfile[$FNAME]}" # Not required unless stuff uses it
commands
=(
'add:Adds the current working directory to your warp points'
'add!:Overwrites existing warp point'
'rm:Removes the given warp point'
'ls:Outputs all stored warp points'
'show:Outputs all warp points that point to the current directory'
'help:Show this extremely helpful text'
'..:Go back to last directory'
)
_arguments
-C
\
'1: :->first_arg'
\
'2: :->second_arg'
&&
ret
=
0
case
$state
in
first_arg
)
_describe
-t
warp_points
"Warp points"
warp_points
&&
ret
=
0
_describe
-t
commands
"Commands"
commands
&&
ret
=
0
;;
second_arg
)
case
$words
[
2]
in
add
\!
|
rm
)
_describe
-t
points
"Warp points"
warp_points
&&
ret
=
0
;;
add
)
_message
'Write the name of your warp point'
&&
ret
=
0
;;
esac
;;
esac
return
$ret
}
_wd
"
$@
"
# 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
plugins/wd/wd.plugin.zsh
View file @
bf4d4db7
...
...
@@ -6,4 +6,6 @@
#
# @github.com/mfaerevaag/wd
alias
wd
=
'. $ZSH/plugins/wd/wd.sh'
wd
()
{
.
$ZSH
/plugins/wd/wd.sh
}
plugins/wd/wd.sh
View file @
bf4d4db7
...
...
@@ -50,12 +50,12 @@ wd_warp()
wd_print_msg
$YELLOW
"Warping to current directory?"
else
((
n
=
$#1
- 1
))
wd_print_msg
$BLUE
"Warping..."
#
wd_print_msg $BLUE "Warping..."
cd
-
$n
>
/dev/null
fi
elif
[[
${
points
[
$1
]
}
!=
""
]]
then
wd_print_msg
$BLUE
"Warping..."
#
wd_print_msg $BLUE "Warping..."
cd
${
points
[
$1
]
}
else
wd_print_msg
$RED
"Unkown warp point '
$1
'"
...
...
@@ -64,16 +64,16 @@ wd_warp()
wd_add
()
{
if
[[
$
1
=
~
"^
\.
+$"
]]
if
[[
$
2
=
~
"^
\.
+$"
||
$2
=
~
"^
\s
*$"
]]
then
wd_print_msg
$RED
"Ille
a
gal warp point (see README)."
elif
[[
${
points
[
$
1
]
}
==
""
]]
||
$
2
wd_print_msg
$RED
"Illegal warp point (see README)."
elif
[[
${
points
[
$
2
]
}
==
""
]]
||
$
1
then
wd_remove
$
1
>
/dev/null
print
"
$
1
:
$PWD
"
>>
$CONFIG
wd_remove
$
2
>
/dev/null
print
"
$
2
:
$PWD
"
>>
$CONFIG
wd_print_msg
$GREEN
"Warp point added"
else
wd_print_msg
$YELLOW
"Warp point '
$
1
' alredy exists. Use 'add!' to overwrite."
wd_print_msg
$YELLOW
"Warp point '
$
2
' alre
a
dy exists. Use 'add!' to overwrite."
fi
}
...
...
@@ -83,7 +83,9 @@ wd_remove()
then
if
wd_tmp
=
`
sed
"/^
$1
:/d"
$CONFIG
`
then
echo
$wd_tmp
>
$CONFIG
# `>!` forces overwrite
# we need this if people use `setopt NO_CLOBBER`
echo
$wd_tmp
>!
$CONFIG
wd_print_msg
$GREEN
"Warp point removed"
else
wd_print_msg
$RED
"Warp point unsuccessfully removed. Sorry!"
...
...
@@ -131,9 +133,9 @@ wd_print_usage()
print
"
\n
Commands:"
print
"
\t
add
\t
Adds the current working directory to your warp points"
print
"
\t
add!
\t
Overwrites existing warp point"
print
"
\t
r
emove
Removes the given warp point"
print
"
\t
r
m
\t
Removes the given warp point"
print
"
\t
show
\t
Outputs warp points to current directory"
print
"
\t
l
ist
\t
Outputs all stored warp points"
print
"
\t
l
s
\t
Outputs all stored warp points"
print
"
\t
help
\t
Show this extremely helpful text"
}
...
...
@@ -141,7 +143,7 @@ wd_print_usage()
## run
# get opts
args
=
`
getopt
-o
a:r:lhs
-l
add:,r
emove:,list
,help,show
--
$*
`
args
=
`
getopt
-o
a:r:lhs
-l
add:,r
m:,ls
,help,show
--
$*
`
# check if no arguments were given
if
[[
$?
-ne
0
||
$#*
-eq
0
]]
...
...
@@ -161,49 +163,40 @@ else
for
i
do
case
"
$i
"
in
-a
|
--add
|
add
)
wd_add
$2
false
shift
shift
case
"
$i
"
in
-a
|
--add
|
add
)
wd_add
false
$2
break
;;
-a
!
|
--add
!
|
add!
)
wd_add
$2
true
shift
shift
wd_add
true
$2
break
;;
-r
|
--remove
|
rm
)
wd_remove
$2
shift
shift
-r
|
--remove
|
rm
)
wd_remove
$2
break
;;
-l
|
--list
|
ls
)
wd_list_all
shift
-l
|
--list
|
ls
)
wd_list_all
break
;;
-h
|
--help
|
help
)
wd_print_usage
shift
-h
|
--help
|
help
)
wd_print_usage
break
;;
-s
|
--show
|
show
)
wd_show
shift
-s
|
--show
|
show
)
wd_show
break
;;
*
)
wd_warp
$i
shift
break
;;
--
)
shift
;
break
;;
esac
--
)
break
;;
esac
done
fi
...
...
@@ -211,6 +204,6 @@ fi
## garbage collection
# if not, next time warp will pick up variables from this run
# remember, there's no sub shell
points
=
""
args
=
""
un
hash
-d
val &> /dev/null
# fixes issue #1
unset
points
unset
args
un
set
val &> /dev/null
# fixes issue #1
plugins/xcode/xcode.plugin.zsh
View file @
bf4d4db7
...
...
@@ -16,3 +16,4 @@ function xcsel {
alias
xcb
=
'xcodebuild'
alias
xcp
=
'xcode-select --print-path'
alias
simulator
=
'open $(xcode-select -p)/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone\ Simulator.app'
Prev
1
2
3
4
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment