@@ -5,7 +5,7 @@ export _VIRTUALENVWRAPPER_API="$_VIRTUALENVWRAPPER_API mkvirtualenv rmvirtualenv
5
5
6
6
if [ -z " $VIRTUALENVWRAPPER_SCRIPT " ]
7
7
then
8
- export VIRTUALENVWRAPPER_SCRIPT=" $( which virtualenvwrapper.sh) "
8
+ export VIRTUALENVWRAPPER_SCRIPT=" $( command \ w hich virtualenvwrapper.sh) "
9
9
fi
10
10
if [ -z " $VIRTUALENVWRAPPER_SCRIPT " ]
11
11
then
14
14
15
15
# Load the real implementation of the API from virtualenvwrapper.sh
16
16
function virtualenvwrapper_load {
17
- source " $VIRTUALENVWRAPPER_SCRIPT "
17
+ # Only source the script once.
18
+ # We might get called multiple times, because not all of _VIRTUALENVWRAPPER_API gets
19
+ # a real completion.
20
+ if [ -z $VIRTUALENVWRAPPER_LAZY_LOADED ]; then
21
+ if [ -n " $ZSH_VERSION " ] ; then
22
+ # Tried to unset any auto-load completion, does not appear to work/triggers a crash
23
+ # compctl + $(echo ${_VIRTUALENVWRAPPER_API})
24
+ fi
25
+ source " $VIRTUALENVWRAPPER_SCRIPT "
26
+ VIRTUALENVWRAPPER_LAZY_LOADED=1
27
+ fi
18
28
}
19
29
20
30
# Set up "alias" functions based on the API definition.
@@ -41,4 +51,6 @@ function virtualenvwrapper_setup_lazy_completion {
41
51
}
42
52
43
53
virtualenvwrapper_setup_lazy_loader
54
+ # Does not really work. Cannot be reset in zsh to fallback to files (e.g. mkvirtualenv).
55
+ # It also needs a second invocation, because the first one only sets up the real completion.
44
56
virtualenvwrapper_setup_lazy_completion
0 commit comments