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

1.4 KiB

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

stylua --check .
luacheck .
nvim --headless -i NONE -u ./init.lua '+qa'