diff options
Diffstat (limited to 'Functions/Completion/dump')
-rw-r--r-- | Functions/Completion/dump | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/Functions/Completion/dump b/Functions/Completion/dump deleted file mode 100644 index ad5547bea..000000000 --- a/Functions/Completion/dump +++ /dev/null @@ -1,89 +0,0 @@ -# This is a file to be sourced to dump the definitions for new-style -# completion defined by 'init' in the same directory. For best results, -# it should be run immediately after init, before any of the completions -# have been autoloaded. The output should be directed into the "init.dump" -# in the same directory as init. If you rename init, just stick .dump onto -# the end of whatever you have called it and put it in the same directory. -# -# You will need to update the dump every time you add a new completion. -# To do this, simply remove the .dump file, start a new shell, and -# create the .dump file as before. -# -# It relies on KSH_ARRAYS not being set. - -# Print the number of files used for completion. This is used in init -# to see if auto-dump should re-dump the dump-file. - -_d_file=${COMPDUMP-${0:h}/init.dump} - -_d_files=( ${^~fpath}/_*~*~ ) - -print "#files: $#_d_files" > $_d_file - -unset _d_files - -# First dump the arrays comps and patcomps. The quoting hieroglyphyics -# ensure that a single quote inside a variable is itself correctly quoted. - -print "comps=(" >> $_d_file -for _d_f in ${(k)comps}; do - print -r - "'${_d_f//\'/'\\''}'" "'${comps[$_d_f]//\'/'\\''}'" -done >> $_d_file -print ")" >> $_d_file - -if (( $#patcomps )); then - print "\npatcomps=(" >> $_d_file - for _d_f in "$patcomps[@]"; do - print -r - "'${_d_f//\'/'\\''}'" - done >> $_d_file - print ")" >> $_d_file -fi - -print >> $_d_file - -# Now dump the key bindings. We dump all bindings for zle widgets -# whose names start with a underscore. -# We need both the zle -C's and the bindkey's to recreate. - -_d_bks=() -zle -lL | - while read -rA _d_line; do - if [[ ${_d_line[5]} = _* ]]; then - print -r - ${_d_line} - _d_bks=($_d_bks ${_d_line[3]}) - fi - done >> $_d_file -bindkey | - while read -rA _d_line; do - if [[ ${_d_line[2]} = (${(j.|.)~_d_bks}) ]]; then - print -r "bindkey '${_d_line[1][2,-2]}' ${_d_line[2]}" - fi - done >> $_d_file - -print >> $_d_file - - -# Autoloads: whence -w produces "_d_foo: function", so look for -# all functions beginning with `_'. - -_d_als=($(whence -wm '_*' | -while read -rA _d_line; do - [[ ${_d_line[2]} = function ]] && print -r - ${_d_line[1]%:} -done)) - -# print them out: about six to a line looks neat - -while (( $#_d_als )); do - print -n autoload - for (( _i = 0; _i < 6; _i++ )); do - if (( $#_d_als )); then - print -n " $_d_als[1]" - shift _d_als - fi - done - print -done >> $_d_file - -print >> $_d_file - -unset _d_line _d_zle _d_bks _d_als _d_f _f_file |