github github
stars 105
issues 2
subscribers 3
forks 14



2 years ago



A template to create Neovim plugins written in Lua.


Clone/download it locally and change the references to my_awesome_plugin, my_cool_module accordingly to your new plugin name. Don't forget to edit the help file accordingly.

You'll need to install Lua and LuaRocks to run the linter.


This uses busted, luassert (both through plenary.nvim) and matcher_combinators to define tests in test/spec/ directory. These dependencies are required only to run tests, that's why they are installed as git submodules.

Make sure your shell is in the ./test directory or, if it is in the root directory, replace make by make -C ./test in the commands below.

To init the dependencies run

$ make prepare

To run all tests just execute

$ make test

If you have entr(1) installed you may use it to run all tests whenever a file is changed using:

$ make watch

In both commands you myght specify a single spec to test/watch using:

$ make test SPEC=spec/my_awesome_plugin/my_cool_module_spec.lua
$ make watch SPEC=spec/my_awesome_plugin/my_cool_module_spec.lua

Github actions

An Action will run all the tests and the linter on every commit on the main branch and also on Pull Request. Tests will be run using stable and nightly versions of Neovim.