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)))
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.
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
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.
+ 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
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.
+ 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
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!
+ :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.
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
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