Commit a9ebdcdbec77e261ead63f7d326b3fb0791d170c

Authored by Shrikant Sharat
1 parent a8ea6fb494

Don't load compinit module at startup.

Kills the whole purpose of the compdef deferrer function introduced in #37.
Completions are now correctly deferred and applied when `antigen-apply` is
called.

Showing 1 changed file with 15 additions and 11 deletions Side-by-side Diff

... ... @@ -9,7 +9,7 @@ local _ANTIGEN_INSTALL_DIR="$(dirname $0)"
9 9  
10 10 # Used to defer compinit/compdef
11 11 typeset -a __deferred_compdefs
12   -compdef () { __deferred_compdefs=(${__deferred_compdefs} "${*}") }
  12 +compdef () { __deferred_compdefs=($__deferred_compdefs "$*") }
13 13  
14 14 # Syntaxes
15 15 # antigen-bundle <url> [<loc>=/]
... ... @@ -399,13 +399,22 @@ antigen-theme () {
399 399 }
400 400  
401 401 antigen-apply () {
  402 +
402 403 # Initialize completion.
403   - local cd
404   - for cd in $__deferred_compdefs; do
405   - compdef $cd
406   - done
  404 + local cdef
  405 +
  406 + # Load the compinit module. This will readefine the `compdef` function to
  407 + # the one that actually initializes completions.
  408 + autoload -U compinit
  409 + compinit -i
  410 +
  411 + # Apply all `compinit`s that have been deferred.
  412 + eval "$(for cdef in $__deferred_compdefs; do
  413 + echo compdef $cdef
  414 + done)"
  415 +
407 416 unset __deferred_compdefs
408   - compdef _antigen antigen
  417 +
409 418 }
410 419  
411 420 antigen-list () {
... ... @@ -667,11 +676,6 @@ antigen () {
667 676 https://github.com/robbyrussell/oh-my-zsh.git
668 677 -set-default ADOTDIR $HOME/.antigen
669 678  
670   - # Load the compinit module. Required for `compdef` to be defined, which is
671   - # used by many plugins to define completions.
672   - autoload -U compinit
673   - compinit -i
674   -
675 679 # Setup antigen's own completion.
676 680 compdef _antigen antigen
677 681