prezto_config/modules/prompt/functions/prompt_peepcode_setup

86 lines
2.1 KiB
Plaintext
Raw Permalink Normal View History

2012-09-07 05:19:03 +02:00
#
# 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 {
2013-05-22 02:51:19 +02:00
# Get Git repository information.
if (( $+functions[git-info] )); then
git-info
fi
2012-09-07 05:19:03 +02:00
2013-05-22 02:51:19 +02:00
# Get Ruby information.
2012-09-07 05:19:03 +02:00
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
2013-05-22 02:51:19 +02:00
# Add a hook for calling info functions before each command.
2012-09-07 05:19:03 +02:00
add-zsh-hook precmd prompt_peepcode_precmd
2013-05-22 02:51:19 +02:00
# 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'
2012-09-07 05:19:03 +02:00
# Set ruby-info parameters.
2012-10-02 04:00:12 +02:00
zstyle ':prezto:module:ruby:info:version' format ' %F{white}%v%f'
2012-09-07 05:19:03 +02:00
# Define prompts.
PROMPT="
2012-09-07 05:19:03 +02:00
%~
%(?.%F{green}${1:-☻ }%f.%F{red}${1:-☻ }%f) "
2013-05-22 02:51:19 +02:00
RPROMPT='${ruby_info[version]}${git_info[rprompt]}'
2012-09-07 05:19:03 +02:00
}
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
}
2012-09-07 05:19:03 +02:00
prompt_peepcode_setup "$@"