Skip to main content

All modules

Doom Nvim contains around 40 modules that can be enabled or disabled to configure your nvim experience. Each module is a bundle of plugins, configurations, commands, autocommands and keymaps to add a certain feature or support a certain language.

They can be enabled / disabled by commenting out the entry in your modules.lua file and are grouped into 2 categories.

-- modules.lua
return {
features = {
-- These modules extend neovim with extra capabilities
},
langs = {
-- These modules add support for languages
},
}

💡 Quickly open your modules.lua file with the keybind <space>Dm

Feature Modules​

These modules add extra capabilities to doom nvim. They can be added in your modules.lua file under the features key. i.e:

-- modules.lua
return {
features = {
"annotations", -- This module is enabled
-- "auto_install", -- this module is disabled
}
}
Module NameDescription
annotationsGenerate code annotations for functions, classes, structs, etc.
auto_installAutomatically install LSPs/Null-ls providers for language modules
autopairsAutomatically close bracket pairs
commentEasily toggle comments for all languages
linterFormat, lint and diagnose your code with null-ls
lspAdd code completion support with nvim-cmp
extra_snippetsAdd snippets for your language.
auto_sessionSave and return to previous neovim sessions
colorizerShow colors in editor
editorconfigSupport .editorconfig files for per-project config
gitsignsGit integration for buffers
illuminateHighlight other occurances of worlds
indentlinesShow indentation in the buffer
range_highlightHighlight ranges in the buffer as you type them
todo_commentsHighlight todo, warn, info, etc comments
lsp_progressShow lsp loading progress in the bottom right corner
tablineShow currently opened buffers in the tabline
dashboardA pretty dashboard when opening neovim
troubleShow diagnostics across the entire project
statuslineA pretty and integrated statusline using heirline
minimapShow current position in document
terminalAn integrated terminal in neovim
rangerUse ranger file explorer in neovim
dapDebug code in neovim
replInteractive REPL for the current file type
explorerAn enhanced filetree explorer in neovim
netrwThe default file tree explorer with a nice, sane config
firenvimEmbed neovim in your browser
lazygitIntegrate with lazygit
neogitA git client for neovim
neorgNeovim org-mode, organise your life
projectsAdds a telescope finder to switch projects
supermanRead unix man pages in neovim
telescopeFuzzy searcher to find files, grep code and more
whichkeyAn interactive cheat sheet

Language modules​

These modules add support for various languages to doom-nvim. They can be added in your modules.lua file under the langs key. i.e:

-- modules.lua
return {
features = {
"lua", -- This module is enabled
-- "python", -- this module is disabled
}
}

Languages are implemented with a standardized settings field. Too see how to configure languages, including enabling/disabling features, switching lsp/null-ls providers and passing in custom config see this guide.

LanguageTreesitter?LSP?Formatter?Diagnostics?Code Actions?Debugger?
lua✅✅✅✅
python✅✅✅✅
bash✅✅✅✅✅
fish✅✅✅
gdscript✅✅✅✅
php✅✅✅✅
ruby✅✅✅
javascript✅✅✅✅✅
typescript✅✅✅✅✅
css✅✅✅✅
vue✅✅✅✅✅
svelte✅✅✅✅✅
rust✅✅✅
cc (C/C++)✅✅✅
ocaml✅✅
haskell✅✅
c_sharp (C#)✅✅
kotlin✅✅✅
java✅✅✅
json✅✅✅
yaml✅✅✅✅
toml✅✅✅
markdown✅✅
terraform✅✅✅
dockerfile✅✅✅
nix✅✅✅✅✅

Core modules​

There are actually three categories of modules however it's not recommended that you modify these values as it may break the doom-nvim experience.

Core modules are internal modules used by doom-nvim to make it work. They are hidden from your module.lua and injected on runtime. However, you can override this field to disable certain core modules if you wish.

-- modules.lua
return {
core = {
"required", -- A lot of modules depend upon this module, should not be removed
"treesitter", -- A lot of modules also depend on treesitter, should not be removed
-- "updater", Disable auto updater
-- "reloader", Disable config reloader
"doc_gen", -- Generates this documentation with `mini.doc`
}
}

NameDescriptionCan be disabled?
requiredVarious package dependencies, keybinds, commands to provide the base doom-nvim setup.No
treesitterAdds a basic treesitter config to be leveraged by other modulesNo
doc_genGenerates doom-nvim docs, (disabled by default)Yes
updaterAdds :DoomCheckUpdates and :DoomUpdate commandsYes
reloaderAdds :DoomReload command and can reload your config on file saveYes