Commit graph

379 commits

Author SHA1 Message Date
Henrik Lissner
980f5e470b
Fix edge case where package autoloads would break startup
Particularly in the case of gh loading eieio and marshal.
2018-05-16 00:57:31 +02:00
Henrik Lissner
595109209a
Fix doom//reload & optimize make all task 2018-05-16 00:11:14 +02:00
Henrik Lissner
9aa346f185
Make packages! accept list of package names (non lists)
This convenience macro lets you specify multiple packages with one
block, e.g.

  (packages! rtags ivy-rtags glsl-mode)

Each entry can be a full recipe.

  (packages! (rtags :disable t) (glsl-mode :recipe (...)))
2018-05-16 00:11:14 +02:00
Henrik Lissner
0dfe1bc3d5
Allow chained package!'s
This allows users to disable one master package, thus disabling all its
children. e.g. Disable irony, then irony-eldoc, flycheck-irony,
company-irony and company-irony-c-headers will be disabled too.
2018-05-16 00:11:14 +02:00
Henrik Lissner
09ecce0073
Fix package! :disable not disabling packages 2018-05-16 00:11:14 +02:00
Henrik Lissner
18e6a6b1db
Include package autoloads in doom-autoloads-file
This offloads some of the work Doom has to do creating
`doom-packages-file` onto `make autoloads`. This closely mimics the
package-quickstart-refresh functionality in Emacs 27+, but is more
specialized.

This means package autoloads are now loaded on every startup.

Many :mode, :interpreter, and :commands declarations in def-package!
blocks are made redundant by this and will be cleaned up soon.
2018-05-15 22:17:43 +02:00
Henrik Lissner
12013b4ad4
Cache interpreter-mode-alist in doom-packages-file too 2018-05-15 21:49:51 +02:00
Henrik Lissner
97b8c04dbb
def-package!: specify id for deferred-load transient hooks
Makes them easier to identify in hook lists.
2018-05-15 21:49:51 +02:00
Henrik Lissner
af079e5f6f
Remove unused doom-deferred-packages variable 2018-05-15 21:49:51 +02:00
Henrik Lissner
70d0ce4528
Fix error when def-package-hook! was used anywhere 2018-05-15 11:23:44 +02:00
Henrik Lissner
94f9e43f25
Rewrite :defer semantics
:defer now supports a hook, a cons cell with (SYMBOL . INTEGER) where
SYMBOL is a hook and INTEGER is a number of idle seconds before the
package is autoloaded, or just the integer (as per the default behavior
of :defer).

Also fixes an issue where switch-buffer-deffered packages (like
smartparens) wouldn't load.
2018-05-15 10:54:45 +02:00
Henrik Lissner
bdf6fceb52
Silence deleted *.elc messages if byte-compile fails 2018-05-14 21:09:12 +02:00
Henrik Lissner
bb88411cc9
General minor refactor & docstring fixes 2018-05-14 20:55:55 +02:00
Henrik Lissner
67dab98859
Improve idempotency of Doom config (in case of reloading) 2018-05-14 20:54:58 +02:00
Henrik Lissner
87699f3973
Change doom//reload to only reload private config 2018-05-14 20:37:13 +02:00
Henrik Lissner
bec79a3d4c
Major refactor of Doom bootstrap process
+ New `input` and `buffer` support for :defer in def-package! can now
  defer packages until the first command invoked after startup or first
  interactive buffer switch, respectively
+ Exploit these new :defer techniques to lazy-load many core packages,
  netting Doom a 20-30% decrease in startup time
+ Various userland macros (like package!, def-package-hook!, packages!,
  and disable-packages!) will now throw an error if used incorrectly
  (i.e. outside of their intended files; e.g. package! should be used in
  packages.el files)
+ Removed support for multiple/nested doom! calls. There should only be
  THE ONE in ~/.doom.d/init.el (or ~/.config/doom/init.el)
+ Fix an issue where load-path and auto-mode-list modifications would
  not persist because doom-packages-file was cached too late.
+ Added package-activated-list to cached variables in
  doom-packages-file, thus we no longer need custom-file.
+ Load Doom core files from doom-initialize. Now doom-initialize can be
  called from state-dependent non-interactive functions, instead of
  reloading core/core.el, which was clumsy
+ Removed the doom-post-init-hook hook. There was no reason for it to
  exist when doom-init-hook can simply be appended to
2018-05-14 20:37:13 +02:00
Henrik Lissner
f2eedb44dc
Remove https from package-archives dynamically 2018-05-14 15:57:54 +02:00
Henrik Lissner
0bd88b8414
Add restart-emacs package & commands 2018-05-14 13:05:03 +02:00
Henrik Lissner
d1068723e4
Move doom-packages-file to doom-cache-dir 2018-05-14 13:05:03 +02:00
Henrik Lissner
afdc6a31b5
Move def-setting! macros to core-packages 2018-05-14 13:05:03 +02:00
Henrik Lissner
e3841c4460
Add placement checks for package macros
Doom should complain if these macros are found anywhere they're not
supposed to be.
2018-05-14 13:05:03 +02:00
Henrik Lissner
88082c0dc9
Add doom//reload command (experimental) 2018-05-14 13:05:03 +02:00
Henrik Lissner
9cd2de0ce9
Fix make recompile 2018-05-10 22:39:09 +02:00
Henrik Lissner
4fc990127c
Silence byte-compiler warnings from plugins 2018-04-18 01:08:56 -04:00
Hinckley, Troy J
daa798acfd don't use HTTPS when INSECURE variable is set 2018-04-14 17:46:51 -07:00
Henrik Lissner
a47d76f5f1
Don't error out if no targets for byte-compilation could be found 2018-04-04 08:14:06 -04:00
Henrik Lissner
5282c6c716
Fix default modules being prioritized over private ones 2018-04-03 15:57:51 -04:00
Henrik Lissner
b12d7bde05
Update docstring for package management macros 2018-04-03 15:00:52 -04:00
Henrik Lissner
355b4b1364
💥 Replace config/private w/ first-class support
The config/private module has been removed. ~/.doom.d (or
~/.config/doom; whichever is detected first) is now a first class
citizen of Doom and should just work(tm).

Your init.el only needs to contain:

  (require 'core (concat user-emacs-directory "core/core"))

And you may place your doom! block in ~/.doom.d/init.el (or
~/.config/doom/init.el).
2018-04-03 03:07:30 -04:00
Henrik Lissner
4bafe29722
Fix package! :disable not disabling packages
doom-disabled-packages we built either too early or too late, causing
disabled packages to be loaded anyway.
2018-03-28 02:56:24 -04:00
Henrik Lissner
26514e2834
Optimize doom-initialize-packages for cold startup 2018-03-28 00:52:45 -04:00
Henrik Lissner
67e0575d3d
Move doom-modules-dirs to core-packages.el 2018-03-27 19:11:11 -04:00
Henrik Lissner
b685baeb64
Fix the package! macro's :disable property 2018-03-27 02:49:19 -04:00
Henrik Lissner
fea7c0a661
Minor revision of package!'s docstring 2018-03-26 18:15:03 -04:00
Henrik Lissner
fa69e25f87
Fix a pre-init race condition caused by doom-initialize-packages 2018-03-26 16:52:53 -04:00
Henrik Lissner
adf724a6e4
Refactor package!'s docstring & add :ignore to it 2018-03-26 16:44:32 -04:00
Henrik Lissner
dd24578657
Restore :ignore property in package! macro 2018-03-26 16:32:05 -04:00
Henrik Lissner
1282072db3
Correct doom-initialize's docstring 2018-03-26 03:18:28 -04:00
Henrik Lissner
adfd26bbf4
Fix error when doom-packages-file doesn't exist 2018-03-26 03:11:29 -04:00
Henrik Lissner
72eb1422c5
Ensure doom-packages is initialized in doom-initialize 2018-03-26 03:07:28 -04:00
Henrik Lissner
03ed4c39e8
Add package! & disable-packages! convenience macros 2018-03-26 02:59:08 -04:00
Henrik Lissner
f67b4ec743
Add docstring for doom-module-put 2018-03-26 02:58:11 -04:00
Henrik Lissner
21a23228f2
Refactor initialization; allow package! to universally disable packages
No need for def-package-hook! for disable packages anymore, you can do
it from package! in packages.el files.
2018-03-26 02:57:37 -04:00
Henrik Lissner
b5db4f1fb6
Debug log missing modules; remove log! macro 2018-03-24 07:25:00 -04:00
Henrik Lissner
3001e59ecc
Don't destroy load-path on reload 2018-03-22 06:28:33 -04:00
Henrik Lissner
dec3ecba6e
package--initialized = nil in doom-initialize; in case of reloads 2018-03-20 21:12:49 -04:00
Henrik Lissner
c760b33212
Fix recursive load errors when an enabled module doesn't exist 2018-03-14 21:21:58 -04:00
Henrik Lissner
c54fb7b8c0
Fix package advice interfering with doom-initialize
...by aggressively reloading the config from within doom-initialize (too
early, some state hasn't been initialized at this point).
2018-03-14 20:12:15 -04:00
Henrik Lissner
8898c5cb9a
Fix void-function doom*initialize-packages error
Occurs before autoloads are generated.
2018-03-14 19:52:25 -04:00
Henrik Lissner
aec4fbe590
Always apply ansi color codes to compilation buffers 2018-03-14 18:28:25 -04:00