summaryrefslogtreecommitdiff
path: root/plugins/uv/uv.plugin.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/uv/uv.plugin.zsh')
-rw-r--r--plugins/uv/uv.plugin.zsh47
1 files changed, 47 insertions, 0 deletions
diff --git a/plugins/uv/uv.plugin.zsh b/plugins/uv/uv.plugin.zsh
new file mode 100644
index 000000000..0c0795e56
--- /dev/null
+++ b/plugins/uv/uv.plugin.zsh
@@ -0,0 +1,47 @@
+# Return immediately if uv is not found
+if (( ! ${+commands[uv]} )); then
+ return
+fi
+
+alias uv="noglob uv"
+
+alias uva='uv add'
+alias uvexp='uv export --format requirements-txt --no-hashes --output-file requirements.txt --quiet'
+alias uvi='uv init'
+alias uvinw='uv init --no-workspace'
+alias uvl='uv lock'
+alias uvlr='uv lock --refresh'
+alias uvlu='uv lock --upgrade'
+alias uvp='uv pip'
+alias uvpi='uv python install'
+alias uvpl='uv python list'
+alias uvpu='uv python uninstall'
+alias uvpy='uv python'
+alias uvpp='uv python pin'
+alias uvr='uv run'
+alias uvrm='uv remove'
+alias uvs='uv sync'
+alias uvsr='uv sync --refresh'
+alias uvsu='uv sync --upgrade'
+alias uvtr='uv tree'
+alias uvup='uv self update'
+alias uvv='uv venv'
+
+# If the completion file doesn't exist yet, we need to autoload it and
+# bind it. Otherwise, compinit will have already done that.
+if [[ ! -f "$ZSH_CACHE_DIR/completions/_uv" ]]; then
+ typeset -g -A _comps
+ autoload -Uz _uv
+ _comps[uv]=_uv
+fi
+
+if [[ ! -f "$ZSH_CACHE_DIR/completions/_uvx" ]]; then
+ typeset -g -A _comps
+ autoload -Uz _uvx
+ _comps[uvx]=_uvx
+fi
+
+# uv and uvx are installed together (uvx is an alias to `uv tool run`)
+# Overwrites the file each time as completions might change with uv versions.
+uv generate-shell-completion zsh >| "$ZSH_CACHE_DIR/completions/_uv" &|
+uvx --generate-shell-completion zsh >| "$ZSH_CACHE_DIR/completions/_uvx" &|