* compleseus: disable ido-mode when vertico and selectrum are used
ido would inject inself instead of the regular `find-file' but if these are
activated, we actually want the regular `find-file'.
* core: provide minibuffer evilification predicate
Many different layers need to decide whether to evilify their minibuffer maps.
Provide a single function that puts the logic in one place.
* compleseus: only evilify minibuffer binds when desired
magit v3.2.0 now defines `magit-git-executable` as a
function (actually a defsubst), and two separate variables,
`magit-git-executable` and `magit-remote-git-executable`. On darwin,
magit already sets `magit-git-executable` to the result of
`(executable-find "git")`, so having this is now redundant in
Spacemacs.
This is an extension of #15462. I noticed that the fix did not apply
to magit-diff buffers, which still had the issue of `s' not being
available to stage diff hunks. `magit-diff-mode' is the parent mode
of all magit modes, in which evil-surround is not useful, so disabling
there makes the most sense.
The script used to identify and update the change is added into the GitHub
workflows script directory. A workflow action can be created to trigger the
script to update the headers on the first of every new year. Possibly a task for
a consequent PR.
This fixes the following error when pressing `SPC g r n` if
smerge-mode is not loaded yet:
Symbol's function definition is void: smerge-vc-next-conflict
Removed the `:commands` argument to use-package, which is
erroneous (:commands sets up autoloads so that invoking the command
will load the package specified, but only if the command is not
already fboundp).
Instead, explicitly load smerge-mode when entering the transient
state, so that any of the key bindings in the transient state will be
available. This has the same intended effect as the previous code.
Add documentatation to the Spacemacs Git layer describing how to configure basic git identity and more importantly how to configure Magit Forge to access GitHub / GitLab using a machine configuration and an encrypted file to hold the personal access token.
The config for git-gutter currently sets custom fringe bitmaps which
are optimized for half-width fringes.
I think that's an arbitrary choice. There's no spacemacs option which
enables half-width fringes and as far as I can tell, we don't optimize
for half-width fringes anywhere else. So we should optimize the
package defaults for the spacemacs default of full-size fringes.
If users set half-width fringes manually, they can customize the
bitmaps manually. Even if they don't, the bitmaps are still visible,
they just don't look as nice.
* [git] Fix: Evil-collection @-dispatch keybindings for magit forge.
Load new location for forge '@' dispatch keybindings.
'Evil-collection' has moved keymaps for magit forge from an
'with-eval-after-load' block to newfile 'evil-collection-forge.el' in commit
33461aa545.
As mentioned in the commit, these changes were due to a upstream change in the
'forge' package. Source: https://github.com/emacs-evil/evil-collection/issues/543
* [git] Docs: update README to reflect changes in Forge keybinds.
See https://magit.vc/manual/forge.html#Introduction for more information.
Related to #15117, this removes the helm-gitignore from the git layer because it
hasn't been updated to use the new git-modes package. The helm-gitignore
functionality isn't particularly useful anyway, it's just a utility to help
generate .gitignore files.
This change can be reverted if the upstream helm-gitignore package is fixed and
people find the functionality it provides to be useful.
This reverts commit ec57b21a92.
A which-key change caused issues with this fix.
And the fix doesn't seem to be needed anymore.
The correct which-key entries appear without the fix.
funcs.el is loaded after packages.el so `spacemacs//support-evilified-buffer-p` is undefined at this point.
moved it inside the `defun` block and it should work.
As described in #9169, when using the emacs editing style the comment inserted at the bottom of a git rebase shows the incorrect key bindings. This is apparently due to `evil-collection` (changing the `git-rebase-mode-hook`)[3ed92cadda/modes/magit/evil-collection-magit.el (L523-L524)].
We can fix the issue by only loading `evil-collection` if we're using an evil-style editing mode.
Closes#9169
Shelving and unshelving changelists are operations commonly used when
choosing Perforce as a VCS solution. Package consumed by the "perforce"
layer already provides "p4-shelve" and "p4-unshelve" commands that can
be exposed by the layer. Provide keybindings for these two commands as
well.
problem
In the `spacemacs-base` distribution.
When the `git-enable-magit-todos-plugin`
layer variable is enabled.
Then the following message appears on startup:
>An error occurred while pre-configuring magit-todos in layer git (error: (void-variable spacemacs-evil-collection-allowed-list))
cause
The `spacemacs-evil-collection-allowed-list` variable
is assigned in the `git` layer.
But it's defined in the `spacemacs-evil` layer.
The `spacemacs-evil` layer isn't used by default
in the `spacemacs-base` distribution.
solution
Check that the `spacemacs-evil` layer is used
before adding to the variable.
- Added `magit-todos` package, toggled by `git-enable-magit-todos-plugin`.
- Improved installation and loading of all magit-plugins:
- All magit plugins are toggled by their corresponding layer variables
PRE-INSTALLATION, instead of PRE-LOADING. That is, they are installed
only when the toggle is non nil.
- The `use-package` call is more specific now.
- Hooks goes to `:hook`.
- Removed `:defer` since it's implied by `:hook`, and it's actually not
doing anything.
- Improved the documentation.
problem:
pressing g shows the which-key entry:
r -> evil-mc
but it calls the expected commands:
revert-buffer (in dired)
magit-refresh
s -> evil-easymotion
but it calls the expected command:
magit-jump-to-staged
solution:
removing the gr and gs which-key entries,
shows the expected commands.
It is impossible to ignore `evil-collection` anymore. `evil-magit` has been
deprecated recently and moved to `evil-collection`.
It will save time and effort for both Spacemacs and Evil to share and contribute
to `evil-collection` imo.
However I strongly prefer Spacemacs binding scheme over evil-collection's one.
We should only pick what we need from `evil-collection`.
This PR add mechanism to embrace `evil-collection` and apply it to shell layer (`vterm`)
and git layer.
problem:
key bindings that use the winum package,
don't work in the spacemacs-base distribution.
for example in the buffer transient state: SPC b .
{number}, C-{number} or M-{number}
shows messages like these:
Wrong type argument: commandp, winum-select-window-1
Symbol’s function definition is void: winum-get-window-by-number
cause:
the winum package is loaded in the spacemacs-navigation layer,
but the layer isn't used in the spacemacs-base distribution.
solution:
show the message:
This command requires the winum package,
winum is part of the spacemacs-navigation layer.