This changes how leader keys are bound, to fix an issue where the wrong
which-key label was assigned to the wrong keys, and cases where the
leader key was being shadowed by other minor mode mappings.
Unfortunately, this new method adds 10-20% to startup times. I'll
address this in a future patch. For now, correctness is more important.
Also fixes dashboard keybind detection.
The global leader keybind was conflicting with a global M-SPC keybind in
helm-map. This keybind should only be set in non-evil sessions, so we
unset it if evil is found.
Due to issues with preset prefixes in general definers and nested
:prefix's supplied from a map! call not cooperating, many localleader
keybinds were broken and causing errors. For :leader/:localleader keys,
we now use :infix for sub-prefixes.
However, with this change, the :alt-prefix property has been removed, as
there is no simple way to support this without some major state
gymnastics in map!.
Fixes#1059
+ Added +smartparens flag to config/default for default smartparens
config.
+ Fixed +tng support for completion/company.
+ Removed super keybinds (for all but MacOS)
+ Moved "keybind fixes" to config/default/config.el (these should be
universally available).
+ Replaced both +default-repeat-forward-key and +default-repeat-backward-key
with +default-repeat-keys. If this variable is nil, the universal
repeat motions won't be bound.
This resolves issues with :leader/:localleader keys not working when
evil states are specified. Evil states are now ignored. Also, some of
map!'s internals have been optimized to yield a ~10% improvement in
macro expansion time.
+ :map arguments shouldn't be quoted
+ :localleader keys default to all states in the absence of state
modifiers. This is preferred, rather than restricting their use to
normal state.
+ :map* is deprecated (there is no difference between it and :map)
The former approach was the cause for a huge increase in startup
time (adding ~0.4s) when :leader and :localleader were used. This is
because general-define-key was called for every key-def pair.
This new approach batches these calls, which has decreased the
performance impact by at least 80%.