diff --git a/share/completions/pipenv.fish b/share/completions/pipenv.fish index 84d85e25c..4dcd1be23 100644 --- a/share/completions/pipenv.fish +++ b/share/completions/pipenv.fish @@ -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