Commit Graph

507 Commits

Author SHA1 Message Date
43e0314e86 Add doom/switch-theme; a more sensible load-theme
load-theme doesn't disable previously enabled themes before switching.
doom/switch-theme does.

This remaps any keys bound to load-theme to doom/switch-theme.
2018-08-11 01:59:37 +02:00
e05f3ec739 Add python & enh-ruby support to hes-mode 2018-08-06 00:31:23 +02:00
4dc5ef3879 Add highlight-escape-sequences 2018-08-06 00:31:23 +02:00
c2d5b64790 Fix broken frame creation/deletion (+ emacsclient)
Caused by a void-function error due to an incorrectly named function.
2018-07-30 13:53:36 +02:00
cb7e471c90 General reformatting & comment revision/cleanup 2018-07-29 19:31:33 +02:00
088480047c Polish & move new modeline into :ui modeline
Removes modeline library out of core-ui and contains them in :ui
doom-modeline and :ui modeline.

:ui modeline will eventually replace :ui doom-modeline, but is still
considered experimental. This update provides makes it much more stable
and closer to being feature complete.
2018-07-29 19:31:32 +02:00
a2ffbe4ede Add new emacs/hideshow module
Brings better default code folding support to various languages, like
yaml, ruby, matlab, haml and vimrc. Hideshow is still quite
unsophisticated and will need the help of another package for complete
code folding functionality. Perhaps origami or vimish fold.

The code-folding functional in the feature/evil module will soon be
replaced by that.
2018-07-29 17:41:59 +02:00
44bf6861a6 Fix overeager theme reloading when creating frames 2018-07-29 17:41:59 +02:00
c75b2a36ab Don't reload theme at startup if already enabled 2018-07-29 17:41:58 +02:00
593666933d Convert old def-modeline! from macro to function
This makes it easier to use dynamically, and ensures that
doom--prepare-modeline-segemnts isn't run prematurely (at macro
expansion time).
2018-07-29 17:41:58 +02:00
4f3ce4d06d Move highlight-numbers-mode config
Into plugins section in core-ui
2018-07-29 16:51:06 +02:00
90d09e6f93 Highlight-numbers on every prog-mode 2018-07-29 12:19:56 +10:00
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
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
15f66f4b52 Add doom|disable-show-paren-mode hook
For disabling show-paren-mode buffer-locally.
2018-07-06 01:06:13 +02:00
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
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
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
d402c6ef44 Seriously, don't show $ glyphs on long lines
Seriously, dude. Seriously.
2018-06-30 02:29:18 +02:00
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
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
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
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
3188d67d6e Hide modeline in Man-mode 2018-06-17 14:22:29 +02:00
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
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
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
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
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
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
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
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
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
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
d4869228f5 Inhibit recursive switch-hooks in sub-hooks too 2018-06-10 17:28:17 +02:00
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
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
b207c4040b Minor, general refactor 2018-06-07 02:51:46 +02:00
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
fcb5284393 Update switch-buffer hooks' docstrings 2018-06-07 02:51:45 +02:00
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
fdb95d9ee6 Minor optimization of doom*switch-buffer-hooks 2018-06-04 21:17:49 +02:00
e5a4415d58 General, minor reformatting/refactor 2018-06-02 13:58:04 +02:00
36c36ca271 Optimize switch buffer/window hooks
Significantly reduces nested triggering of these hooks.
2018-06-01 16:40:39 +02:00
947fe345c3 Minor, general refactor
In some contexts, map-put is superior to add-to-list.
2018-05-29 15:34:13 +02:00
456dc62051 Fix compile-time void-function errors from modeline 2018-05-29 15:32:36 +02:00
ed5e8849cc Fix void-variable fundamental-mode error from unquoted symbol 2018-05-28 15:50:11 +02:00
376adde0d8 Optimize mode-line segments that are just variables 2018-05-27 22:31:08 +02:00
f3c7dac997 Don't protect visible buffers that start with an asterix 2018-05-26 23:25:57 +02:00
1aec48a848 The *real* fix for whitespace-mode interfering with the mu4e sidebar #607 2018-05-26 03:09:53 +02:00