Commit Graph

995 Commits

Author SHA1 Message Date
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
Henrik Lissner
10484dea87 merge: #7750
Close: #7750
2024-08-31 21:31:11 -04:00
Henrik Lissner
ed02241cb8 fix(default): respect evil-disable-insert-state-bindings
Respect this setting in more places.

Ref: 8c4d871f7c
Ref: 122e3732f7
2024-08-31 15:18:44 -04:00
Henrik Lissner
6671adc687 refactor!: move helpful from :core to :lang emacs-lisp
BREAKING CHANGE: This moves helpful.el out of core into :lang
emacs-lisp. Since most (all) people have this module enabled, this
shouldn't make a difference for most people, but if you're one of the
few that don't have :lang emacs-lisp enabled, Doom will revert to using
Emacs' built-in help.el and describe-* commands.

Others can also disable helpful with (package! helpful :disable t) if
they prefer Emacs' built-in help system, which wasn't possible before,
because it was a core package.

This was done as part of an ongoing effort to slim down Doom's core in
preparation for v3.
2024-08-30 02:26:41 -04:00
Henrik Lissner
08f8f57e2f feat(corfu): vim-like C-n/C-p keybinds
In vim/evil, C-n/C-p invokes dabbrev, so we're doing the same, but
powered by cape-dabbrev, falling back to corfu-next/corfu-prev is a
corfu popup is already open.

Close: #7748
Co-authored-by: 45mg <45mg@users.noreply.github.com>
Co-authored-by: LemonBreezes <LemonBreezes@users.noreply.github.com>
2024-08-28 22:43:05 -04:00
Henrik Lissner
b521492bf4 fix(default): feature-gate deft keybinds
Close: #7935
Co-authored-by: edmundmiller <edmundmiller@users.noreply.github.com>
2024-08-22 15:50:34 -04:00
Henrik Lissner
6e8f581897 feat(default): add SPC t d toggle for diff-hl-mode 2024-08-19 16:29:00 -04:00
Henrik Lissner
0893edefae refactor!(magit): remove magit-todos
BREAKING CHANGE: Removes magit-todos from the magit module. I've always
thought my choice to include it as a 'reasonable default' in this module
was a bit dubious. Given how trivial the config is, I leave it to users
to install if they want it, instead.
2024-08-19 16:21:45 -04:00
Henrik Lissner
9cdcfdac36 feat(workspaces): add +workspace/delete
For deleting saved workspaces (saved with `+workspace/save` or
`+workspace-save`).

Also binds `SPC TAB D` (for evil users) and `C-c w K` (for non-evil
users) to it.

Fix: #4399
Close: #7869
Co-authored-by: sriramsk1999 <sriramsk1999@users.noreply.github.com>
2024-07-29 20:57:56 -04:00
Henrik Lissner
36e7aaa619 nit(default): remove refs to doom-point-in-*-functions
These variables were removed in e43d575.

Amend: e43d575caf
2024-07-18 22:38:59 -04:00
Henrik Lissner
b3ef202451 refactor(corfu): conform to naming conventions 2024-07-13 19:38:20 -04:00
Henrik Lissner
9224ac56f0 tweak(default): bind '<leader> g U' to magit-unstage-buffer-file
The former command, magit-unstable-file, would prompt the user to select
a file to unstage, but the intention of this keybind was always to
"unstage *this* file". magit-unstage-buffer-file didn't exist at the
time this keybind was created, so I settled on magit-unstage-file as a
compromise, which is no longer necessary.
2024-07-07 20:39:32 -04:00
Ellis Kenyő
d330642c2e feat(literate): add +literate/find-heading command
A command for jumping to an Org heading in your literate org config
file.

Close: #7716
2024-07-06 20:40:08 -04:00
StrawberryTea
f44309cb63 fix(default): replace void function +yas-active-p 2024-07-05 18:57:40 -04:00
Henrik Lissner
5289861109 refactor(workspaces): +workspace/delete: rename to +workspace/kill
To be more consistent with other uses of the verb in the Emacs
ecosystem. Also done in preparation for a new +workspaces/delete command
for #7869.

Ref: #7869
2024-07-05 18:05:15 -04:00
Henrik Lissner
481753bd5e refactor!: remove pcre2el package
BREAKING CHANGE: This removes the pcre2el package, which Doom was using
solely for one function to escape PCREs. In the interest of thinning out
Doom's core, I've hoisted a simpler version of the function into Doom's
stdlib so I can remove the dependency.
2024-07-01 18:11:34 -04:00
Henrik Lissner
52e5327221 module: remove :app twitter
This module has been deprecated for some time, because our overlord
Elon-sama axed the twitter API.
2024-06-30 21:58:09 -04:00
Henrik Lissner
3cb9f17132 merge: pull request #7739 from LemonBreezes/corfu-update-smart-tab
feat(corfu): update smart tab completion
2024-06-30 15:24:52 -04:00
Merrick Luo
c9df1c5d42 fix(evil): bind git time machine without vc-gutter
git-timemachine keybind should not be guarded by the vc-gutter module
2024-06-03 16:18:09 -04:00
StrawberryTea
0a4d22e5b7 fix(config): fix corfu smart tab behavior 2024-05-10 22:08:32 -05:00
Henrik Lissner
0349dab09a tweak(default): ensure '<leader> g S' is silent
magit-stage-file prompts the user to select a file to stage, but the
intention for these two keys has always been to (un)stage the current
file (and without prompting). This ensures that is the case.

I've also tweaked their description to make that intention clearer.
2024-04-18 14:17:02 -04:00