NvChad
[![Lua](https://img.shields.io/badge/Made%20with%20Lua-blueviolet.svg?style=for-the-badge&logo=lua)]()
# Very Very Useful lua plugins used in my config
#### Lspkind-nvim
This tiny plugin adds vscode-like pictograms to neovim built-in lsp completion items :
#### Nvim-tree.lua
fast file tree :
### Telescope-nvim
A fuzzy file finder, picker, sorter, previewer and much more:
### Indent-blankline.nvim
adds indentline :
### Galaxyline
fastest statusline plugin I've used so far:
### Nvim-bufferline.lua
As a top tabline like thing which lets me handle tabs and buffers like switching , sorting and closing them etc.
### Nvim-web-devicons
Lua fork of vim devicons which lets me change icons of filetypes
### Nvim-treesitter
Better syntax highlighting for programming languages ( my config just has html,css,js support for now ).
without / with Treesitter :
# Credits
[Elianiva](https://github.com/elianiva) helped me with neovim lua related issues many times, NvChad wouldnt exist without his help at all!
# Features
- File navigation with Nvimtree
- Using plugins that are mouse friendly
- sexy themes
- managing tabs , buffers with bufferline
- autosave
- icons on nvimtree , telescope , bufferline/statusline and almost everywhere! with nvim-web-devicons
- minimal status line ( galaxyline)
- gitsigns (colored bars for git in my config)
- using nvim-lsp
- nvim-lspconfig for nvim-lps configuration
- lspInstall for installing lsp servers easily.
- nvim-compe for autocompletion
- lspkind to show pictograms on autocompletion items
- telescope for file finding , picking , previewing (files and even images)
- nvim-treesitter for syntax highlighting
- nvim-autopairs , for autolosing braces and stuffs
- neoformat for prettifying / formatting code
- packer.nvim as package manager
- indent-blankline.Nvim for indentlines
- smooth scrolling
- Snip support from VSCode through vsnip supporting custom and predefined snips (friendly-snippets)
# Requirements
- neovim 0.5
- A terminal that supports [nerdfonts](https://github.com/ryanoasis/nerd-fonts)
- Set terminal's inner padding to 0.
# Wiki
- [pre-requisite](https://github.com/siduck76/NvChad/wiki/Lua-guides)
- [config-structure](https://github.com/siduck76/NvChad/wiki#config-structure)
- [mappings](https://github.com/siduck76/NvChad/wiki/mappings)
# Bloat
- To all those who think this is probably bloated , sure it is . Bloat means different to everyone . NvChad has like 30 ~ plugins but that doesnt mean those plugins are compromsing neovim's speed, snappiness or making it slow. No matter how many plugins I'd add on nvchad , it wouldnt compromise speed / snappiness / make it slow or whatever since it uses packer.nvim as plugin manager , packer.nvim lets you lazy load plugins i.e loading plugins on certain events , mappings , sequentially loading them etc so loading them only when needed , I have lazy loaded 28/30 plugins so most plugins arent loaded by default , hence not affecting neovim's startup/launch time.
- The below image shows startuptime for :
- NvChad Without lazy loading vs with lazy loading
- Default neovim with startuptime.vim plugin vs NvChad
- NvChad on my other system with ssd
(The above 2 images show tests from my old pentium system so ofc the startuptime will be a lot more lesser for you )
# TODO
It would be nice if NvChad focuses on existing plugins and config before adding new things , some plugins like whichkey , telescope , treesitter still have basic configs! Also adding new features that'd make NvChad slow or its startuptime slow wouldnt be encouraged , if that feature's really needed then It'll be mentioned in the wiki with its config.
- Debloat the config
- Add more themes.
- Add a theme switcher.
- Preview shortcuts in the form of a pretty [cheatsheet](https://user-images.githubusercontent.com/59060246/122490009-95fd9980-cffe-11eb-9676-78019aa2cd65.png)
- Add a global configuration so it doesnt get hard to update :c
# Contribute
- PR's are always welcomed however NvChad aims to be less bloated and suckless. So PR's regarding existing plugin's enhancement , bug fixes are more encouraged.
- PR's regarding adding new plugins and their configs must be given some thought since NvChad aims to have a minimal config and meant to be used as a "base" neovim config so it will have only a set of important plugins. So adding more and more plugins, making NvChad bloated + slow wont help!.
- NvChad isnt a Framework. NvChad wont keep adding more and more features ( adding new plugins most likely) as requested , no spoonfeeding!! If you think the plugin you want to be added is very useful and many NvChaders would find it useful, then such feature's PR is welcomed!
- But adding specific features like adding config for https://github.com/wakatime/vim-wakatime etc will be added in this https://github.com/siduck76/NvChad/wiki/Chad-user-configs. This lets the user select the things only they want ( from extra configs ) .
## :gift_heart: Support
If you enjoy using NvChad and would like to show your appreciation, you may want to tip me here.
It is never required but always appreciated.