This is my personal Neovim configuration, built on top of NvChad. It's tailored to my workflow with custom plugins, key mappings, and settings.
- Colorscheme:
onedark(set inchadrc.lua) - NvChad UI: Inherits most settings from NvChad, with room for further customization.
Your setup uses a modular approach for plugin management, leveraging NvChad's system and custom configurations in lua/plugins/ and lua/configs/. Here are the main plugins you have configured:
-
conform.nvim:
A fast and focused formatter plugin for Neovim. Your configuration uses a custom setup fromlua/configs/conform.lua.
Format on save is available (commented in your config). -
nvim-lspconfig:
Quickstart configurations for the built-in LSP client. Your setup loads custom LSP server settings fromlua/configs/lspconfig.lua.
- Lazy.nvim:
Your plugin manager is configured inlua/configs/lazy.lua.- Plugins are lazy-loaded by default for performance.
- The default colorscheme is set to
"nvchad". - Several built-in or legacy Vim plugins are disabled for a leaner runtime.
- nvim-treesitter:
There's a commented-out example for Treesitter, which would provide advanced syntax highlighting and parsing for multiple languages. - nvchad.blink:
There's a commented-out import for a custom blink plugin.
Your configuration provides robust support for many languages, with a special focus on Rust, Python, Go, C/C++, and more. Here's how it works:
- Mason is used to automatically install and manage LSP servers, formatters, and linters.
- Tools are specified in
lua/configs/mason.luaunderensure_installed, including:- LSP Servers:
rust-analyzer,pyright,gopls,clangd,lua-language-server,html-lsp,css-lsp,typescript-language-server,json-lsp,yaml-language-server,dockerfile-language-server,bash-language-server - Formatters:
rustfmt,black,stylua,prettier,gofmt,clang-format - Linters:
eslint_d,pylint,shellcheck
- LSP Servers:
- All major language servers are set up in
lua/configs/lspconfig.luawith sensible defaults. - Rust (rust-analyzer):
- Deep integration with advanced settings:
- Enables all Cargo features, build scripts, and out directories.
- Runs
clippyon save for linting. - Enables procedural macros, with some ignored for performance.
- This ensures a powerful, IDE-like experience for Rust development.
- Deep integration with advanced settings:
- Python (pyright):
- Configured for workspace-wide analysis and type checking.
- Go (gopls):
- Enables static analysis, formatting, and parameter checks.
- C/C++ (clangd):
- Uses UTF-16 offset encoding for compatibility.
- Lua (lua_ls):
- Tailored for Neovim development, with Neovim runtime and plugin libraries included for completion and diagnostics.
- LSP:
rust-analyzeris installed and managed by Mason. - Linting: Runs
clippyautomatically on save, with all features enabled. - Formatting: Uses
rustfmtfor code formatting. - Procedural Macros: Enabled for full macro support, with some common macros ignored for speed.
- JavaScript/TypeScript, HTML, CSS, JSON, YAML, Docker, Bash, and more, each with their own LSP, formatter, and linter as appropriate.
- LSP: Custom LSP settings and servers configured in
lspconfig.lua. - Formatter: Conform.nvim is set up for code formatting.
- Mason: Handles installation of LSP servers, DAP, linters, and formatters.
Custom key mappings are defined in lua/mappings.lua:
;in normal mode enters command mode (:).jkin insert mode exits to normal mode (<ESC>).- (Commented out)
<C-s>to save in normal, insert, and visual modes.
- Inherits most options from NvChad (
require "nvchad.options"). - Space for your own custom options (currently commented out).
- Inherits autocommands from NvChad (
require "nvchad.autocmds"). - Space for your own custom autocommands.
lua/configs/contains specific plugin or feature configurations (details can be added if you want to highlight any particular plugin or setup).
- Clone this repo into your Neovim config directory:
git clone <this-repo-url> ~/.config/nvim
- Install NvChad as the base.
- Open Neovim and let it install plugins automatically.