This is provided by `smerge-mode` in Emacs 27, and functions exactly
like `smerge-next`, except that if there are no more conflicts in the
current file, it will go to the next file with conflicts.
Arguably this could be a different key binding. However, I find that it
is almost strictly superior to `smerge-next`: I can't think of a case
where I *wouldn't* immediately want to go to the next file with
conflicts, and even if you do by accident you can just pop back to the
preceding buffer. So I think it warrants being the default.
Close: #5431
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.
To reduce redundancy, remove the maintenance hassle that version
constants would impose later on, and rely on built-in
facilities (featurep) more over global variables or doomisms, these
global constants have been deprecated in favor of Emacs "features":
- EMACS28+ -- replace with (> emacs-major-version 27)
- EMACS29+ -- replace with (> emacs-major-version 28)
- NATIVECOMP -- replace with (featurep 'native-compile)
- MODULES -- replace with (featurep 'dynamic-modules)
(These constants will be formally removed when v3 is released. The IS-*
constants are likely next, but I haven't decided on their substitutes
yet)
I also decided to follow native-compile's example and provide features
for Emacs' system features (since system-configuration-features' docs
outs itself as a poor method to detect features):
- dynamic-modules
- jansson
- native-compile -- this one already exists, but will instead be removed
if it's non-functional; i.e. (native-comp-available-p) returns nil.
These are now detectable using featurep, which is fast and built-in.
new hydra head:
"n" (progn (smerge-vc-next-conflict)
(recenter-top-bottom (/ (window-height) 8)))
Allow us to jump to the next merge conflict in current project without
leaving the hydra and/or opening magit.
vc-ignore-dir-regexp is configured to ignore TRAMP buffers to speedup
projectile. browse-at-remote uses vc-git-root to find git root project
and it will fail to find project root for remote buffers. Temporary
return vc-ignore-dir-regexp to default value.
Fix: #5660
+ Default browse-at-remote-prefer-symbolic to nil because a permanent
URL is generally more desirable for developers sharing links.
+ 'SPC g y' and 'SPC o o' now support the prefix arg, which will negate
the default value of browse-at-remote-prefer-symbolic for that call.
git-link is no longer maintained and browse-at-remote has support for
more remotes.
- Bind '<leader> g o h' to open homepage in browser
- Rebind '<leader> g o o' to open file or region (omits the #L<N> suffix
if no selection is active).
:feature was a "catch-all" category. Many of its modules fit better in
other categories, so they've been moved:
- feature/debugger -> tools/debugger
- feature/evil -> editor/evil
- feature/eval -> tools/eval
- feature/lookup -> tools/lookup
- feature/snippets -> editor/snippets
- feature/file-templates -> editor/file-templates
- feature/workspaces -> ui/workspaces
More potential changes in the future:
- A new :term category for terminal emulation modules (eshell, term and
vterm).
- A new :os category for modules dedicated to os-specific functionality.
The :tools macos module would fit here, but so would modules for nixos
and arch.
- A new :services category for web-service integration, like wakatime,
twitter, elfeed, gist and pastebin services.
Should also fix void-function/void-variable errors caused by evil-magit
depending on the newer version of magit (#1174).
Also introduces a redesign of the SPC g prefix.