#compdef -first-

# This function is called at the very beginning before any other
# function for a specific context.
#
# This just gives some examples of things you might want to do here.
#
#
# Other things you can do here is to complete different things if the
# word on the line matches a certain pattern. This example allows
# completion of words from the history by adding two commas at the end 
# and hitting TAB.
#
#     if [[ "$PREFIX" = *,, ]]; then
#       local max i=1 expl opt
#     
#       PREFIX="$PREFIX[1,-2]"
#       # If a numeric prefix is given, we use it as the number of
#       # lines (multiplied by ten below) in the history to search.
#       if [[ ${NUMERIC:-1} -gt 1 ]]; then
#         max=$NUMERIC
#         unset NUMERIC
#       else
#         # The default is to search the last 100 lines.
#         max=10
#       fi
#       # We first search in the last ten words, then in the last
#       # twenty words, and so on...
#       while [[ i -le max ]]; do
#         if zstyle -t ":completion:${curcontext}:history-words" sort; then
#           opt=-J
#         else
#           opt=-V
#         fi
#         if _wanted "$opt" history-words expl "history ($n)" \
#                compadd -Q - \
#                    "${(@)${(@)historywords:#[\$'\"]*}[1,i*10]}"; then
#           # We have found at least one matching word, so we switch
#           # on menu-completion and make sure that no other
#           # completion function is called by setting _compskip.
#           compstate[insert]=menu
#           _compskip=all
#           return 0
#         fi
#         (( i++ ))
#       done
#     fi
