completions pipenv: made pipenv completions compatible with recent versions

pipenv switched from older click-completion package to new built-in completions
from click framework in v2021.11.9.
This command achieves compatibility with both, older and more recent versions.
This commit is contained in:
exploide 2022-09-07 12:46:26 +02:00 committed by Fabian Boehm
parent 15a89718ae
commit 3e3996c9a5

View file

@ -1,7 +1,12 @@
if command -sq pipenv
# pipenv determines which completions to print via some automagic that might not be perfect.
# Force it to be correct.
_PIPENV_COMPLETE=source-fish pipenv --completion 2>/dev/null | source
# try new completion generation of click first
set -l comps (_PIPENV_COMPLETE=fish_source pipenv 2>/dev/null)
if test -z "$comps" || string match -q 'Usage:*' -- $comps
# fall back to older click-completion used in prior versions
set comps (_PIPENV_COMPLETE=source-fish pipenv --completion 2>/dev/null)
end
set -q comps[1] && printf %s\n $comps | source
# manual workaround for pipenv run command completion until this is supported by the built-in mechanism
complete -c pipenv -n "__fish_seen_subcommand_from run" -a "(__fish_complete_subcommand --fcs-skip=2)" -x