This repository is a template for Neovim plugins written in Lua.
The intention is that you use this template to create a new repository where you then adapt this readme and add your plugin code. The template includes the following:
- GitHub workflows and configurations to run linters and tests
- Packaging of tagged releases and upload to LuaRocks
if a
LUAROCKS_API_KEY
is added to the GitHub Actions secrets - Minimal test setup:
- A
scm
rockspec,nvim-lua-plugin-scm-1.rockspec
- A
.busted
file
- A
- EditorConfig
- A .luacheckrc
To get started writing a Lua plugin, I recommend reading :help lua-guide
and
:help write-plugin
.
Anything that the majority of plugin authors will want to have is in scope of this starter template. Anything that is controversial is out-of-scope.
- Click Use this template. Do not fork.
- Rename
nvim-lua-plugin-scm-1.rockspec
and change thepackage
name to the name of your plugin.
The template itself is licensed under the MIT license. The template doesn't include a LICENSE file. You should add one after creating your repository.
The remainder of the README is text that can be preserved in your plugin:
Running tests requires either
to be installed1.
You can then run:
luarocks test --local
# or
busted
Or if you want to run a single test file:
luarocks test spec/path_to_file.lua --local
# or
busted spec/path_to_file.lua
If you see an error like module 'busted.runner' not found
:
eval $(luarocks path --no-bin)
For this to work you need to have Lua 5.1 set as your default version for
luarocks. If that's not the case you can pass --lua-version 5.1
to all the
luarocks commands above.
Footnotes
-
The test suite assumes that
nlua
has been installed using luarocks into~/.luarocks/bin/
. ↩