From now on, our documentation will assume your Emacs config lives in
~/.config/emacs, by default, rather than ~/.emacs.d. Support for the
latter is not going away, it will simply be mentioned less in the
literature, as all supported versions of Emacs going forward (and future
versions of Doom) will support (and prefer) XDG conventions.
The user manual will be updated separately.
Close: #6965
Co-authored-by: gagbo <gagbo@users.noreply.github.com>
BREAKING CHANGE: This commit removes the magit-gitflow package because:
- It is not considered a "universal" default. I.e. The majority of git
users do not know of or use it, much less need it.
- The elisp configuration for it is trivial. It doesn't warrant
Doom-specific support for it and is trivial enough for end-users to
deploy themselves with minimal difficulty.
Close: #7015
For some reason, the transient-append-suffix adding magit-worktree back
to magit-dispatch — after its potential replacement by
magit-gitflow-popup — was having no effect. (It does when moved into
(after! magit-gitflow), so the issue must have something to do with when
transient-append-suffix is called.) magit-worktree wasn't appearing in
the magit-dispatch popup when magit-gitflow was enabled, nor was the '*'
keybind for magit-worktree in effect outside (or inside) the popup,
unlike '%' for magit-gitflow-popup.
Replace the ineffectual transient-append-suffix with a normal and visual
mode keybind for magit-worktree in magit-mode-map (and move the
unconditionally defined keybind for magit-gitflow-popup into (after!
magit-gitflow)). Also, append the magit-gitflow-popup transient suffix
to magit-worktree instead of replacing it, so that the latter still
appears in magit-dispatch (though under the original keybind 'Z' — which
isn't really an issue, since evil-collection-magit doesn't seem to
update the keybinds of any of the other commands accessible from
magit-dispatch — but also callable with '*').
When using evil +everywhere, we disable the default forge bindings.
We must then explicitly remap magit-browse-thing, as it's just a
placeholder command (bound in multiple places).
doom-etc-dir will be renamed to doom-data-dir, to better reflect its
purpose, and align it with XDG_DATA_HOME (where it will be moved to in
v3, where Doom will begin to obey XDG directory conventions more
closely).
featurep! will be renamed modulep! in the future, so it's been
deprecated. They have identical interfaces, and can be replaced without
issue.
featurep! was never quite the right name for this macro. It implied that
it had some connection to featurep, which it doesn't (only that it was
similar in purpose; still, Doom modules are not features). To undo such
implications and be consistent with its namespace (and since we're
heading into a storm of breaking changes with the v3 release anyway),
now was the best opportunity to begin the transition.
evil-collection-magit-section introduces some redundant keybinds on
number keys 1-4, so our hack to correct these keys needed an adjustment.
And by unbinding these keys at the source (magit-section-mode-map), we
don't have to do the same for each inheriting keymap (like
code-review-mode-map and magit-mode-map).
Ref: emacs-evil/evil-collection@e26c869735
Amend: 31519d393a
Add the two main keybindings expected in the README of code-review: `r`
for a transient menu with all actions and `RET` to add or edit a
comment. Both should only be enabled while in a `*Code Review*` buffer.
Ref: https://github.com/wandersoncferreira/code-review
code-review is built on magit-sections so it will have the same default
bindings for M-1, M-2 etc. To be consistent with the rest of doom, those
should be used for switching workspace and z1, z2 etc should be used for
toggling outlines in a magit-sections buffer.
This only affects users with :editor (evil +everywhere) enabled.
Amend: 2d3a68df49
These files were put directly in .emacs.d causing the repository to
appear dirty. This should follow the doom convention of putting the
files in the .local/etc dir.
Amend: 2d3a68df49
An incompatibility between forge and evil-collection-forge causes this
error when starting Forge:
Cannot insert ("N" "Forge" forge-dispatch) into magit-dispatch; o not
found
Changes +magit/quit to behave more like canonical
magit-mode-bury-buffer, but after burying/killing the last magit buffer
for the current repo, kill all the other buried ones too.
Also binds Q in magit to kill all magit buffers for the current repo.
Disabling magit-gitflow breaks magit-dispatch due to the unconditional
application of `transient-replace-suffix`.
With this change it is possible to disable magit-gitflow by adding the
following to your private Doom configuration:
(package! magit-gitflow :disable t)
Now that evil-magit's been moved to evil-collection, its keybinds are
subject to our blacklist. There must be a better way to exclude
evil-collection modules from the blacklist.
+ Add explain-pause-mode
+ Now reloads itself if doom-debug-variables is changed or when one of
its variables becomes available.
+ doom-debug-variables now supports a cons cell entry where its CAR is
the name of the variable and CDR is the value it should be set to when
doom-debug-mode is active.
On closer inspection it isn't necessary to expand the gitk and perl
executable paths, since a) gitk is a GUI application that doesn't get
called often enough (only once at a time) to warrant being optimized,
and b) magit uses it to set an envvar for git (so git itself handles
locating the executable internally -- much faster than Emacs can (esp
over TRAMP), so it only benefits us to expand magit-git-executable.
When a log or diff buffer is opened from the magit status buffer, it
would display them in a random window (or split, if none were
available). This changes forces it to predictably open to the right of
the magit status window (using the next window over, if available).
- Adds `magit-gitflow-popup` as `%` keybinding in the `magit-dispatch`, mirroring the keybinding in `magit-mode-map`.
- The existing binding `magit-worktree` is moved to `*`