mirror of
https://github.com/conda-incubator/conda-zsh-completion.git
synced 2026-03-04 06:14:59 +08:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
49
_conda
49
_conda
@@ -49,6 +49,21 @@
|
|||||||
#
|
#
|
||||||
# zstyle ":conda_zsh_completion:*" show-unnamed true
|
# zstyle ":conda_zsh_completion:*" show-unnamed true
|
||||||
#
|
#
|
||||||
|
# To display environments autocompletion sorted in creation order add the following
|
||||||
|
# to your '.zshrc':
|
||||||
|
#
|
||||||
|
# zstyle ":conda_zsh_completion:*" sort-envs-by-time true
|
||||||
|
#
|
||||||
|
# The completion will display both global environments (envs located in conda_dir/envs and base env)
|
||||||
|
# and local environments (located in ~/.conda/envs).
|
||||||
|
# If enables sort-envs-by-time, it will display local environments first.
|
||||||
|
# To display global environments first, add the following to your '.zshrc':
|
||||||
|
#
|
||||||
|
# zstyle ":conda_zsh_completion:*" show-global-envs-first true
|
||||||
|
#
|
||||||
|
# If not enables sort-envs-by-time, then all environments will be sorted by alphabetical order,
|
||||||
|
# and this option is useless.
|
||||||
|
#
|
||||||
# To forcefully clean the completion cache, look in '~/.zcompcache' and remove
|
# To forcefully clean the completion cache, look in '~/.zcompcache' and remove
|
||||||
# file starting with 'conda_'. And/or do 'rm ~/.zcompdump*'.
|
# file starting with 'conda_'. And/or do 'rm ~/.zcompdump*'.
|
||||||
#
|
#
|
||||||
@@ -138,11 +153,37 @@ local state line context
|
|||||||
local -A opt_args
|
local -A opt_args
|
||||||
|
|
||||||
__conda_envs(){
|
__conda_envs(){
|
||||||
local -a envs
|
local -a envs unnamed sort globalfirst localenvs globalenvs
|
||||||
|
local -a ls_opts=("-1")
|
||||||
|
local -a describe_opts
|
||||||
# only parse environments.txt (including unnamed envs) if asked by the user
|
# only parse environments.txt (including unnamed envs) if asked by the user
|
||||||
zstyle -s ":conda_zsh_completion:*" show-unnamed tmp
|
zstyle -s ":conda_zsh_completion:*" show-unnamed unnamed
|
||||||
envs=($(echo base && ls -1 ${${CONDA_EXE}%bin/conda}/envs && (test -n "$tmp" && cat ${HOME:?}/.conda/environments.txt) | cut -f1 -d' ' | sed -e "s|^${HOME:?}/.conda/envs/||"))
|
zstyle -s ":conda_zsh_completion:*" sort-envs-by-time sort
|
||||||
_describe -t envs 'conda environments' envs
|
zstyle -s ":conda_zsh_completion:*" show-global-envs-first globalfirst
|
||||||
|
if test -n "$sort"; then
|
||||||
|
ls_opts+=("-t")
|
||||||
|
describe_opts+=("-V")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# global envs (if exists) and base env.
|
||||||
|
globalenvs=($([[ -d "${${CONDA_EXE}%bin/conda}/envs" ]] && ls $ls_opts ${${CONDA_EXE}%bin/conda}/envs))
|
||||||
|
globalenvs+=("base")
|
||||||
|
|
||||||
|
# local envs (if exists).
|
||||||
|
localenvs=($([[ -d "${HOME:?}/.conda/envs" ]] && ls $ls_opts ${HOME:?}/.conda/envs))
|
||||||
|
|
||||||
|
if test -n "$globalfirst"; then
|
||||||
|
envs=($globalenvs $localenvs)
|
||||||
|
else
|
||||||
|
envs=($localenvs $globalenvs)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# unmaned envs (if show-unammed).
|
||||||
|
if test -n "$unnamed"; then
|
||||||
|
envs+=($( (test -n "$unnamed" && cat ${HOME:?}/.conda/environments.txt) | cut -f1 -d' ' | sed -e "s|^${HOME:?}/.conda/envs/||"))
|
||||||
|
fi
|
||||||
|
|
||||||
|
_describe $describe_opts -t envs 'conda environments' envs
|
||||||
}
|
}
|
||||||
|
|
||||||
__conda_packages_installed(){
|
__conda_packages_installed(){
|
||||||
|
|||||||
Reference in New Issue
Block a user