Make use of new evil variable evil-disable-insert-state-bindings. This
is better because we are not copying evil code to get hybrid state to
work. We should not need to worry about tracking upstream evil changes
with this version of hybrid mode.
The only effect I can think of with this change is that there is no
longer a distinct hybrid-map, since there is no longer a distinct hybrid
state. This means that, for example, (evil-define-key 'hybrid ...)
will throw an error. You can either use (evil-define-key 'insert ...) or
the preferred (global-set-key ...). The latter is preferred because the
purpose of hybrid mode is to not interfere with Emacs bindings in insert
state.
Use post-init-evil function to load
It's a bit safer than with-eval-after-load, in case evil gets loaded
before its init function is called.
Add entry and exit hooks
Add temporary wrapper to evil-define-key
This is so that calls like (evil-define-key 'hybrid ...) do not fail
after switching over. Instead issue a warning for all such instances and
bind using define-key instead.
Also define evil-hybrid-state-map and make it the parent of
evil-insert-state-map this will prevent calls like (define-key
evil-hybrid-state-map ...) from failing.
These are both temporary and are only intended to smooth the transition
to the new version of hybrid-mode.
With the introduction of `rspec` support in version 0.105.0
tests run with rspec launch in their own `rspec-compilation`
which is not managed in `spacemacs-base/init-popwin` causing
those compilations to open a new buffer and take over an exisiting
window.
It is preferable to have the test compilation open in a popwin
that does not disrupt the current state of a workspace layout and
takes advantage of the full width of the current editor view
so it's easier to read. Popwin is also nice because it is easier
to dismiss with a simple `C-g` or `SPC w p p`.
ivy-use-virtual-buffers was triggering recentf-mode to be called before
the recentf init function was called leading to problems with where the
recentf file was placed.
Use mnemonic j for jumping commands. Although some of these commands
exist in other places, they are duplicated here when they don't
conflict.
Add:
1. jb for bookmark-jump
2. jc for avy char jump
3. jd for dired-jump
4. jD for dired-jump-other-window
5. jf for find-function-at-point
6. ji for spacemacs/jump-in-buffer (imenu)
7. jI for helm imenu in all buffers
8. jl for avy go to line
9. ju for avy-pop-mark (u for "undo")
10. jU for spacmacs/avy-goto-url
11. jv for find-variable-at-point
12. jw for avy go to word or subword
Move:
1. jh to j0 (push mark and go to beginning of line)
1. jl to j$ (push mark and go to end of line)
This make `SPC h SPC` as default binding for accessing `helm-spacemacs`,
by either A) changing all the documentation; and B) adding a deprecation
message for `SPC f e h`.
The deprecation use a warning, because if a message is used it's hidden
directly when the helm buffer is shown, making it nearly unnoticeable
for the user.
The current way to highlight TODOs is `spacemacs/highlight-TODO-words`
which is a spacemacs' hard-coded function.
This commit changes it for the `hl-todo` package. This imply:
- More keywords are supported out of the box.
- Keywords are associated to faces, so they are shown in different
colors.
- Keywords are stored with their faces in a list, so it's easier for
users to add their own keywords and faces (as contrary to a regexp).
- It is possible to disable highlighting by simply excluding the
package.