Skip to content

Latest commit

 

History

History
113 lines (76 loc) · 3.18 KB

File metadata and controls

113 lines (76 loc) · 3.18 KB

nvim-lua-plugin-template

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
  • EditorConfig
  • A .luacheckrc

To get started writing a Lua plugin, I recommend reading :help lua-guide and :help write-plugin.

Scope

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.

Usage

  • Click Use this template. Do not fork.
  • Rename nvim-lua-plugin-scm-1.rockspec and change the package name to the name of your plugin.

Template License

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:


Development

Run tests

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

Common Errors

If you encounter the module 'busted.runner' not found or pl.path requires LuaFileSystem errors, fix it by runing the following command the following command:

eval $(luarocks path --no-bin)

If you encounter sh: nlua: command not found error the error above occurs do1:

Linux/Max

Run the following command:

export PATH=$PATH:~/.luarocks/bin

Windows

See the following guide to a variable to the PATH: add to PATH.

Note

For local testing 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, or set lua version 5.1 globally by running luarocks config --scope system lua_version 5.1.

Footnotes

  1. The test suite assumes that nlua has been added to the PATH. 2