I have a software project that I'm attempting to write zsh completions for. After installing a package that provided a number of pre-made completions, I found they were put here:/usr/share/zsh/site-functionsSo I wrote my completion script, and threw it in there too. ...and was frustrated by failure. I've tried the following:Symlinking to the original script from the directory above.Putting a copy of the script directly into the directory above.Setting my login shell to zsh (instead of just switching to it from another shell)(Probably) all permutations of compinit and rehash.Dumbing-down my original script so that there's no way it could be wrong.Changing the contents of another script. The changes worked, so the directory is correct and zsh is detecting completions scripts there.Here is the dumbed-down script:#compdef aura_arguments -s \  '-V[Version!]' \  '-h[Helpppp]'And the current contents of my .zshrc. I'm not normally a zsh user.autoload -U compinitcompinitzstyle ':completion:*' rehash truePlease and thank you for any insight you can give. What am I missing?EDIT: Contents of /usr/share/zsh/site-functions is:_ack_adb_android_attach_aura_baselayout_bpython_brew_bundle_cap_choc_coffee_cower_cpanm_debuild_dhcpcd_ditz_emulator_eselect_fab_gas_gcc-config_geany_gem_genlop_gentoolkit_gentoo_packages_git-flow_github_git-pulls_git-wtf_google_gradle_heroku_jmeter_jmeter-plugins_jonas_knife_language_codes_layman_lein_lunar_lunchy_manage.py_mosh_mvn_node_optirun_pacman_pactree_pear_perf_periscope_pgsql_utils_pip_pkcon_play_port_portage_portage_utils_pygmentize_redis-cli_rvm_sbt_scala_sdd_setup.py_showoff_smartmontools_srm_ssh-copy-id_subliminal_symfony_systemd_teamocil_thor_tmuxinator_vagrant_virtualbox_vnstat_vpnc_yaourt
zsh refusing to accept new autocomplete script
zsh;autocomplete
Here's what I think of that can go wrong.The file containing the completion code must be in a directory listed in the fpath array. Ok. Note that you should not put your own files under /usr/share; zsh doesn't care, but your file could be deleted or overwritten by your operating system's package manager, and you're likely to forget to back it up, copy it to another machine, etc. You should put your own files under /usr/local if you want to make them available to all users on your system, and under your home directory if you just want them for your user. You can add a directory to fpath in your .zshrc (before calling compinit), e.g.fpath=(~/lib/zsh $fpath)The first line of the file must be #compdef followed by a space followed by one or more command names separated by spaces. Check that there aren't any stray characters there, in particular the file must have unix line endings (LF), not Windows line endings (CRLF  the stray CR might cause the command not to be picked up).The compinit function creates a cache file the first time it runs, so as to be faster next time. This file is called ~/.zcompdump. It contains the association between command names and completion functions (e.g. aura _aura), not the code of the functions. You may need to regenerate it sometimes. In particular, if you change the #compdef line in an existing file, compinit won't re-read the file. As long as you don't pass -C to compinit, it will pick up new files, but you must get the #compdef line right before the next time you start zsh. If you didn't, delete the cache file (rm ~/.zcompdump) and start zsh (or more precisely run compinit) again.