Hopefully addresses a common issue where helm actions will operate on
the wrong window (a popup, typically, which is a dedicated side window;
Emacs doesn't let you split side windows).
This comes with a side effect: trying to split a popup will cause a
non-popup window nearby to be split instead.
Popups really aren't supposed to be split (interactively) in any case.
Some major modes rely on external parsers for correct indentation, like
js2-mode or enh-ruby-mode. They don't properly indent the closing
comment pair (*/), so we do it manually.
Consecutive calls to set-lookup-handlers! would redefine *all* lookup
handlers, unsetting unspecified ones, so you were forced to redefine all
handlers, even if you only wanted to change one. No more. Its side
effects are now additive.
Also adds :async handler support, however, due to their nature, they
cannot fall back to other handlers (there's no reliable way to detect
they worked or not).
To get around this, write a blocking wrapper around the old async method
and register it as a non-async handler.
+ C-b/C-f/C-w/C-u are from vim, and so will only be set for evil users.
+ C-a/C-e exists in both vim and Emacs, so we make them smarter for both
users.
This ensures that tide-mode won't activate for file-less JS buffers,
which are error prone. But once the file is saved, it will consider
activating itself.
The varible `TeX-mode-local-vars-hook` is not called correctly as AucTeX
reports that the major mode in a LaTeX file is `latex-mode`. Instead,
let's use `latex-mode-local-vars-hook` to enable flyspell.
This change enables disabling the feature of flyspell of immediately
spellchecking a document with:
`(setq-hook! 'TeX-mode-hook +spellcheck-immediately nil)`
Using meta is a little more flexible. Since there is no dedicated meta
key on our keyboards (anymore), it can be remapped to another modifier
by changing mac-command-modifier, x-meta-keysym, etc. without
sacrificing super or alt keybinds.