| name | neovim |
| description | Neovim config healthcheck for ~/.dotfiles/.config/nvim/ using lazy.nvim and GNU Stow. Use when the user wants to validate or repair Neovim, add/remove plugins, diagnose startup performance, fix keymaps/LSP, or modernize config. Prefer audit for whole-dotfiles reviews and shell-env for non-Neovim terminal config. |
Neovim Configuration
Config lives at ~/.dotfiles/.config/nvim/, symlinked by GNU Stow, namespaced under kriscard/. Plugin manager is lazy.nvim.
Config Location
~/.dotfiles/.config/nvim/
โโโ init.lua # Entry point โ sources all modules
โโโ lua/kriscard/
โ โโโ core/
โ โ โโโ options.lua # vim.opt settings
โ โ โโโ keymaps.lua # vim.keymap.set with {desc = "..."}
โ โ โโโ autocmds.lua # autocommands
โ โโโ plugins/ # lazy.nvim plugin specs (one file per plugin or group)
โ โโโ *.lua
Stow package: cd ~/.dotfiles && stow nvim (or whatever the package name is โ check ls ~/.dotfiles).
First: classify the branch
- Healthcheck or broken config โ use Key Workflows; load
references/config.md if needed.
- Plugin add/remove/replacement โ load
references/plugins.md.
- Startup/performance โ load
references/performance.md.
- Whole-dotfiles health issue โ route to audit; non-Neovim terminal config โ route to shell-env.
Do not load all references.
Key Workflows
Validate config
:checkhealth " full diagnostic
:checkhealth lazy " plugin manager health
:checkhealth nvim-treesitter
:Lazy " plugin status dashboard
Done when health output is captured, any failing provider/plugin is named, and each issue has a fix or next diagnostic command.
Add a plugin
- Create or edit a file in
lua/kriscard/plugins/.
- Return a lazy.nvim spec table.
- Save โ lazy.nvim auto-detects changes on next start, or run
:Lazy sync.
- Run
:checkhealth <plugin> when the plugin provides health checks.
Done when the spec is in the Stow-managed source path, lazy.nvim can sync/load it, and any keymaps/commands include lazy-load boundaries.
Diagnose performance
Run :Lazy profile to see per-plugin load times. For CLI measurement:
nvim --headless --startuptime /tmp/nvim.log +q && sort -k2 -n /tmp/nvim.log | tail -20
Done when before/after startup measurements are recorded, top slow plugins or config files are named, and each recommendation maps to a lazy.nvim event, cmd, keys, or ft boundary or is marked needs deeper profiling.
Fix broken plugin
Move from least destructive to most destructive:
:Lazy log โ inspect recent install/update errors.
:messages โ capture Lua errors after startup.
:Lazy sync โ retry install/update when the error indicates missing or stale plugin state.
:Lazy clean โ remove unused plugins only after confirming they are no longer referenced.
- Delete
~/.local/share/nvim/lazy/<plugin> only as a last resort to force reinstall.
Done when the error is reproduced or log output is captured, the least destructive applicable repair has run, and the next startup/checkhealth result is recorded.
Quick Checks (run on every audit)
Completion gate: do not declare Neovim work done until the changed source path, validation command, and result are reported.
References
| Priority | Load when | Reference |
|---|
| High | Plugin recommendations, modern picks, what to add/remove, abandoned plugins | references/plugins.md |
| High | Startup time, lazy-loading strategies, profiling, which plugins are slow | references/performance.md |
| Medium | Config structure, best practices, common mistakes, keymaps, LSP setup | references/config.md |