- Moved backend determination to `config.el`
- Replaced `(when (not foo) bar)` with `(unless foo bar)`
- Replaced unnecessary backquote construct with simple quotation
- Replaced `pcase` form with only one-arm with `when` or `unless` form
- Replaced `(set (make-local-variable 'foo) bar)` with `(setq-local foo bar)`
- Removed unnecessary `progn`
- Refactored functions
- Several functions are inlined and removed from global namespace
- Moved function from `packages.el` to `func.el`
- Replaced `(when (not foo) bar)` with `(unless foo bar)`
- Replaced unnecessary backquote construct with simple quotation
- Replaced `pcase` form with only one-arm with `when` or `unless` form
- Add `dumb-jump-xref-activate` hook to `xref-backend-functions`, which
add a fallback option, i.e. `dumb-jump`, when no better alternatives
is availabe
- Removed the obsolte interface `dumb-jump-go` from the following layers:
- clojure
- latex
- vue
- The global binding `SPC j q` requires the obsolte function
`dumb-jump-quick-look` and is therfore removed
Some parts of the README.org file for the lsp layer use Markdown syntax,
this commit fixes this. Some emphasis through equal signs are also
replaced by tildes for more coherence in the file.
Also the value of lsp-navigation is shown unquoted, this commit quotes
the possible values.
problem
The evil-collection is loaded in the spacemacs-evil layer.
The spacemacs-evil layer isn't enabled by default
on the spacemacs-base distribution.
solution
Add buff-menu to the list: spacemacs-evil-collection-allowed-list
after the evil-collection has loaded.
These try to modify the completions on a global basis.
This is causing a lot of issues with more intelligent
backends, which tend to do this in a more efficient
way already.
I have removed the global bindings for these now.
Layers should make `company-transformers` buffer local
and add specific versions of these when required.
This reverts commit 6e0f650101.
The reason for this is not that the dynamically build pylookup.py
is not found by emacs, this I have already solved locally by checking
the quelpa build directory.
However the issue is that the library is not compatible with python 3
the local version however is.
So this is effectively a fork and must be kept till python 3
compatibility for pylookup has been achieved.
Should fix#14544
When working long hours with Metals and saving and moving between buffers. This feature of automatically showing and writing in buffers breaks HELM, and buffer management stops, rendering Emacs useless. Furthermore, this feature is not that useful. In VIM LSP is off by default. The purpose of this is to make the experience of Scala Developers with Metals a nice one, rather than having Emacs breaking all the time, as has been happening to me. This has saved me hours.
PR-comments
Without this, fuel mode is reloaded needlessly on every Factor REPL restart.
Now we only do that if the Factor about to be invoked is a different one than
before.
Allows you to pick up new Cargo dependencies without a (slooow)
full server restart.
See https://github.com/emacs-lsp/lsp-mode/pull/2728
Add diagnostic messages when trying to reload RA workspace
No point restarting when trying to reload RLS
Currently, when `lsp` backend is used for `rust` layer, `SPC m s s` is bound to
`lsp-rust-switch-server`, which temporarily changes the preferred LSP server
for `rust-mode`, but it DOES NOT switch the running LSP server. Users need to
call `lsp-workspace-restart` to finish the switching.
This PR introduced a new function `spacemacs//lsp-rust-switch-server`, which is
a wrapper for the two aforementioned functions
Problem:
With the helm layer, `SPC h SPC` shows:
and: Symbol’s value as variable is void: smartparens-mode
Cause:
The `SPC h SPC` helm buffer generates a section called: Toggles
It checks the status of every toggle mode.
But smartparens-mode has the define-minor-mode :init-value nil
Solution:
Check that the two non-global smartparens modes are bound and true:
smartparens-mode
smartparens-strict-mode
Note:
The smartparens global (strict) mode toggles don't need to be checked,
because they enable smartparens-(strict-)mode.
auto-completion did not respect the smartparens-mode
defined in the dotfile when disabling/restoring it.
In addition when starting a yasnippet expansion
smartparens-mode was not properly restored resulting
in having smartparens always disabled.
This PR tries to fix both issues. Though judging from
the comments this could kill `hippie-expand` expansion.
However as yasnippet is more common I think this is
to be preferred.
emacs-lisp and common-lisp-layer had both their own
logic to work with smartparens including manually
requiring it.
This PR makes them use the standard functions. In
addition it replaces the manual require with proper
autoloading of smartparens.
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:
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.