- Neovim ≥ 0.11
- luarocks: install Lua packages
- busted: unit testing framework for Lua
- nlua: Neovim as Lua interpreter
- lazy.nvim: plugin manager for Neovim
- lazydev.nvim (optional): enhanced plugin dev experience.
- Claude Code (optional): for automatic plugin initialization
Here are my personal scripts to install Lua dev packages on macOS: install.sh and uninstall.sh. Use at your own risk!
- Ensure you have requirements installed
- Click "Use this template" → "Create a new repository" at the top of this page.
- Choose a name with the
.nvim
extension (e.g.,your-plugin.nvim
). - Clone your new repository and
cd
into it. - Manually follow the initialization steps in
init-from-template.md
or runclaude init-from-template
. - Install
your-plugin.nvim
using your preferred plugin manager and configure Neovim for plugin development:
-- Install and configure your plugin during development
{
"your-plugin.nvim",
dir = "/path/to/your-plugin.nvim", -- So we are using the local version of the plugin
branch = "main", -- Select the branch of the plugin to use
lazy = false,
opts = {},
keys = {
{
"<leader>rb", -- Choose a key binding for reloading the plugin
"<cmd>Lazy reload your-plugin.nvim<cr>",
desc = "Reload your-plugin.nvim",
mode = { "n", "v" },
},
},
}
-- Enable Lua language server support external libraries
{
"folke/lazydev.nvim",
ft = "lua",
opts = {
library = {
"${3rd}/luassert/library",
"${3rd}/busted/library",
"your-plugin.nvim",
}
},
}
Get started by reading the comprehensive documentation with :help base
, which covers all plugin features and configuration options.
Note
Most Vim/Neovim plugins include built-in :help
documentation. If you're new to this, start with :help
to learn the basics.
- nvim-best-practices: Collection of DOs and DON'Ts for modern Neovim Lua plugin development
- nvim-lua-plugin-template: another template for Neovim Lua plugins
- LuaCATS annotations: type annotations to your Lua code
- Plugin development walkthrough by TJ DeVries: it uses plenary instead of busted for testing