A personal Neovim configuration built on a kickstart.nvim foundation, with lazy.nvim for plugin management, no Mason, and a rose-pine moon colorscheme.
Install system packages before first launch:
# Base tools
sudo pacman -S git neovim npm unzip go zig
# Run the packages script for LSPs and formatters
bash pacakges.shpacakges.sh installs:
- LSPs (pacman):
lua-language-server,gopls,clang,yaml-language-server,bash-language-server - LSPs (AUR):
zls,tailwindcss-language-server,jdtls,kotlin-language-server - Formatters:
prettier,stylua,shfmt,shellcheck,yamllint,prettierd,actionlint,jq,google-java-format,ktlint - Go tools:
goimports,golines,gomodifytags,dlv,templ - Markdown/mermaid:
imagemagick,luarocks(pacman),magickLuaRock (luarocks, Lua 5.1),mmdc(npm)
On first launch, lazy.nvim bootstraps itself and installs all plugins automatically.
init.lua ← entry point
lua/
scripts/
setup.lua ← globals (mapleader, nerd font)
lazy.lua ← lazy.nvim bootstrap + inline plugins
autocmd.lua ← autocommands
keymaps.lua ← global keymaps
opt.lua ← vim options
plugins/
*.lua ← one plugin spec per file
utils.lua ← shared helpers (OSC 7, etc.)
pacakges.sh ← system package installer
.stylua.toml ← Lua formatter config
init.lua loads scripts in this sequence:
setup.lua— setsmapleader/maplocalleaderto<Space>and enables Nerd Font iconslazy.lua— bootstraps lazy.nvim, registers inline plugins, importslua/plugins/autocmd.lua— registers all autocommandskeymaps.lua— registers global keymapsopt.lua— sets vim options
Setup must run before lazy so that mapleader is set before any plugin keymaps are registered.
rose-pine moon variant with transparency, bold/italic styles, and a custom palette override (rose = '#000000'). All DAP, gitsigns, and diagnostic highlights are mapped to rose-pine palette tokens for visual consistency.
Lua files are formatted with stylua. CI checks formatting on PRs.
stylua --check . # verify
stylua . # fixConfig (.stylua.toml): 160-column, 2-space indent, single quotes, no call parentheses.
lua/scripts/README.md— options, keymaps, and autocmds referencelua/plugins/README.md— every plugin, its purpose, and all keymaps