mirror of
https://github.com/ksyasuda/dotfiles.git
synced 2026-09-12 05:16:17 -07:00
51 lines
1.4 KiB
Markdown
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'
|
|
```
|