Commit Graph

323 Commits

Author SHA1 Message Date
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
Henrik Lissner
cdbd677423
Allow use of package.el #444
This makes package.el commands safe to use in Doom, and prevents errors
caused by unitialized state, by running package-initialize before
you use a package.el command.
2018-03-14 18:25:25 -04:00
Henrik Lissner
5c36519dab
Ignore package! if package is disabled
This allows you to disable packages with (def-package-hook! X :disable)
without an accompanying (package! X :ignore t). This reduces redundancy.
2018-03-12 13:32:01 -04:00
Henrik Lissner
a8906cc077
Add note to def-package-hook! to use it only in init.el files 2018-03-12 13:32:01 -04:00
Henrik Lissner
23fda88b2f
Detach doom-modules-dirs from doom! macro
Formerly, you were required to have a doom! call (even a blank one) in
~/.doom.d/init.el if you wanted to have private sub-modules in
~/.doom.d/modules/.

No more. It is no longer doom!'s responsibility to affect
`doom-modules-dirs`. This is now done by :config private, while the
Doom modules directory is now the initial entry in doom-modules-dirs.
2018-03-12 13:32:00 -04:00
Henrik Lissner
c6931db3f8
Fix module count in benchmark 2018-03-12 13:32:00 -04:00
Henrik Lissner
724773cbe4
Up the doom-modules :size to 100 2018-03-12 13:32:00 -04:00