Commit graph

90 commits

Author SHA1 Message Date
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
54bb452a12
Fix map! ignoring global keybinds when evil wasn't loaded 2018-05-07 22:01:43 +02:00
Henrik Lissner
5743e7da7a
Revert "enable which-key's evil support" #536
This reverts commit b3260f6a9e.

Fixes #542
2018-04-22 18:37:10 -04:00
Carter Charbonneau
b3260f6a9e enable which-key's evil support 2018-04-18 11:18:52 -06:00
Henrik Lissner
8a74a081c4
Remove doom-mode-map; semi-revert abe42fcb 2018-03-27 03:49:45 -04:00
Henrik Lissner
f8801640ba
Mention :leader/:localleader in map! docstring 2018-03-22 21:15:07 -04:00
Henrik Lissner
abe42fcb9a
Give config/default keybinds higher precedence
This is highly experimental! It gives keybinds bound with `map!` much
higher precedence, allowing it to override the defaults imposed by
major modes and plugins (like evil-collection).
2018-03-22 06:28:33 -04:00
Henrik Lissner
da92423e40
Inhibit doom/escape on ESC while executing macros #471 2018-03-21 15:11:52 -04:00
Henrik Lissner
1b5758a6da
Minor refactor 2018-03-18 03:36:05 -04:00
Henrik Lissner
54393534ff
Don't abort kbd macros on doom/escape #455 2018-03-07 01:58:13 -05:00
Henrik Lissner
68e735938b
core-keybinds: remove redundant quotes 2018-02-04 17:29:03 -05:00
Henrik Lissner
414383e5f4
Remove vestigial references to doom/{next,previous}-buffer 2018-02-04 05:05:40 -05:00
Henrik Lissner
8520c12434
which-key: don't replace current popup 2018-01-07 06:19:54 -05:00
Henrik Lissner
60cded00e6
Decouple doom/escape & evil 2018-01-06 03:00:45 -05:00
Henrik Lissner
3cbddbfd88
Generalize +evil-esc-hook into doom-escape-hook
This lets vanilla Emacs users in on having a universal "escape" key.
2018-01-06 02:38:39 -05:00
Henrik Lissner
76a4ae459d
Fix obsolete (when|if)-let messages in Emacs 26 2017-12-10 14:49:52 -05:00
Henrik Lissner
9d81bc5a8b
Major refactor: use-package-always-defer = nil & use :hook
Possibly breaking change: packages are no longer deferred by default.

Addresses #286
2017-12-08 23:14:11 -05:00
Henrik Lissner
c45e2c4918
General & minor refactor+cleanup 2017-11-05 19:54:44 +01:00
Henrik Lissner
19ca683f86
Add :g switch to map! #249 2017-10-25 14:50:02 +02:00
Henrik Lissner
597bfb1a3c
Move feature/hydra into core-keybinds 2017-09-24 17:10:47 +02:00
Henrik Lissner
efb1e916e4
Refactor core-keybinds 2017-07-27 19:10:01 +02:00
Henrik Lissner
5057db93f1
Replace :L state with :local flag in map!
Fixes #162
2017-07-27 19:09:33 +02:00
V. Subramani Raju
6d4c9c83c3 fix :text-obj map macro 2017-06-23 09:27:03 +05:30
Henrik Lissner
4984a548d1
Refactor DOOM init & add new init hooks
+ Add doom-init-hook and doom-post-init-hook to simplify Emacs init
  hooks into less ambiguous ones.
+ Attach former after-init-hook and emacs-startup-hook hooks to new doom
  init hooks.
+ Vastly improves daemon and tty support: preventing incorrect colors
  from bleeding across face class barriers, and into GUI Emacs and vice
  versa, when spawned with emacsclient.
+ Fix persp-mode breaking Emacs daemon, and ensuring that initialization
  is done properly in terminal Emacs (and emacsclient frames).
2017-06-12 00:37:14 +02:00
Henrik Lissner
2097498f3e
General docstring+idempotency refactor 2017-06-11 00:59:02 +02:00
Henrik Lissner
c7254e7bdc
Major optimization refactor, across the board
+ enable lexical-scope everywhere (lexical-binding = t): ~5-10% faster
  startup; ~5-20% general boost
+ reduce consing, function calls & garbage collection by preferring
  cl-loop & dolist over lambda closures (for mapc[ar], add-hook, and
  various cl-lib filter/map/reduce functions) -- where possible
+ prefer functions with dedicated opcodes, like assq (see byte-defop's
  in bytecomp.el for more)
+ prefer pcase & cond (faster) over cl-case
+ general refactor for code readability
+ ensure naming & style conventions are adhered to
+ appease byte-compiler by marking unused variables with underscore
+ defer minor mode activation to after-init, emacs-startup or
  window-setup hooks; a customization opportunity for users + ensures
  custom functionality won't interfere with startup.
2017-06-09 00:47:45 +02:00
Henrik Lissner
15e8a37186 map!: support variables for keys 2017-05-28 16:14:37 +02:00
Henrik Lissner
4fcfec6344 Add :textobj keyword to map! 2017-05-28 02:48:20 +02:00
Henrik Lissner
fbe782df22 Heavily redesign keybinding design
+ SPC and SPC m as leader/localleader (spacemacs-ey)
+ Move all custom keybindings to private +bindings.el file
+ Redesign+rearrange keybindings
2017-05-28 02:48:20 +02:00
Henrik Lissner
39c3d6aae4 Enable which-key popups for all prefix keys 2017-05-20 18:40:13 +02:00
Henrik Lissner
615cf15313 General refactor & cleanup 2017-05-17 21:07:41 +02:00
Henrik Lissner
b2d8ddd322 core-keybinds: refactor 2017-05-16 18:05:39 +02:00
Henrik Lissner
cf79e45cf5 map!: fix :when, :unless & :after blocks 2017-05-15 20:26:32 +02:00
Henrik Lissner
cc37a2d6e7 Integrate major-mode-specific which-key defs into map! 2017-05-07 02:45:52 +02:00
Henrik Lissner
5ae94b765c PRAISE BE TO THE BYTE COMPILER FOR THY SHARP QUOTES 2017-04-17 02:17:10 -04:00
Henrik Lissner
80c3584a78 core-keybinds: enhance readability of which-key popup 2017-03-07 14:56:41 -05:00
Henrik Lissner
4c3652bede map!: declare indent properties for :leader and :localleader 2017-03-01 21:39:58 -05:00
Henrik Lissner
27cc4a9508 reverse => nreverse; other optimizations 2017-03-01 19:15:45 -05:00
Henrik Lissner
33c88d4f82 Revert macros to ...! name convention (elisp doesn't like @...) 2017-02-23 00:06:12 -05:00
Henrik Lissner
704099a7b9 Add core-keybinds.el 2017-02-20 00:26:07 -05:00