Commit graph

873 commits

Author SHA1 Message Date
Henrik Lissner
3ad9eeb273
fix(lib): doom/reload: only escape spaces in $EMACS on Windows
This is a temporary measure until the interpolation in the powershell
script can be addressed directly (by someone better versed in
powershell).

Fix: #8572
Close: #8654
Co-authored-by: kovan <kovan@users.noreply.github.com>
2026-02-13 23:55:20 -05:00
Henrik Lissner
5e888018e5
docs: fix package! examples
These examples prematurely snuck into 3bea4f6. `:recipe` *will* be
optional post-v3, but this change hasn't been published yet.

Amend: 3bea4f66a8
2026-02-11 17:47:37 -05:00
Henrik Lissner
ae7d7a605a
bump: :doom
Fuco1/smartparens@b629b4e893 -> Fuco1/smartparens@82d2cf084a
bbatsov/projectile@9325c45e0f -> bbatsov/projectile@7cb1f64c1d
emacs-compat/compat@cf14260191 -> emacs-compat/compat@38df650dce
emacs-straight/project@a66b0e0987 -> emacs-straight/project@ff700457fe
radian-software/straight.el@562639bd97 -> radian-software/straight.el@09b789a859
rainstormstudio/nerd-icons.el@d41902fe68 -> rainstormstudio/nerd-icons.el@9a7f44db9a
2026-02-10 18:12:22 -05:00
Henrik Lissner
4f4952d6c6
fix(cli): doctor: recursive macro expansion on advice
Emerged in Emacs 31+.

Fix: #8644
2026-02-10 13:12:28 -05:00
Henrik Lissner
ecd04f65da
release(modules): 26.03.0-dev
Ref: 2b39e41368
2026-02-09 22:56:17 -05:00
Henrik Lissner
19b3f4cd9e
docs: doctor: add Symbola font check
The lack of Symbola can cause crashes, slowdowns, or confusion when
certain glyphs don't show (like org-modern's unicode bullets or certain
ligatures).

Ref: doomemacs/community#66
2026-02-09 22:39:55 -05:00
Henrik Lissner
1a943aea69
refactor: cut down on pseudo-features
Way back, I added these three pseudo-features:

  (featurep 'dynamic-modules)
  (featurep 'harfbuzz)
  (featurep 'jansson)

Why? Because some build features have pseudo features (like
`tty-child-frames`, `pgtk`, and `threads`), but others don't, and I
wanted more consistency around build feature detection. Years later, I
realized it wasn't used much internally and only ended up confusing
readers who didn't realize these were Doom's additions and not built
into Emacs. Emacs' idiosyncrasies may not be nice or elegant, but
they're less surprising to elisp beginners and veterans alike.
2026-01-23 20:26:28 -05:00
Henrik Lissner
57818a6da9
fix: hl-line hacks on 31.1+
- Rely on the more efficient `global-hl-line-mode` implementation in
  31.1.
- Use the new `global-hl-line-buffers` predicate variable introduced in
  31.1 to implement our disable-hl-line-during-selection and major mode
  white/blacklist hacks.
- Reverts hl-line-sticky-flag to its default (t), because some features
  were aggressively (and erroneously) disabling hl-line (particularly
  eldoc).
2026-01-21 03:32:27 -05:00
Henrik Lissner
97d33cd641
fix: comp writing temp files to /tmp
Should've been moved to doom-profile-cache-dir, but
comp-run-async-workers was renamed to comp--run-async-workers in later
versions of Emacs.
2026-01-20 17:59:38 -05:00
Henrik Lissner
021abd4ab7
fix: outline-up-heading + better-jumper integration
Fix: #8566
2026-01-20 17:00:51 -05:00
Henrik Lissner
d2acb6b9c6
fix: silence straight package.el warning
Fix: #8568
2026-01-20 16:58:27 -05:00
Henrik Lissner
4890cc1731
tweak: restrict {global-}hl-line-sticky-flag to window
global-hl-line-sticky-flag was introduced in 31.
2026-01-19 17:15:14 -05:00
Henrik Lissner
66ad58afc4
fix(lib): doom-docs-org-mode: id locations 2026-01-19 17:08:54 -05:00
Henrik Lissner
3e15fb36d7
bump: :doom
emacs-compat/compat@ad6a2b82f7 -> emacs-compat/compat@cf14260191
emacs-straight/project@83c91f5c84 -> emacs-straight/project@a66b0e0987
rainstormstudio/nerd-icons.el@772987a28d -> rainstormstudio/nerd-icons.el@d41902fe68
2026-01-07 03:05:43 -05:00
Henrik Lissner
4dbab877b5
fix: :link in doom defgroup 2026-01-06 02:00:17 -05:00
Henrik Lissner
38d94da67d
release(modules): 26.02.0-dev
Ref: 2b39e41368
2025-12-31 20:03:00 -05:00
Henrik Lissner
be7ac25a84
fix: file-name-concat paths instead of concat
Treat paths as paths, rather than strings. Removes the requirements that
doom-*-dir variables end in slash (though I'll continue doing so as a
convention). Also moves a lot of cache/data into the current profile's
cache/data directories. Shouldn't actually affect anything for folks not
using Doom's profile system (yet).

Fix: #8616
2025-12-30 22:59:10 -05:00
Henrik Lissner
b545ce0750
feat: show docstring for *-local-var-hooks
Displays a docstring for these variables even though they're dynamically
generated.
2025-12-30 22:50:32 -05:00
Henrik Lissner
ea225b0660
fix: *-local-vars-hook trigger fallback
If the user has `enable-local-variables` disabled *-local-vars-hook
won't trigger, this allows them to execute even in this context.
2025-12-30 22:50:32 -05:00
Henrik Lissner
46353c326a
fix(lib): desktop.el session load/save
restart-emacs--restore-frames-using-desktop had some bugs that made
doom-load-session non-functional.

Fix: #2291
2025-12-30 22:50:31 -05:00
Henrik Lissner
04b7490dec
fix(cli): install: remove --flag & redundant prompt on --env
Fix: #7259
2025-12-30 22:50:31 -05:00
richard134
21682009b1
feat(lib): add toggle scratch buffer commands
Add `doom/toggle-scratch-buffer` and `doom/toggle-project-scratch-buffer`
commands that toggle scratch buffer visibility, consistent with how
`SPC o t` toggles the terminal popup.

Also extract mode determination logic into `doom--scratch-buffer-initial-mode`
helper to ensure toggle commands respect `doom-scratch-initial-major-mode`
configuration (including mode inheritance when set to `t`).

Keybindings updated to use toggle variants:
- `SPC x` (evil) / `C-c f x` (emacs) for scratch buffer
- `SPC p x` (evil) / `C-c p x` (emacs) for project scratch buffer

Fix: #8604
2025-12-24 18:24:01 -05:00
Henrik Lissner
85183e606d
fix: auto-save prefix
Would otherwise append the full prefix onto the default-directory of the
current buffer.

Amend: 12e6027bda
2025-12-23 19:04:25 -05:00
Henrik Lissner
043000f2ca
fix: ensure auto-save file directory exists
Also don't create a tramp sub-directory, so we don't have to ensure two
directories.

Amend: 12e6027bda
2025-12-23 19:03:37 -05:00
Henrik Lissner
12e6027bda
tweak: improve recognizability of auto-save files
Make the resulting auto-save files easier to recognize when perused by
hand (in case of a fatal data loss and recovery situation), by prefixing
the hashed autosave file with the target file name.

Also updates the explanatory comment above it to better explain the
purpose of these defaults.

Also uses file-name-concat in case auto-save-list-file-prefix doesn't
end in a slash.
2025-12-23 02:51:37 -05:00
Henrik Lissner
ec0a558d18
fix: save files to profile cache/data dir
This doesn't actually change anything yet, unless you're using Doom's
profiles, but this data should be associated with and stored in the
current profile, rather than in the global store.
2025-12-23 02:51:26 -05:00
Henrik Lissner
05f2109345
docs: clarify Emacs version requirements 2025-12-18 02:45:42 -05:00
Henrik Lissner
8f31710bef
fix: remove doom-make-hashed-auto-save-file-name-a
This functionality was upstreamed to Emacs in 28, given the appropriate
`auto-save-file-name-transforms` rule whose UNIQUIFY argument names a
`secure-hash` algorithm (e.g. sha1), so we no longer need our cludge.

This also fixes an issue where TRAMP was saving its auto-save files to
the current working directory, rather than `tramp-auto-save-directory`.

Fix: doomemacs/community#53
2025-12-18 01:00:21 -05:00
Henrik Lissner
2657df70a3
nit: doom.el: revise comments 2025-12-17 02:17:33 -05:00
Henrik Lissner
2c682d60de
fix: don't save tramp auto-save files in CWD
Fix: doomemacs/community#53
Amend: 71eae252ac
2025-12-17 02:17:32 -05:00
Henrik Lissner
e69d417c5f
fix(cli): upgrade: don't 'doom sync' if aborted
There are some cases where the upgrade process will abort (due to
failure or user input), and it then runs `doom sync` anyway. Don't do
that.

Fix: #8595
2025-12-13 18:10:28 -05:00
Henrik Lissner
01b958ea35
fix(lib): print!: lost newlines in output
Some lines separated with a single newline were joined by
fill-paragraph.
2025-12-07 17:51:35 -05:00
Henrik Lissner
a3a98cee68
docs: doctor: generalize non-POSIX shell check
To detect *any* non-POSIX shell.
2025-12-07 17:51:35 -05:00
Henrik Lissner
6434987fb2
docs: doctor: add non-writable $TMPDIR check 2025-12-07 17:45:09 -05:00
Henrik Lissner
0ff018ffb4
bump: :doom
emacs-compat/compat@cccd41f549 -> emacs-compat/compat@ad6a2b82f7
emacs-straight/project@e8615777cb -> emacs-straight/project@83c91f5c84
radian-software/straight.el@e6d691d7c5 -> radian-software/straight.el@562639bd97
rainstormstudio/nerd-icons.el@4036893c42 -> rainstormstudio/nerd-icons.el@772987a28d
2025-12-01 01:14:54 -05:00
Henrik Lissner
c523ee9586
fix: set tramp backup/autosave dirs in core
In 71eae25, TRAMP settings were moved to a new :emacs tramp module,
reverting `tramp-backup-directory-alist` and `tramp-auto-save-directory`
to their Emacs defaults for anyone not using this module (which saves
those temp files in the current working directory, which is an
undesirable default), so we set them in core again.

Fix: doomemacs/community#53
Amend: 71eae252ac
2025-12-01 00:44:40 -05:00
Henrik Lissner
51ef02595a
release(modules): 26.01.0-dev
Ref: 2b39e41368
2025-12-01 00:44:40 -05:00
Henrik Lissner
d9e444bb22
fix: keep so-long out of special/temp buffers
Seems to be a new behavior on 30+ or 31+.
2025-11-04 22:18:18 -05:00
Tim Ruffing
f9664ae058 fix(cli): doom env: blacklist *_SOCKET 2025-10-16 04:19:51 -04:00
Henrik Lissner
b793fb5642
tweak: do *not* download package archives by default
From this point on, Straight will *not* download packages from tarballs
by default. There are too many edge cases for this that catch up
beginners who have BSD tar installed and get undecipherable tar errors,
and Straight offers no fallback or easy way to change what tar
executable it uses.

Packages that have already been installed won't be affected until the
next time they are updated/reinstalled.

Users can still opt back into tarballs by adding this to
$DOOMDIR/packages.el:

  (setq straight-vc-use-snapshot-installation t)

Amend: 8cdddd87d9
Fix: #8530
2025-09-26 00:15:54 -04:00
Henrik Lissner
0e784755eb
fix(lib): void-variable type
When autodef'ing anything but functions.
2025-09-25 03:29:56 -04:00
Henrik Lissner
e32f39f5e3
refactor: s/doom-projectile-cache-dir/doom-project-cache-dir/
Geenralize name of variable ahead of replacing projectile with
project.el.
2025-09-24 13:20:56 -04:00
Henrik Lissner
fbdde6b5f4
module!: add :editor whitespace
BREAKING CHANGE: Moves ws-butler, dtrt-indent, and whitespace defaults
out of Doom's core and into a new module. ws-butler is gated behind
+trim and dtrt-indent behind +guess. Users who depend on/like these
packages will need to enable the new module and their respective
flags (which is the default going forward).

This change is motivated by an ongoing effort to slim down Doom's
core (by (re)moving non-essentials from it).

This also addresses an issue where dtrt-indent would vastly increase
load times for some major-modes (e.g. elixir-mode & elm-mode, see #7537)
by restricting it to non-project files and non-read-only buffers AND
excludign those two major modes from indent guessing.

Fix: #8516
Fix: #7537
2025-09-24 02:23:30 -04:00
Henrik Lissner
7e711d53ca
tweak(cli): only display the last, failed straight command
When displaying an package error.
2025-09-22 23:30:03 -04:00
Henrik Lissner
87a7efcea6
fix(lib): package!: add :env property
Allows the association of arbitrary envvars or variables with the build
artifacts of a package. If they change, the package is rebuilt on the
next 'doom sync'. This is a temporary measure, which is why this is not
touted as a new feature. It will be replaced in v3.
2025-09-22 23:30:03 -04:00
Henrik Lissner
1bc2af6ce5
fix(lib): remove black hole insertions
These inserts were writing nowhere.
2025-09-22 23:30:03 -04:00
Henrik Lissner
093488fcb7
fix(lib): dependence on hash-table insertion order
Yes, yes. I did a stupid here. I depend on the order of a hash table,
and sure enough, that came back to bite me when that changed internally
in Emacs 29. In practice, this meant packages were getting
installed/rebuilt in reverse order, which, besides some odd output
during 'doom sync' for users on 29+, didn't pose any overt issues, but
may have caused strange, inexplicable byte-code warnings/errors.

But, rather than do the smart thing and *not* do this, I do the next
best thing: procrastinate! Because the solution is non-trivial (I don't
control the hash table in question) and this is precisely the sort of
technical debt I've fixed in v3, and I'd really, *really* rather beat my
head on that wall, rather than this one.
2025-09-22 23:30:03 -04:00
Henrik Lissner
4de162108e
feat: retry straight operations if they fail
Prior to this, we had some rudimentary retry logic for failed git clones
resulting in an empty repo, but it didn't respond to other legit
errors (like connection errors or legit remote failures). This one does,
retrying in more contexts.

Close: #8523
Co-authored-by: NightMachinery <NightMachinery@users.noreply.github.com>
2025-09-22 23:25:04 -04:00
Henrik Lissner
fb9b359dbe
bump: nerd-icons
rainstormstudio/nerd-icons.el@3774e0578b -> rainstormstudio/nerd-icons.el@4036893c42

Fix: #8517
Revert: 3436b2c3ba
2025-09-21 22:47:39 -04:00
Troy Brown
fa6a2607b7 fix(lib): doom/sandbox: tree-sitter extra load path 2025-09-21 19:43:52 -04:00