| name | nvim-plugin-add |
| description | Add and configure Neovim plugins in this dotfiles repo using lazy.nvim. Use when asked to install a plugin, create its config module, update lazy.nvim imports, read plugin README/docs, and add keymaps without conflicting with existing mappings under config/nvim. |
Neovim plugin add (lazy.nvim)
Use this workflow when adding a new plugin to config/nvim.
Workflow
- Inspect the existing layout
- Open
config/nvim/init.luato confirm the lazy.nvimspecimport list. - Check
config/nvim/lua/plugins/for the naming pattern of plugin config files.
- Read upstream docs
- Read the plugin README and docs from its repo (and any
doc/*.txtif needed). - Prefer the upstream “recommended” or “minimal working” configuration.
- Create a plugin config module
- Add a new file under
config/nvim/lua/plugins/<plugin-name>.lua. - Return a lazy.nvim spec table (same style as other plugin files).
- Keep the module self-contained; avoid global side effects.
- Register the module in lazy.nvim
- Add
{ import = 'plugins.<plugin-name>' }to thespeclist inconfig/nvim/init.lua. - Keep the ordering consistent with existing imports unless the plugin suggests a dependency order.
- Keymap collision check
- Before adding keymaps, search existing mappings:
rg -n "keymap|map\\(" config/nvim- Also scan for
which-keyregistrations if present.
- If a recommended mapping conflicts, choose a nearby alternative under the same mnemonic prefix.
- Use
descfor every mapping.
- Configure defaults and options
- Wire up plugin
setup()with upstream defaults plus any repo-specific conventions. - Follow existing patterns (e.g., use
vim.keymap.set, local helper functions). - Keep options and mappings minimal; avoid speculative tweaks.
- Validation
- Ensure the plugin file is required by lazy.nvim and no syntax errors are introduced.
- If the change impacts keymaps, mention any new keys in the response.
Repo conventions
- Neovim config root:
config/nvim/. - lazy.nvim bootstrap and imports live in
config/nvim/init.lua. - Plugin config modules live in
config/nvim/lua/plugins/and return a plugin spec. - Keep edits ASCII-only unless the file already uses non-ASCII.
Notes on keymaps
- Prefer
<leader>mappings and keep them consistent with existing prefixes. - Avoid overriding single-letter normal mode bindings unless the repo already does so.
- When in doubt, add a
which-keyentry matching the new mapping.