add compdef for pacman aliases
The recommended order for the module loading has been changed. The last module to be loaded should be 'completion'. This ensures all completions set by other modules are dumped and included in the completion. Because of this, any compdefs like this one (making the pacman aliases use pacman completion) must be set in the compdefs.zsh file, and loaded with the completion module. This means the compdefs must be wrapped with conditional statements to ensure such aliases/functions have been set by previous modules. I may abstract this conditional to a function in the future to make this an easier process.
This commit is contained in:
parent
a8aa59e09d
commit
01838f0083
3 changed files with 18 additions and 1 deletions
14
modules/completion/compdefs.zsh
Normal file
14
modules/completion/compdefs.zsh
Normal file
|
@ -0,0 +1,14 @@
|
|||
#
|
||||
# Alias compdefs
|
||||
#
|
||||
|
||||
# Any aliased commands will not function with completion without compdefs.
|
||||
# Because completion is the LAST module to be loaded (so we make sure to catch all completions)
|
||||
# we must assign the compdefs here, as opposed to within the modules themselves.
|
||||
|
||||
# Unfortunately, I'm not aware of a worthwhile way to ensure that these will be included in .zcompdump
|
||||
|
||||
# zpacman_frontend -> pacman
|
||||
if (( ${+zpacman_frontend} )); then
|
||||
compdef ${zpacman_frontend}='pacman'
|
||||
fi
|
|
@ -17,6 +17,10 @@ fpath=(${0:h}/external/src ${fpath})
|
|||
|
||||
# load and initialize the completion system
|
||||
autoload -Uz compinit && compinit -C -d ${ZDOTDIR:-$HOME}/.zcompdump
|
||||
|
||||
# set any compdefs
|
||||
source ${0:h}/compdefs.zsh
|
||||
|
||||
{
|
||||
# zcomple the .zcompdump in the background
|
||||
local zcompdump=${ZDOTDIR:-$HOME}/.zcompdump
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
# General
|
||||
#
|
||||
|
||||
alias pacman=${zpacman_frontend}
|
||||
alias pac=${zpacman_frontend}
|
||||
|
||||
#
|
||||
|
|
Loading…
Reference in a new issue