+ Improve error handling when no PATTERN is given (reported by @ar1a)
+ Report correct number of resulting cursors
+ Handle edge case where only one cursor is created
+ Report edge case where no cursors are created
Because it is using the neotree-make-executor macro without requiring
`neotree` at compile time.
Also, remove the helm fix because they no longer use the
`with-helm-buffer` macro.
This fixes a keybinding precedence issue that prevented users from
customizing evil-collection's keybinds, because evil-collection would
always run last, *after* user customizations. This precedence problem
occurs because evil-collection was lazy loaded haphazardly.
This isn't the most elegant solution, but I can live with it.
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.
When evil-escape is invoked from multiedit-insert state, it erroneously
quits the current multiedit session entirely. No more.
This can be removed when syl20bnr/evil-escape#83 is merged.
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.
This fixes an issue where certain evil plugins would call
evil-force-normal-state non-interactively, causing `doom-escape-hook` to
wreck havoc. Instead, this should only happen when
evil-force-normal-state is called interactively (e.g. via ESC in normal
mode).
Fixes evil-mc-make-cursor-move-next-line and
evil-mc-make-cursor-move-prev-line.
Some packages (like evil-collection and dumb-jump) use helm macros, but
Doom cannot ensure helm will be installed by the time these packages are
byte-compiled during installation. In fact, the default load order
prevents this.
Rather than imposing hard load order requirements, we just make sure
helm is higher on the packages list, so it gets installed sooner.
This is in preparation for general.el integration coming in 2.1.1. It is
very likely that map! will change (and even more, be split into several
macros). Not much, but change none-the-less. Specifically, the state
keywords (e.g. :nvi, :n, :i) will be removed in favor of a :state
property that takes a list, e.g. (normal visual insert).
In any case, both map! and general are also relatively expensive
compared to define-key and evil-define-key* (and the new define-key!
macro), so use that when we can.
This also means changes to either API won't affect Doom's modules in the
long term.