450 Commits

Author SHA1 Message Date
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
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
6898a9c267 module: add :tools llm
Clippy is making a comeback.

Close: #7231
2025-05-06 22:30:49 -04:00
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
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
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
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
448bc5cae2 refactor: use negated flags
Ref: 7a806521a92c
2024-10-20 02:41:50 -04:00
59de0ec15e perf(default): eagerly loading yasnippet at startup 2024-09-13 23:07:14 -04:00
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
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
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
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
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
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
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
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
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
6e8f581897 feat(default): add SPC t d toggle for diff-hl-mode 2024-08-19 16:29:00 -04:00
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
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
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
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
f44309cb63 fix(default): replace void function +yas-active-p 2024-07-05 18:57:40 -04:00
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
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
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
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
2f7b309252 tweak(default): remove +vc/gutter-hydra keybind
Not only is this keybind always overshadowed by the magit-file-dispatch
keybind on the same key, the hydra module is deprecated, so I will
simply remove it.

Fix: #5388
2024-04-18 14:17:02 -04:00
390f5920a2 Merge branch 'master' into corfu-update-smart-tab 2024-04-12 13:45:44 -05:00
cfdae2365c feat(corfu): update smart tab completion
This commit updates the smart tab functionality so that:
1. The only functionality checked is for the modules that are enabled.
2. The priority of the TAB behavior is tunable by the user.

This also updates the TAB behavior for the Corfu module to be
`indent-for-tab-command` instead of `completion-at-point` so that users
can use the TAB key to indent their code and navigating Org tables.

We also address #7372 by checking overriding-terminal-local-map, as that
is used by Embark.
2024-04-01 07:55:13 -05:00
89e6b6849e fix(default): restore accidentally gated keybinds (part 2)
I haven't published support for negated flags (e.g. -eglot) yet; this
snuck into 76b4522.

Amend: 76b452278f
Ref: #7745
2024-03-22 10:09:45 -04:00
76b452278f fix(default): restore accidentally gated keybinds
These were accidentally gated as part of 6949451 (#7002).

Amend: 6949451b00
Close: #7745
Co-authored-by: raszi <raszi@users.noreply.github.com>
2024-03-22 10:08:20 -04:00
6949451b00 module: add :completion corfu
This commit's primary goal is allowing use of
[Corfu](https://github.com/minad/corfu) as an alternative to
[Company](https://github.com/company-mode/company-mode). It introduces a
module under `:completion` for this purpose, plus some conditionals on
other relevant modules to toggle functionality like lsp back-ends and
[Cape](https://github.com/minad/cape) capfs for certain modes.

Other optional or miscellaneous features include:

- Corfu is enabled in the minibuffer if `completion-at-point` is bound;
- Support for displaying the completion's documentation on a secondary
  popup;
- Support for terminal display if :os tty;
- Support for icons if +icons;
2024-03-19 20:41:36 -03:00
198fe82b6d feat(lib): backport find-sibling-file
I will slowly phase out projectile in favor of project.el, starting with
projectile-find-other-file, which -- as of Emacs 29 -- has a native
alternative: `find-sibling-file`.

Ref: doomemacs/community#1
2024-03-11 00:53:44 -04:00
659f7bfc71 refactor!: deprecate IS-* OS constants
BREAKING CHANGE: This deprecates the IS-(MAC|WINDOWS|LINUX|BSD) family
of global constants in favor of a native `featurep` check:

  IS-MAC      ->  (featurep :system 'macos)
  IS-WINDOWS  ->  (featurep :system 'windows)
  IS-LINUX    ->  (featurep :system 'linux)
  IS-BSD      ->  (featurep :system 'bsd)

The constants will stick around until the v3 release so folks can still
use it -- and there are still some modules that use it, but I'll phase
those uses out gradually.

Fix: #7479
2024-02-04 17:54:29 -05:00
a89d4b7df5 tweak(default): add binding for undo-tree
This also makes the check for the presence of vundo consistent with the
rest of the file by using modulep! instead of fboundp.
2023-12-01 13:15:36 -05:00
62074bfcbb tweak(emoji): add emoji-search binding for Emacs 29
The emojify command takes precedence in case users want ASCII/GitHub
string completion/insertion.

Ref: https://git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS?h=emacs-29.1#n884
2023-09-02 12:27:37 -05:00
d5f86f179f tweak(default): add multi-buffer imenu commands
There is no analogous counsel command.
2023-09-02 12:27:37 -05:00
833be11368 fix(syntax): update flycheck binding check 2023-08-07 20:34:53 +02:00
9245a347a4 module: add :tools collab
Add a collaborative editing module, powered by crdt.el.

Ref: https://code.librehq.com/qhong/crdt.el
Co-authored-by: Arte Ebrahimi <arteebrahimi@gmail.com>
2023-07-24 19:29:46 +02:00
4e105a95af refactor(vertico): take evil keybinds from :config default 2023-03-22 18:29:38 -04:00
9350b44dc0 feat(undo): add vundo
Close: #6263
2023-03-22 00:26:10 -04:00
ef9e21c90c feat(default): bind :leader "t v" to visible-mode 2022-10-29 02:48:16 +02:00
6887998c23 feat(default): add C-h/C-l evil keybinds for helm
Close: #6853
Co-authored-by: BenediktBroich <BenediktBroich@users.noreply.github.com>
2022-10-29 01:57:43 +02:00
9193ba98f7 tweak(default): bind "n b" to citar-open-notes
Also change desc to "Bibliographic notes".

Ref: #6728
2022-10-28 18:38:34 +02:00
58fb83c98e fix(company): completing-read interface on C-S-s
C-S-s while company is completing shoudl bring up the results in your
completion framework of choice (ivy, helm, vertico, etc), but failed to
do so for vertico (for any completion backend besides company-capf
perhaps).
2022-10-04 02:05:02 +02:00
ad6a3d0f33 refactor: deprecate featurep! for modulep!
featurep! will be renamed modulep! in the future, so it's been
deprecated. They have identical interfaces, and can be replaced without
issue.

featurep! was never quite the right name for this macro. It implied that
it had some connection to featurep, which it doesn't (only that it was
similar in purpose; still, Doom modules are not features). To undo such
implications and be consistent with its namespace (and since we're
heading into a storm of breaking changes with the v3 release anyway),
now was the best opportunity to begin the transition.
2022-08-14 20:43:35 +02:00
27a448b04b feat(vc-gutter): add +diff-hl backend
This adds an alternative backend to the :ui vc-gutter module, enabled
with the +diff-hl flag. In the future, I intend for diff-hl to replace
git-gutter, as it is slightly faster and depends on more native
functionality (vc.el), but it's still a little buggy. It will remain
opt-in until those issues are sorted out.
2022-08-08 18:23:47 +02:00
7373e97ff6 feat(default): bind 'SPC b I' to open ibuffer for workspace 2022-07-24 00:07:41 +02:00