doomemacs/modules/README.md

29 lines
1.1 KiB
Markdown
Raw Normal View History

2017-02-20 13:19:12 +08:00
# Modules
2017-02-21 01:02:57 +08:00
Modules are made up of three (optional) parts:
2017-02-20 13:19:12 +08:00
2017-02-21 01:02:57 +08:00
+ A `config.el` file, automatically loaded when the module is loaded
2017-03-17 02:28:26 +08:00
(through `doom!` or `require!`). It uses `def-package!` calls (thin
2017-02-21 01:02:57 +08:00
wrappers around `use-package`) to configure packages.
+ A `packages.el` file filled with `package!` and `depends-on!`
2017-02-21 01:02:57 +08: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 13:19:12 +08:00
2017-02-21 01:02:57 +08:00
The convention for extra config files is to prefix them with a plus
2017-03-17 02:28:26 +08:00
(`+git.el`). These must be manually loaded using `load!` from a
module's configuration.
2017-02-20 13:19:12 +08:00
2017-02-21 01:02:57 +08:00
## What modules aren't
2017-03-17 02:28:26 +08:00
Modules loosely take after Spacemacs' notion of layers, but were not
meant to be as interchangeable. Their purpose is _almost_ purely
2017-02-21 01:02:57 +08:00
organizational.
2017-03-17 02:28:26 +08: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.