diff options
author | taiyu <taiyu.len@gmail.com> | 2021-02-07 05:15:03 -0800 |
---|---|---|
committer | Oliver Kiddle <opk@zsh.org> | 2021-02-13 01:01:40 +0100 |
commit | 3714ee0b5868a30d7556acab337889849a3c8226 (patch) | |
tree | 45c6279283d66a61666d1c96043bfa029bf5a3de /Completion/Unix | |
parent | 3d6e5b6231f0d80873c6f83924a48df223121e72 (diff) | |
download | zsh-3714ee0b5868a30d7556acab337889849a3c8226.tar.gz zsh-3714ee0b5868a30d7556acab337889849a3c8226.tar.xz zsh-3714ee0b5868a30d7556acab337889849a3c8226.zip |
github #68: support section suffix completion for man pages
Support prepend and suffix values for insert-sections Add values for insert-sections for zstyle completion
Diffstat (limited to 'Completion/Unix')
-rw-r--r-- | Completion/Unix/Command/_man | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/Completion/Unix/Command/_man b/Completion/Unix/Command/_man index 7d55201e3..dba1d13dc 100644 --- a/Completion/Unix/Command/_man +++ b/Completion/Unix/Command/_man @@ -6,7 +6,6 @@ # - We assume that Linux distributions are using either man-db or mandoc # - @todo Would be nice to support completing the initial operand as a section # name (on non-Solaris systems) -# - @todo We don't support the man-db syntax <name>.<section> (e.g., `ls.1`) # - @todo We don't support the man-db feature of 'sub-pages' — that is, treating # pairs of operands like `git diff` as `git-diff` # - @todo Option exclusivity isn't super accurate @@ -415,7 +414,7 @@ _man() { } _man_pages() { - local pages sopt + local pages sopt tmp # What files corresponding to manual pages can end in. local suf='.((?|<->*|ntcl)(|.gz|.bz2|.z|.Z|.lzma))' @@ -444,13 +443,20 @@ _man_pages() { # `POSIX.1.5'. [[ $variant = solaris* ]] && sopt='-s ' - if ((CURRENT > 1 || noinsert)) || - ! zstyle -t ":completion:${curcontext}:manuals.$sect_dirname" insert-sections - then - compadd "$@" - ${pages%$~suf} - else - compadd "$@" -P "$sopt$sect_dirname " - ${pages%$~suf} + if ! ((CURRENT > 1 || noinsert)); then + zstyle -s ":completion:${curcontext}:manuals.$sect_dirname" insert-sections tmp fi + case "$tmp" in + prepend|true|on|yes|1) + compadd "$@" -P "$sopt$sect_dirname " - ${pages%$~suf} + ;; + suffix) + compadd "$@" -s ".$sect_dirname" - ${pages%$~suf} + ;; + *) + compadd "$@" - ${pages%$~suf} + ;; + esac } _man "$@" |