This is my baller neovim config. There is barely no plugin left under defaults.
- Bleeding Edge: Leverages Neovim 0.12+ features including
vim.packfor plugin management and the newvim.lsp.configAPI. - Custom UI Components:
- Dynamic Theme System: A hand-rolled color scheme (vanilla++)
(
lua/config/coloring.lua) that generates semantic colors for both light and dark modes. - Custom Tabline: A minimal tabline (
lua/config/tabline.lua) showing only relevant buffers and allowing quick tab switching viaA, S, D, Fkeys. - Custom Statuscolumn: Combines line numbers, signs, and a visual border
(
lua/config/statuscolumn.lua).
- Dynamic Theme System: A hand-rolled color scheme (vanilla++)
(
- Opinionated Workflow: Preconfigured for web development (Typescript, React, Tailwind, Jinja) with specific formatting, linting, and navigation preferences.
- AI Integration is WIP
- Neovim: v0.12.0+ (Required for
vim.packandvim.lsp.config). - External Tools:
ripgrep(for search)fd(for file finding)- LSPs & Formatters
- Clone the repository into your Neovim config directory:
git clone https://github.com/yourusername/nvim-config.git ~/.config/nvim - Start Neovim. The
init.luawill automatically bootstrap plugins usingvim.pack.
The configuration defines a custom color palette in lua/config/coloring.lua.
It generates helper functions for manipulating hex codes (darken_hex,
lighten_hex).
Highlights are applied dynamically based on vim.o.background:
.
├── init.lua # Entry point, loads config and plugins
├── lua/
│ ├── config/
│ │ ├── coloring.lua # Color manipulation utils
│ │ ├── highlights.lua # Theme definitions
│ │ ├── keymaps.lua # Global keymaps
│ │ ├── settings.lua # Vim options
│ │ ├── statuscolumn.lua # Custom statuscolumn
│ │ └── tabline.lua # Custom tabline
│ ├── lsp/ # LSP configs (e.g., Tailwind)
│ └── plugins/ # Custom plugin specifications
├── queries/ # Treesitter queries (Jinja overrides)
└── snippets/ # Custom VSCode-style snippets