Commit graph

496 commits

Author SHA1 Message Date
Aria
90d09e6f93 Highlight-numbers on every prog-mode 2018-07-29 12:19:56 +10:00
Henrik Lissner
4941e327f4
General refactor for readability
+ Removes redundant/unhelpful comments
+ Renames functions, hooks and variables to be self-documenting
+ Use add-to-list to ensure idempotency (and is more performant)
2018-07-09 15:33:31 +02:00
Henrik Lissner
64867cbed4
Don't lazy load doom|disable-show-paren-mode
In case it is used early (e.g. by org-mode).
2018-07-06 12:48:41 +02:00
Henrik Lissner
15f66f4b52
Add doom|disable-show-paren-mode hook
For disabling show-paren-mode buffer-locally.
2018-07-06 01:06:13 +02:00
Henrik Lissner
b42dd5c1db
Minor refactor of doom|init-fonts
Prefer native functions over macros, and conform to new convention of
naming condition-case error variables "e".

No, not the meme.
2018-07-03 03:41:08 +02:00
Henrik Lissner
81ffed520b
Rename doom-before-switch-*-hook hooks
+ doom-before-switch-buffer-hook => doom-exit-buffer-hook
+ doom-before-switch-window-hook => doom-exit-window-hook
+ doom-after-switch-buffer-hook => doom-enter-buffer-hook
+ doom-after-switch-window-hook => doom-enter-window-hook

Shorter, easier-to-type names that better describe their intended
purpose.

The old names are still usable, but deprecated.
2018-07-03 03:41:08 +02:00
Henrik Lissner
15f2e21468
On second thought...
Causes char-table-p errors in some cases.

Setting hscroll-margin = 0 in dashboard accomplishes the same thing, by
preventing truncation glyphs from ever appearing anyway.
2018-06-30 02:58:01 +02:00
Henrik Lissner
d402c6ef44
Seriously, don't show $ glyphs on long lines
Seriously, dude. Seriously.
2018-06-30 02:29:18 +02:00
Henrik Lissner
1d7782aea3
Ensure paren isn't loaded at startup
post-command-hook would trigger too soon, for some reason.
2018-06-25 15:47:29 +02:00
Henrik Lissner
f6dc6ac74e
Refactor out map.el usage
After some profiling, it turns out map-put and map-delete are 5-7x
slower (more on Emacs 25) than delq, setf/alist-get and add-to-list for
small lists (under 250 items), which is exactly how I've been using
them.

The only caveat is alist-get's signature is different on Emacs 25, thus
a polyfill is necessary in core-lib.
2018-06-23 19:53:54 +02:00
Henrik Lissner
ab07e07352
Improve general error handling at startup
This will hopefully reveal more information as to the cause and origin
of errors at startup. It should also make doom-debug-mode more likely to
produce a backtrace in non-interactive sessions.
2018-06-18 14:47:36 +02:00
Henrik Lissner
03022d09f9
Remove doom//x naming convention
This naming convention was meant to be for batch commands, but it grew
to include "commands that were helpful with managing Doom", but many of
these commands shouldn't be interactive in the first place!
2018-06-17 21:35:58 +02:00
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