prezto_config/modules/prompt/functions/prompt_peepcode_setup
2014-11-11 20:51:47 -05:00

85 lines
2.1 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#
# A simple theme from PeepCode.
# http://peepcode.com/blog/2012/my-command-line-prompt
#
# Authors:
# Geoffrey Grosenbach <boss@topfunky.com>
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Screenshots:
# http://i.imgur.com/LhgmW.png
#
function prompt_peepcode_precmd {
# Get Git repository information.
if (( $+functions[git-info] )); then
git-info
fi
# Get Ruby information.
if (( $+functions[ruby-info] )); then
ruby-info
fi
}
function prompt_peepcode_setup {
setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS
prompt_opts=(cr percent subst)
# Load required functions.
autoload -Uz add-zsh-hook
autoload -Uz vcs_info
# Add a hook for calling info functions before each command.
add-zsh-hook precmd prompt_peepcode_precmd
# Set git-info parameters.
zstyle ':prezto:module:git:info' verbose 'no'
zstyle ':prezto:module:git:info:action' format ' +%s'
zstyle ':prezto:module:git:info:branch' format ' %F{8}%b%f'
zstyle ':prezto:module:git:info:commit' format ' %F{white}%.7c%f'
zstyle ':prezto:module:git:info:indexed' format ' '
zstyle ':prezto:module:git:info:unindexed' format ' '
zstyle ':prezto:module:git:info:untracked' format ' '
zstyle ':prezto:module:git:info:dirty' format ' %F{8}✗%f'
zstyle ':prezto:module:git:info:keys' format 'rprompt' '%b%c%s%D'
# Set ruby-info parameters.
zstyle ':prezto:module:ruby:info:version' format ' %F{white}%v%f'
# Define prompts.
PROMPT="
%~
%(?.%F{green}${1:-☻ }%f.%F{red}${1:-☻ }%f) "
RPROMPT='${ruby_info[version]}${git_info[rprompt]}'
}
function prompt_peepcode_help {
cat <<EOH
This prompt's last command exit status symbol is customizable:
prompt peepcode [<symbol>]
If this option is not provided, the symbol defaults to ☻.
EOH
}
function prompt_peepcode_preview {
local +h PROMPT='%# '
local +h RPROMPT=''
local +h SPROMPT=''
if (( $# > 0 )); then
prompt_preview_theme 'peepcode' "$@"
else
prompt_preview_theme 'peepcode'
print
prompt_preview_theme 'peepcode' ""
print
prompt_preview_theme 'peepcode' "$"
fi
}
prompt_peepcode_setup "$@"