Added helper functions.
This commit is contained in:
parent
90da5fc874
commit
9c24ac8211
6 changed files with 63 additions and 13 deletions
|
@ -2,7 +2,7 @@ setopt correct # Correct commands.
|
|||
setopt correct_all # Correct all arguments.
|
||||
|
||||
# The 'ls' Family
|
||||
if [[ "$DISABLE_COLOR" != 'true' ]]; then
|
||||
if ! check-bool "$DISABLE_COLOR"; then
|
||||
if [[ -f "$HOME/.dir_colors" ]] && ( (( $+commands[dircolors] )) || ( (( $+plugins[(er)gnu-utils] )) && (( $+commands[gdircolors] )) ) ); then
|
||||
eval $("${commands[dircolors]:-$commands[gdircolors]}" "$HOME/.dir_colors")
|
||||
alias ls='ls -hF --group-directories-first --color=auto'
|
||||
|
@ -80,7 +80,7 @@ else
|
|||
fi
|
||||
|
||||
# Diff/Make
|
||||
if [[ "$DISABLE_COLOR" != 'true' ]]; then
|
||||
if ! check-bool "$DISABLE_COLOR"; then
|
||||
if (( $+commands[colordiff] )); then
|
||||
alias diff='colordiff -u'
|
||||
compdef colordiff=diff
|
||||
|
|
|
@ -64,7 +64,7 @@ export VISUAL="vim"
|
|||
export PAGER='less'
|
||||
|
||||
# Grep
|
||||
if [[ "$DISABLE_COLOR" != 'true' ]]; then
|
||||
if ! check-bool "$DISABLE_COLOR"; then
|
||||
export GREP_COLOR='37;45'
|
||||
export GREP_OPTIONS='--color=auto'
|
||||
fi
|
||||
|
@ -89,7 +89,7 @@ if (( $+commands[lesspipe.sh] )); then
|
|||
fi
|
||||
|
||||
# Termcap
|
||||
if [[ "$DISABLE_COLOR" != 'true' ]]; then
|
||||
if ! check-bool "$DISABLE_COLOR"; then
|
||||
export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking
|
||||
export LESS_TERMCAP_md=$'\E[01;31m' # begin bold
|
||||
export LESS_TERMCAP_me=$'\E[0m' # end mode
|
||||
|
|
50
functions/helper.zsh
Normal file
50
functions/helper.zsh
Normal file
|
@ -0,0 +1,50 @@
|
|||
# Checks if a file can be autoloaded by trying to load it in a subshell.
|
||||
function autoloadable() {
|
||||
( unfunction $1 ; autoload -U +X $1 ) &> /dev/null
|
||||
}
|
||||
|
||||
# Checks boolean variable for "true" (case insensitive "1", "y", "yes", "t", "true", "o", and "on").
|
||||
function check-bool {
|
||||
[[ -n "$1" && "$1" == (1|[Yy]([Ee][Ss]|)|[Tt]([Rr][Uu][Ee]|)|[Oo]([Nn]|)) ]]
|
||||
}
|
||||
|
||||
# Trap signals were generated with 'kill -l'.
|
||||
# DEBUG, EXIT, and ZERR are ZSH signals.
|
||||
TRAP_SIGNALS=(
|
||||
ABRT ALRM BUS CHLD CONT EMT FPE HUP ILL INFO INT IO KILL PIPE PROF QUIT
|
||||
SEGV STOP SYS TERM TRAP TSTP TTIN TTOU URG USR1 USR2 VTALRM WINCH XCPU XFSZ
|
||||
DEBUG EXIT ZERR
|
||||
)
|
||||
|
||||
# Adds a function to a list to be called when a trap is triggered.
|
||||
function add-zsh-trap {
|
||||
if (( $# < 2 )); then
|
||||
echo "Usage: $0 type function"
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ -z "$TRAP_SIGNALS[(r)$1]" ]]; then
|
||||
echo "$0: unknown signal: $1"
|
||||
return 1
|
||||
fi
|
||||
|
||||
local trap_functions="TRAP${1}_FUNCTIONS"
|
||||
if (( ! ${(P)+trap_functions} )); then
|
||||
typeset -gaU "$trap_functions"
|
||||
fi
|
||||
eval "$trap_functions+="$2""
|
||||
|
||||
if (( ! $+functions[TRAP${1}] )); then
|
||||
eval "
|
||||
function TRAP${1}() {
|
||||
for trap_function in \"\$TRAP${1}_FUNCTIONS[@]\"; do
|
||||
if (( \$+functions[\$trap_function] )); then
|
||||
\"\$trap_function\" \"\$1\"
|
||||
fi
|
||||
done
|
||||
return \$(( 128 + \$1 ))
|
||||
}
|
||||
"
|
||||
fi
|
||||
}
|
||||
|
|
@ -14,7 +14,7 @@ fi
|
|||
# Partially supports Mac OS X Terminal since it can't set window and tab separately.
|
||||
# Usage: title "tab title" "window title"
|
||||
function terminal-title {
|
||||
if [[ "$DISABLE_AUTO_TITLE" != 'true' ]]; then
|
||||
if ! check-bool "$DISABLE_AUTO_TITLE"; then
|
||||
if [[ "$TERM" == screen* ]]; then
|
||||
# Set GNU Screen's hardstatus (usually truncated at 20 characters).
|
||||
printf "\ek%s\e\\" ${(V)1}
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
# FILE: compleat.plugin.zsh
|
||||
# DESCRIPTION: oh-my-zsh plugin file.
|
||||
# AUTHOR: Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
# VERSION: 1.0.1
|
||||
# VERSION: 1.0.2
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
if (( ${+commands[compleat]} )); then
|
||||
compleat_setup="${commands[compleat]:h:h}/share/compleat-1.0/compleat_setup"
|
||||
|
||||
if [[ -f "$compleat_setup" ]]; then
|
||||
if ! bashcompinit >/dev/null 2>&1; then
|
||||
if autoloadable bashcompinit; then
|
||||
autoload -Uz bashcompinit && bashcompinit
|
||||
fi
|
||||
|
||||
|
|
|
@ -85,27 +85,27 @@ function git-prompt-status() {
|
|||
fi
|
||||
|
||||
while IFS=$'\n' read line; do
|
||||
if [[ "$line" == \?\?\ * ]] && [[ untracked != 'yes' ]]; then
|
||||
if [[ "$line" == \?\?\ * ]] && ! check-bool "$untracked"; then
|
||||
untracked='yes'
|
||||
indicators="${ZSH_THEME_GIT_PROMPT_UNTRACKED}${indicators}"
|
||||
fi
|
||||
if [[ "$line" == (((A|M|D|T) )|(AD|AM|AT|MM))\ * ]] && [[ added != 'yes' ]]; then
|
||||
if [[ "$line" == (((A|M|D|T) )|(AD|AM|AT|MM))\ * ]] && ! check-bool "$added"; then
|
||||
added='yes'
|
||||
indicators="${ZSH_THEME_GIT_PROMPT_ADDED}${indicators}"
|
||||
fi
|
||||
if [[ "$line" == (( (M|T))|(AM|AT|MM))\ * ]] && [[ modified != 'yes' ]]; then
|
||||
if [[ "$line" == (( (M|T))|(AM|AT|MM))\ * ]] && ! check-bool "$modified"; then
|
||||
modified='yes'
|
||||
indicators="${ZSH_THEME_GIT_PROMPT_MODIFIED}${indicators}"
|
||||
fi
|
||||
if [[ "$line" == R\ \ * ]] && [[ renamed != 'yes' ]]; then
|
||||
if [[ "$line" == R\ \ * ]] && ! check-bool "$renamed"; then
|
||||
renamed='yes'
|
||||
indicators="${ZSH_THEME_GIT_PROMPT_RENAMED}${indicators}"
|
||||
fi
|
||||
if [[ "$line" == ( D|AD)\ * ]] && [[ deleted != 'yes' ]]; then
|
||||
if [[ "$line" == ( D|AD)\ * ]] && ! check-bool "$deleted"; then
|
||||
deleted='yes'
|
||||
indicators="${ZSH_THEME_GIT_PROMPT_DELETED}${indicators}"
|
||||
fi
|
||||
if [[ "$line" == UU\ * ]] && [[ unmerged != 'yes' ]]; then
|
||||
if [[ "$line" == UU\ * ]] && ! check-bool "$unmerged"; then
|
||||
unmerged='yes'
|
||||
indicators="${ZSH_THEME_GIT_PROMPT_UNMERGED}${indicators}"
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue