Commit graph

584 commits

Author SHA1 Message Date
Henrik Lissner
3188d67d6e
Hide modeline in Man-mode 2018-06-17 14:22:29 +02:00
Henrik Lissner
b880175d79
Remove switch-frame hooks
They are too unreliable. Use after-focus-change-function if you
must (though, that's an latest-Emacs-27-only feature atm).
2018-06-16 21:40:46 +02:00
Henrik Lissner
b656e68bc3
Move startup optimization to early-init
Also load early-init from init if early-init-file isn't bound. This
improves startup a modest 3-5% for Emacs 27 users.
2018-06-16 11:38:19 +02:00
Henrik Lissner
02d532a09a
Set ibuffer-use-other-window in ui/popup/+hacks.el
It was originally set to accommodate the popup system.
2018-06-16 10:22:59 +02:00
Henrik Lissner
33839f54e9
Minor refactor doom|init-fonts
Take advantage of custom-set-faces taking variadic arguments to group
all font-initializing forms in one form.
2018-06-16 00:40:37 +02:00
Henrik Lissner
c0e271ef5a
Fix "Invalid read syntax: '#'" errors
Caused when Emacs reads back the unserialized font-specs it saved in
.local/custom.el. So we store them in xlfd format instead.
2018-06-15 22:44:20 +02:00
Henrik Lissner
2908a6389e
Fix font loading in daemon-spawned frames
set-face-attribute wasn't reliable for changing the fixed-pitch and
variable-pitch faces. custom-set-faces uses a custom, internal user
theme that has the highest precedence, making this the superior choice
for default font-setting.
2018-06-14 13:59:04 +02:00
Henrik Lissner
da6ce8e3f9
Fix over-aggressive theme reloading
`display-graphic-p` returns a boolean (possibly a recent change in Emacs
27), which will never match any window system, causing the theme to be
reloaded on every new frame.

Also default doom-last-window-system to initial-window-system.
2018-06-14 13:58:38 +02:00
Henrik Lissner
b21d575eac
Init custom hooks on init-ui instead of post-init
Makes more sense to be on doom-init-ui-hook.
2018-06-14 03:36:46 +02:00
Henrik Lissner
36171f5b33
Fix :after-call deferred packages not loading
If you open emacs with a file (emacs file.txt), the file is switched to
before the switch-buffer hooks are set up. However, many core packages
are hooked to those switch-buffer hooks (to load when they're first
triggered). They miss the boat and don't get loaded.

These packages are now hooked onto after-find-file as well (and
immediately), which will fire when a file is opened, before or after
initialization.

Fixes #680
2018-06-14 03:36:46 +02:00
Henrik Lissner
dd9f8d47af
Fix infinite recursion in buffer switch hooks
Caused by advice functions trying to manipulate non-existent buffers
that were intended to be created after switching to them.
2018-06-11 00:39:55 +02:00
Henrik Lissner
d4869228f5
Inhibit recursive switch-hooks in sub-hooks too 2018-06-10 17:28:17 +02:00
Henrik Lissner
14890376b1
Propagate buffer errors up the call stack
Delegates set-buffer(nil) errors (when switch hooks are called with an
invalid or dead buffer) to the caller to handle.

Fixes #668, #674
2018-06-10 17:28:17 +02:00
Henrik Lissner
ab98020295
Optimize buffer normalization in switch hooks
get-buffer is faster than window-normalize-buffer-to-switch-to.
2018-06-08 13:08:37 +02:00
Henrik Lissner
b207c4040b
Minor, general refactor 2018-06-07 02:51:46 +02:00
Henrik Lissner
ef9d8fb2e8
Don't trigger whitespace-mode if already on
Normally doom|show-whitespace-maybe turns on whitespace-mode with a
subset of its features when indent-tabs-mode was different in that
buffer versus it's global default. e.g. If your default was spaces and
you opened a file with tabs.

This is to make it easier to notice whitespace style discrepancies.

However, it have side effects if whitespace-mode/global-whitespace-mode
was already on.
2018-06-07 02:51:45 +02:00
Henrik Lissner
fcb5284393
Update switch-buffer hooks' docstrings 2018-06-07 02:51:45 +02:00
Henrik Lissner
b4e6022c82
Fix buffer/window/frame hooks not being triggered
In certain edge cases, the buffer/window/frame switch would not make the
new buffer/window/frame current, which is what the after switch hooks
should reasonably expect, causing some shenanigans.

For example, persp wouldn't register magit buffers because
`doom-after-switch-buffer-hook` was run in the context of the previous
buffer.
2018-06-07 02:51:45 +02:00
Henrik Lissner
fdb95d9ee6
Minor optimization of doom*switch-buffer-hooks 2018-06-04 21:17:49 +02:00
Henrik Lissner
e5a4415d58
General, minor reformatting/refactor 2018-06-02 13:58:04 +02:00
Henrik Lissner
36c36ca271
Optimize switch buffer/window hooks
Significantly reduces nested triggering of these hooks.
2018-06-01 16:40:39 +02:00
Henrik Lissner
947fe345c3
Minor, general refactor
In some contexts, map-put is superior to add-to-list.
2018-05-29 15:34:13 +02:00
Henrik Lissner
456dc62051
Fix compile-time void-function errors from modeline 2018-05-29 15:32:36 +02:00
Henrik Lissner
ed5e8849cc
Fix void-variable fundamental-mode error from unquoted symbol 2018-05-28 15:50:11 +02:00
Henrik Lissner
376adde0d8
Optimize mode-line segments that are just variables 2018-05-27 22:31:08 +02:00
Henrik Lissner
f3c7dac997
Don't protect visible buffers that start with an asterix 2018-05-26 23:25:57 +02:00
Henrik Lissner
1aec48a848
The *real* fix for whitespace-mode interfering with the mu4e sidebar #607 2018-05-26 03:09:53 +02:00
Henrik Lissner
6a140209b8
Optimize Doom core package configs 2018-05-24 23:41:40 +02:00
Henrik Lissner
0b48575c14
Remove def-hydra! macro alias
Causes byte-compilation issues and the alias is unnecessary.
2018-05-24 22:03:19 +02:00
Henrik Lissner
dea7c10771
Don't do naive path concatenation for private custom-theme-directory 2018-05-24 21:20:50 +02:00
Henrik Lissner
1369c51000
Replace :defer HOOK/FN with :after-call keyword 2018-05-21 01:38:17 +02:00
Henrik Lissner
da5c7d27cf
Use correct init hook (doom-post-init-hook) 2018-05-20 12:18:48 +02:00
Henrik Lissner
f16aa539c7
Fix window is not a live frame error #596 2018-05-18 22:06:10 +02:00
Henrik Lissner
cea750fc55
Rename doom|ansi-color-apply => doom|compilation-ansi-color-apply 2018-05-17 17:29:23 +02:00
Henrik Lissner
b01893bef2
Disable whitespace-mode in childframes 2018-05-17 17:29:07 +02:00
Henrik Lissner
51cc1e8908
No fringes in minibuffer or which-key buffers 2018-05-17 17:28:44 +02:00
Henrik Lissner
02e4c15b8e
Move avy/ace-link from core-editor to core-ui 2018-05-17 15:29:29 +02:00
Henrik Lissner
3853fdbf8d
Fix doom|protect-visible-buffers protecting temporary buffers 2018-05-17 15:16:28 +02:00
Henrik Lissner
49d431ee4e
Trigger switch-buffer hooks on pop-to-buffer 2018-05-17 12:11:34 +02:00
Henrik Lissner
4fba57e954
Fix trapped-in-prompt cursor issue in minibuffer 2018-05-17 12:11:19 +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
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
bb88411cc9
General minor refactor & docstring fixes 2018-05-14 20:55:55 +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
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
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