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
This makes load-order more predictable for users wanting to modify the
side-effects of citar-org-roam-mode or citar-embark-mode. I.e.
(after! citar-org-roam ...)
(after! citar-embark ...)
Instead of:
(after! (citar org-roam) ...)
(after! (citar embark) ...)
Ref: #7712
Co-authored-by: hpfr <hpfr@users.noreply.github.com>
* feat(vertico): completion highlights a la ivy
Adds completion highlighting that works similarly to ivy/counsel's
one (which is enabled by default). It'll highlight enabled major/minor
modes and directories in a different face. On by default.
Ref: https://github.com/minad/vertico/wiki#candidate-display-transformations-custom-candidate-highlighting
* fix(vertico): major mode not being highlighted
The major mode was not being highlighted correctly;
it should work now that the buffer is set correctly in
`+vertico-highlight-enabled-mode`.
* fix(vertico): make font lock prioritize match over type
The mode and directory highlights were [overriding the match
font-lock](https://github.com/doomemacs/doomemacs/pull/7706#issuecomment-1977722188).
This should resolve that by prioritizing the match font lock using
`'append` on `add-face-text-property` instead of `propertize`.
We should always bind to both "TAB" and "<tab>" - if they have been
mapped to different commands anywhere, Emacs will no longer treat them
as equivalent.
Relevant portion of the dependency graph:
'oc-csl → 'citeproc → 'citeproc-itemgetters → 'org → 'org-keys → 'oc
The :after linked 'oc to 'oc-csl so 'org-keys could load 'org.
`+org-init-keybinds-h' could then execute before the body of 'org-keys,
so Org default bindings could clobber Doom bindings.
If the top-level 'org started the load sequence, `org-load-hook'
functions would execute last and key bindings would be correct, but
Doom’s deferred incremental loading of Org could lead to this scenario:
1. deferred incremental loader: (require 'org-src)
2. org-src.el: (require 'org-keys)
3. org-keys.el: (require 'oc)
4. oc.el: (provide 'oc): (require 'oc-csl) [via the :after this patch
removes]
5. oc-csl.el: (require 'citeproc)
6. citeproc.el: (require 'citeproc-itemgetters)
7. citeproc-itemgetters.el: (require 'org)
8. org.el: (require 'org-keys)
9. 'org-keys from step 8 finishes loading. Keys are bound.
10. 'org finishes loading. `org-load-hook' functions are run. Doom’s
keys are bound.
11. 'oc-csl finishes loading
12. 'org-keys from step 3 finishes loading. Keys are bound again,
overwriting any keys Doom bound in step 10.
13. 'org-src finishes loading
At some point, the deferred incremental loader will (require 'org), but
it is a feature as of step 10, so it does not load and its hooks do not
run again.
Recently, org-mode made a non-standard tab-width an error state.
Unfortunately, it's way too easy for users to accidentally change
it (e.g. with editorconfig, indiscriminate setter hooks, or other
packages), and since there is zero reason to ever want a non-standard
tab-width in org-mode, I not only exclude it from dtrt-indent as a
global default (i.e. not only as part of :lang org), but I add a late
org-mode-hook hook to reset tab-width, just in case.
rust-lang/rust-mode@HEAD -> rust-lang/rust-mode@f74dd1cd87
- rust-lang/rust-mode@08cea61 introduced some clumsy autoloads that will
cause treesit and rust-ts-mode (and more in later commits) to be
eagerly loaded at startup. This causes other problems, but the primary
issue is that it causes errors at startup or when installing
rust-mode (#7698), which this bump addresses. Eager-loading will have
to be addressed upstream.
Ref: rust-lang/rust-mode@08cea61390Fix: #7698
Since we've remove all-the-icons, doom-themes-neotree-config will no
longer work properly, so I disable it for now (not a complete solution
though; we still need proper nerd-icons support for neotree).
Fix: #7634
Ref: #7664
A subtle change in the way org-toggle-checkbox handles its prefix
argument changed how RET (+org/dwim-at-point) handled list
checkboxes (incorrectlying swapping [ ] with [-], but not back, unless
the cursor was directly on top of the checkbox).
Didn't return non-nil, so whether or not it worked, Apheleia would
attempt to (ineffectually) format the org buffer afterwards.
Also remove unneeded beg/end checks (the functions always receive a
value).
A recent change upstream (see emacsmirror/org-contrib@6e208c87bf)
removed the autoload for adding org-eldoc-load to org-mode-hook, so we
have to add the hook ourselves (the function is still autoloaded,
fortunately).
Also moves org-eldoc config into its own use-package! block.
Fix: #7633
Ref: emacsmirror/org-contrib@6e208c87bf
Change the binding for archiving to `org-archive-subtree-default`, which
is the recommend "catch-all" command in the org manual. The user can
specify the actual command in `org-archive-default-command`. The default
for this variable is `org-archive-subtree`, which we previously used for
the binding, so this commit changes behavior only for users who have set
`org-archive-default-command` explicitly.
This was resolved upstream some time ago and is now a source of
errors (void-variable emacsql-sqlite-executable errors) if forge were
ever bumped (which it was, yesterday, in 1a05e2f).
Ref: magit/forge@398ca3a17a
Amend: 1a05e2fa64