Recording.2025-04-19.221032.mp4
Opinionated Neovim setup powered by lazy.nvim, a bespoke rust_inspired colorscheme, and a single plugin specification file: core.lua. The goal is a fast, cohesive editing experience with great defaults for Rust, C-family, web formats, and Markdown out of the box.
- Neovim 0.10 or newer (uses
vim.uvand the new notification APIs) - Git (for bootstrapping lazy-loaded plugins)
rg(ripgrep) andfdfor the Telescope pickers- PowerShell (
pwsh) is configured as the default external shell on Windows
Optional but recommended tools:
styluafor Lua formatting (:Masoncan install it)- A Nerd Font (statusline, dashboard, and diagnostic icons)
git clone https://github.com/freddiehaddad/nvim.git ~/.config/nvim
nvimThe first launch will bootstrap lazy.nvim, sync plugins, and install language servers and formatters via Mason. Use :Mason to verify managed tooling or <leader>ua / related Snacks toggles to explore the UI. When running on a new machine you may also want to install rg/fd manually.
- Custom rust_inspired theme with matching highlights for statusline, Telescope, Trouble, Snacks notifications, and the dashboard.
- Snacks dashboard with quick actions, animate/scroll toggles, statuscolumn, and a consistent floating window aesthetic.
lualine.nvimconfigured for global statusline, macro recorder, LSP health, Git branch/diff, and selection/search counters.mini.iconsprovides Nerd Font icons everywhere without pulling innvim-web-devicons.oil.nvimoffers a file explorer in place of netrw, with floating windows and single-border popups.
blink.cmpfor completion with ghost text, signature help, and friendly snippets.conform.nvimhandles formatting with async fallback to LSP when external formatters aren’t available.mini.pairs,which-key.nvim, and a curated set of keymaps ininit.lua.persistence.nvimfor session restore, gated behind convenient leader mappings.
mason.nvimautomatically installs core language servers, formatters, and debuggers (see the table below).nvim-lspconfigwith shared on-attach logic, inlay hints, folding, virtual diagnostics toggles, and Telescope-powered navigation.snacks.nvimaugments diagnostics, rename flows, inlay hints, notifications, and file renames.trouble.nvimintegrates with Telescope for diagnostics, quickfix, and symbol views.gitsigns.nvimadds hunk navigation, inline previews, and staging/reset flows.
nvim-dapwithnvim-dap-uiandmason-nvim-dapfor zero-config debugging.nvim-dap-virtual-textoverlays inline variable state.neotest(with the Rust adapter) provides test running, summary views, and output panes.
rustaceanvimfor Rust tooling, hover actions, code lens refresh, and dedicated keymaps.crates.nvimenhancesCargo.tomlwith completion, upgrades, and semantic hover information.
| Language / Format | Treesitter | LSP / Tooling | Formatter | Extras |
|---|---|---|---|---|
| C / C++ | ✅ | clangd |
clang-format |
DAP via codelldb |
| CMake | ✅ | neocmake |
built-in | |
| JSON | ✅ | jsonls + SchemaStore |
jq |
|
| Lua | ✅ | lua_ls + lazydev |
stylua |
Neovim API annotations |
| Markdown | ✅ | marksman |
mdformat |
markview.nvim |
| Rust | ✅ | rust-analyzer (rustaceanvim) |
rustfmt |
crates.nvim, DAP |
| TOML | ✅ | taplo |
taplo |
|
| YAML | ✅ | yamlls + SchemaStore |
yamlfmt |
Additional tree-sitter grammars are pre-installed for Git files, regex, HTML, and more to keep highlighting consistent across ancillary formats.
- Leader is
<Space>; local leader is also<Space> <leader>o/<leader>Oopen Oil rooted at the buffer or project<leader>ua,<leader>ul,<leader>uh, etc. toggle UI affordances via Snacks<leader>cftriggers formatting through Conform<leader>tt,<leader>tr,<leader>tddrive Neotest<leader>d…namespace is reserved for DAP actions (continue, step, breakpoints)<leader>plopens the lazy.nvim manager UI- Rich LSP navigation (
gd,gy,gI,gr, etc.) is wired through Telescope
See init.lua for the full list of defaults and window management helpers.
init.lua– editor options, keymaps, autocmds, and lazy.nvim bootstrapping.lua/plugins/core.lua– single source of truth for plugins, their options, and shared LSP helpers.colors/rust_inspired.lua&lua/rust_inspired– the custom color palette that unifies UI components.lua/plugins/– additional plugin modules (automatically imported by lazy).reset.ps1– helper script for pruning caches on Windows.
Thanks to the authors of the plugins above and to the broader Neovim community for tooling, documentation, and inspiration.
Happy hacking! If you spot an issue or have an idea for improvement, feel free to open an issue or PR.