Commit Graph

746 Commits

Author SHA1 Message Date
a13719af45 refactor(lib): backport static-{if,when,unless}
And deprecate our eval-{if,when}! macros.
2025-04-15 00:39:10 -04:00
1a0fb88897 feat: doom-quit-p: use popup dialog if available
Mainly for Android UX, but also for consistency for folks who *like* GUI
dialog boxes (seek professional help).

Amend: 6a44a2ea80
2025-04-14 22:48:53 -04:00
6a44a2ea80 tweak: use GUI dialogs on android
It's better UX on touch screens, at least.
2025-04-14 15:01:03 -04:00
cbdce0dc71 refactor(cli): doctor: extract symlink check to function 2025-04-11 12:17:48 -04:00
fb0dc4cc85 refactor(lib): doom-debug-mode: make verbosity selective
Now `doom-debug-mode` manipulates `doom-log-level` if you activate it
with a prefix arg, setting it to 1 by default, reducing its verbosity
and cutting down on noise in the logs.
2025-04-11 12:17:44 -04:00
9a525ea030 bump: :doom
bbatsov/projectile@55db082cdf -> bbatsov/projectile@4dd84b02c9
emacs-compat/compat@c89bba6524 -> emacs-compat/compat@7179960b7c
emacs-straight/project@d193442fca -> emacs-straight/project@369ac661c8
jscheid/dtrt-indent@22498ca24a -> jscheid/dtrt-indent@015b26d6d6
radian-software/straight.el@483b205efb -> radian-software/straight.el@d157afbec4
rainstormstudio/nerd-icons.el@6612cc6537 -> rainstormstudio/nerd-icons.el@14f7278dd7
2025-04-09 17:35:04 -04:00
5020d592da fix: tooltip-resize-echo-area = t
Since we disable tooltip-mode, the echo-area should expand to display
multi-line output, to be consistent with our default for
resize-mini-windows. This also fixes the truncation of annotations in
PDF buffers (#1615).

Fix: #1615
2025-04-05 02:14:54 -04:00
5aca456258 nit: recentf: reformat & revise comments 2025-04-04 05:11:08 -04:00
eb19afa8c3 refactor: remove doom--recentf-file-truename-fn
For the sake of reducing complexity, I stop Doom from stripping symlinks
or the "/sudo:" prefix from tramp paths in recentf's file list. It's
extra work that's not strictly necessary or unanimously desired.

Also removes the tidbit about `recentf-show-abbreviated`; the variable
was removed just prior to 29's release so it is no longer an option.
2025-04-04 05:09:54 -04:00
5fae69b7bf docs: docstring & comment revisions
For `undefadvice!`, `doom-load-theme-hook`, and the `ws-butler` package.
2025-04-02 19:04:11 -04:00
625b793218 fix: over-aggressive doom--run-switch-frame-hooks-fn
Due to a typo in the hook's self-removal, causing this function to
trigger many times per second. It isn't doing much thanks to the
debouncing, but was still legitimately triggering doom-switch-frame-hook
every ~2 seconds despite no change in frame focus.

Also removes the ineffectual inhibit-redisplay let-bind.

Amend: 653b465c74
2025-04-02 19:03:51 -04:00
98273b639b fix: recursive redisplay error from doom-switch-frame-hook
If a function on doom-switch-frame-hook triggered a redisplay, it could
cause infinite recursion.

Amend: 653b465c74
2025-04-02 06:36:27 -04:00
653b465c74 refactor: doom-switch-frame-hook
Redesign this hook around `after-focus-change-function`, along with
debouncing, to prevent it from triggering too aggressively (due to
misbehaving desktop environments, elisp packages that tinker with frame
focus, or accidental (and rapid) focus changes by the user).

`doom-switch-{window,buffer}-hook` have also been simplified, and
`doom-switch-window-hook` now will not trigger when focusing another
frame (only when you switch windows *within* any one frame).

This also fixes diff-hl not updating when refocusing an Emacs frame.
2025-04-02 03:17:29 -04:00
6a1ab50e02 release(modules): 25.05.0-dev
Ref: 2b39e41368
2025-04-01 03:44:01 -04:00
084a0f42a3 bump: ws-butler
lewang/ws-butler@d3927f6131 -> emacsmirror/nongnu_elpa@9ee5a7657a

ws-butler was moved to a branch of the emacsmirror/nongnu_elpa repo, but
Straight already uses this repo for recipe lookups and struggles to host
multiple packages that live in the same repo but different branches. To
get around this, Straight must be forced to clone it twice with an
explicit recipe.

This needs to be revisited, because this will likely happen again in the
future...

Fix: #8333
Ref: emacsmirror/nongnu_elpa@b890949b1b
2025-03-31 09:31:07 -04:00
65d43ae472 fix: init known projects before projectile-ensure-project
Otherwise, the known projects list could be empty the first time the
project switcher prompt is shown via any command that isn't explicitly
`projectile-switch-project` (like invoking `projectile-find-file` from a
non-project buffer).

Ref: #8330
2025-03-30 16:10:23 -04:00
64c71949f8 fix: projectile-find-file: stringp error in no-project buffers
A regression introduced by our centralized cache hack in c3a9388.

Amend: c3a9388452
Close: #8330
2025-03-30 16:10:22 -04:00
1ac579e08a fix: clipboard issues on Windows + WSL
Ref: 5b103261f4
2025-03-26 07:55:36 -04:00
5b103261f4 feat: add wsl detection
Can now be detected with (featurep :system 'wsl).
2025-03-26 07:55:16 -04:00
8a2c7fe3d4 fix: malformed projectile-known-projects-file
Without the trailing slash, the known projects file ended up being
{doom-cache-dir}/projectileprojects.eld when it should be
{doom-cache-dir}/projectile/projects.eld.

Amend: ad7d9fa657
2025-03-26 07:20:01 -04:00
ad7d9fa657 refactor: projectile init
Reassessing our startup hacks for projectile, and removing ones we no
longer need.
2025-03-25 15:20:59 -04:00
c3a9388452 fix: projectile: centralize per-project cache files
Projectile was bumped in #8317, which introduced per-project file
caches, but they were written to the root of the project. Rather than
litter projects with these dotfiles, I advise projectile to write them
to a single place (under `doom-profile-cache-dir`).

Also moves the known-projectiles cache file to the same directory.

Amend: #8317
2025-03-25 15:20:59 -04:00
dac6e05b87 refactor: deprecate appendq!, prependq!, & delq! macros
In the interest of slimming down Doom's core (as we near v3), I've
deprecated these macros. They doesn't really need to exist. Sure, the
alternatives aren't as ergonomic or elegant, but they're good enough
that we don't need these trivial wrappers. Their local uses have been
refactored out as well.
2025-03-25 14:16:56 -04:00
0e5768064c fix: TAB & RET keybinds in daemon sessions
`input-decode-map`s bindings are terminal-local and are memoized at an
indeterminable time by `read-key-sequence`, rendering that
`display-graphic-p` check stale by the first client frame and these
TAB/RET fixes unavailable to daemon users.

Amend: 538ddf5e66
Fix: #8269
Close: #8303
2025-03-24 00:57:08 -04:00
1d18ac4e41 bump: :doom
Fuco1/smartparens@c7519a1b69 -> Fuco1/smartparens@b0d935c118
emacs-compat/compat@9a234d0d28 -> emacs-compat/compat@c89bba6524
emacs-straight/project@2a3fe4c7db -> emacs-straight/project@d193442fca
jscheid/dtrt-indent@a8aa356684 -> jscheid/dtrt-indent@22498ca24a
lewang/ws-butler@e3a38d93e0 -> lewang/ws-butler@d3927f6131
radian-software/straight.el@33fb469506 -> radian-software/straight.el@483b205efb
rainstormstudio/nerd-icons.el@cc6c468303 -> rainstormstudio/nerd-icons.el@6612cc6537
2025-03-23 21:28:08 -04:00
32368d0e94 bump: projectile
bbatsov/projectile@0a15d81be9 -> bbatsov/projectile@55db082cdf

Fix: #8288
2025-03-21 22:29:13 -04:00
466490c252 release(modules): 25.04.0-dev
Ref: 2b39e41368
2025-03-15 00:39:36 -04:00
49d8cbd8bc fix: use mirror for nongnu-elpa
savannah goes down a lot, causing fatal errors during package management.

Fix: #7171
Ref: #8271
2025-03-15 00:37:59 -04:00
71d9ceead4 fix: ensure empty DEBUG envvar is ignored
Also ensures the envvar is removed if it's empty, and doesn't permeate
an empty DEBUG when executing doom/reload.

Amend: 8c7711920e
Close: #8310
Co-authored-by: AjaiKN <AjaiKN@users.noreply.github.com>
2025-03-13 01:07:52 -04:00
8846d15181 perf(lib): setq-hook!: don't load pp at startup 2025-03-04 14:13:38 -05:00
56ce6cc284 fix(lib): modulep!: returning t for disabled modules
If passed negated flags.

Fix: #8289
2025-02-25 22:06:08 -05:00
6e6eaa1189 docs: bump latest supported Emacs version to 30.1
30.1 was released yesterday.

Fix: #8283
2025-02-24 23:40:00 -05:00
b55d988491 release(modules): 25.03.0-dev
Ref: 2b39e41368
2025-02-21 18:35:36 -05:00
38868c79f5 fix: ignore doom-theme if load-theme is used
Users shouldn't be using both, and `load-theme` should be higher
priority (because it's easier to do by accident).

Fix: #8257
Amend: #8119
Amend: 50b9afbb2d
2025-02-21 15:17:42 -05:00
2bceb217d9 fix(cli): some package files not being byte-compiled (2nd take)
This reverts a workaround for straight that is no longer necessary
because it has been applied upstream and we've bumped the package since.

For some reason I don't understand, this reproducibly fixes a
reoccurrence of the original problem for me: Before this commit, some
files of the citar package were not byte-compiled. After this commit,
the problem is gone.

This effectively reverts 54a084fed7, though it's not a reverting
commit in strict sense because the code has been moved to a different
file.

Revert: 54a084fed7
Ref: d80c5e5115
Ref: #7707
Ref: radian-software/straight.el#1132
Ref: https://discourse.doomemacs.org/t/is-it-expected-that-doom-sync-does-not-byte-compile-native-compile-some-files/4946
2025-02-21 15:05:50 -05:00
373b7aa976 fix: rename {b,e}ol functions to pos-{b,e}ol
These two functions were introduced in emacs-mirror/emacs@f117b5df4d
as `bol` and `eol`, but were renamed to `pos-bol` and `pos-eol` in
emacs-mirror/emacs@2614e53216.

Close: #8242
2025-01-14 13:52:41 -05:00
93ef81bfd4 fix: don't prompt to save non-file buffers
Fix: #8241
2025-01-14 02:47:50 -05:00
311ad23fd4 fix: void-function (setf plist-get) error
Only affected users on Emacs 27, before a generalized setter was defined
for `plist-get`.

Amend: 50b9afbb2d
2025-01-13 12:36:05 -05:00
75a995f66f docs: detect nushell on windows too
Amend: 1a86360560
2025-01-10 18:41:25 -05:00
1a86360560 docs: warn users about nushell issues
Like Fish, using nushell as your shell-file-name can cause downstream
issues wherever Emacs (or Emacs packages) spawn child processes via a
shell command and rely on its output. For example: diff-hl users may not
see a git gutter if nushell (or fish) is their $SHELL.
2025-01-10 18:13:24 -05:00
b31eef9336 revert: fix(lib): doom-copy: copy first level of records
Shallow should mean shallow.

Revert: 82cfe98ccc
2025-01-09 14:33:25 -05:00
9b4f7ead88 fix(lib): doom-profiles-bootloadable-p: respect XDG_CONFIG_HOME 2025-01-09 14:32:51 -05:00
eccd72922b fix(cli): show "restart Emacs" advice only if Emacs is running
Also fixes the case where it'll appear, unconditionally on 'doom
install', where the advice doesn't make sense.
2025-01-09 14:31:26 -05:00
295cee7c78 refactor(cli): s/doom-cli-sync-info-file/doom-sync-info-file
To conform to new naming conventions.
2025-01-09 14:28:54 -05:00
2b4f762b1e release(modules): 25.02.0-dev
Ref: 2b39e41368
2025-01-09 01:07:20 -05:00
1fc41d719c fix: project-current-directory-override takes a directory
Not a `t`. [It overrides `default-directory`](6c1c3120b9/lisp/progmodes/project.el (L196-L198)).
2025-01-09 01:06:20 -05:00
5aed9baa29 fix: auto-mode-alist: make /*rc rule low-priority
The broad /*rc rule, which is intended as a fallback, should be added to
the end of auto-mode-alist, not the beginning. Otherwise, for example,
it overrides the rule for .zshrc files.

Amend: cc18218889
2025-01-09 01:03:55 -05:00
a830b0e41a fix: doom-compat: end-of-file error
Fix: #8233
Fix: #8232
Amend: d6037a24d4
2025-01-08 20:04:47 -05:00
eaf26b83ad fix: file-missing doom-compat error
Fix: #8232
Amend: d6037a24d4
2025-01-08 19:55:47 -05:00
d6037a24d4 refactor: load doom-compat.el from doom.el 2025-01-08 19:33:38 -05:00