Commit Graph

190 Commits

Author SHA1 Message Date
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
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
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
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
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
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
86ee153786 refactor(default): move +*-bindings.el loaders into config.el
No need for the extra indirection.
2024-09-01 23:25:51 -04:00
10484dea87 merge: #7750
Close: #7750
2024-08-31 21:31:11 -04:00
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
b3ef202451 refactor(corfu): conform to naming conventions 2024-07-13 19:38:20 -04:00
0a4d22e5b7 fix(config): fix corfu smart tab behavior 2024-05-10 22:08:32 -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
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
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
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
6f8b83b884 refactor(default,python): move smartparens config
Ref: 41cbb1fe7b
2022-04-01 19:12:35 +02:00
26d5163ba0 fix(default): no usable configuration epg-error
Introduced in dcae28c83a, because ignore-errors was being used for the
wrong epg-* function.

Why this happens: epg-make-context throws this error if you don't have a
GnuPG environment set up.

Fix: #6114
Amend: dcae28c83a
2022-02-16 02:13:35 +01:00
dcae28c83a fix(default): don't default to disabled/expired pgp keys
And don't use the short ID (see evil32.com).

Ref: https://evil32.com/
2022-02-14 21:24:42 +01:00
1b895a0564 fix(default): smartparens rules for haskell
The default haskell-mode rules would result in an extra } appended to
the closing pair (#5448).

Fix: #5448
Close: #5450
2022-01-05 04:05:08 +01:00
d720b29cd3 feat(default): set woman manpath with man if able 2021-12-15 09:55:54 -05:00
277a376b43 fix(default): don't override S-RET/C-j in occur buffers
These keybinds were too wide-reaching. I can only consider them
reasonable defaults for evil users, not vanilla users.

Fix #3953
2021-08-16 17:16:30 -04:00
3c66264656 fix(default): bind s-f to consult-line for macos users
Swiper is present if the ivy or helm backends are enabled, otherwise,
use consult-line.
2021-07-31 04:35:49 -04:00
24eaa1317c completion/selectrum -> completion/vertico, part 2
- Rename module from `:completion selectrum` to `:completion vertico`
- Rename all files involved
- Do *not* yet rename all the functions, as that messes up git's rename
  detection.
2021-07-25 02:51:15 +03:00
e65dffd790 selectrum: remove selectrum-minibuffer-map from...
`+default-minibuffer-maps`.

It's derived from `minibuffer-local-map` so this is unnecessary.
2021-07-25 02:50:42 +03:00
26a310d04c selectrum: improve ivy parity
- add `completion-at-point` as analogue to `cousnel-company`
- fix emacs-bindings `counsel-company` binding to respect helm and selectrum
- add org jump commands `consult-org-heading` and `consult-org-agenda` bindings
- add `consult-history` as `counsel-minibuffer-history` analogue
- add support for `doom/help-search`
- update TODO.org
2021-07-25 02:50:31 +03:00
7ec7134947 selectrum: improve ivy parity
- add `:pg` bindings
- add `selectrum-minibuffer-map` to `+default-minibuffer-maps`
- add `consult-notmuch`
- add selectrum option for `mu4e-completing-read-function`
- document more parity failings
2021-07-25 02:49:41 +03:00
34fae1c01c Remove remaining Emacs27+ checks
- Remove remaining `EMACS27+` checks, since the whole codebase is
  assumed to run at version 27 or above now
- Remove `EMACS27+` definition since it's no longer needed
2021-07-10 16:03:41 +03:00
f3748b2977 Fix #4559: wrong-type-arg error on RET in some comments
Some modes will set comment-line-break-function to an anonymous function
or advice (as octave-mode does), which will cause this fboundp check to
throw a type error when you press RET while on a commented line.
2021-04-18 13:07:18 -04:00
1274de3d34 Minor reformatting & refactors across the board 2021-02-25 13:59:43 -05:00
b89929f3f8 Bind {C-h, SPC h} V to doom/help-custom-variable
For looking up custom variables (i.e. variables intended to be
customized; defined with defcustom).
2021-01-05 19:21:54 -05:00
b96b6ed64e Fix /* and /** expansion in various languages
Also adds +web-continue-block-comments option to control:

/*
 *
 */

vs

/*

*/

Has a known issue where the indentation for the closing delimiter is off
by one when +web-continue-block-comments is disabled. Will have to look
into that later.
2020-11-09 17:19:14 -05:00
e164f3714f Set helm-rg-map in the default +default-minibuffer-maps
It seems like a typo
2020-08-24 11:03:46 +02:00
2c0cbec7c8 Fix universal {C,s}-RET keybinds in tty Emacs
And reformat all X-RET keybinds.
2020-08-05 18:26:07 -04:00
c6766c293d C-down-mouse-2 -> reset text-scale
Make this universal. Also removes redundant C-mouse-{4,5} mouse
bindings, they're already bound by mouse-wheel-mode.
2020-08-05 18:26:07 -04:00
863eb82efd S-RET -> insert literal newline
A convention on many text editors and applications is to make RET
auto-indent new lines. That has already been done. Another convention is
for S-RET to insert an unindented line; this commit adds this convention
to Doom.

Relevant to #3694
2020-08-05 18:26:06 -04:00
8bf902d5f4 General refactors & reformatting across the board 2020-06-04 20:13:28 -04:00
d1fcbf244b doom/toggle-debug-mode -> doom-debug-mode 2020-05-25 20:18:36 -04:00
c690ed600a lang/swift: add pair rule for string interpolation 2020-05-25 03:43:40 -04:00
ea18c83c0a General refactors & reformatting across the board 2020-05-15 01:44:53 -04:00
a7c2cbab90 Fix #3110: wrong-number-of-args on backspace
Due to a regression in 82ddc8633.
2020-05-12 22:40:07 -04:00
82ddc86335 Move RET & backspace fixes out of +smartparens feature
Neither of these are tied to smartparens, and should be available to
folks that have disabled +smartparens.
2020-05-12 19:42:03 -04:00
798b5bdaea Add +default-want-RET-continue-comments option
For disabling comment continuation on RET.
2020-04-30 16:29:12 -04:00
09d344541f epa-pinentry-mode -> epg-pinentry-mode
Because epa-pinentry-mode is deprecated in 27+
2020-04-23 16:52:54 -04:00
064603f6e6 Only bind C-s in minibuffer if ivy/helm are available 2020-03-28 20:08:53 -04:00
8f685a3c31 Fix #2756: make C-a/C-e truly shift-select aware 2020-03-28 00:41:04 -04:00
169f9a6121 General, minor refactor & reformatting 2020-03-27 01:25:30 -04:00