doomemacs/modules
2017-03-08 21:34:52 -05:00
..
app app/rss: add elfeed-search-live-filter keybinding 2017-03-08 21:34:18 -05:00
completion completion/ivy: don't prepend describe-* or M-x with ^ 2017-03-08 21:34:52 -05:00
feature General cleanup + refactor 2017-03-08 14:41:32 -05:00
lang lang/latex: improve auctex+reftex config 2017-03-08 21:30:16 -05:00
private/hlissner private/hlissner: rethink keybindings + fix find-in-* snippet commands + fix :tablast typo 2017-03-07 16:23:56 -05:00
tools Fix leftover references to doom|eshell.... 2017-03-02 07:36:16 +10:30
ui ui/doom-dashboard: fix max-specpdl-size error on macos 2017-03-07 00:23:23 -05:00
README.md

Modules

Modules are made up of three (optional) parts:

  • A config.el file, automatically loaded when the module is loaded (through @doom or @require). It uses @def-package calls (thin wrappers around use-package) to configure packages.
  • A packages.el file filled with package! and depends-on! 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.

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.