Inbuilt features
- NvChad is built upon its personal plugins and many general Neovim plugins, below are the features that are provided by nvchad plugins ( our ui plugin, base46 )
Base46
- Base46 is NvChad's highly performant theming plugin and has 68 themes.
How it works?
- Gets highlight groups
- Do some computations i.e. check for overridden highlight groups, new highlight groups, theme overrides, custom user themes etc.
- Now, base46 compiles all of that into bytecode.
- Integration files aren't loaded by default; for example highlight group for telescope, nvimtree etc are put into different files.
- highlight groups are lazyloaded i.e. you load them when needed
- example : dofile(vim.g.base46_cache .. "cmp")
- In the below video, you can see that the chadrc file's ( user config ) UI related options reload on the fly
Theme switcher
- A theme switcher with telescope.nvim that reloads themes on the fly using the base46 plugin + plenary.nvim.
Statusline
- We have our own statusline module ( our UI Plugin ) which has 4 statusline styles
Tabufline
- NvChad's tabufline module ( from UI Plugin ) is a mix of tabline & bufferline.
- It manages buffers & tabs, buttons in it are clickable
- Each tab will have its own set of buffers stored, and the tabufline will show those only.
- Think of it like workspaces on Linux/Windows where windows stay in their own workspaces, but in vim buffers from all tabs will be shown in every tab!
Term
- NvChad's terminal module to toggle and run commands in Neovim terminal buffer
- Its features are :
- Creating new terminal windows
- Creating toggleable terminal windows
- Creating terminal window for code runner
- All of the above functions allow floating, horizontal, vertical windows
- Each window can have its own cmd/size/cmd/ highlight group
- Using it with our telescope picker ( :Telescope terms ) to unhide terminal buffers leader + pt .
- Check ui plugin docs
Dashboard
- Nvdash is NvChad's minimal dashboard module, It's very simple at this stage and will get more features in the future!
- Command to run it
Nvdash
, its disabled on startup, check the nvconfig.lua for its syntax and override it from chadrc.
NvCheatsheet
- Auto-generated mappings cheatsheet module, which has a similar layout to that of CSS's masonry layout.
- It has 2 themes ( grid & simple )
- command to toggle it :
NvCheatsheet
and mappingleader + ch
Colorify
- Colors hex color on buffer and lsp colors on the buffer, like tailwind etc
Lsp Signature
- Minimal signature window ( 50 LOC ~), just uses
vim.lsp.buf.signature_help
on some autocmds.
Lsp Variable Renamer
- Used for renaming
Nvim-cmp styling
nvim-cmp
is a completion plugin for Neovim coded in Lua.- Below are some cmp styles in nvchad
Automating Mason installation
-
MasonInstallAll command will now capture all the mason tools from your config
-
Supported plugins are : lspconfig, nvim-lint, conform.nvim
-
So for example if you have lspconfig like this :
require("lspconfig").html.setup{}
require("lspconfig").clangd.setup{}
Then running MasonInstallAll will install both the mason pkgs
check :h nvui.mason
for more info
General Neovim plugins
- These plugins aren't related to nvchad, we just tweak them a bit and theme the UI related ones.
Telescope.nvim
- Telescope.nvim is a highly extensible fuzzy finder over lists. Built on the latest awesome features from Neovim core. Telescope is centered around modularity, allowing for easy customization.
- Below are 2 styles of telescope in nvchad ( bordered and borderless )
Nvim-tree.lua
nvim-tree.lua
is a file explorer tree for Neovim written in Lua.
- Note that that's just the cmp look in everblush theme, there are more 57 themes! You can hide cmp icons, cmpkind txt etc from the user config ( chadrc ) itself!
Auto-completion & LSP
nvim-lspconfig
is used along with cmp for completion andluasnip
+friendly-snippets
for snippet completion!
Other plugins
lazy.nvim
- A modern plugin manager for Neovim.which-key.nvim
- Create key bindings that stick. WhichKey helps you remember your Neovim keymaps, by showing available keybindings in a popup as you type.nvim-colorizer.lua
- The fastest Neovim colorizer.nvim-treesitter
- Nvim Treesitter configurations and abstraction layer. We use it for syntax highlighting & auto-indenting.indent-blankline.nvim
- Indent guides for Neovim.gitsigns.nvim
- Git integration for buffers.nvim-autopairs
- Autopairs for neovim written in lua.mason.nvim
- Portable package manager for Neovim that runs everywhere Neovim runs. Easily install and manage LSP servers, DAP servers, linters, and formatters.conform.nvim
- Lightweight yet powerful formatter plugin for Neovim.