Files
dotfiles/.config/nvim/README.md
T
2026-08-31 13:48:36 -07:00

51 lines
1.4 KiB
Markdown

# Neovim Config
read_when: updating keymaps, startup order, or plugin layout
## Load Order
1. `init.lua`
2. `core.lazy` (bootstraps lazy.nvim, loads options)
3. colorscheme
4. `core.keymaps` (core editing, LSP, commands, and which-key groups)
5. `core.autocmds`
6. `core.highlights`
7. Hyprland LSP helper
## Where To Edit
- Options: `lua/core/options.lua`
- Autocmds: `lua/core/autocmds.lua`
- Highlights: `lua/core/highlights.lua`
- Keymaps entrypoint: `lua/core/keymaps/init.lua`
- Keymaps by domain:
- `lua/core/keymaps/editing.lua`
- `lua/core/keymaps/lsp.lua`
- `lua/core/keymaps/commands.lua`
- `lua/core/keymaps/groups.lua`
- Plugin setup and plugin-owned mappings: `lua/plugins/*.lua`
## Structure Notes
- Keep plugin specs in `lua/plugins/`.
- Keep core logic in `lua/core/`.
- Keep reusable helpers in `lua/utils/`.
- Put plugin mappings in the plugin spec's `keys` table so Lazy can load them on demand.
- Use `which-key` only to label mapping groups.
## Tool Ownership
- Formatting: Conform, with explicit formatters and no LSP fallback.
- Linting: nvim-lint on save. Codespell and pydoclint are linters.
- Completion: nvim-cmp with LuaSnip. None-ls is not part of completion.
- File browsing: Snacks Explorer.
- Notifications: Snacks Notifier. Fidget owns LSP progress, and Noice owns command/message UI.
## Checks
```sh
stylua --check .
luacheck .
nvim --headless -i NONE -u ./init.lua '+qa'
```