@@ -46,20 +46,24 @@ export-env {
4646 let venv_path = ([$virtual_env $bin ] | path join )
4747 let new_path = ($env | get $path_name | prepend $venv_path )
4848
49+ # If there is no default prompt, then use the env name instead
50+ let virtual_env_prompt = (if (' __VIRTUAL_PROMPT__' | is-empty ) {
51+ ($virtual_env | path basename )
52+ } else {
53+ ' __VIRTUAL_PROMPT__'
54+ })
55+
4956 let new_env = {
50- $path_name : $new_path
51- VIRTUAL_ENV : $virtual_env
57+ $path_name : $new_path
58+ VIRTUAL_ENV : $virtual_env
59+ VIRTUAL_ENV_PROMPT : $virtual_env_prompt
5260 }
5361
5462 let new_env = (if (is-env-true ' VIRTUAL_ENV_DISABLE_PROMPT' ) {
5563 $new_env
5664 } else {
5765 # Creating the new prompt for the session
58- let virtual_prompt = (if (' __VIRTUAL_PROMPT__' | is-empty ) {
59- $' (char lparen )($virtual_env | path basename )(char rparen ) '
60- } else {
61- ' (__VIRTUAL_PROMPT__) '
62- })
66+ let virtual_prefix = $' (char lparen )($virtual_env_prompt )(char rparen ) '
6367
6468 # Back up the old prompt builder
6569 let old_prompt_command = (if (has-env ' PROMPT_COMMAND' ) {
@@ -68,20 +72,19 @@ export-env {
6872 ' '
6973 })
7074
71- # If there is no default prompt, then only the env is printed in the prompt
7275 let new_prompt = (if (has-env ' PROMPT_COMMAND' ) {
7376 if ' closure' in ($old_prompt_command | describe ) {
74- {|| $' ($virtual_prompt )(do $old_prompt_command )' }
77+ {|| $' ($virtual_prefix )(do $old_prompt_command )' }
7578 } else {
76- {|| $' ($virtual_prompt )($old_prompt_command )' }
79+ {|| $' ($virtual_prefix )($old_prompt_command )' }
7780 }
7881 } else {
79- {|| $' ($virtual_prompt )' }
82+ {|| $' ($virtual_prefix )' }
8083 })
8184
8285 $new_env | merge {
8386 PROMPT_COMMAND : $new_prompt
84- VIRTUAL_PROMPT : $virtual_prompt
87+ VIRTUAL_PREFIX : $virtual_prefix
8588 }
8689 })
8790
0 commit comments