mirror of
https://github.com/doomemacs/doomemacs
synced 2025-08-19 13:43:36 -05:00
Modules
Modules are made up of three (optional) parts:
- A
config.elfile, automatically loaded when the module is loaded (through@doomor@require). It uses@def-packagecalls (thin wrappers arounduse-package) to configure packages. - A
packages.elfile filled withpackage!anddepends-on!declarations. These are purely declarative macros. They populatedoom-packagesanddoom-modulesfor the package management system. - Either an
autoload.elfile orautoload/*.elfiles, which are scanned bydoom/reload-autoloadsand lazily loaded.
The convention for extra config files is to prefix them with a plus
(+git.el). These are not automatically loaded.
What modules aren't
Modules loosely take after Spacemacs' notion of layers, but are not meant to be interchangeable. Their purpose is almost purely organizational.
The only exception to this are completion modules. Other modules make
no assumptions about which completion modules are enabled. If company
isn't installed, company plugins will silently refuse to install, and
their respective @def-package blocks will be ignored.