2017-02-20 00:19:12 -05:00
|
|
|
# Modules
|
|
|
|
|
2017-02-20 12:02:57 -05:00
|
|
|
Modules are made up of three (optional) parts:
|
2017-02-20 00:19:12 -05:00
|
|
|
|
2017-02-20 12:02:57 -05:00
|
|
|
+ A `config.el` file, automatically loaded when the module is loaded
|
2017-03-16 14:28:26 -04:00
|
|
|
(through `doom!` or `require!`). It uses `def-package!` calls (thin
|
2017-02-20 12:02:57 -05:00
|
|
|
wrappers around `use-package`) to configure packages.
|
2017-02-23 00:06:12 -05:00
|
|
|
+ A `packages.el` file filled with `package!` and `depends-on!`
|
2017-02-20 12:02:57 -05:00
|
|
|
declarations. These are purely declarative macros. They populate
|
|
|
|
`doom-packages` and `doom-modules` for the package management
|
|
|
|
system.
|
|
|
|
+ Either an `autoload.el` file or `autoload/*.el` files, which are
|
|
|
|
scanned by `doom/reload-autoloads` and lazily loaded.
|
2017-02-20 00:19:12 -05:00
|
|
|
|
2017-02-20 12:02:57 -05:00
|
|
|
The convention for extra config files is to prefix them with a plus
|
2017-03-16 14:28:26 -04:00
|
|
|
(`+git.el`). These must be manually loaded using `load!` from a
|
|
|
|
module's configuration.
|
2017-02-20 00:19:12 -05:00
|
|
|
|
2017-02-20 12:02:57 -05:00
|
|
|
## What modules aren't
|
|
|
|
|
2017-03-16 14:28:26 -04:00
|
|
|
Modules loosely take after Spacemacs' notion of layers, but were not
|
|
|
|
meant to be as interchangeable. Their purpose is _almost_ purely
|
2017-02-20 12:02:57 -05:00
|
|
|
organizational.
|
|
|
|
|
2017-03-16 14:28:26 -04:00
|
|
|
The only exception 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.
|