Commit graph

110 commits

Author SHA1 Message Date
Henrik Lissner
bfa6fce15f
+popup/buffer: hide buffer being popped up #825 2018-08-23 17:12:49 +02:00
hackeryarn
2c6ae455f9 updated readme to use set-popup-rules! 2018-08-21 07:21:25 -05:00
Henrik Lissner
c69543fecc
Fix helm not cooperating with other popups
Like the compilation window
2018-08-15 23:32:53 +02:00
Henrik Lissner
b349dd3473
ui/popup: respect org-src-window-setup 2018-08-07 14:44:10 +02:00
Henrik Lissner
c1e2919294
completion/helm: set default window height = 22%
A little smaller than the default
2018-08-04 18:42:29 +02:00
Henrik Lissner
4489ce6b81
ui/popup: refactor hacks 2018-08-04 00:00:16 +02:00
Henrik Lissner
4db89a2fb4
Remove treemacs popup hack
Now that it is supported upstream.

Relevant to #766
2018-08-03 19:15:46 +02:00
Henrik Lissner
d2ecd87739
Fix ivy completion when treemacs is open
Caused by incorrectly initialized treemacs popup hack.
2018-08-02 03:31:20 +02:00
Henrik Lissner
cbc59f9333
Appease the byte-compiler 2018-07-30 12:10:11 +02:00
Henrik Lissner
1205db0f73
Decouple :modeline popup rule from modeline API
The :modeline property still takes:

  t => default modeline
  nil => no modeline (the default)

But now also accepts:

  function => uses its return value as the mode-line-format
  anything non-nil => used directly as the mode-line-format

This is to decouple the popup API from the modeline API. You can still
use them compositionally:

  (set-popup-rule "abc" :modeline (lambda () (set-modeline! :project)))
2018-07-30 02:57:50 +02:00
Henrik Lissner
399194e868
Autoload +popup--init
Fixes #766
2018-07-21 14:00:02 +02:00
Henrik Lissner
28e21352ec
Have popup manager handle treemacs windows
Other windows would be resized slightly incorrectly because treemacs
opens as a fixed split, rather than a side window. This change forces it
to be a side window, which resolves the problem _and_ restores the
functionality of balance-windows, which is disabled when a fixed split
is present.
2018-07-21 01:20:59 +02:00
Henrik Lissner
7f284e98b6
Fix helm-M-x help popup not properly closing
On successive TAB presses on a command
2018-07-21 01:20:05 +02:00
Henrik Lissner
10daa435f7
Document :ignore property in set-popup-rule! 2018-07-07 11:44:47 +02:00
Henrik Lissner
0b7faa468c
Fix which-key sharing windows with other popups
Which-key is now lazy-loaded, so the modified which-key-popup-type gets
overwritten.
2018-07-06 14:57:40 +02:00
Henrik Lissner
a406b2d0c8
Ignore errors if display-buffer ALIST is malformed
The gud.el library uses display-buffer incorrectly, by passing a list of
functions as its second argument, instead of as a nested list.

CORRECT:
  (display-buffer buffer
    '((display-buffer-reuse-window
       display-buffer-in-previous-window
       display-buffer-same-window display-buffer-pop-up-window)))

INCORRECT (how gud does it):
  (display-buffer buffer
    '(display-buffer-reuse-window
      display-buffer-in-previous-window
      display-buffer-same-window display-buffer-pop-up-window))

This causes "wrong-type-argument: listp
display-buffer-in-previous-window" error. However, it appears Emacs
handles malformed alists by just ignoring them, so Doom will do the
same.

Reported by @maskray
2018-07-04 21:42:33 +02:00
Henrik Lissner
cddde09b79
Fix popup system not cleaning up buffers with ttl
Because of extra parentheses causing essential logic from running. I am
a silly goose.
2018-07-01 00:57:27 +02:00
Henrik Lissner
04ee1c23fd
Don't set margins in left/right popups 2018-06-29 02:35:33 +02:00
Henrik Lissner
4eda07e576
Don't replace scratch buffer with other popups 2018-06-28 00:31:36 +02:00
Henrik Lissner
0dc0ccc63e
Refactor +popup*org-pop-to-buffer
Simplify pop-to-buffer call.
2018-06-25 20:19:33 +02:00
Henrik Lissner
8fcc12ed08
Add +popup-display-buffer-fullframe
Adds support for the saved-wconf window parameter. If a popup possesses
a window configuration in this parameter, it will be restored when the
popup (or its popup buffer) is killed.
2018-06-25 19:28:09 +02:00
Henrik Lissner
618358413b
Major refactor of ui/popup
+ Make it pass tests
+ Changes the behavior and arguments of functions passed to :autosave,
  :ttl, and :modeline.
+ Updated the documentation of set-popup-rule! to reflect these changes
+ Phase out map.el usage as per f6dc6ac7
2018-06-23 22:18:44 +02:00
Henrik Lissner
f11bd617cd
Add ui/popup tests (wip) 2018-06-23 22:17:56 +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
0bea00c183
Fix with-popup-rules! macro
Mistreating its RULES argument, causing void-function errors.
2018-06-22 19:17:15 +02:00
Henrik Lissner
16975d0dc3
Slightly smaller backtrace popups 2018-06-22 01:49:21 +02:00
Henrik Lissner
27ab47cd11
Improve *Backtrace* popup rule
+ High vslot = unlikely to be replaced by other popups.
+ Make it large; backtraces are important!
+ Don't allow ESC to close it. It must be done manually, with q or zx
2018-06-20 02:12:37 +02:00
Henrik Lissner
ca2c8b5a45
Minor refactor, across the board
Do you see the board? Now look at the other side. That's how far this
refactor extends.

Yes.
2018-06-18 15:02:24 +02:00
Henrik Lissner
6808c46b58
💥 Change set-popup-rule! usage
Now accepts a flat plist of all its former parameters, including new
:parameters and :actions properties to increase your control over the
fate of your windows.

The old usage of set-popup-rule! is deprecated and may not work right!

The :ui popup module has also seen a major refactor to improve
efficiency and load times.

Sorry! This is the last "big" change before 2.1!
2018-06-18 02:34:16 +02:00
Henrik Lissner
6490c4b922
Prevent unsafe file variable prompts on help links 2018-06-17 17:26:15 +02:00
Henrik Lissner
0fd8e1dd6b
Restore +popup-ttl
Accidentally removed in a recent commit.

Fixes #692
2018-06-17 11:34:55 +02:00
Henrik Lissner
d31052d9db
Reformat popup library: move polyfills down 2018-06-17 02:21:46 +02:00
Henrik Lissner
1eae57a0b4
Rename +popup-display-buffer
To +popup-display-buffer-stacked-side-window, to make it more obvious
what it actually does.
2018-06-17 02:21:46 +02:00
Henrik Lissner
c3988a8298
Give popups a small margin
To make up for lack of fringe.
2018-06-17 02:21:46 +02:00
Henrik Lissner
9b5a219373
Improve robustness of popup predicates & checks 2018-06-17 02:21:46 +02:00
Henrik Lissner
635fbb4a97
Fix "selecting deleted buffer" errors in helm #665
By properly handling helm popups.
2018-06-16 14:42:47 +02:00
Henrik Lissner
44363cae40
General, minor refactor & revision
Across the board. All the boards.
2018-06-16 12:26:58 +02:00
Henrik Lissner
74d364776e
Move no-other-window to +popup-default-parameters
Should be customizable.
2018-06-16 11:45:09 +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
1cfc146e3a
Fix indentation of set-popup-rule!'s arguments 2018-06-16 00:40:37 +02:00
Henrik Lissner
fe6a9b0cd8
ui/popup: tie +defaults flag to +hacks 2018-06-15 22:13:44 +02:00
Henrik Lissner
f81a0e6f41
Remove redundant def-setting! docstrings
def-setting! will now grab the autodef's docstring if it has an
:obsolete property defined.
2018-06-15 16:54:39 +02:00
Henrik Lissner
d8b1e469bc
Introduce autodefs to replace some settings
+ :popup -> set-popup-rule!
+ :popups -> set-popup-rules!
+ :company-backend -> set-company-backend!
+ :evil-state -> set-evil-initial-state!

I am slowly phasing out the setting system (def-setting! and set!),
starting with these.

What are autodefs? These are functions that are always defined, whether
or not their respective modules are enabled. However, when their modules
are disabled, they are replaced with macros that no-op and don't
waste time evaluating their arguments.

The old set! function will still work, for a while.
2018-06-15 03:42:01 +02:00
Henrik Lissner
6fe0017e24
Add popup hacks for pdf-tools' annot list windows
Annotations are displayed in stacked windows to the left of the pdf.

Thanks to @UndeadKernel for help figuring this out.
2018-06-14 19:55:36 +02:00
Henrik Lissner
1f07b37c9c
Fix elusive back-to-top-level error
These occurred because of disruptive kill-buffer-hooks running when the
backtrace buffer was auto-killed by the popup cleanup system. No more!
2018-06-14 00:45:57 +02:00
Henrik Lissner
a77a967299 Fix elusive 'already at top-level' error
I have hunted this bug on and off for nearly a year now. It would kill
processes randomly, move the point suddenly, and quit the active
minibuffer without warning.

The only clue it'd leave behind is an announcement in the minibuffer:
"Already at top-level".

Thanks to @UndeadKernel for the last piece of the puzzle!

Fixes #436
2018-06-12 14:13:12 +02:00
Henrik Lissner
6e6dfc2215
Implement helm project search functionality #644
Adds +helm/project-search, as well as +helm/ag and +helm/ag-from-cwd,
and variants for rg, pt and grep/git-grep, to mirror the functionality
available to :completion ivy.

Also updates the evil ex commands and keybinds
2018-06-02 20:37:02 +02:00
Henrik Lissner
dd57a521f3 Correct :popup/:popups docstrings 2018-06-02 18:20:09 +02:00
Henrik Lissner
209b281dc6
Move popup mode keymaps to autoload.el 2018-06-02 16:58:56 +02:00
Henrik Lissner
90ddc67337
Fix with-popup-rules! macro 2018-05-31 01:34:53 +02:00