The standard toggles were not respecting the smartparens
mode defined in the dotfile. Also the global mode toggle
was only for the non-strict version.
This PR makes sure that they toggle the correct
smartparens version.
Before layers were sometimes only activating the non strict
version of smartparens. Also some were only disabling
the non-strict version leaving some of the smartparens
advices intact.
With this PR, all layers set the right version of smartparens.
Also if the layer is trying to disable it a standard function
will now take care to disable all versions of smartparens.
Smartparens seems to cause performance issues for
a lot of users. This PR allows to disable the package
completely.
There are some functions in elisp and common-lisp mode
which dependt on this package and will manually require
it when executed though. But this should only affect
lispers which mostly will want to have some kind of
smartparent functionality anyway.
For the discussion see here #12533.
In evilified visual state.
- Add the inner: `i` and outer `a` text objects.
- Add `o` to exchange the point and mark
(jump between the start and end of the region)
IMHO this should be global binding, the alternative was `SPC e e` because it can
be used everywhere, e. g. from compilation buffer to find the error causing the
build breakage.
evilified normal state is missing some useful keys:
y (evil-yank) and the common navigation keys:
f, F, t, T, w, W, b, B, $, ^
They are available in evilified visual state,
but it's useful to be able to copy text
without having to enter visual state first.
Adding `y` (`evil-yank`), makes the inner (`i`) and outer (`a`),
text objects available in evilified normal state.
This also adds the text objects to evilified visual state.
Just like: https://github.com/emacsfodder/move-texthttps://github.com/rejeep/drag-stuff.el
also drags one or more (region) lines up or down.
But it also allows for dragging left and right (across end of lines):
- a word: changing place with the next or previous word.
- a region: moving it one character at a time to the left or right.
Added a new key binding: `SPC x .`
that opens the:
```
Drag Stuff Transient State
[k/K] up [h/H] left [q] quit
[j/J] down [l/L] right
```
The `move-text` package isn't removed, even though it isn't used anymore in
Spacemacs.
Because the `evil-unimpaired` elpa directory is generated from the local
Spacemacs `evil-unimpaired.el` file.
https://github.com/syl20bnr/spacemacs/blob/develop/layers/%2Bspacemacs/spacemacs-evil/local/evil-unimpaired/evil-unimpaired.el
Therefore the `evil-unimpaired` key bindings `[e` and `]e` still call the
`move-text` commands.
Until the `evil-unimpaired` elpa directory has been removed and regenerated by
restarting Spacemacs.
Then they will call the new `drag-stuff` commands.
I don't know if/when the `move-text` package can be removed in the future.
Enable `evil-surround-mode` when exiting evilified state.
If `evil-surround-mode` was enabled.
Currently it only disables `evil-surround-mode`.
This was discovered while exiting `edebug-mode`.
This also removes the unused variable:
`evilified-state--evil-surround`
It might have been intended for this purpose.
Otherwise it can be added back when
a use case for it is introduced.
problem:
Pressing a number key on the Spacemacs home buffer,
doesn't reliably open the expected recent file.
cause:
The number keys are bound to open the files in the
order they are listed in the `recentf-list`.
The `recentf-list` is updated when a file is saved.
The home buffers recent files list is only updated
when the home buffer is created/refreshed/resized.
solution:
Open the recent files in the order they were listed
when the home buffer was last updated.
Fixes: incorrect order number in recent files on home buffer #14471
problem:
The toggle editing style prefix: SPC t E
always shows the same names:
e -> emacs (holy-mode)
h -> hybrid (hybrid-mode)
This causes some confusion about how to
switch to the vim (evil-mode) editing style,
from emacs or hybrid state.
solution:
Show which editing styles one will switch to:
In evil-mode:
e -> emacs (holy-mode)
h -> hybrid (hybrid-mode)
In holy-mode:
e -> vim (evil-mode)
h -> hybrid (hybrid-mode)
In hybrid-mode:
e -> emacs (holy-mode)
h -> vim (evil-mode)
This names the SPC F which-key entry.
before: +prefix
after: Frames
And adds "..." to the end of the descriptions,
for the keys that require additional user interactions.
cause:
The spacemacs|add-toggle expression,
ended up in the combined setq above.
additional changes:
Separated the combined setqs, to make it
easier see where each assignment starts.
Wrapped the lines at 80 chars to reduce
the need to scroll horizontally.
problem:
trying to open a magit buffer after
reloading the configuration: `SPC f e R`
shows the message:
>Lisp nesting exceeds ‘max-lisp-eval-depth’
cause:
purpose-x-magit-multi-on can't be called twice,
without turning it off first: purpose-x-magit-off
Spacemacs, purpose-x-magit-multi-on, Lisp nesting exceeds ‘max-lisp-eval-depth’
https://github.com/bmag/emacs-purpose/issues/178
solution:
in this case we'll only call: purpose-x-magit-multi-on
once per Emacs session.
notes:
this also removes the call to: with-eval-after-load 'magit
because it's handled upstream:
c85dd3c9f7/window-purpose-x.el (L243)
problem:
Trying to describe a key: `C-h k` `j`
shows:
Symbol’s value as variable is void: string-edit-mode
solution
Don't defer the string-edit package.
Emacs-application-framework is actively developed. This PR updates/fixes a small
issue with dark mode toggling due to upstream development. Having three
different keybindings for toggling dark mode is not ideal. But it is at least
working for now. I have no time to closely follow the upstream developments, but
I quickly checked for major changes. This layer still seems to work fine, and
the modifications in this layer (to make EAF behave spacemacsey) are still
relevant.
it looks like it still would throw a message:
"mu4e-org-store-link: Please load mu4e before mu4e-org" if attempted to use
`org-store-link` before loading mu4e. I'm just going to bump the version number until
someone offers a better solution
Many lisp related modes create confliciting bindings in
`SPC m T`. To avoid these clashes I have moved the LSP
specific toggles to a different prefix now.
As this just affects toggles I hope that the negative
impact on muscel memory will be minimal.