783 Commits

Author SHA1 Message Date
ed9190ef00 fix(cli): infinite loop linting long lines in commits
Fix: #8425
2025-07-13 22:28:34 +02:00
dd89efdb42 tweak(lib): doom-debug-variables: add epg-debug 2025-07-13 22:28:34 +02:00
4ae8259946 release(modules): 25.08.0-dev
Ref: 2b39e41368
2025-07-13 22:28:34 +02:00
47e52ab86f feat(:term): move cursor to prompt on self-insert-command
It's better UX than spewing unhelpful read-only errors.
2025-07-13 21:13:00 +02:00
5a690fc54f feat(:term): confine undo to comint/eshell prompts
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
2025-07-13 21:13:00 +02:00
1b125ddf7b feat(:term): make previous command output read-only
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
2025-07-13 21:12:57 +02:00
7d69c5f7df fix(lib): void-function editorconfig--default-indent-size-function
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
2025-07-01 14:22:10 +02:00
1adc318cac dev: replace .doomrc w/ .doom.el
Also replaces the project's .doomrc file with a .doom (which isn't used
or recognized just yet, but will be later).
2025-06-30 15:23:27 +02:00
87b616e5d8 refactor!: remove rainbow-delimiters
BREAKING CHANGE: parentheses will no longer be colored by depth. No
substitute is provided because it's trivial for users to install
themselves.

Ref: https://github.com/orgs/doomemacs/projects/5/views/1?pane=issue&itemId=117610828
2025-06-29 18:53:40 +02:00
5cb34fa151 refactor!: remove highlight-numbers
BREAKING CHANGE: Numerics will no longer be syntax highlighted in major
modes that don't already have their own (or provided by tree-sitter). No
substitute will be provided because it's trivial for the user to install
themselves.

Ref: https://github.com/orgs/doomemacs/projects/5/views/1?pane=issue&itemId=117610783
2025-06-29 18:53:40 +02:00
3d75d8e205 fix(cli): doom emacs: command not found
Being the flawless professional that I am, I forgot to include the
source code for `doom emacs` in 7f6a2d2.

Fix: #8429
Amend: 7f6a2d284e
2025-06-26 22:54:37 +02:00
c46583e3ec refactor(cli): doom version: add -v/--verbose option
And make its default output only print `doom-version` to stdout.
2025-06-25 17:36:59 +02:00
7f6a2d284e refactor(cli): doom run: rename to 'doom emacs'
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.
2025-06-25 17:36:59 +02:00
589fa73435 fix(lib): doom/reload: on Windows
- 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
2025-06-25 17:36:59 +02:00
0bedac650a bump: :doom
Fuco1/smartparens@b0d935c118 -> Fuco1/smartparens@b629b4e893
bbatsov/projectile@4dd84b02c9 -> bbatsov/projectile@0da59734fb
emacs-compat/compat@7179960b7c -> emacs-compat/compat@2577cc74d9
emacs-straight/project@27c6b04914 -> emacs-straight/project@de0deb8dbf
noctuid/general.el@826bf2b97a -> noctuid/general.el@74d4541781
radian-software/straight.el@d157afbec4 -> radian-software/straight.el@4128d42399
rainstormstudio/nerd-icons.el@14f7278dd7 -> rainstormstudio/nerd-icons.el@d972dee349
2025-06-12 23:26:06 +02:00
18bb2da849 fix(lib): doom-project-find-file: allow arbitrary roots
Allow doom-project-find-file to search file hierarchies from arbitrary
starting points (otherwise, project.el will resolve to the nearest
project root).
2025-06-10 21:29:00 +02:00
6ce4ba3d18 release(modules): 25.07.0-dev
Ref: 2b39e41368
2025-06-02 14:19:26 +02:00
c22bb498e5 fix(lib): doom-print-minimum-level: type error if level is undefined 2025-05-22 16:33:33 +02:00
5d13d6ce99 fix(lib): doom-file-cookie: what argument-less cookies return
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.
2025-05-22 16:33:22 +02:00
3a9d6071f3 fix: defining as dynamic an already lexical var
When invoking straight's API directly.

Fix: #8251
2025-05-15 14:21:00 +02:00
3c8240dfaa fix(cli): error if $EMACSDIR/.local/etc/eln missing 2025-05-14 23:43:58 +02:00
510347977e docs(lib): revise various docstrings 2025-05-09 01:14:16 -04:00
e6ee332573 fix(lib): autoload doom/describe-char
Amend: 303dd28db8
2025-05-05 02:45:45 -04:00
7088257f2e bump: *
Alexander-Miller/treemacs@96a808f067 -> Alexander-Miller/treemacs@820b09db10
FStarLang/fstar-mode.el@36ffb46259 -> FStarLang/fstar-mode.el@3bbfe93abd
JuliaEditorSupport/julia-emacs@0f4d74f904 -> JuliaEditorSupport/julia-emacs@5c940c4ba3
ProofGeneral/PG@85cde55a86 -> ProofGeneral/PG@af2e7b9a4e
Silex/docker.el@3bea08f1d2 -> Silex/docker.el@464105ed8b
Wilfred/helpful@6a4d5e0760 -> Wilfred/helpful@03756fa6ad
abo-abo/swiper@e33b028ed4 -> abo-abo/swiper@2529a23f9f
agda/agda@49a12eab7f -> agda/agda@900bdaa335
alexluigit/dirvish@ecb7c42e20 -> alexluigit/dirvish@e8ec5765da
ardumont/markdown-toc@d2fb4cbd95 -> ardumont/markdown-toc@1b0c5ae7f3
bastibe/org-journal@cf72173233 -> bastibe/org-journal@e581bf5530
clojure-emacs/cider@fdfa7c2200 -> clojure-emacs/cider@12f10a6f4b
clojure-emacs/clojure-mode@eabe29b076 -> clojure-emacs/clojure-mode@b766094aea
company-mode/company-mode@8d599ebc8a -> company-mode/company-mode@41f07c7d40
creichert/ido-vertical-mode.el@b1659e967d -> creichert/ido-vertical-mode.el@35c521789b
dgutov/diff-hl@7da881a957 -> dgutov/diff-hl@aa667ac58a
dimitri/switch-window@61e425e703 -> dimitri/switch-window@8f771b571a
doomelpa/code-review@eeffdd9e20 -> doomelpa/code-review@fba8fe3343
editorconfig/editorconfig-emacs@1a9942746c -> editorconfig/editorconfig-emacs@d2beb3ec2e
ema2159/centaur-tabs@7704f2017c -> ema2159/centaur-tabs@a790dc8fb6
emacs-circe/circe@d0e531bd2a -> emacs-circe/circe@e5e64d549f
emacs-citar/citar-org-roam@ff38add0aa -> emacs-citar/citar-org-roam@9750cfbbf3
emacs-ess/ESS@56f355acbd -> emacs-ess/ESS@d19efaae12
emacs-helm/helm-org@22d60952f8 -> emacs-helm/helm-org@4744ca7f8b
emacs-helm/helm@f948dc4464 -> emacs-helm/helm@5a222a8a6b
emacs-lsp/dap-mode@56e92dd86b -> emacs-lsp/dap-mode@b977566657
emacs-lsp/emacs-ccls@28c7930c89 -> emacs-lsp/emacs-ccls@5636ee6c50
emacs-lsp/helm-lsp@cf4ea6fb42 -> emacs-lsp/helm-lsp@54926afd10
emacs-lsp/lsp-dart@2170823139 -> emacs-lsp/lsp-dart@34e2a1191f
emacs-lsp/lsp-haskell@cd0f5d251c -> emacs-lsp/lsp-haskell@081d5115ce
emacs-lsp/lsp-ivy@bdc730a209 -> emacs-lsp/lsp-ivy@3ee14a24bb
emacs-lsp/lsp-java@6cfff8761e -> emacs-lsp/lsp-java@21c89243ad
emacs-lsp/lsp-metals@345b4fa80e -> emacs-lsp/lsp-metals@e1d9d04f3b
emacs-lsp/lsp-mode@7c0df125c1 -> emacs-lsp/lsp-mode@54251da4ff
emacs-lsp/lsp-pyright@b4cee81af4 -> emacs-lsp/lsp-pyright@73377169be
emacs-lsp/lsp-sourcekit@3bd9750e7e -> emacs-lsp/lsp-sourcekit@1fb230109e
emacs-lsp/lsp-treemacs@312dee2b3a -> emacs-lsp/lsp-treemacs@3e5550f278
emacs-lsp/lsp-ui@09d4080642 -> emacs-lsp/lsp-ui@a0dde8b52b
emacs-php/composer.el@6c7e19256f -> emacs-php/composer.el@eba6b953a4
emacs-php/php-mode@5b6cc1c068 -> emacs-php/php-mode@462b62248f
emacs-php/psysh.el@ae15a36301 -> emacs-php/psysh.el@223bf55975
emacs-rustic/rustic@22a5ef8bfd -> emacs-rustic/rustic@29f912c750
emacs-straight/auctex@6fb366064c -> emacs-straight/auctex@f58a2b972b
emacs-straight/dape@c7a1f1abdb -> emacs-straight/dape@588a907c87
emacs-straight/eglot@6a9e0c76b9 -> emacs-straight/eglot@928c216af5
emacs-straight/org-mode@74dde3abae -> emacs-straight/org-mode@79781bac69
emacs-straight/project@369ac661c8 -> emacs-straight/project@27c6b04914
emacs-straight/sml-mode@021233f60a -> emacs-straight/sml-mode@c33659fd9b
emacs-straight/use-package@d79bac4574 -> emacs-straight/use-package@bbfe01bdf1
emacs-straight/vundo@c32481ab48 -> emacs-straight/vundo@5a666b34e4
emacs-tree-sitter/elisp-tree-sitter@8516c9977e -> emacs-tree-sitter/elisp-tree-sitter@12f92ef399
emacs-tree-sitter/tree-sitter-langs@2ff446b4b8 -> emacs-tree-sitter/tree-sitter-langs@4eb4989d1a
emacsmirror/org-contrib@8d14a600a2 -> emacsmirror/org-contrib@f1f6b6ec81
emacsorphanage/dart-mode@6229941ec5 -> emacsorphanage/dart-mode@f82ff05230
emacsorphanage/ox-pandoc@34e6ea97b5 -> emacsorphanage/ox-pandoc@5766c70b6d
emacsorphanage/quickrun@4b6df453f8 -> emacsorphanage/quickrun@a5c9a5e8c6
ericdallo/hover.el@4ca0638a14 -> ericdallo/hover.el@1b380fa395
erlang/otp@740af6bae5 -> erlang/otp@b9d3ec017d
flycheck/flycheck@b9db1379dc -> flycheck/flycheck@16b536b031
fsharp/emacs-fsharp-mode@bf7a11e1ba -> fsharp/emacs-fsharp-mode@8d08f05788
godotengine/emacs-gdscript-mode@3f3739dd88 -> godotengine/emacs-gdscript-mode@5136be407a
greghendershott/racket-mode@88d82e249e -> greghendershott/racket-mode@c4cc7c160b
hakimel/reveal.js@dfc5690c6d -> hakimel/reveal.js@eb95b14531
haskell/haskell-mode@be2639592f -> haskell/haskell-mode@e9c3567393
https://git.notmuchmail.org/git/notmuch@dfc800c26e7b -> https://git.notmuchmail.org/git/notmuch@d8ebc9cf80b6
https://git.savannah.gnu.org/git/emms.git@8713a0ee985c -> https://git.savannah.gnu.org/git/emms.git@abb4f614dae6
idris-hackers/idris-mode@09de86a8f0 -> idris-hackers/idris-mode@ccf32ed0b5
jcollard/elm-mode@699841865e -> jcollard/elm-mode@90b72cd2c9
jdtsmith/indent-bars@fa293f98ab -> jdtsmith/indent-bars@ea74161b46
jdtsmith/ultra-scroll@b72c507f67 -> jdtsmith/ultra-scroll@f2e4fba601
jimhourihan/glsl-mode@c5f2c2e7ed -> jimhourihan/glsl-mode@86e6bb6cf2
joaotavora/sly@c48defcf58 -> joaotavora/sly@ce17a568ef
jrblevin/markdown-mode@d2d960bec1 -> jrblevin/markdown-mode@90ad4af79a
jschaf/powershell.el@38727f1cda -> jschaf/powershell.el@9efa1b4d0a
magit/magit@bf58615a03 -> magit/magit@531e7ca619
minad/cape@f72ebcaeff -> minad/cape@5546a2db8e
minad/consult-flycheck@3bc2141daf -> minad/consult-flycheck@77d3e790a3
minad/consult@f94d557807 -> minad/consult@ee64a2a299
minad/corfu@061d926d0f -> minad/corfu@2e05fe8244
minad/goggles@d71e85ff8d -> minad/goggles@6141d31c51
minad/marginalia@c51fd9e4d4 -> minad/marginalia@2ff4d690f7
minad/org-modern@3cc432dc99 -> minad/org-modern@6158d3d007
minad/vertico@e0bb699ebf -> minad/vertico@304be874be
mohkale/consult-yasnippet@834d39acfe -> mohkale/consult-yasnippet@a3482dfbdc
msnoigrs/ox-rst@b4ba5c7e95 -> msnoigrs/ox-rst@b73eff187e
oantolin/embark@d5df0eff18 -> oantolin/embark@923d0ec52e
ocaml/dune@a46193e167 -> ocaml/dune@422986440e
ocaml/merlin@2eeb63d002 -> ocaml/merlin@e4c66857ad
oer/org-re-reveal@53e9be7d89 -> oer/org-re-reveal@89ed240450
polymode/poly-R@8024e852cf -> polymode/poly-R@fee0b6e999
purcell/package-lint@43012b41ac -> purcell/package-lint@2dc48e5fb9
purescript-emacs/purescript-mode@a3d6ca4ba5 -> purescript-emacs/purescript-mode@8c4736759a
pythonic-emacs/pyenv-mode@7faed57eb7 -> pythonic-emacs/pyenv-mode@ba1a8c7bd7
rust-lang/rust-mode@efd830806c -> rust-lang/rust-mode@25d91cff28
seagle0128/doom-modeline@1708db2d35 -> seagle0128/doom-modeline@a85cb28da8
seagle0128/grip-mode@e90e3b47d8 -> seagle0128/grip-mode@96a927dce6
seagle0128/nerd-icons-ivy-rich@5006f91b49 -> seagle0128/nerd-icons-ivy-rich@83c7b60595
sebasmonia/sharper@496e90e337 -> sebasmonia/sharper@5049795848
swift-emacs/swift-mode@2c0b2b72dc -> swift-emacs/swift-mode@e30b9d46e0
szermatt/emacs-bash-completion@a4c8fbc902 -> szermatt/emacs-bash-completion@d0637428fd
technomancy/fennel-mode@811f39de12 -> technomancy/fennel-mode@df8e83d6e2
wanderlust/wanderlust@6a0605415d -> wanderlust/wanderlust@d6dcbad228
weijiangan/flycheck-golangci-lint@424ba1b3a1 -> weijiangan/flycheck-golangci-lint@14bf143ea7
ziglang/zig-mode@4ad4edf759 -> ziglang/zig-mode@c46d024733
2025-05-02 14:58:40 -04:00
f00dd3d466 fix(lib): setq-hook!: remove docstrings from defuns
They aren't useful and cause byte-compiler warnings.
2025-05-02 14:56:11 -04:00
9c2b2473be release(modules): 25.06.0-dev
Ref: 2b39e41368
2025-05-01 15:03:06 -04:00
303dd28db8 feat(lib): introduce doom/describe-char
A version of describe-char that, when given a prefix arg, will prompt
the user to click where to execute the command (so you can read
text-properties/overlay information for otherwise unselectable text, in
the minibuffer or special UIs).
2025-04-24 04:28:49 -04:00
1681bfbaf0 refactor: move doom-highlight-non-default-indentation-h out of core
This functionality falls under the umbrella of "better defaults" rather
than essential defaults, and so belongs in :config default.

Whats more, the naming convention (+emacs-...) was intentional, because
this function (and the :config default module) will be moved to :doom
emacs in the near future.

This also indirectly fixes #8373.

Fix: #8373
2025-04-23 20:22:25 -04:00
62f1df4218 fix: respect auto-revert-remote-files
Don't auto-revert remote buffers if auto-revert-remote-files is nil (the
default).
2025-04-23 04:02:51 -04:00
009a285c0a fix: doom-quit-p when use-dialog-box
I don't know what I was thinking, but I need more sleep.

Amend: 1a0fb88897
2025-04-15 19:08:45 -04:00
d8b36d8b17 fix: use-dialog-box only on android
Accidentally negated the check in 6a44a2e.

Amend: 6a44a2ea80
2025-04-15 19:03:31 -04:00
20c80c461e fix: void-function use-dialog-box-p
This function doesn't exist before Emacs 29, and also isn't meant to be
used in a global context.

Amend: 6a44a2ea80
2025-04-15 17:21:14 -04:00
46647dada6 fix(lib): load doom-compat unconditionally
For users on builds of 31 that predate things Doom backports.

Fix: #8359
2025-04-15 04:18:25 -04:00
5f6df26d5c fix(lib): load doom-compat in 30.x
So users on 30.x can enjoy the backports from 31.x.

Fix: #8359
2025-04-15 01:26:23 -04:00
b2ce21068f fix(lib): void-function static-unless error
Users may be on a build of Emacs 31 where `static-when` exists without
`static-unless`.

Fix: #8359
Amend: a13719af45
2025-04-15 01:25:17 -04:00
def4579a9f fix: silence 'missing lexical-binding cookie' warnings
As of recent commits of Emacs 31, elisp files missing a
"lexical-binding: t" cookie will emit this warning:

  Warning (files): Missing ‘lexical-binding’ cookie in "path/to/elisp/file".
  You can add one with ‘M-x elisp-enable-lexical-binding RET’.
  See ‘(elisp)Selecting Lisp Dialect’ and ‘(elisp)Converting to Lexical Binding’
  for more information.

You can look forward to many of these if you use any old and
unmaintained elisp packages, or if you have elisp shell scripts with
shebang lines (which make this warning unavoidable).

This commit silences these warnings because it's poorly implemented.
It's obnoxious to users and they aren't the ones that should be told
this. It ought to be emitted during byte-compilation or by linters (e.g.
`M-x checkdoc`) at the folks actually in a position to do something
about the warning (i.e. the developers).

Ref: https://lists.gnu.org/r/emacs-devel/2024-05/msg00283.html
2025-04-15 00:39:10 -04:00
976576853e nit(lib): doom-compat: make version comments consistent 2025-04-15 00:39:10 -04:00
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