My personal Neovim configuration built on NvChad v2.5. It aims to be a complete development environment with full IDE capabilities for Go, Java, Kotlin, TypeScript/JavaScript, Rust, Lua, and more.
- LSP & Diagnostics — Multiple language servers with semantic highlighting, breadcrumb navigation (navic + dropbar), and Lspsaga-powered UI
- Debugging — The debugging is configured for all the languages that I have to deal with on a regular basis
- Testing — neotest framework with adapters for multiple languages
- Git — Neogit, diffview, gitsigns, git-conflict, fugitive, and Octo for GitHub PRs/issues
- AI — GitHub Copilot, CopilotChat with custom prompts, and Sidekick CLI integration
- Navigation — Harpoon 2, Telescope (with live-grep-args), dropbar breadcrumbs
- Custom utilities — Base64/URL encoding, UUID generation, alphabetical sorting, Ray.so screenshots, NPM tarball hashing, plugin patch system, etc.
- Session management — vim-obsession with TMUX-aware auto-save
- GUI support — Neovide configuration with cursor effects, font scaling, and transparency
- Extras — Discord Rich Presence, WakaTime, file encryption (ccryptor), database explorer (DBee), Markdown preview, etc.
- Neovim >= 0.10
- Git >= 2.19
- A Nerd Font (default: FiraCode Nerd Font)
- ripgrep — required by Telescope live grep
- Node.js — required by several Mason packages and plugins
- Go — required for Go tooling (gopls, delve, gofumpt, goimports)
- Java / SDKMAN — optional, required for Java/Kotlin development (JDTLS, kotlin-debug-adapter)
- Back up your existing config if needed:
mv ~/.config/nvim ~/.config/nvim.bak- Clone the repository:
git clone git@github.com:Hugobsb/nvim-setup.git ~/.config/nvim- Open Neovim — lazy.nvim will bootstrap and install all plugins automatically:
nvim- Install all Mason packages:
:MasonInstallAll| Variable | Description |
|---|---|
NVIM_FONT |
Override default font (default: FiraCode Nerd Font) |
ENABLE_NVIM_TRANSPARENCY |
Set to 1 to enable transparent background |
NVIM_SAFE_DIR |
Directory for encrypted files (default: ~/Projects/safe/) |
LAZY_SSH_PREFIX |
SSH prefix for lazy.nvim plugin repos |
ENABLE_ETHERSYNC |
Set to true to enable ethersync-nvim (default: false) |
CODE_QUALITY_CHECKSTYLE |
Give it a value (e.g., "true") to enable checkstyle.xml for Java linting (default: empty) |
CODE_QUALITY_PMD |
Give it a value (e.g., "true") to enable PMD ruleset for Java linting (default: empty) |
COMMITLINT_CONFIG_PATH |
Path to commitlint config |
This is a personal configuration. Feel free to use it as a reference or starting point for your own setup.