Although it is rare for a user to not enable the :config default module,
enabling/disabling modules one-by-one is common practice for debugging
Doom Emacs. This PR fixes an error that occurs when you have :completion
vertico enabled without enabling :config default.
Although this error will not be triggered by most people, since
auth-source is loaded by a lot of packages, it can still happen if you
are debugging your configuration (e.g. enabling/disabling modules
one-by-one).
This ensures all these fuel keybinds on factor-mode-map (and the
fuel-based lookup handlers) are associated with the fuel-mode
package (in case the user disables the fuel package).
Fix: #7788
Co-authored-by: steve-ayerhart <steve-ayerhart@users.noreply.github.com>
Otherwise `+eval/open-repl-*` commands will emit "REPL handler X failed
to return a buffer" errors.
Fix: #7788
Co-authored-by: steve-ayerhart <steve-ayerhart@users.noreply.github.com>
- While seq.el is likely present, Doom does not guarantee it in
interactive sesions like it guarantees cl-lib's presence.
- There is no reason to ever use cl-first/cl-second.
After switching to the sudo-ed tramp buffer, this restores the point and
scroll position of the window to match the source buffer.
I exploit save-place here instead of simply saving/restoring (point)
and (window-start), because I believe it's better UX that save-place
treat the two buffers as effectively the same now and in the future, and
record the last cursor position equally between them, even if the
implementation is messier. This *could* be generalized into an advice
for save-place-find-file-hook and save-place-to-alist, but that's an
experiment for another day.
This is an experimental implementation and may change later.
Close: #7181
Co-authored-by: YourFin <YourFin@users.noreply.github.com>
The caching of rust-analyzer (RA) is too aggressive and leads to bad
results.
RA does not give a protocol-compliant way to extract 1 line information
from the hover response, so `lsp-mode` displays the first line of the
result, which currently is the byte alignment of the data
Fix: #6951Close: #7754
Co-authored-by: gagbo <gagbo@users.noreply.github.com>
Co-authored-by: scturtle <scturtle@users.noreply.github.com>
mu4e-clear-caches was removed in djcb/mu@f73aad2b41, so users on
1.12.2 or so will see void-function errors until djcb/mu@770a2396de is
propagated to distro package managers, which likely won't happen
soon (esp for LTS distros).
Fix: #7703
Ref: djcb/mu@f73aad2b41
Ref: djcb/mu@770a2396de
Co-authored-by: dltacube <dltacube@users.noreply.github.com>
A common challenge for beginners is distinguishing packages, modes, and
hooks, and since Doom's source code is meant to second as another layer
of documentation, I prefer to be explicit with hook symbols in
`add-hook!` calls (at least, for internal/module use).
Having the same rule in two separate package configs means users must be
aware of both to modify either, which is avoidable complexity. i.e.
(after! (:or julia-repl julia-snail)
(set-popup-rule! "^\\*julia" ...))
auto-save can trigger processes that hang silently in the background,
making those buffers inoperable (hanging Emacs) for the rest of the
session, even if they are killed (tramp caches them), so I suppress them
solely for these temporary tramp buffers created by doom/sudo-find-file
and doom/sudo-this-file.
I backported `find-sibling-file` in 198fe82 and included with it some
rudimentary `find-sibling-rules` rules for CSS and its various
preprocessor languages. The CSS rule made *.((s[ac]|le)ss|styl) files
the siblings of *.css files, but not vice versa, so users couldn't jump
back to the source file with `find-sibling-file`; a second rule is
necessary.
These may be combinable, considering `find-sibling-file` deletes the
current buffer's filename from the list of candidates...
Ref: 198fe82b6d
I backported `find-sibling-file` in 198fe82 and included with it some
rudimentary `find-sibling-rules` rules for C++ and others. The C++ rule
made *.h(h|pp) files the siblings of *.c(c|pp) files, but not vice
versa, so users couldn't jump back to the source file with
`find-sibling-file`; a second rule is necessary.
These may be combinable, considering `find-sibling-file` deletes the
current buffer's filename from the list of candidates...
Fix: #7795
Ref: 198fe82b6d
I backported `find-sibling-file` from Emacs 29+ in 198fe82, but it
passes a third argument (REGEXP) to `file-expand-wildcards` which wasn't
introduced until 29, so users on 28 or earlier would see a
wrong-number-of-arguments error (see #7795).
Rather than backport the entire `file-expand-wildcards`
function (risking other edge cases), I've advised its usage in
`find-sibling-file-search` to behave as it would in 29+ with a non-nil
REGEXP argument.
Amend: 198fe82b6dFix: #7795
I revisit all our startup optimizations to see how they fair in Emacs
29.x and 30.x. Most of them still hold up. I've revised and updated most
of the accompanying comments to better explain them, given what I know
now compared to when I first wrote them.
Doom makes multiple attempts to re-clone repos if they failed the first
time, however, if a user provides a :local-repo and that location isn't
a git repo, Doom assumes this it is the result of a failed clone, and so
deletes it to "try" again (which will fail). This can result in lost
work.
This prevents this from happening to packages/repos outside of
$DOOMLOCALDIR (all packages under $DOOMLOCALDIR must be git repos).
Fix: #7785
Amend: 3643c4dadd
Amend: 1fa8d3a4b9
If the buffer is an indirect clone, it may not have a buffer-file-name.
Also changes the command to throw an error if the current file has no
file path *and* is not a dired buffer.
Now that mu4e has its own notification feature since 1.10 (and as of
this commit version 1.12 is already out), we can just use that. Much
less code to maintain.
Closes: https://github.com/doomemacs/doomemacs/issues/6896
- Make `+fold/close-all` work for outline-minor-mode.
- Distinguish between `zo` and `zO` for outline-minor-mode alone, by
binding `zO` to a new function `+fold/open-rec`. `zO` will now trigger
`outline-show-subtree` in outline-minor-mode, while `zo` will only
trigger `outline-show-branches`, keeping the subheadings folded. This
matches the behavior in org-mode.
- Fix a bug in `+fold/open-all`, introduced in
7b9d00d661, that makes it only operate
on vimish-fold folds.
Note that outline-minor-mode is still not enabled by default anywhere.
These changes are only to prevent incorrect behavior for users who
decide to turn it on themselves.
This commit updates the smart tab functionality so that:
1. The only functionality checked is for the modules that are enabled.
2. The priority of the TAB behavior is tunable by the user.
This also updates the TAB behavior for the Corfu module to be
`indent-for-tab-command` instead of `completion-at-point` so that users
can use the TAB key to indent their code and navigating Org tables.
We also address #7372 by checking overriding-terminal-local-map, as that
is used by Embark.
directory-empty-p was introduced in 28.1, but Doom still supports 27.1,
so 27.x users would see this error when running any bin/doom command
that clones packages.
Fix: #7779
Amend: 1fa8d3a4b9