AGENTS.md — Neovim Config
This is a LazyVim-based Neovim configuration for Neovim 0.12+, migrated from LunarVim.
Structure
~/.config/nvim/
├── init.lua # Entry point, loads config/lazy.lua
├── lua/config/
│ ├── lazy.lua # lazy.nvim bootstrap + LazyVim extras imports
│ ├── options.lua # Custom vim options
│ ├── keymaps.lua # Custom keymaps
│ └── autocmds.lua # Custom autocommands
└── lua/plugins/
├── colorscheme.lua # NeoSolarized theme
├── python.lua # basedpyright + uv .venv detection
└── ui.lua # Smooth scroll, breadcrumbs (nvim-navic)
Key conventions
- Extras (language packs, formatting, editor features) are imported in
lua/config/lazy.luainside thespectable, between the LazyVim import and{ import = "plugins" }. - Custom plugin specs go in
lua/plugins/*.luaas individual files. Each file returns a table of lazy.nvim plugin specs. - Do not put
lazyvim.plugins.extras.*imports insidelua/plugins/files — they must be in thespectable inlazy.luato load in the correct order. lazy-lock.jsonis tracked in git to pin plugin versions.lazyvim.jsonis gitignored (auto-generated state).
Enabled extras
formatting.prettier— JS/TS/MD formattinglang.go— gopls, gofumpt, goimports, golangci-lintlang.json— JSON schemas via SchemaStorelang.yaml— YAML LSPlang.docker— Dockerfile LSPlang.markdown— Markdown preview and renderingui.indent-blankline— Indent guideseditor.illuminate— Word highlighting under cursor
Python setup
basedpyright is configured in lua/plugins/python.lua to auto-detect:
.venv/bin/pythonin the project root (uv, poetry)$VIRTUAL_ENV/bin/pythonas fallback
No venv activation needed — just open nvim in a project with .venv/.
LSP servers (via Mason)
basedpyright, gopls, lua-language-server, golangci-lint, gofumpt, goimports, prettier, shfmt, stylua
Adding a new language
- Check available extras: https://www.lazyvim.org/extras
- Add
{ import = "lazyvim.plugins.extras.lang.<name>" }to the spec inlua/config/lazy.lua - Run
:Lazy syncto install - Mason will auto-install the required LSP server
Migration notes
Migrated from LunarVim (April 2025) due to LunarVim being effectively unmaintained and incompatible with Neovim 0.12. The old LunarVim config is backed up at ~/.config/lvim.bak/ and runtime at ~/.local/share/lunarvim/.