awesome-zsh-plugins/Writing_Plugins.md
2015-01-13 07:42:57 -08:00

1.5 KiB

Writing Plugins

Try and keep your plugins as cross-framework compatible as possible. Here are some suggestions to make using your plugin as simple as possible, no matter what framework someone is using.

  1. Make using it easier for everyone and put the plugin file at the root level of your plugin repository instead of in a subdirectory. This will let oh-my-zsh users install it with a simple git clone git@github.com:you/yourplugin.git in the custom/plugins directory. Antigen and zgen users will be able to automatically clone the repository without having to specify subdirectories.

  2. Only oh-my-zsh sets the ${ZSH_CUSTOM} variable. $(dirname $0) will also tell you what directory your plugin is installed in, has the advantage of being cross-framework and won't break if the user renames your plugin directory.

  3. Don't assume your plugin will be checked out into a directory with the same name you gave the plugin. This is another case where $(dirname ${0}) will work and ${ZSH_CUSTOM}/hardcoded-directory will fail.

  4. Use yourplugin.plugin.zsh for the main plugin file. This is what oh-my-zsh expects. Antigen, zgen and most other ZSH frameworks support that filename.

  5. Submit a PR here so your plugin is easy to find :-)