diff options
author | Sebastian Stark <sstark+zsh@mailbox.org> | 2023-02-21 23:12:47 +0100 |
---|---|---|
committer | Oliver Kiddle <opk@zsh.org> | 2023-02-24 14:40:38 +0100 |
commit | bb36b80178e38adf67188a7367b88dd9de6b39db (patch) | |
tree | 2f1fc8b1247177b104bd5f5da370c7dc8477a5eb /Completion/Zsh | |
parent | f604645d06d03a43de8c0c7192be0fda59c26758 (diff) | |
download | zsh-bb36b80178e38adf67188a7367b88dd9de6b39db.tar.gz zsh-bb36b80178e38adf67188a7367b88dd9de6b39db.tar.xz zsh-bb36b80178e38adf67188a7367b88dd9de6b39db.zip |
51470 (tweaked, c.f. 51476): Separate cdpath elements in path-directories completion
Diffstat (limited to 'Completion/Zsh')
-rw-r--r-- | Completion/Zsh/Command/_cd | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/Completion/Zsh/Command/_cd b/Completion/Zsh/Command/_cd index 46237e73d..961d121e0 100644 --- a/Completion/Zsh/Command/_cd +++ b/Completion/Zsh/Command/_cd @@ -70,8 +70,15 @@ else tmpcdpath=(${${(@)cdpath:#.}:#$PWD}) - (( $#tmpcdpath )) && - alt=( 'path-directories:directory in cdpath:_path_files -W tmpcdpath -/' ) + if zstyle -t ":completion:${curcontext}:path-directories" separate-sections; then + local elem + for ((elem=1; elem <= $#tmpcdpath; elem++)); do + alt+=( "path-directories-$elem:directory in $tmpcdpath[$elem]:_path_files -W 'tmpcdpath[$elem]' -/" ) + done + else + (( $#tmpcdpath )) && + alt=( 'path-directories:directory in cdpath:_path_files -W tmpcdpath -/' ) + fi # With cdablevars, we can complete foo as if ~foo/ if [[ -o cdablevars && -n "$PREFIX" && "$PREFIX" != <-> ]]; then |