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

nvchad statusline

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.

nvdash

NvCheatsheet

  • Auto-generated mappings cheatsheet module, which has a similar layout to that of CSS's masonry layout.
  • It has 2 themes ( grid & simple )

nvcheatsheet

  • command to toggle it : NvCheatsheet and mapping leader + ch

Colorify

  • Colors hex color on buffer and lsp colors on the buffer, like tailwind etc

image

Lsp Signature

  • Minimal signature window ( 50 LOC ~), just uses vim.lsp.buf.signature_help on some autocmds.

image

Lsp Variable Renamer

  • Used for renaming

image

Nvim-cmp styling

  • nvim-cmp is a completion plugin for Neovim coded in Lua.
  • Below are some cmp styles in nvchad

image image image image image image image

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 )

telescope

Nvim-tree.lua

  • nvim-tree.lua is a file explorer tree for Neovim written in Lua.

nvim tree

  • 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


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.