Commit graph

46 commits

Author SHA1 Message Date
Henrik Lissner
5c9ef4ee38
Replace doom-hide-modeline-mode w/ hide-mode-line-mode #423 2018-03-02 19:14:44 -05:00
Henrik Lissner
3d20763d58
feature/popup: refactor popup cleanup function 2018-02-18 22:59:38 -05:00
Henrik Lissner
4ca2d1ef27
feature/popup: fix vslot reference typo 2018-02-07 01:09:32 -05:00
Henrik Lissner
27255d891e
feature/popup: fix 'unsupported map' error when disabling +popup-mode 2018-02-06 02:23:30 -05:00
Henrik Lissner
0ae1f51db6
feature/popup: force close in +popup*close advice 2018-01-28 22:21:42 -05:00
Henrik Lissner
c166449f08
feature/popup: preserve size later in init process
So it can't be overwritten via ALIST.
2018-01-15 00:39:39 -05:00
Henrik Lissner
28ac52e4db
feature/popup: define window-sides-reversed #349 2018-01-12 19:13:01 -05:00
Henrik Lissner
8785664267
feature/popup: replace split-window-no-error calls #349
split-window-no-error is a Emacs 26+ function.
2018-01-12 15:09:10 -05:00
Henrik Lissner
98fbbc533f
feature/popup: improve emacs 25.x compatibility #349 2018-01-12 14:40:34 -05:00
Henrik Lissner
ad06eacdac
feature/popup: general refactor
Adds +popup-origin-window, which contains the last non-popup you were in
before a popup was opened.
2018-01-11 01:09:16 -05:00
Henrik Lissner
bff48e5ed7
feature/popup: use new +popup-display-buffer #337
Adds support for `slot` and `vslot`, allowing for two dimensional
control over where popups may spawn. Highly experimental.

It's upsetting that I have to set `window--sides-inhibit-check`, I'd
like to find a way around that, if possible.
2018-01-11 01:05:24 -05:00
Henrik Lissner
bfcbb9ca01
feature/popup: fix +popup/toggle always opening *Messagse*
Because +popup/restore would always return nil.
2018-01-09 16:49:26 -05:00
Henrik Lissner
c03d0dbc06
feature/popup: add +popup-display-buffer action #337
This is experimental and disabled by default. It uses a slightly more
primitive backend that will stack popups away from the edge of the
frame. This will need more work to take window-slot into account.

To use it:

  (remove-hook '+popup-display-buffer-actions 'display-buffer-in-side-window)
  (add-hook '+popup-display-buffer-actions #'+popup-display-buffer t)
2018-01-09 16:49:25 -05:00
Henrik Lissner
7bdf8cf8d9
feature/popup: add +popup-display-buffer-actions #337
Gives us more flexibility to control what display-buffer functions to
use when trying to display the popup window.
2018-01-09 16:49:14 -05:00
Henrik Lissner
bf7055a7db
feature/popup: make extra sure popups die safely
A buffer can find other, unexpected ways to kill itself, so we set up
a kill-buffer-hook to make sure we're there to catch them. Not all
heroes wear capes.
2018-01-07 22:18:50 -05:00
Henrik Lissner
7ca2e1593e
feature/popup: split +popup-p into two functions
Better to be explicit about what we want, especially when using one or
the other with no arguments.
2018-01-07 22:18:50 -05:00
Henrik Lissner
031e31c03c
feature/popup: minor refactor 2018-01-07 18:39:42 -05:00
Henrik Lissner
5a420faa0f
feature/popup: tweak popup rules, add +popup-shrink-to-fit
+popup-shrink-to-fit wraps shrink-window-if-larger-than-buffer, and
won't do anything if the buffer is empty.
2018-01-07 18:36:27 -05:00
Henrik Lissner
8f9175c25e
feature/popup: fix popup window-parameters in Emacs 25.x #261
The window parameters of popup windows weren't being set in Emacs 25.x. Turns
out `display-buffer-alist`'s ALIST argument didn't support the
windows-parameters alist entry until Emacs 26.
2018-01-07 13:12:55 -05:00
Henrik Lissner
5f52e21796
feature/popup: fix incorrect delete-window window parameter #261
A bug that could make popup windows invulnerable to being closed. The
horror!
2018-01-07 06:44:37 -05:00
Henrik Lissner
51084852a6
Revert "feature/popup: use window-toggle-side-window" #298
This reverts commit 29e25f5ea8.

window-toggle-side-window isn't as robust as I had hoped.
2018-01-07 06:25:44 -05:00
Henrik Lissner
d2a4408877
feature/popup: add +popup|cleanup-rules hook 2018-01-07 05:56:01 -05:00
Henrik Lissner
a76de01f4f
feature/popup: move timer clearing into +popup-buffer-mode 2018-01-07 05:56:01 -05:00
Henrik Lissner
1c6d39db7f
feature/popup: ensure popups can get as small as they like
Popups without modelines can take advantage of the extra lines bought
with a smaller window-min-height.
2018-01-07 05:56:01 -05:00
Henrik Lissner
81453de0c4
feature/popup: prompt to save unsaved buffers in popups 2018-01-07 05:56:01 -05:00
Henrik Lissner
dff4b03fff
feature/popup: support user-defined delete-window parameter 2018-01-07 05:56:01 -05:00
Henrik Lissner
e481a2891a
feature/popup: minor refactor & remove provide 2018-01-07 05:56:01 -05:00
Henrik Lissner
25a2973c52
feature/popup: make parameters support functions
Now, the transient, quit, select and modeline parameters now accept
a function FN. See `+popup-window-parameters` for details.

(transient . (FN popup-buffer))
(quit . (FN popup-window))
(select . (FN popup-window))
(modeline . (FN popup-buffer))
2018-01-07 05:35:20 -05:00
Henrik Lissner
29e25f5ea8
feature/popup: use window-toggle-side-window
Neat. `window-toggle-side-window` exists and essentially does what
I wanted +popup/toggle to do.
2018-01-07 01:51:46 -05:00
Henrik Lissner
392f04446f
General refactor (use map.el more)
+ map-delete is shorter and faster than assq-delete-all
+ map-put is simpler than the delete-then-set workflow
+ map-merge is great for merging default and user settings
2018-01-07 00:15:58 -05:00
Henrik Lissner
03d77c0bef
feature/popup: fix 'Cancelled timer' spam
https://youtu.be/fn4jIlFwuLU
2018-01-07 00:15:57 -05:00
Henrik Lissner
eab079724d
feature/popup: add inhibit-timers letvar
Allows us to disable timer functionality when we're simply setting popup
buffers aside temporarily.
2018-01-07 00:15:56 -05:00
Henrik Lissner
eef808d795
feature/popup: reduce state in window parameters & fix popup continuity
+ Fix list where cons should be
+ Update +popup-window-parameters docstring
+ Use display-buffer instead of +popup-buffer (no need to remember
  alist). This ensures restored popups (with +popup/restore) are truly
  identical to their former selves.
2018-01-07 00:15:56 -05:00
Henrik Lissner
4f605d26cd
(put '+popup-buffer-mode permanent-local{,-hook} t) 2018-01-06 04:57:54 -05:00
Henrik Lissner
eedd86135e
feature/popup: add hacks for wgrep, org, persp-mode & balance-windows
Plus +popup*close and +popup*save advice functions.
2018-01-06 04:56:57 -05:00
Henrik Lissner
a9a731c1eb
feature/popup: replace alist param with popup 2018-01-06 04:56:12 -05:00
Henrik Lissner
4df471e53a
feature/popup: fix arrayp errors when killing transient buffers 2018-01-06 04:52:37 -05:00
Henrik Lissner
f087f731ef
feature/popup: fix +popup/toggle 2018-01-06 04:42:54 -05:00
Henrik Lissner
45bc438c37
feature/popup: fix typo (writeable => writable)
This prevented window parameters from being saved.
2018-01-06 04:42:24 -05:00
Henrik Lissner
48b0a468d1
THOU SHALT NOT WORSHIP FALSE IDOLS, said the byte compiler
And I obeyed.
2018-01-06 04:24:38 -05:00
Henrik Lissner
d76f991c0c
feature/popup: clean up buffer processes too, if any 2018-01-06 03:30:27 -05:00
Henrik Lissner
b28f6ed477
General minor refactor & comment revision 2018-01-06 03:03:02 -05:00
Henrik Lissner
a88cb1e4eb
require map library for +popup--normalize-alist 2018-01-06 02:48:08 -05:00
Henrik Lissner
08b479b06f
Rename popup parameter escape-quit => quit 2018-01-06 02:42:53 -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
91357a3e5d
💥 Replace core-popup with new feature/popup module
This is a breaking change! Update your :popup settings. Old ones will
throw errors!

Doom's new popup management system casts off its shackles (hur hur) and
replaces them with the monster that is `display-buffer-alist`, and
window parameters.

However, this is highly experimental! Expect edge cases.  Particularly
with org-mode and magit (or anything that does its own window
management).

Relevant to #261, #263, #325
2018-01-06 02:17:43 -05:00