Commit graph

3239 commits

Author SHA1 Message Date
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
b6813393d8
Remove custom helpful pretty-printer; default is superior 2018-05-16 00:11:14 +02:00
Henrik Lissner
4734d55edc
Revert smartparens deferral until first before-switch-buffer 2018-05-15 22:19:37 +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
8428a7a4ef
Autoload smartparens library 2018-05-15 22:07:44 +02:00
Henrik Lissner
7c97fd3c73
Load smartparens a little sooner (fix sp-with-modes error) 2018-05-15 21:52:09 +02:00
Henrik Lissner
12013b4ad4
Cache interpreter-mode-alist in doom-packages-file too 2018-05-15 21:49:51 +02:00
Henrik Lissner
c36e127ec5
Rethink core package deferral hooks
Ensure they are available exactly when they can be useful, but no
sooner.
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
6b8520d189
Change add-transient-hook! to take hook suffix as 2nd arg
By default, transient hooks are defined as doom-transient-hook-N, where
N is a counter. This makes debugging them difficult.

Now, you may specify an id for the second argument. e.g.

  (add-transient-hook! 'find-file-hook load-evil (require 'evil))

Will define doom|transient-hook-load-evil, which is easier to debug and
remove, if necessary.
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
Liu, Joey
86b6fab18e Add: ace-link-mu4e autoload 2018-05-15 09:30:21 -04:00
Henrik Lissner
70d0ce4528
Fix error when def-package-hook! was used anywhere 2018-05-15 11:23:44 +02:00
Henrik Lissner
032203ef99
hscroll-margin = 2
So that moving to the ends of a sentence don't sometimes leave the
cursor beyond the edge of the screen in GUI Emacs.
2018-05-15 10:54:45 +02:00
Henrik Lissner
a6c6686628
Enable global-undo-tree-mode after setting variables 2018-05-15 10:54:45 +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
1320d83834
Fix doom/info displaying nil module flags 2018-05-15 03:15:45 +02:00
Henrik Lissner
7bf133e991
Update unit test bootstrap 2018-05-15 01:46:22 +02:00
Henrik Lissner
682587ac26
Remove esup 2018-05-15 01:46:08 +02:00
Henrik Lissner
d51f3b1f38
Map /[A-Z]+$ files to text-mode 2018-05-15 01:40:42 +02:00
Henrik Lissner
d0f8bf402a
doom-visible-windows: support visible window-parameter 2018-05-15 01:31:40 +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
bb4a8e98e6
load-prefer-newer = noninteractive 2018-05-14 18:34:34 +02:00
Henrik Lissner
e3e0cb7e68
doom/describe-modules: no initial input, instead set default 2018-05-14 18:32:26 +02:00
Henrik Lissner
f2eedb44dc
Remove https from package-archives dynamically 2018-05-14 15:57:54 +02:00
Henrik Lissner
a1b385a23d
eval-when-compile EMACS2*+ consts 2018-05-14 13:05:33 +02:00
Henrik Lissner
eb5fd0aa53
run-hook-with-args => run-hooks, in custom hooks 2018-05-14 13:05:03 +02:00
Henrik Lissner
4603a4e113
Change doom-theme on load-theme 2018-05-14 13:05:03 +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
99bd3beec2
Autoload ace-link-addr 2018-05-14 13:05:03 +02:00
Henrik Lissner
cef82fe0b0
Minor reorganization of core-lib 2018-05-14 13:05:03 +02:00
Henrik Lissner
57f383ef76
General revision of docstrings 2018-05-14 13:05:03 +02:00
Henrik Lissner
2373429e76
inhibit-compacting-font-caches = t
Performance at the cost of some space efficiency
2018-05-14 13:05:03 +02:00
Henrik Lissner
9b1385b725
core-ui: general refactor/reformatting 2018-05-11 10:00:23 +02:00
Henrik Lissner
52cdb0bd83
Remove doom-fringe-size; set default fringe in :ui doom
There was no way to customize doom-fringe-size. Better to customize
fringes by using fringe-mode, {left,right}-fringe-width or
set-window-fringes directly.
2018-05-11 10:00:23 +02:00
Henrik Lissner
2b2f6bcf32
New command: doom/profile-emacs (powered by esup) 2018-05-11 10:00:23 +02:00
Henrik Lissner
27f99f040c
Remove shackle (why is this still here?!) 2018-05-11 10:00:23 +02:00
Henrik Lissner
0ffc1fa3df
{window,frame}-resize-pixelwise = t 2018-05-11 10:00:23 +02:00
Henrik Lissner
92d5f4266c
custom-theme-directory = ~/.doom.d/themes/ 2018-05-11 10:00:19 +02:00
Henrik Lissner
9cd2de0ce9
Fix make recompile 2018-05-10 22:39:09 +02:00