Commit graph

1015 commits

Author SHA1 Message Date
Henrik Lissner
6c0881c684
nit: revise TODO/FIXME/HACK/REVIEW/etc in comments
Some were outdated, some were incorrectly labeled, others were already
completed, some were missing... Gotta fix them all.

Also, in :ui hl-todo, there are comments that describe how Doom uses
each of these annotations; those have been updated.
2026-03-02 19:45:09 -05:00
Henrik Lissner
8584bc254e
feat(llm): add open-in-same-window command/keybind 2026-02-25 23:19:20 -05:00
Henrik Lissner
fb8b97b7fd
fix(default): void-variable evil-window-map error
This error is almost always a sign that something else is wrong with the
user's config/setup (e.g. the order of their modules in their `doom!`
blocks), and "fixing" it like this will no doubt only mask the real
cause, but users report this so often that this is may be a can that's
worth kicking down the road.

Fix: #8496
2026-02-22 18:46:19 -05:00
Henrik Lissner
1240162d7a
refactor(lib): remove doom/restart-and-restore
Emacs 29 introduced a `restart-emacs` command that is more reliable, but
it cannot restart Emacs with arbitrary arguments, which the old
`restart-emacs` library could. Without this capability,
`doom/restart-and-restore` is not trivially (or elegantly) possible, and
I can't justify a whole extra dependency just to support that,
especially in my pursuit to slim down Doom's core.

This commit also removes the doom/upgrade command, which is an awkward
and fickle command to support across platforms (too many edge cases).
2026-02-20 20:18:50 -05:00
Henrik Lissner
7d0f2032ea
tweak(default): use electric-indent instead of remapping RET
This is experimental. electric-indent was initially avoided to sidestep
breaking indentation in whitespace-significant major modes with naive
indent logic. Switching to electric-indent will resurface that issue,
but since electric-indent-mode is on by default, I'll leave that to the
modes and modules to deal with on a per-mode basis.
2026-01-18 03:12:59 -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
fanshi1028
70a018958a
fix(default): +default/diagnostics: show project-wide w/ eglot+vertico 2025-12-01 00:41:09 -05:00
Henrik Lissner
ead254e152
bump: :config
emacs-straight/use-package@29552cf3af -> emacs-straight/use-package@c80c883dea
noctuid/link-hint.el@826993a0ab -> noctuid/link-hint.el@8fda5dcb9c
2025-11-04 22:18:26 -05:00
Henrik Lissner
7b75983b30
fix(default): kill-region on cmd-x if region is active
For non-evil users, primarily.

Fix: #8558
2025-11-04 21:49:25 -05:00
gnuemacscoin
347dd9f57b
fix(default): don't bind flycheck when flymake is active 2025-11-04 21:47:40 -05:00
Henrik Lissner
722a8d3c7a
refactor(default): move whitespace & tramp config
- tramp-default-method is already set in :emacs tramp.
- Moves the whitespace config to the new whitespace module.

Amend: fbdde6b5f4
Amend: 71eae252ac
2025-09-25 19:05:24 -04:00
Henrik Lissner
fffefc3118
fix(format): consolidate save-without-formatting keybind
It's too much hassle to claim either 'SPC b s' or 'SPC f s' for the
saving-without-formatting command (and to justify why one over the
other), so porque no los dos? Plus, I now leave 'C-x C-s' (save-buffer)
alone; principle of least surprise and what not.

Fix: #8460
Ref: https://xkcd.com/1172
2025-09-20 14:22:15 -04:00
Henrik Lissner
b43d748d67
fix(default): corfu-indexed-mode & RET interop
This whole RET/TAB/DEL system needs rethinking, but it'll have to wait.

Fix: #8120
2025-09-20 13:34:48 -04:00
Henrik Lissner
d92883bff8
refactor!(org): remove org-roam v1
BREAKING CHANGE: This finally removes org-roam v1, which has been
deprecated for nearly 5 years (since 5ef733b). Most users should already
be on it. v2 has a migration wizard for anyone still on v1, which will
kick in if it detects a v1 roam db.
2025-09-20 02:51:30 -04:00
Henrik Lissner
4159a4f7da
refactor(default): remove defunct taskrunner keybinds
The taskrunner module was removed in 27539e2.

Amend: 27539e225e
2025-09-17 16:18:50 -04:00
Henrik Lissner
46c2058141
fix(default): void-variable python-mode-map
Seems `smartparens-python` no longer eagerly loads the `python` package.
2025-09-03 18:06:52 +02:00
Henrik Lissner
45546ea25d
fix(default): 'wrong-type-argument: consp' in haskell-mode
Seems `sp-local-pair`s `:actions` property no longer takes `:rem`.
2025-09-03 18:06:01 +02:00
Henrik Lissner
b4b661ca20
fix(default): enable smartparens config for ts-modes
Fix: #8486
2025-09-02 11:41:49 +02:00
Henrik Lissner
9a38ee2428
fix(format): prefix arg inhibiting format-on-save (part 2)
Experimenting with a new approach to this issue, in an effort to avoid
advice on such low level commands ({basic-,}save-buffer). I don't like
that we're still stacking new behavior on top of their pre-existing
prefix arg behavior (manipulating backup-on-save functionality), but
maybe it's not useful enough to worry about?

Fix: #8420
Amend: f0c8290ae2
2025-08-11 01:22:40 +02:00
Henrik Lissner
957b1266bf
refactor(minimap): replace minimap.el w/ demap.el
The former is unmaintained.

Fix: #8430
Ref: https://github.com/orgs/doomemacs/projects/5/views/1?pane=issue&itemId=2922285
2025-06-29 17:35:56 +02:00
Henrik Lissner
5a69637072
tweak(default): font resizing keybinds
Conform keybinds to MacOS conventions for font resizing commands.

Also:
- Moves numbered workspace keybinds out of +evil-bindings.el so non-evil
  users can enjoy them.
- Rebinds s-0 from +workspace/switch-to-final to doom/reset-font-size.

Fix: #8379
Amend: b70d137f1a
2025-05-11 00:50:33 -04:00
Henrik Lissner
61198800aa
feat(llm): add <leader> o l prefix for non-evil users
Ref: #7231
Amend: 6898a9c267
2025-05-07 21:22:08 -04:00
Henrik Lissner
d99742ff92
tweak(default): move macos send-to-*/open-in-* app keybinds
In 9f16efb these keys were moved from evil users, this commit mirrors
the changes for non-evil users.

I.e. Moves 'C-c o {u,U,l,L,i,I}' to 'C-c o s {u,U,l,L,i,I}'.

Amend: 9f16efbb4e
2025-05-07 21:20:46 -04:00
Henrik Lissner
6898a9c267
module: add :tools llm
Clippy is making a comeback.

Close: #7231
2025-05-06 22:30:49 -04:00
Henrik Lissner
9f16efbb4e
tweak(default): move macos send-to-*/open-in-* app keybinds
Moves 'SPC o {u,U,l,L,i,I}' to 'SPC o s {u,U,l,L,i,I}' to make headway
for other 'SPC o' keybinds.
2025-05-06 15:39:42 -04:00
Henrik Lissner
b70d137f1a
tweak(default): font-size adjustment keybinds on macos
On MacOS, the convention for font size adjustments are s-- and s-+. This
conforms Doom to that convention (only on MacOS), and moves the
reset-font-size command to C-s-= (because s-= is too easy to fat-finger
while adjusting font-size incrementally).

Fix: #8379
2025-05-06 01:39:11 -04:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
bff2ccd974
refactor: remove vestigial hydra configs
Hydra support was removed in b08c2c7.

Amend: bc948c38c2
Amend: b08c2c745f
2025-04-23 04:02:51 -04:00
Henrik Lissner
b4bd368485
refactor!(debugger): replace realgud with dape
BREAKING CHANGE: Anyone used to realgud will find it missing as of this
commit. It's been replaced with Dape (see
https://github.com/svaante/dape).

This change was made because realgud's implementation was archaic and
over-complicated, dap-mode requires lsp-mode (and has a lot of moving
parts and points of failure), and dape is straight-forward by
comparison; to set up and use. Note that dap-mode and dap-ui is now
deprecated and will be removed in the future, but still remains behind
the +lsp flag for backwards compatibility, at least until v3.

This also adds a '<leader> d' prefix for debugger commands (except for
vanilla users, who already have dape's prefix on 'C-x C-a')
2025-04-23 04:02:06 -04:00
Henrik Lissner
faea320162
tweak(default): swap 'C-c q q' & 'C-c q Q' keybinds
`C-c q q` should serve as a "soft" quit, with `C-c q Q` being a "hard"
quit.

This only affects non-evil users.

Fix: #8357
2025-04-15 00:37:51 -04:00
Henrik Lissner
c6f749e67c
fix(default): don't override TAB when Corfu isn't visible
Fixes TAB in many modes, like Org.
2025-04-11 15:49:41 -04:00
Henrik Lissner
26b97766e6
fix(default): replace deprecated magit staging commands
magit-{stage,unstage}-buffer-file were deprecated in Magit 4.3.2 for
magit-file-{stage,unstage}.

Amend: 8afc08a7a8
Close: #8342
Co-authored-by: panchoh <panchoh@users.noreply.github.com>
2025-04-05 15:22:40 -04:00
Henrik Lissner
47ef79b3b3
bump: :config
abo-abo/avy@be612110cb -> abo-abo/avy@933d1f36cc
emacs-straight/use-package@fc8449bb59 -> emacs-straight/use-package@e8c659a050
magnars/expand-region.el@e8f4e0fe9c -> magnars/expand-region.el@3512792723
noctuid/link-hint.el@9153eafc77 -> noctuid/link-hint.el@826993a0ab
2025-01-09 23:40:44 -05:00
Henrik Lissner
0a715cc3f2
refactor: (if|when)-let -> (if|when)-let*
With the former macros' future in the air (and likely to be targeted in
future, potentially breaking changes), I'll deal with this now than have
it bite me later.

Ref: https://lists.gnu.org/archive/html/emacs-devel/2024-10/msg00637.html
2025-01-08 19:33:37 -05:00
Henrik Lissner
c788769469
refactor: move GPG defaults to :config default
Assuming GPG is present and set up by default can be surprising for
beginners, so this commit makes GPG integration opt-in, behind a new
+gnupg flag in the :config default module. There'll be more added to
this later.
2024-12-05 16:38:26 -05:00
Henrik Lissner
9423f6bf95
fix(default): woman: ignore stderr from manpath
Fix: #8168
Co-authored-by: rcoacci <rcoacci@users.noreply.github.com>
2024-11-19 02:53:40 -05:00
Henrik Lissner
eea00f5d45
refactor: remove doom/goto-private-*-file commands
These commands were removed in an ongoing effort to slim down Doom and
its core. The `doom/goto-private-*-file` family of commands were
redundant with `doom/open-private-config` and
`doom/find-file-in-private-config`.
2024-11-07 04:03:13 -05:00
Henrik Lissner
448bc5cae2
refactor: use negated flags
Ref: 7a806521a92c
2024-10-20 02:41:50 -04:00
Henrik Lissner
92c064459f
fix(default): search-project: don't escape selection
This would double-escape for `+vertico/project-search`.
2024-09-18 21:15:22 -04:00
Henrik Lissner
037b018cdd
feat: add .doommodule files
These optional dotfiles indicate the root of a module or module
group (:lang), and will later contain module metadata. They will also
serve as an alternative to packages.el and doctor.el, and will aide the
parts of the v3.0 module API concerned with resolving the current module
from a path (`doom-module-from-path`), which currently rely too heavily
on parsing path strings.

For now, however, they're simply placeholders.
2024-09-14 20:47:39 -04:00
Henrik Lissner
59de0ec15e
perf(default): eagerly loading yasnippet at startup 2024-09-13 23:07:14 -04:00
Henrik Lissner
b853c4106a
fix(default): SPC g r: revert without prompting to save
Will save-then-revert now, instead of first prompting to save a modified
buffer before reverting.
2024-09-11 19:46:16 -04:00
Henrik Lissner
9d172f8c25
feat(default): bind '<leader> o /' to dirvish
Use the prefix arg to prompt for a directory first.
2024-09-09 18:53:57 -04:00
Henrik Lissner
47c8c905b8
feat(dired): open dirvish sidebar w/ '<leader> o {p,P}'
A new alternative to neotree and treemacs.
2024-09-09 18:52:45 -04:00
Henrik Lissner
0d9e188b26
refactor!(indent-guides): use indent-bars instead
BREAKING CHANGE: This swaps out the `highlight-indent-guides` package
with the newer, and proportedly faster, `indent-bars`. Users don't have
to make any changes to their config to support this, unless they've
heavily reconfigured `highlight-indent-guides`.

Ref: https://github.com/orgs/doomemacs/projects/5/views/1?filterQuery=-status%3ARejected%2CDone+indent&pane=issue&itemId=38113671
2024-09-07 19:04:37 -04:00
Henrik Lissner
2d3f003969
fix(default): removal vestigial drag-stuff config
drag-stuff was removed for evil users in 816db4a, but I forgot to stage
the removal of its use-package! block when I moved it, leaving defunct
keybinds in its wake.

Amend: 816db4a62a
2024-09-04 15:04:31 -04:00
Henrik Lissner
816db4a62a
refactor!(default): drag-stuff: make non-evil only
BREAKING CHANGE: This makes the drag-stuff package and its keybinds only
available to non-evil users. This was done because the package doesn't
bring much value for evil users, where text-objects are more powerful.
Plus, drag-stuff doesn't interact well with visual block or line modes
in evil, rendering drag-stuff-{left,right} not useful enough to warrant
keeping.
2024-09-02 01:05:44 -04:00
Henrik Lissner
86ee153786
refactor(default): move +*-bindings.el loaders into config.el
No need for the extra indirection.
2024-09-01 23:25:51 -04:00
Henrik Lissner
682f151176
feat(vc): integrate smerge-mode
Activates smerge-mode if the file contains merge conflict markers. Also
turns binds the localleader to `smerge-mode-map` when it's active.

Also removes an unused leader binding (which will never be set because
:ui hydra was removed in b08c2c7).

Amend: b08c2c745f
Close: #5954
2024-09-01 17:29:14 -04:00