Skip to content

Latest commit

 

History

190 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My neovim config

nvim

Neovim 0.11+, lazy.nvim, no Mason — every external tool is a system package.

Architecture

Arrows point at what a layer is allowed to require.

  init.lua
     ├── core/ ─────────────────┐
     └── lazy.nvim              │
           └── plugins/ ────────┤     specs; no logic
                 ├── features/ ─┤     the code specs call into
                 ├── theme/ ────┤     roles → highlights, on a ColorScheme hook
                 └── toolchain/ ┤     one tool inventory, read by conform + nvim-lint
                       scaffold/┘
                                └──> lib/    generic, knows no plugin
Directory Holds
lua/core/ options, filetypes, autocmds, keymaps
lua/lib/ root detection, lazy-require, cursor state
lua/features/ refactoring engine, lsp, lualine, edgy
lua/plugins/ lazy specs, and the lazy-loading rules
lua/theme/ colorscheme switching, :Theme
lua/toolchain/ :Toolchain*, the JSON store
lua/scaffold/ :ProjectScaffold, :ProjectDoctor
ansible/ provisioning the tools
tests/ regression tests — just test

Two rules

  • A plugin's spec lives in lua/plugins/, its code in lua/features/.
  • Formatters, linters and LSP servers are declared once, in lua/toolchain/registry.lua. conform and nvim-lint derive their filetype maps from it.
  • Refactorings build a plan and apply none of it, so preview, conflict gating and cross-file undo are shared — see lua/features/refactor/.
  • Language actions are keyed by question, not by language: <leader>b builds and runs, <leader>t tests, <leader>d debugs and <leader>v inspects in Rust, C, Zig, Go, Python and Lua alike — see lua/features/lang/.
  • The binary is a source of truth too: <leader>x shows struct holes, the linked machine code, sanitizer frames, rr record/replay, and the kernel-tree workflow (b4, checkpatch, Kconfig, QEMU) — see lua/features/sys/.
  • Crashes open like files: <leader>dc picks a core dump, :CrashDecode resolves vmlinux and module .ko frames, and <CR> jumps to the faulting line — see lua/features/crash/.
  • Windows have names, and transient views borrow a pane instead of opening their own — see lua/features/workspace/.

Screens

Lazy loading Debugging
lazy debug

Remarks

About

Fully fledged IDE experience in neovim tailored to meet my needs

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages