Overview

NvChad uses lazy.nvim for plugins management. List of default plugins.

Lazy loading

We lazy load almost 95% of the plugins, so we expect and recommend you to lazy load the plugins as well, as it's efficient in reducing startup-time.

  • We don't want users making NvChad slow just because they didn't lazy load plugins they've added.
  • Please read the lazy.nvim plugin specs docs to know what options are available for lazyloading etc.
  • Try your best to lazy-load a plugin!

Manage plugins

All NvChad default plugins will have lazy = true set. Therefore, if you want a plugin to be enabled on startup, change it to lazy = false.

  • Read official lazy doc examples
  • plugins/anyname.lua
return {
  { "folke/which-key.nvim",  enabled = false }, -- disable a default nvchad plugin

  -- this opts will extend the default opts 
  {
    "nvim-treesitter/nvim-treesitter",
    opts = { ensure_installed = {"html", "css", "bash"} },
  }, 

  -- If your opts uses a function call ex: require*, then make opts spec a function
  -- Then modify the opts arg
  {
    "nvim-telescope/telescope.nvim",
    opts = function(_, conf)
      conf.defaults.mappings.i = {
        ["<C-j>"] = require("telescope.actions").move_selection_next,
        ["<Esc>"] = require("telescope.actions").close,
      }

     -- or 
     -- table.insert(conf.defaults.mappings.i, your table)
      return conf
    end,
  }
}