mirror of
https://github.com/fish-shell/fish-shell
synced 2025-01-14 14:03:58 +00:00
Cache pip{,2,3,env} completions
These take a *lot* of time - `pip3` takes 180ms, `pipenv` takes 320ms on my system. Note that this removes a number of obsolete workarounds - pip's was fixed in 2017 (and pip2 is less and less of a thing), pipenv's change was in 2019. Since these are packaging tools with access to the internet they should really be kept up-to-date, so it is unlikely someone still uses these old versions.
This commit is contained in:
parent
e5b2c3e4be
commit
b4d9189fd3
4 changed files with 8 additions and 20 deletions
|
@ -1 +1,2 @@
|
||||||
pip completion --fish 2>/dev/null | source
|
__fish_cache_sourced_completions pip completion --fish 2>/dev/null
|
||||||
|
or pip completion --fish 2>/dev/null | source
|
||||||
|
|
|
@ -1,5 +1,2 @@
|
||||||
# pip[2|3] emits (or emitted) completions with the wrong command name
|
__fish_cache_sourced_completions pip2 completion --fish 2>/dev/null
|
||||||
# See discussion at https://github.com/fish-shell/fish-shell/pull/4448
|
or pip2 completion --fish 2>/dev/null | source
|
||||||
# and pip bug at https://github.com/pypa/pip/pull/4755
|
|
||||||
# Keep this even after pip fix is upstreamed for users not on the latest pip
|
|
||||||
pip2 completion --fish 2>/dev/null | string replace -r -- " -c\s+pip\b" " -c pip2" | source
|
|
||||||
|
|
|
@ -1,5 +1,2 @@
|
||||||
# pip[2|3] emits (or emitted) completions with the wrong command name
|
__fish_cache_sourced_completions pip3 completion --fish 2>/dev/null
|
||||||
# See discussion at https://github.com/fish-shell/fish-shell/pull/4448
|
or pip3 completion --fish 2>/dev/null | source
|
||||||
# and pip bug at https://github.com/pypa/pip/pull/4755
|
|
||||||
# Keep this even after pip fix is upstreamed for users not on the latest pip
|
|
||||||
pip3 completion --fish 2>/dev/null | string replace -r -- " -c\s+pip\b" " -c pip3" | source
|
|
||||||
|
|
|
@ -1,12 +1,5 @@
|
||||||
# try new completion generation of click first
|
_PIPENV_COMPLETE=fish_source __fish_cache_sourced_completions pipenv 2>/dev/null
|
||||||
set -l comps (_PIPENV_COMPLETE=fish_source pipenv 2>/dev/null)
|
or _PIPENV_COMPLETE=fish_source pipenv 2>/dev/null | source
|
||||||
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
|
# 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
|
complete -c pipenv -n "__fish_seen_subcommand_from run" -a "(__fish_complete_subcommand --fcs-skip=2)" -x
|
||||||
|
|
Loading…
Reference in a new issue