996 Commits

Author SHA1 Message Date
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
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
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
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
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
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
f838c1790d docs(default,mu4e,latex): fix repetition of the in docs 2024-03-12 20:16:29 -04: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
cce9438d9f fix(default): +evil module flag typo 2024-02-17 07:13:39 -05:00
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
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
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
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
88bb045388 docs(*): replace all-the-icons with nerd-icons
Also colorizes the leading icon in notices.
2023-09-16 20:19:11 +02:00
af5add0e9e merge: pull request #7389 from hpfr/misc 2023-09-06 14:28:57 +02:00
20393c7074 feat(default): add use consult-man if available
`consult-man` is a better version of `man` that computes its candidates
asynchronously and allows the user to pass arguments directly to the man
command. It's basically like `consult-grep` but for `man`.
2023-09-06 14:26:51 +02: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
a7f3db972f bump: :config default use-package
abo-abo/avy@955c8dedd6 -> abo-abo/avy@be612110cb
jwiegley/use-package@77945e002f -> jwiegley/use-package@a6e856418d
noctuid/link-hint.el@1f9bb60289 -> noctuid/link-hint.el@36ce929331

Close: #7345
Ref: #7196
Co-authored-by: hperrey <hperrey@users.noreply.github.com>
2023-08-18 18:50:07 +02: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
b0826b9a90 tweak(config): feature-gate company keybindings
In anticipation of the Corfu module, this PR feature-gates the
company-mode keybindings for non-Evil users. This is already done for
Evil users.
2023-07-22 16:24:18 +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
81aa98049d bump: :config
abo-abo/avy@ba5f035be3 -> abo-abo/avy@955c8dedd6
jwiegley/use-package@e2d173b120 -> jwiegley/use-package@77945e002f
magnars/expand-region.el@7e5bbe2763 -> magnars/expand-region.el@b70feaa644
noctuid/link-hint.el@676dac6621 -> noctuid/link-hint.el@1f9bb60289
2023-02-21 19:34:59 -05:00
45d25af436 fix(default): browse-project: stringp type error
doom-project-root can return nil if not in a project, causing a type
error (#7093). This changes +default/browse-project to fall back to the
current directory in that case.

Fix: #7093
2023-02-21 19:15:36 -05: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
TEC
5ac2a5258b docs: change link format 2022-10-05 01:01:19 +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
0e6682612f feat(default): use consult-flycheck when applicable 2022-08-12 21:01:56 +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
1abcf913aa revert: fix(docs): set mode in file-local vars
emacs-straight/org-mode@e22b4eb7aa introduced a breaking change that
made it impossible to rely on .dir-locals.el to change org-mode buffers
in $EMACSDIR to doom-docs-org-mode (without infinite recursion), so we
used file-local variables in 7e400ab.

emacs-straight/org-mode@215de6176b reverted that change, so we can use
.dir-locals.el again, and this is my preference, since it requires less
boilerplate across our hundreds of org files.

Ref: emacs-straight/org-mode@215de6176b
Ref: emacs-straight/org-mode@e22b4eb7aa
Revert: 7e400abdc0
2022-08-07 19:08:07 +02:00
bacb84f6c6 docs(default): add @hlissner, @UndeadKernel 2022-08-05 00:49:17 +02:00
08dac1400f fix(default): +default/yank-buffer-path echos the file name as nil
Emacs 29 with PGTK's kill-new doesn't return its STRING argument (with
the default settings) anymore, so we explicitly pass the file path to
prevent the confusing message "Copied path to clipboard: nil".
2022-08-03 19:26:19 +02:00
1f8bf7accb merge: rewrite-docs
I've omitted docs/*.org from this merge, as there is still work left to
do there, but I am pushing the module docs early so folks can benefit
from the new docs sooner.
2022-08-03 03:27:50 +02:00
7e400abdc0 fix(docs): set mode in file-local vars
Due to emacs-straight/org-mode@e22b4eb, a replacement major mode (for
org-mode) can no longer be specified from .dir-locals.el, as it spirals
into infinite recursion. Therefore, a mode: line is needed in all Doom
docs.

Ref: emacs-straight/org-mode@e22b4eb7aa
2022-08-03 02:46:33 +02:00
1255315bfc refactor(docs): replace nav menus with virtual one
Now that the header is dynamically generated (when doom-docs-mode is
active), a literal header is unnecessary.
2022-08-02 19:37:07 +02:00
e77a45bc22 docs: use lowercase keywords
As per Org's new defaults, which we're adopting elsewhere, so may as
well adopt it here.
2022-08-02 16:23:43 +02:00
7373e97ff6 feat(default): bind 'SPC b I' to open ibuffer for workspace 2022-07-24 00:07:41 +02:00
b5fd085af0 tweak(default): consult-flymake in a branch of +default-diagnostics
when available instead of plain flymake-show-diagnostics-buffer
2022-07-23 16:36:01 +02:00
442d607ec0 fix: remove outdated uses of user-emacs-directory
Doom changes user-emacs-directory (see 46844b5 for explanation), so
doom-emacs-dir should be used to refer to your $EMACSDIR instead.

Fix: #6530
Ref: 46844b55de
2022-07-04 02:58:11 +02:00
7ca50e0ce8 feat(default): bind 'SPC b y' to yank whole buffer
Evil may not always be available in all buffers, and in line with the
filepath yank commands on SPC f y/Y, I thought this command could be
useful. However, I omitted a "replace buffer with paste" command because
in any editing context, evil should be available, in which case it'd be
redundant with `vigp` (or yig for yanking the buffer).

Close: #5281
Co-authored-by: Alex Palaistras <deuill@users.noreply.github.com>
2022-06-21 18:46:25 +02:00
ec2062f517 feat(macos): add 'open in new iTerm window' command
Plus keybinds on '<leader> o I'.

Close: #6318
Co-authored-by: brorbw <brorbw@users.noreply.github.com>
2022-06-21 18:46:25 +02:00