zplugin.zsh(1)
==============
:compat-mode!:

NAME
----
zplugin.zsh - a shell script

SYNOPSIS
--------
Documentation automatically generated with `zshelldoc'

FUNCTIONS
---------

 pmodload
 zpcdclear
 zpcdreplay
 zpcompdef
 zpcompinit
 -zplg-add-fpath
 -zplg-add-report
 -zplg-any-to-user-plugin
 -zplg-clear-debug-report
 -zplg-compdef-clear
 -zplg-compdef-replay
 -zplg-debug-start
 -zplg-debug-stop
 -zplg-debug-unload
 -zplg-deploy-message
 -zplg-diff
 -zplg-diff-env
 -zplg-diff-functions
 -zplg-diff-options
 -zplg-diff-parameter
 -zplg-find-other-matches
 -zplg-ice
 -zplg-load
 -zplg-load-ices
 -zplg-load-plugin
 -zplg-load-snippet
 -zplg-pack-ice
 -zplg-prepare-home
 @zplg-register-annex
 -zplg-register-plugin
 --zplg-reload-and-run
 -zplg-run
 -zplg-run-task
 -zplg-service
 --zplg-shadow-alias
 --zplg-shadow-autoload
 --zplg-shadow-bindkey
 --zplg-shadow-compdef
 -zplg-shadow-off
 -zplg-shadow-on
 --zplg-shadow-zle
 --zplg-shadow-zstyle
 -zplg-submit-turbo
 -zplg-substitute
 -zplg-wrap-track-functions
 zplugin
 -zplugin_scheduler_add_sh
 @zsh-plugin-run-on-unload
 @zsh-plugin-run-on-update
AUTOLOAD add-zsh-hook
AUTOLOAD compinit
AUTOLOAD is-at-least
PRECMD-HOOK -zplg-scheduler

DETAILS
-------

Script Body
~~~~~~~~~~~

Has 126 line(s). Calls functions:

 Script-Body
 |-- add-zsh-hook
 |-- is-at-least
 `-- -zplg-prepare-home

Uses feature(s): _add-zsh-hook_, _alias_, _autoload_, _export_, _is-at-least_, _setopt_, _zmodload_, _zstyle_

_Exports (environment):_ ZPFX [big]*//* ZSH_CACHE_DIR

pmodload
~~~~~~~~

____
 
 Compatibility with Prezto. Calls can be recursive.
____

Has 9 line(s). Calls functions:

 pmodload
 `-- -zplg-load-snippet
     |-- -zplg-add-report
     |-- -zplg-deploy-message
     |-- -zplg-pack-ice
     |-- -zplg-wrap-track-functions
     `-- zplugin-install.zsh/-zplg-download-snippet

Uses feature(s): _zstyle_

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

zpcdclear
~~~~~~~~~

____
 
 A wrapper for `zplugin cdclear -q' which can be called from hook
 ices like the atinit'', atload'', etc. ices.
____

Has 1 line(s). Calls functions:

 zpcdclear
 `-- -zplg-compdef-clear

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

zpcdreplay
~~~~~~~~~~

____
 
 A function that can be invoked from within `atinit', `atload', etc.
 ice-mod.  It works like `zplugin cdreplay', which cannot be invoked
 from such hook ices.
____

Has 1 line(s). Calls functions:

 zpcdreplay
 `-- -zplg-compdef-replay

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

zpcompdef
~~~~~~~~~

____
 
 Stores compdef for a replay with `zpcdreplay' (turbo mode) or
 with `zplugin cdreplay' (normal mode). An utility functton of
 an undefined use case.
____

Has 1 line(s). Doesn't call other functions.

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

zpcompinit
~~~~~~~~~~

____
 
 A function that can be invoked from within `atinit', `atload', etc.
 ice-mod.  It runs `autoload compinit; compinit' and respects
 ZPLGM[ZCOMPDUMP_PATH] and ZPLGM[COMPINIT_OPTS].
____

Has 1 line(s). Calls functions:

 zpcompinit
 `-- compinit

Uses feature(s): _autoload_, _compinit_

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

-zplg-add-fpath
~~~~~~~~~~~~~~~

Has 8 line(s). Calls functions:

 -zplg-add-fpath
 `-- -zplg-any-to-user-plugin

Called by:

 zplugin

-zplg-add-report
~~~~~~~~~~~~~~~~

____
 
 Adds a report line for given plugin.
 
 $1 - uspl2, i.e. user/plugin
 $2, ... - the text
____

Has 3 line(s). Doesn't call other functions.

Called by:

 -zplg-load-plugin
 -zplg-load-snippet
 --zplg-shadow-alias
 --zplg-shadow-autoload
 --zplg-shadow-bindkey
 --zplg-shadow-compdef
 --zplg-shadow-zle
 --zplg-shadow-zstyle

-zplg-any-to-user-plugin
~~~~~~~~~~~~~~~~~~~~~~~~

____
 
 Allows elastic plugin-spec across the code.
 
 $1 - plugin spec (4 formats: user---plugin, user/plugin, user, plugin)
 $2 - plugin (only when $1 - i.e. user - given)
 
 Returns user and plugin in $reply
 
____

Has 23 line(s). Doesn't call other functions.

Called by:

 -zplg-add-fpath
 -zplg-load
 -zplg-run
 zplugin-autoload.zsh/-zplg-any-to-uspl2
 zplugin-autoload.zsh/-zplg-changes
 zplugin-autoload.zsh/-zplg-compiled
 zplugin-autoload.zsh/-zplg-compile-uncompile-all
 zplugin-autoload.zsh/-zplg-create
 zplugin-autoload.zsh/-zplg-delete
 zplugin-autoload.zsh/-zplg-find-completions-of-plugin
 zplugin-autoload.zsh/-zplg-get-path
 zplugin-autoload.zsh/-zplg-glance
 zplugin-autoload.zsh/-zplg-show-report
 zplugin-autoload.zsh/-zplg-stress
 zplugin-autoload.zsh/-zplg-uncompile-plugin
 zplugin-autoload.zsh/-zplg-unload
 zplugin-autoload.zsh/-zplg-unregister-plugin
 zplugin-autoload.zsh/-zplg-update-or-status-all
 zplugin-autoload.zsh/-zplg-update-or-status
 zplugin-install.zsh/-zplg-get-latest-gh-r-version
 zplugin-install.zsh/-zplg-install-completions
 zplugin-side.zsh/-zplg-any-colorify-as-uspl2
 zplugin-side.zsh/-zplg-compute-ice
 zplugin-side.zsh/-zplg-exists-physically
 zplugin-side.zsh/-zplg-first

-zplg-clear-debug-report
~~~~~~~~~~~~~~~~~~~~~~~~

____
 
 Forgets dtrace repport gathered up to this moment.
____

Has 1 line(s). Calls functions:

 -zplg-clear-debug-report
 `-- zplugin-autoload.zsh/-zplg-clear-report-for

Called by:

 zplugin
 zplugin-autoload.zsh/-zplg-unload

-zplg-compdef-clear
~~~~~~~~~~~~~~~~~~~

____
 
 Implements user-exposed functionality to clear gathered compdefs.
____

Has 3 line(s). Doesn't call other functions.

Called by:

 zpcdclear
 zplugin

-zplg-compdef-replay
~~~~~~~~~~~~~~~~~~~~

____
 
 Runs gathered compdef calls. This allows to run `compinit'
 after loading plugins.
____

Has 16 line(s). Doesn't call other functions.

Uses feature(s): _compdef_

Called by:

 zpcdreplay
 zplugin

-zplg-debug-start
~~~~~~~~~~~~~~~~~

____
 
 Starts Dtrace, i.e. session tracking for changes in Zsh state.
____

Has 9 line(s). Calls functions:

 -zplg-debug-start
 |-- -zplg-diff
 |   |-- -zplg-diff-env
 |   |-- -zplg-diff-functions
 |   |-- -zplg-diff-options
 |   `-- -zplg-diff-parameter
 `-- -zplg-shadow-on

Called by:

 zplugin

-zplg-debug-stop
~~~~~~~~~~~~~~~~

____
 
 Stops Dtrace, i.e. session tracking for changes in Zsh state.
____

Has 3 line(s). Calls functions:

 -zplg-debug-stop
 |-- -zplg-diff
 |   |-- -zplg-diff-env
 |   |-- -zplg-diff-functions
 |   |-- -zplg-diff-options
 |   `-- -zplg-diff-parameter
 `-- -zplg-shadow-off

Called by:

 zplugin

-zplg-debug-unload
~~~~~~~~~~~~~~~~~~

____
 
 Reverts changes detected by dtrace run.
____

Has 5 line(s). Calls functions:

 -zplg-debug-unload
 `-- zplugin-autoload.zsh/-zplg-unload

Called by:

 zplugin

-zplg-deploy-message
~~~~~~~~~~~~~~~~~~~~

____
 
 Deploys a sub-prompt message to be displayed OR a `zle
 .reset-prompt' call to be invoked
____

Has 13 line(s). Doesn't call other functions.

Uses feature(s): _read_, _zle_

Called by:

 -zplg-load-snippet
 -zplg-load
 zplugin-autoload.zsh/-zplg-recall

-zplg-diff
~~~~~~~~~~

____
 
 Performs diff actions of all types
____

Has 4 line(s). Calls functions:

 -zplg-diff
 |-- -zplg-diff-env
 |-- -zplg-diff-functions
 |-- -zplg-diff-options
 `-- -zplg-diff-parameter

Called by:

 -zplg-debug-start
 -zplg-debug-stop
 -zplg-load-plugin

-zplg-diff-env
~~~~~~~~~~~~~~

____
 
 Implements detection of change in PATH and FPATH.
 
 $1 - user/plugin (i.e. uspl2 format)
 $2 - command, can be "begin" or "end"
____

Has 18 line(s). Doesn't call other functions.

Called by:

 -zplg-diff
 -zplg-load-plugin

-zplg-diff-functions
~~~~~~~~~~~~~~~~~~~~

____
 
 Implements detection of newly created functions. Performs
 data gathering, computation is done in *-compute().
 
 $1 - user/plugin (i.e. uspl2 format)
 $2 - command, can be "begin" or "end"
____

Has 8 line(s). Doesn't call other functions.

Called by:

 -zplg-diff

-zplg-diff-options
~~~~~~~~~~~~~~~~~~

____
 
 Implements detection of change in option state. Performs
 data gathering, computation is done in *-compute().
 
 $1 - user/plugin (i.e. uspl2 format)
 $2 - command, can be "begin" or "end"
____

Has 7 line(s). Doesn't call other functions.

Called by:

 -zplg-diff

-zplg-diff-parameter
~~~~~~~~~~~~~~~~~~~~

____
 
 Implements detection of change in any parameter's existence and type.
 Performs data gathering, computation is done in *-compute().
 
 $1 - user/plugin (i.e. uspl2 format)
 $2 - command, can be "begin" or "end"
____

Has 9 line(s). Doesn't call other functions.

Called by:

 -zplg-diff

-zplg-find-other-matches
~~~~~~~~~~~~~~~~~~~~~~~~

____
 
 Plugin's main source file is in general `name.plugin.zsh'. However,
 there can be different conventions, if that file is not found, then
 this functions examines other conventions in order of most expected
 sanity.
____

Has 14 line(s). Doesn't call other functions.

Called by:

 -zplg-load-plugin
 zplugin-side.zsh/-zplg-first

-zplg-ice
~~~~~~~~~

____
 
 Parses ICE specification (`zplg ice' subcommand), puts the result
 into ZPLG_ICE global hash. The ice-spec is valid for next command
 only (i.e. it "melts"), but it can then stick to plugin and activate
 e.g. at update.
____

Has 14 line(s). Doesn't call other functions.

Uses feature(s): _setopt_

Called by:

 zplugin

_Environment variables used:_ ZPFX

-zplg-load
~~~~~~~~~~

____
 
 Implements the exposed-to-user action of loading a plugin.
 
 $1 - plugin spec (4 formats: user---plugin, user/plugin, user, plugin)
 $2 - plugin name, if the third format is used
____

Has 70 line(s). Calls functions:

 -zplg-load
 |-- -zplg-any-to-user-plugin
 |-- -zplg-deploy-message
 |-- -zplg-load-plugin
 |   |-- -zplg-add-report
 |   |-- -zplg-diff
 |   |   |-- -zplg-diff-env
 |   |   |-- -zplg-diff-functions
 |   |   |-- -zplg-diff-options
 |   |   `-- -zplg-diff-parameter
 |   |-- -zplg-diff-env
 |   |-- -zplg-find-other-matches
 |   |-- -zplg-shadow-off
 |   |-- -zplg-shadow-on
 |   `-- -zplg-wrap-track-functions
 |-- -zplg-load-snippet
 |   |-- -zplg-add-report
 |   |-- -zplg-deploy-message
 |   |-- -zplg-pack-ice
 |   |-- -zplg-wrap-track-functions
 |   `-- zplugin-install.zsh/-zplg-download-snippet
 |-- -zplg-pack-ice
 |-- -zplg-register-plugin
 |-- zplugin-install.zsh/-zplg-get-package
 `-- zplugin-install.zsh/-zplg-setup-plugin-dir

Uses feature(s): _eval_, _setopt_, _source_, _zle_

Called by:

 -zplg-run-task
 -zplg-service
 zplugin

-zplg-load-ices
~~~~~~~~~~~~~~~

Has 23 line(s). Doesn't call other functions.

Uses feature(s): _wait_

Called by:

 zplugin

_Environment variables used:_ ZPFX

-zplg-load-plugin
~~~~~~~~~~~~~~~~~

____
 
 Lower-level function for loading a plugin.
 
 $1 - user
 $2 - plugin
 $3 - mode (light or load)
____

Has 111 line(s). Calls functions:

 -zplg-load-plugin
 |-- -zplg-add-report
 |-- -zplg-diff
 |   |-- -zplg-diff-env
 |   |-- -zplg-diff-functions
 |   |-- -zplg-diff-options
 |   `-- -zplg-diff-parameter
 |-- -zplg-diff-env
 |-- -zplg-find-other-matches
 |-- -zplg-shadow-off
 |-- -zplg-shadow-on
 `-- -zplg-wrap-track-functions

Uses feature(s): _eval_, _setopt_, _source_, _unfunction_, _zle_

Called by:

 -zplg-load

-zplg-load-snippet
~~~~~~~~~~~~~~~~~~

____
 
 Implements the exposed-to-user action of loading a snippet.
 
 $1 - url (can be local, absolute path)
____

Has 199 line(s). Calls functions:

 -zplg-load-snippet
 |-- -zplg-add-report
 |-- -zplg-deploy-message
 |-- -zplg-pack-ice
 |-- -zplg-wrap-track-functions
 `-- zplugin-install.zsh/-zplg-download-snippet

Uses feature(s): _autoload_, _eval_, _setopt_, _source_, _unfunction_, _zparseopts_, _zstyle_

Called by:

 pmodload
 -zplg-load
 -zplg-run-task
 -zplg-service
 zplugin
 zplugin-autoload.zsh/-zplg-update-or-status-snippet

-zplg-pack-ice
~~~~~~~~~~~~~~

____
 
 Remembers all ice-mods, assigns them to concrete plugin. Ice spec
 is in general forgotten for second-next command (that's why it's
 called "ice" - it melts), however they glue to the object (plugin
 or snippet) mentioned in the next command – for later use with e.g.
 `zplugin update ...'
____

Has 3 line(s). Doesn't call other functions.

Called by:

 -zplg-load-snippet
 -zplg-load
 @zsh-plugin-run-on-unload
 @zsh-plugin-run-on-update
 zplugin-side.zsh/-zplg-compute-ice

-zplg-prepare-home
~~~~~~~~~~~~~~~~~~

____
 
 Creates all directories needed by Zplugin, first checks if they
 already exist.
____

Has 28 line(s). Doesn't call other functions.

Called by:

 Script-Body

_Environment variables used:_ ZPFX

@zplg-register-annex
~~~~~~~~~~~~~~~~~~~~

____
 
 Registers the z-annex inside Zplugin – i.e. an Zplugin extension
____

Has 4 line(s). Doesn't call other functions.

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

-zplg-register-plugin
~~~~~~~~~~~~~~~~~~~~~

____
 
 Adds the plugin to ZPLG_REGISTERED_PLUGINS array and to the
 zsh_loaded_plugins array (managed according to the plugin standard:
 http://zdharma.org/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html)
____

Has 23 line(s). Doesn't call other functions.

Called by:

 -zplg-load

--zplg-reload-and-run
~~~~~~~~~~~~~~~~~~~~~

____
 
 Marks given function ($3) for autoloading, and executes it triggering the
 load. $1 is the fpath dedicated to the function, $2 are autoload options.
 This function replaces "autoload -X", because using that on older Zsh
 versions causes problems with traps.
 
 So basically one creates function stub that calls --zplg-reload-and-run()
 instead of "autoload -X".
 
 $1 - FPATH dedicated to function
 $2 - autoload options
 $3 - function name (one that needs autoloading)
 
 Author: Bart Schaefer
____

Has 11 line(s). Doesn't call other functions.

Uses feature(s): _autoload_, _unfunction_

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

-zplg-run
~~~~~~~~~

____
 
 Run code inside plugin's folder
 It uses the `correct' parameter from upper's scope zplugin()
____

Has 24 line(s). Calls functions:

 -zplg-run
 `-- -zplg-any-to-user-plugin

Uses feature(s): _eval_, _setopt_

Called by:

 zplugin

-zplg-run-task
~~~~~~~~~~~~~~

____
 
 A backend, worker function of -zplg-scheduler. It obtains the tasks
 index and a few of its properties (like the type: plugin, snippet,
 service plugin, service snippet) and executes it first checking for
 additional conditions (like non-numeric wait'' ice).
 
 $1 - the pass number, either 1st or 2nd pass
 $2 - the time assigned to the task
 $3 - type: plugin, snippet, service plugin, service snippet
 $4 - task's index in the ZPLGM[WAIT_ICE_...] fields
 $5 - mode: load or light
 $6 - the plugin-spec or snippet URL or alias name (from id-as'')
____

Has 44 line(s). Calls functions:

 -zplg-run-task
 |-- -zplg-load
 |   |-- -zplg-any-to-user-plugin
 |   |-- -zplg-deploy-message
 |   |-- -zplg-load-plugin
 |   |   |-- -zplg-add-report
 |   |   |-- -zplg-diff
 |   |   |   |-- -zplg-diff-env
 |   |   |   |-- -zplg-diff-functions
 |   |   |   |-- -zplg-diff-options
 |   |   |   `-- -zplg-diff-parameter
 |   |   |-- -zplg-diff-env
 |   |   |-- -zplg-find-other-matches
 |   |   |-- -zplg-shadow-off
 |   |   |-- -zplg-shadow-on
 |   |   `-- -zplg-wrap-track-functions
 |   |-- -zplg-load-snippet
 |   |   |-- -zplg-add-report
 |   |   |-- -zplg-deploy-message
 |   |   |-- -zplg-pack-ice
 |   |   |-- -zplg-wrap-track-functions
 |   |   `-- zplugin-install.zsh/-zplg-download-snippet
 |   |-- -zplg-pack-ice
 |   |-- -zplg-register-plugin
 |   |-- zplugin-install.zsh/-zplg-get-package
 |   `-- zplugin-install.zsh/-zplg-setup-plugin-dir
 |-- -zplg-load-snippet
 |   |-- -zplg-add-report
 |   |-- -zplg-deploy-message
 |   |-- -zplg-pack-ice
 |   |-- -zplg-wrap-track-functions
 |   `-- zplugin-install.zsh/-zplg-download-snippet
 `-- zplugin-autoload.zsh/-zplg-unload

Uses feature(s): _eval_, _source_, _zle_, _zpty_

Called by:

 -zplg-scheduler

-zplg-scheduler
~~~~~~~~~~~~~~~

____
 
 Searches for timeout tasks, executes them. There's an array of tasks
 waiting for execution, this scheduler manages them, detects which ones
 should be run at current moment, decides to remove (or not) them from
 the array after execution.
 
 $1 - if "following", then it is non-first (second and more)
 invocation of the scheduler; this results in chain of `sched'
 invocations that results in repetitive -zplg-scheduler activity
 
 if "burst", then all tasks are marked timeout and executed one
 by one; this is handy if e.g. a docker image starts up and
 needs to install all turbo-mode plugins without any hesitation
 (delay), i.e. "burst" allows to run package installations from
 script, not from prompt
 
____

Has 74 line(s). *Is a precmd hook*. Calls functions:

 -zplg-scheduler
 |-- add-zsh-hook
 `-- -zplg-run-task
     |-- -zplg-load
     |   |-- -zplg-any-to-user-plugin
     |   |-- -zplg-deploy-message
     |   |-- -zplg-load-plugin
     |   |   |-- -zplg-add-report
     |   |   |-- -zplg-diff
     |   |   |   |-- -zplg-diff-env
     |   |   |   |-- -zplg-diff-functions
     |   |   |   |-- -zplg-diff-options
     |   |   |   `-- -zplg-diff-parameter
     |   |   |-- -zplg-diff-env
     |   |   |-- -zplg-find-other-matches
     |   |   |-- -zplg-shadow-off
     |   |   |-- -zplg-shadow-on
     |   |   `-- -zplg-wrap-track-functions
     |   |-- -zplg-load-snippet
     |   |   |-- -zplg-add-report
     |   |   |-- -zplg-deploy-message
     |   |   |-- -zplg-pack-ice
     |   |   |-- -zplg-wrap-track-functions
     |   |   `-- zplugin-install.zsh/-zplg-download-snippet
     |   |-- -zplg-pack-ice
     |   |-- -zplg-register-plugin
     |   |-- zplugin-install.zsh/-zplg-get-package
     |   `-- zplugin-install.zsh/-zplg-setup-plugin-dir
     |-- -zplg-load-snippet
     |   |-- -zplg-add-report
     |   |-- -zplg-deploy-message
     |   |-- -zplg-pack-ice
     |   |-- -zplg-wrap-track-functions
     |   `-- zplugin-install.zsh/-zplg-download-snippet
     `-- zplugin-autoload.zsh/-zplg-unload

Uses feature(s): _add-zsh-hook_, _sched_, _setopt_, _zle_

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

-zplg-service
~~~~~~~~~~~~~

____
 
 Handles given service, i.e. obtains lock, runs it, or waits if no lock
 
 $1 - type "p" or "s" (plugin or snippet)
 $2 - mode - for plugin (light or load)
 $3 - id - URL or plugin ID or alias name (from id-as'')
____

Has 30 line(s). Calls functions:

 -zplg-service
 |-- -zplg-load
 |   |-- -zplg-any-to-user-plugin
 |   |-- -zplg-deploy-message
 |   |-- -zplg-load-plugin
 |   |   |-- -zplg-add-report
 |   |   |-- -zplg-diff
 |   |   |   |-- -zplg-diff-env
 |   |   |   |-- -zplg-diff-functions
 |   |   |   |-- -zplg-diff-options
 |   |   |   `-- -zplg-diff-parameter
 |   |   |-- -zplg-diff-env
 |   |   |-- -zplg-find-other-matches
 |   |   |-- -zplg-shadow-off
 |   |   |-- -zplg-shadow-on
 |   |   `-- -zplg-wrap-track-functions
 |   |-- -zplg-load-snippet
 |   |   |-- -zplg-add-report
 |   |   |-- -zplg-deploy-message
 |   |   |-- -zplg-pack-ice
 |   |   |-- -zplg-wrap-track-functions
 |   |   `-- zplugin-install.zsh/-zplg-download-snippet
 |   |-- -zplg-pack-ice
 |   |-- -zplg-register-plugin
 |   |-- zplugin-install.zsh/-zplg-get-package
 |   `-- zplugin-install.zsh/-zplg-setup-plugin-dir
 `-- -zplg-load-snippet
     |-- -zplg-add-report
     |-- -zplg-deploy-message
     |-- -zplg-pack-ice
     |-- -zplg-wrap-track-functions
     `-- zplugin-install.zsh/-zplg-download-snippet

Uses feature(s): _kill_, _read_

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

--zplg-shadow-alias
~~~~~~~~~~~~~~~~~~~

____
 
 Function defined to hijack plugin's calls to `alias' builtin.
 
 The hijacking is to gather report data (which is used in unload).
____

Has 36 line(s). Calls functions:

 --zplg-shadow-alias
 `-- -zplg-add-report

Uses feature(s): _alias_, _setopt_, _zparseopts_

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

--zplg-shadow-autoload
~~~~~~~~~~~~~~~~~~~~~~

____
 
 Function defined to hijack plugin's calls to `autoload' builtin.
 
 The hijacking is not only to gather report data, but also to
 run custom `autoload' function, that doesn't need FPATH.
____

Has 56 line(s). Calls functions:

 --zplg-shadow-autoload
 `-- -zplg-add-report

Uses feature(s): _autoload_, _eval_, _setopt_, _zparseopts_

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

--zplg-shadow-bindkey
~~~~~~~~~~~~~~~~~~~~~

____
 
 Function defined to hijack plugin's calls to `bindkey' builtin.
 
 The hijacking is to gather report data (which is used in unload).
____

Has 106 line(s). Calls functions:

 --zplg-shadow-bindkey
 |-- is-at-least
 `-- -zplg-add-report

Uses feature(s): _bindkey_, _is-at-least_, _setopt_, _zparseopts_

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

--zplg-shadow-compdef
~~~~~~~~~~~~~~~~~~~~~

____
 
 Function defined to hijack plugin's calls to `compdef' function.
 The hijacking is not only for reporting, but also to save compdef
 calls so that `compinit' can be called after loading plugins.
____

Has 6 line(s). Calls functions:

 --zplg-shadow-compdef
 `-- -zplg-add-report

Uses feature(s): _setopt_

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

-zplg-shadow-off
~~~~~~~~~~~~~~~~

____
 
 Turn off shadowing completely for a given mode ("load", "light",
 "light-b" (i.e. the `trackbinds' mode) or "compdef").
____

Has 19 line(s). Doesn't call other functions.

Uses feature(s): _setopt_, _unfunction_

Called by:

 -zplg-debug-stop
 -zplg-load-plugin

-zplg-shadow-on
~~~~~~~~~~~~~~~

____
 
 Turn on shadowing of builtins and functions according to passed
 mode ("load", "light", "light-b" or "compdef"). The shadowing is
 to gather report data, and to hijack `autoload', `bindkey' and
 `compdef' calls.
____

Has 25 line(s). Doesn't call other functions.

Called by:

 -zplg-debug-start
 -zplg-load-plugin

--zplg-shadow-zle
~~~~~~~~~~~~~~~~~

____
 
 Function defined to hijack plugin's calls to `zle' builtin.
 
 The hijacking is to gather report data (which is used in unload).
____

Has 36 line(s). Calls functions:

 --zplg-shadow-zle
 `-- -zplg-add-report

Uses feature(s): _setopt_, _zle_

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

--zplg-shadow-zstyle
~~~~~~~~~~~~~~~~~~~~

____
 
 Function defined to hijack plugin's calls to `zstyle' builtin.
 
 The hijacking is to gather report data (which is used in unload).
____

Has 23 line(s). Calls functions:

 --zplg-shadow-zstyle
 `-- -zplg-add-report

Uses feature(s): _setopt_, _zparseopts_, _zstyle_

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

-zplg-submit-turbo
~~~~~~~~~~~~~~~~~~

____
 
 If `zplugin load`, `zplugin light` or `zplugin snippet`  will be
 preceded with `wait', `load', `unload' or `on-update-of`/`subscribe'
 ice-mods then the plugin or snipped is to be loaded in turbo-mode,
 and this function adds it to internal data structures, so that
 -zplg-scheduler can run (load, unload) this as a task.
____

Has 16 line(s). Doesn't call other functions.

Called by:

 zplugin

-zplg-substitute
~~~~~~~~~~~~~~~~

Has 39 line(s). Doesn't call other functions.

Uses feature(s): _setopt_

Called by:

 zplugin-install.zsh/-zplg-at-eval
 zplugin-install.zsh/-zplg-download-snippet
 zplugin-install.zsh/-zplg-get-package
 zplugin-install.zsh/-zplg-setup-plugin-dir

_Environment variables used:_ ZPFX

-zplg-wrap-track-functions
~~~~~~~~~~~~~~~~~~~~~~~~~~

Has 19 line(s). Doesn't call other functions.

Uses feature(s): _eval_

Called by:

 -zplg-load-plugin
 -zplg-load-snippet

zplugin
~~~~~~~

____
 
 Main function directly exposed to user, obtains subcommand and its
 arguments, has completion.
____

Has 375 line(s). Calls functions:

 zplugin
 |-- compinit
 |-- -zplg-add-fpath
 |   `-- -zplg-any-to-user-plugin
 |-- -zplg-clear-debug-report
 |   `-- zplugin-autoload.zsh/-zplg-clear-report-for
 |-- -zplg-compdef-clear
 |-- -zplg-compdef-replay
 |-- -zplg-debug-start
 |   |-- -zplg-diff
 |   |   |-- -zplg-diff-env
 |   |   |-- -zplg-diff-functions
 |   |   |-- -zplg-diff-options
 |   |   `-- -zplg-diff-parameter
 |   `-- -zplg-shadow-on
 |-- -zplg-debug-stop
 |   |-- -zplg-diff
 |   |   |-- -zplg-diff-env
 |   |   |-- -zplg-diff-functions
 |   |   |-- -zplg-diff-options
 |   |   `-- -zplg-diff-parameter
 |   `-- -zplg-shadow-off
 |-- -zplg-debug-unload
 |   `-- zplugin-autoload.zsh/-zplg-unload
 |-- -zplg-ice
 |-- -zplg-load
 |   |-- -zplg-any-to-user-plugin
 |   |-- -zplg-deploy-message
 |   |-- -zplg-load-plugin
 |   |   |-- -zplg-add-report
 |   |   |-- -zplg-diff
 |   |   |   |-- -zplg-diff-env
 |   |   |   |-- -zplg-diff-functions
 |   |   |   |-- -zplg-diff-options
 |   |   |   `-- -zplg-diff-parameter
 |   |   |-- -zplg-diff-env
 |   |   |-- -zplg-find-other-matches
 |   |   |-- -zplg-shadow-off
 |   |   |-- -zplg-shadow-on
 |   |   `-- -zplg-wrap-track-functions
 |   |-- -zplg-load-snippet
 |   |   |-- -zplg-add-report
 |   |   |-- -zplg-deploy-message
 |   |   |-- -zplg-pack-ice
 |   |   |-- -zplg-wrap-track-functions
 |   |   `-- zplugin-install.zsh/-zplg-download-snippet
 |   |-- -zplg-pack-ice
 |   |-- -zplg-register-plugin
 |   |-- zplugin-install.zsh/-zplg-get-package
 |   `-- zplugin-install.zsh/-zplg-setup-plugin-dir
 |-- -zplg-load-ices
 |-- -zplg-load-snippet
 |   |-- -zplg-add-report
 |   |-- -zplg-deploy-message
 |   |-- -zplg-pack-ice
 |   |-- -zplg-wrap-track-functions
 |   `-- zplugin-install.zsh/-zplg-download-snippet
 |-- -zplg-run
 |   `-- -zplg-any-to-user-plugin
 |-- -zplg-submit-turbo
 |-- zplugin-autoload.zsh/-zplg-cdisable
 |-- zplugin-autoload.zsh/-zplg-cenable
 |-- zplugin-autoload.zsh/-zplg-clear-completions
 |-- zplugin-autoload.zsh/-zplg-compiled
 |-- zplugin-autoload.zsh/-zplg-compile-uncompile-all
 |-- zplugin-autoload.zsh/-zplg-help
 |-- zplugin-autoload.zsh/-zplg-list-bindkeys
 |-- zplugin-autoload.zsh/-zplg-list-compdef-replay
 |-- zplugin-autoload.zsh/-zplg-ls
 |-- zplugin-autoload.zsh/-zplg-module
 |-- zplugin-autoload.zsh/-zplg-recently
 |-- zplugin-autoload.zsh/-zplg-search-completions
 |-- zplugin-autoload.zsh/-zplg-self-update
 |-- zplugin-autoload.zsh/-zplg-show-all-reports
 |-- zplugin-autoload.zsh/-zplg-show-completions
 |-- zplugin-autoload.zsh/-zplg-show-debug-report
 |-- zplugin-autoload.zsh/-zplg-show-registered-plugins
 |-- zplugin-autoload.zsh/-zplg-show-report
 |-- zplugin-autoload.zsh/-zplg-show-times
 |-- zplugin-autoload.zsh/-zplg-show-zstatus
 |-- zplugin-autoload.zsh/-zplg-uncompile-plugin
 |-- zplugin-autoload.zsh/-zplg-uninstall-completions
 |-- zplugin-autoload.zsh/-zplg-unload
 |-- zplugin-autoload.zsh/-zplg-update-or-status
 |-- zplugin-autoload.zsh/-zplg-update-or-status-all
 |-- zplugin-install.zsh/-zplg-compile-plugin
 |-- zplugin-install.zsh/-zplg-compinit
 |-- zplugin-install.zsh/-zplg-forget-completion
 `-- zplugin-install.zsh/-zplg-install-completions

Uses feature(s): _autoload_, _compinit_, _eval_, _setopt_, _source_

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

-zplugin_scheduler_add_sh
~~~~~~~~~~~~~~~~~~~~~~~~~

____
 
 Copies task into ZPLG_RUN array, called when a task timeouts.
 A small function ran from pattern in /-substitution as a math
 function.
____

Has 7 line(s). Doesn't call other functions.

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

@zsh-plugin-run-on-unload
~~~~~~~~~~~~~~~~~~~~~~~~~

____
 
 The Plugin Standard required mechanism, see:
 http://zdharma.org/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html
____

Has 2 line(s). Calls functions:

 @zsh-plugin-run-on-unload
 `-- -zplg-pack-ice

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

@zsh-plugin-run-on-update
~~~~~~~~~~~~~~~~~~~~~~~~~

____
 
 The Plugin Standard required mechanism
____

Has 2 line(s). Calls functions:

 @zsh-plugin-run-on-update
 `-- -zplg-pack-ice

Not called by script or any function (may be e.g. a hook, a Zle widget, etc.).

add-zsh-hook
~~~~~~~~~~~~

____
 
 Add to HOOK the given FUNCTION.
 HOOK is one of chpwd, precmd, preexec, periodic, zshaddhistory,
 zshexit, zsh_directory_name (the _functions subscript is not required).
 
 With -d, remove the function from the hook instead; delete the hook
 variable if it is empty.
 
 -D behaves like -d, but pattern characters are active in the
 function name, so any matching function will be deleted from the hook.
 
____

Has 93 line(s). Doesn't call other functions.

Uses feature(s): _autoload_, _getopts_

Called by:

 Script-Body
 -zplg-scheduler

compinit
~~~~~~~~

____
 
 Initialisation for new style completion. This mainly contains some helper
 functions and setup. Everything else is split into different files that
 will automatically be made autoloaded (see the end of this file).  The
 names of the files that will be considered for autoloading are those that
 begin with an underscores (like `_condition).
 
 The first line of each of these files is read and must indicate what
 should be done with its contents:
 
 `#compdef <names ...>'
____

Has 549 line(s). Doesn't call other functions.

Uses feature(s): _autoload_, _bindkey_, _compdef_, _compdump_, _eval_, _read_, _setopt_, _unfunction_, _zle_, _zstyle_

Called by:

 zpcompinit
 zplugin

is-at-least
~~~~~~~~~~~

____
 
 
 Test whether $ZSH_VERSION (or some value of your choice, if a second argument
 is provided) is greater than or equal to x.y.z-r (in argument one). In fact,
 it'll accept any dot/dash-separated string of numbers as its second argument
 and compare it to the dot/dash-separated first argument. Leading non-number
 parts of a segment (such as the "zefram" in 3.1.2-zefram4) are not considered
 when the comparison is done; only the numbers matter. Any left-out segments
 in the first argument that are present in the version string compared are
 considered as zeroes, eg 3 == 3.0 == 3.0.0 == 3.0.0.0 and so on.
 
____

Has 56 line(s). Doesn't call other functions.

Called by:

 Script-Body
 --zplg-shadow-bindkey

