When a file is visited via `emacsclient`, server.el does the following
in this order:
- create a buffer `b` visiting the file
- run `(set-buffer b)`
- trigger `server-visit-hook`
- run `(switch-buffer b)`
- trigger `server-switch-hook`
Thus, the right hook for `doom-run-switch-buffer-hooks-h` is
`server-switch-hook` because the "switch buffer" hooks may assume that
the buffer has already been switched to.
This fixes an org error that occurs when running
emacsclient --create-file --no-wait foo.txt
while there's a frame containing an org-roam file. Without this commit,
the server will create a new frame and set the current buffer to
foo.txt. But the new frame will still display the (duplicated) window
for the org-roam file. Then `server-visit-hook` will be triggered and
eventually run `+org-roam-manage-backlinks-buffer-h`, which will try to
enable the org-roam backlinks buffer. But this will error because the
current buffer is not an org(-roam) buffer.
Amend: 4a6de2419c
Prevent rare edge cases where FORM is an atom, causing `cadr` to throw a
type error. Might explain some cases of `doom sync` doing nothing after
'> Generating N init files...'.
Amend: c014950f6d
While generating the autoloads for the current profile (at `doom sync`),
remove any `add-to-list` forms modifying `interpreter-mode-alist` or
`auto-mode-alist` in autoloaded `(when (treesit-available-p) ...)`
blocks. We want to fully rely on `major-mode-remap-defaults`.
When a pinned package is repinned, the package manager attempts to `git
checkout` the new pin, which won't work if the package isn't a git
repo (see 8cdddd87).
Amend: 8cdddd87d9
With af4cbc7, escaping and quoting in $EMACS is now respected by
bin/doom; so make use of it to fix issues with $EMACS paths/commands
that contain spaces.
Ref: af4cbc7791d2
Fix: #8475Fix: #8403
`major-mode-remap`, `major-mode-remap-alist`, and
`major-mode-remap-defaults` were not backported correctly for Emacs 29,
28, and 27 users.
Amend: da08aa2d7d
From this point on, Straight will download packages from tarballs (if
possible) from their associated forge rather than clone them as git
repositories. This is (marginally) faster and consumes significantly
less space. Doom treats its packages as build artifacts anyway.
This shouldn't cause any immediate breakage, but it may upset folks who
want their local package installs to be repositories. For them, this can
be reversed by simply adding this to $DOOMDIR/init.el:
(after! doom-straight
(setq straight-vc-use-snapshot-installation nil))
This only applies to packages installed after this point. Packages that
are already cloned as a repo will stay that way until the next time
they're uninstalled or reinstalled from scratch. Plus it only works on
systems that have `tar` in their $PATH *and* forges that are
supported (at the time of writing: github, gitlab, codeberg, bitbucket,
and sourcehut).
Ref: radian-software/straight.el@4241b63952
When you fail to provide a correct commit message, it may just become
lost without this adjustment.
(fun fact: this feature was used to fix its own commit message 4 times)
Doesn't change the default behavior of the command, but adds an optional
FRAMES argument (a list of frames or `t` for all open and future
frames). If passed the prefix arg, FRAMES default to `t`, which applies
the opacity change to all open and future frames.
Close: #8395
Co-authored-by: lattarov <lattarov@users.noreply.github.com>
Otherwise, undo could delete entire chunks of a shell buffer. This
addresses the issue in eshell, comint shells, and derivatives (like
ielm, shell, or inferior-* shells).
Ref: #8410
This makes the output of previous commands and prompts immutable (by
default), so users can't accidentally alter them, which can leave the
buffer in a half-broken state (requiring the user flush out the garbled
input with a couple RETs).
This targets comint shells (shell, ielm, etc), eshell, (ansi-)term, and
any derivatives thereof.
Fix: #8411
There are two editorconfig libraries. One built into 30+ and one on
MELPA. Same name, different APIs. If the MELPA one is installed through,
say, your OS package manager, then the detection heuristic in
`doom/set-indent-width` could get confused which library is which.
Fix: #8423
In v3, 'doom run' will have a different purpose (for launching project
or CI/CD tasks), so it now emits a warning that it's moved to a new
'doom emacs' command.
I refrain from updating documentation because a rewrite of our docs will
be coming up soon.
- cmd.exe chokes on the space in "C:\Program Files\...", but more
importantly, doom.ps1 should be invoked with powershell, not cmd.exe.
- Windows has pwsh.exe and powershell.exe, which, while not identical,
are close enough for our purposes, but needed to be accounted for.
Fix: #8098
Allow doom-project-find-file to search file hierarchies from arbitrary
starting points (otherwise, project.el will resolve to the nearest
project root).
Used to be that a ;;;###COOKIE with no argument would return NULL-VALUE.
No more, it will now return `t`.
Also corrects the docstring to properly reflect what this does.