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_KEYis added to the GitHub Actions secrets - Minimal test setup:
- A
scmrockspec,nvim-lua-plugin-scm-1.rockspec - A
.bustedfile
- 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.rockspecand change thepackagename 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
bustedOr if you want to run a single test file:
luarocks test spec/path_to_file.lua --local
# or
busted spec/path_to_file.luaIf 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
nluahas been installed using luarocks into~/.luarocks/bin/. ↩