From ba794028ab1ac909c25d10a99ef239a9369b0078 Mon Sep 17 00:00:00 2001 From: Matt Sweeney Date: Tue, 30 Apr 2013 17:10:02 -0700 Subject: [PATCH 1/2] Add prefix/suffix options to virtualenv prompt Following the pattern used in `git_prompt_info()`: https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/git.zsh#L5 Allow `virtualenv_prompt_info()` to (optionally) accept a prefix and suffix set in the theme --- plugins/virtualenv/virtualenv.plugin.zsh | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/plugins/virtualenv/virtualenv.plugin.zsh b/plugins/virtualenv/virtualenv.plugin.zsh index e8458389f..934f54aa3 100644 --- a/plugins/virtualenv/virtualenv.plugin.zsh +++ b/plugins/virtualenv/virtualenv.plugin.zsh @@ -1,8 +1,20 @@ -function virtualenv_prompt_info(){ +function virtualenv_check() { local virtualenv_path="$VIRTUAL_ENV" if [[ -n $virtualenv_path ]]; then local virtualenv_name=`basename $virtualenv_path` - printf "%s[%s] " "%{${fg[yellow]}%}" $virtualenv_name + printf "%s" $virtualenv_name + fi +} + +function virtualenv_prompt_info() { + local prefix="$ZSH_THEME_VIRTUALENV_PROMPT_PREFIX" + local suffix="$ZSH_THEME_VIRTUALENV_PROMPT_SUFFIX" + if [[ -n $(virtualenv_check) ]]; then + if [[ -n $prefix ]]; then + printf "%s%s%s" $prefix $(virtualenv_check) $suffix + else + printf "%s[%s] " "%{${fg[yellow]}%}" $(virtualenv_check) + fi fi } From 7f75b015e6a06533125c7b9b5ed6c6e2a5238f5b Mon Sep 17 00:00:00 2001 From: Matt Sweeney Date: Tue, 30 Apr 2013 18:11:28 -0700 Subject: [PATCH 2/2] Add virtualenv plugin support to 'blinks' theme If the plugin is not activated, degrade gracefully --- themes/blinks.zsh-theme | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/themes/blinks.zsh-theme b/themes/blinks.zsh-theme index ddb32f7c3..1bf69bf0f 100644 --- a/themes/blinks.zsh-theme +++ b/themes/blinks.zsh-theme @@ -23,8 +23,18 @@ ZSH_THEME_GIT_PROMPT_SUFFIX="%{%f%k%b%K{${bkg}}%B%F{green}%}]" ZSH_THEME_GIT_PROMPT_DIRTY=" %{%F{red}%}*%{%f%k%b%}" ZSH_THEME_GIT_PROMPT_CLEAN="" +ZSH_THEME_VIRTUALENV_PROMPT_PREFIX=" (%{%B%F{blue}%}" +ZSH_THEME_VIRTUALENV_PROMPT_SUFFIX="%{%f%k%b%K{${bkg}}%B%F{green}%})" + +function _virtualenv() { + # check if the virtualenv plugin is activated + if [[ ${plugins[(r)virtualenv]} == virtualenv ]] then; + echo "%s" $(virtualenv_prompt_info) + fi +} + PROMPT='%{%f%k%b%} -%{%K{${bkg}}%B%F{green}%}%n%{%B%F{blue}%}@%{%B%F{cyan}%}%m%{%B%F{green}%} %{%b%F{yellow}%K{${bkg}}%}%~%{%B%F{green}%}$(git_prompt_info)%E%{%f%k%b%} +%{%K{${bkg}}%B%F{green}%}%n%{%B%F{blue}%}@%{%B%F{cyan}%}%m%{%B%F{green}%} %{%b%F{yellow}%K{${bkg}}%}%~%{%B%F{green}%}$(_virtualenv)$(git_prompt_info)%E%{%f%k%b%} %{%K{${bkg}}%}$(_prompt_char)%{%K{${bkg}}%} %#%{%f%k%b%} ' RPROMPT='!%{%B%F{cyan}%}%!%{%f%k%b%}'