This repository is a template for Neovim plugins written in Lua.
- GitHub Actions workflows with a locally reproducible CI,
using
nix
flakes. - Run tests with both neovim stable and neovim nightly
using
neorocksTest
. - Lints and a nix shell with pre-commit-hooks:
vimPlugin
nix flake output.- Automatically publish tags to LuaRocks with the luarocks-tag-release action.
- Automatic release PRs using conventional commits with release-please.
- Automatically comment PRs with a review checklist.
- Click on Use this template to start a repo based on this template. Do not fork it.
- If your plugin depends on other plugins,
add them to
nvim-wrapped
in theci-overlay.nix
. - Add the name of your plugin to
flake.nix
. - Add
busted
specs to thetests
directory. - Create a LuaRocks API key.
- Add the API key to the repository's GitHub Actions secrets.
- Text that needs to be updated is marked with
TODO:
comments. - Rename
plugin-template.nvim-scm-1.rockspec
. - Delete the content of CHANGELOG.md.
All contributions are welcome! See CONTRIBUTING.md.
This template is licensed according to GPL version 2, with the following exception:
The license applies only to the Nix CI infrastructure provided by this template repository, including any modifications made to the infrastructure. Any software that uses or is derived from this template may be licensed under any OSI approved open source license, without being subject to the GPL version 2 license of this template.