diff --git a/crates/uv-virtualenv/src/activator/activate.elv b/crates/uv-virtualenv/src/activator/activate.elv new file mode 100644 index 000000000..b4593743b --- /dev/null +++ b/crates/uv-virtualenv/src/activator/activate.elv @@ -0,0 +1,16 @@ +use path + +var venv-bin = (path:join '{{ VIRTUAL_ENV_DIR }}' '{{ BIN_NAME }}') + +var paths-bak = $paths +set paths = [$venv-bin $@paths] + +set-env VIRTUAL_ENV '{{ VIRTUAL_ENV_DIR }}' +set-env VIRTUAL_ENV_PROMPT '{{ VIRTUAL_PROMPT }}' + +edit:add-var deactivate~ { + set paths = $paths-bak + unset-env VIRTUAL_ENV + unset-env VIRTUAL_ENV_PROMPT + edit:del-var deactivate~ +} diff --git a/crates/uv-virtualenv/src/virtualenv.rs b/crates/uv-virtualenv/src/virtualenv.rs index bad380c4c..b4eca153a 100644 --- a/crates/uv-virtualenv/src/virtualenv.rs +++ b/crates/uv-virtualenv/src/virtualenv.rs @@ -24,6 +24,7 @@ use crate::{Error, Prompt}; const ACTIVATE_TEMPLATES: &[(&str, &str)] = &[ ("activate", include_str!("activator/activate")), ("activate.csh", include_str!("activator/activate.csh")), + ("activate.elv", include_str!("activator/activate.elv")), ("activate.fish", include_str!("activator/activate.fish")), ("activate.nu", include_str!("activator/activate.nu")), ("activate.ps1", include_str!("activator/activate.ps1")),