mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2025-12-19 02:02:32 +01:00
feat(virtualenv): Use $VIRTUAL_ENV_PROMPT if set
Modify the `virtualenv_prompt_info` function to use the prompt string specified when creating the virtual environment, instead of just the basename of the environment. If `VIRTUAL_ENV_PROMPT` is not set, fall back to just using the basename of `$VIRTUAL_ENV`.
This commit is contained in:
parent
f97e871c33
commit
480f254157
2 changed files with 16 additions and 3 deletions
|
|
@ -7,8 +7,11 @@ To use it, add `virtualenv` to the plugins array of your zshrc file:
|
|||
plugins=(... virtualenv)
|
||||
```
|
||||
|
||||
The plugin creates a `virtualenv_prompt_info` function that you can use in your theme, which displays
|
||||
the basename of the current `$VIRTUAL_ENV`. It uses two variables to control how that is shown:
|
||||
The plugin creates a `virtualenv_prompt_info` function that you can use in your theme. It
|
||||
displays the prompt string set when creating the virtual environment (via the `--prompt` option),
|
||||
falling back to the basename of the current `$VIRTUAL_ENV`.
|
||||
|
||||
It uses two variables to control how that is shown:
|
||||
|
||||
- `ZSH_THEME_VIRTUALENV_PREFIX`: sets the prefix of the VIRTUAL_ENV. Defaults to `[`.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,16 @@
|
|||
function virtualenv_prompt_info(){
|
||||
[[ -n ${VIRTUAL_ENV} ]] || return
|
||||
echo "${ZSH_THEME_VIRTUALENV_PREFIX=[}${VIRTUAL_ENV:t:gs/%/%%}${ZSH_THEME_VIRTUALENV_SUFFIX=]}"
|
||||
# Some versions of virtualenv (e.g the version bundled with 'uv') wrap the
|
||||
# prompt in parentheses with a trailing space.
|
||||
local venv_prompt="${(*)VIRTUAL_ENV_PROMPT:/#%(#b)\((*)\) /${match[1]}}"
|
||||
|
||||
if [ -z ${venv_prompt} ]; then
|
||||
# Older versions of virtualenv do not set VIRTUAL_ENV_PROMPT, so fall back
|
||||
# to the basename of the virtualenv path.
|
||||
venv_prompt="${VIRTUAL_ENV:t}"
|
||||
fi
|
||||
|
||||
echo "${ZSH_THEME_VIRTUALENV_PREFIX=[}${venv_prompt:gs/%/%%}${ZSH_THEME_VIRTUALENV_SUFFIX=]}"
|
||||
}
|
||||
|
||||
# disables prompt mangling in virtual_env/bin/activate
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue