Commit graph

1058 commits

Author SHA1 Message Date
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
771fccc52b
nit: minor reformatting & revision
Also corrects the version string of obsolete variable `+mu4e-backend`.
2024-09-11 19:46:14 -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
0d405329fe
fix(literate): improve error handling while tangling
Now emits more informative errors in the case that the user's config.org
doesn't exist or contains no src blocks.

Fix: #6717
2024-09-01 17:29:14 -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
308444d612
fix(literate): detect symlinked literate config files
`file-in-directory-p` already resolves symlinks, but on the off chance
that `+literate-config-file` points to a symlink living in a
non-symlinked directory, this heuristic will fail to realize the current
buffer belongs to your config.

Close: #6704
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
Henrik Lissner
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
StrawberryTea
390f5920a2
Merge branch 'master' into corfu-update-smart-tab 2024-04-12 13:45:44 -05:00
StrawberryTea
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
45mg
dd18fa16be feat(corfu): both option for RET behavior
Adds a new value of `+corfu-want-ret-to-confirm` to cover the case where
the user wants to select the candidate as well as perform the normal
behavior of RET.

Also, the logic for RET behavior has been refactored for clarity, and
the variable's documentation has been clarified a little.
2024-03-23 19:28:26 +05:30
Henrik Lissner
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
Henrik Lissner
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
Luigi Sartor Piucco
0588b42b46
feat(corfu,vertico): use equal orderless config
This removes the old `&` separator for Vertico (does anyone use that
instead of just space?) in favor of escapable space and unifies
orderless config with Corfu. Also implements smart separator
insert/escape/reset on `C-SPC`

Co-authored-by: Liam Hupfer <liam@hpfr.net>
2024-03-19 20:41:50 -03:00
StrawberryTea
365a95de76
feat(corfu): more CAPFs and ergonomy changes
Add CAPFs from cape:
- `cape-dabbrev`;
- `cape-elisp-block`;
- `cape-file`;
Fix some CAPFs via cape:
- Make non-exclusive, purified and silent `pcomplete-completions-at-point`;
- Make non-exclusive and non-interruptable `lsp-completion-at-point`;
- Make non-exclusive `eglot-completion-at-point`;
- Make non-exclusive `comint-completion-at-point`;
Fix and improve keybindings:
- Smart `DEL`;
Add depth to CAPFs, allowing ordering to be adjustable.
2024-03-19 20:41:50 -03:00
Luigi Sartor Piucco
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
cuithon
f838c1790d
docs(default,mu4e,latex): fix repetition of the in docs 2024-03-12 20:16:29 -04:00
Henrik Lissner
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
Henrik Lissner
cce9438d9f
fix(default): +evil module flag typo 2024-02-17 07:13:39 -05:00
Henrik Lissner
615a77fafc
bump: :config
magnars/expand-region.el@b70feaa644 -> magnars/expand-region.el@e8f4e0fe9c
noctuid/link-hint.el@36ce929331 -> noctuid/link-hint.el@9153eafc77
2024-02-04 18:54:21 -05:00
Henrik Lissner
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
John Goff
56b6169ae7
fix(default): read correct manpath on MacOS
Versions of `man` shipped with the latest MacOS do not support the
`--path` argument, which causes `M-x woman` in Emacs to break. However
the `manpath` command gives the same information and exists on MacOS and
Linux, at least the systems that I tested. Check for its existence, and
if there is no `manpath` command then fall back to the logic that
existed before.

Fix: #7021
2024-01-24 12:31:20 -05:00
Tim Ruffing
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
Henrik Lissner
88bb045388
docs(*): replace all-the-icons with nerd-icons
Also colorizes the leading icon in notices.
2023-09-16 20:19:11 +02:00