BREAKING CHANGE: This restructures the project in preparation for Doom
to be split into two repos. Users that have reconfigured Doom's CLI
stand a good chance of seeing breakage, especially if they've referred
to any core-* feature, e.g.
(after! core-cli-ci ...)
To fix it, simply s/core-/doom-/, i.e.
(after! doom-cli-ci ...)
What this commit specifically changes is:
- Renames all core features from core-* to doom-*
- Moves core/core-* -> lisp/doom-*
- Moves core/autoloads/* -> lisp/lib/*
- Moves core/templates -> templates/
Ref: #4273
doom-debug-p and doom-interactive-p have always been intentionally
redundant, because changing the variables they replaced had other
side-effects, which made writing tests for them difficult. Since our
new (yet unpublished) tests lean heavily toward integration testing more
than unit testing, this becomes an implementation detail.
And doom-init-p's only use was refactor out at some point in the past,
so it's no longer used.
Also done to reduce Doom's footprint, in general.
Emacs 28 introduced the much faster native function
buffer-line-statistics, which makes so-long's job significantly less
expensive, so we can afford a larger threshold there.
Still, we gimp it a little if native-comp isn't present.
BREAKING CHANGE: doom-set-jump-maybe-a would formerly set a jump point
if FN returns non-nil. That condition was changed to: if the current
buffer or cursor position have changed after FN.
Only affects users on Emacs HEAD (29+), where read-symbol-positions-list
has been removed. This is a temporary solution until the reference is
addressed upstream, in the elisp-ref package.
Ref: Wilfred/elisp-refs#35
Fix: #6063
doom--fix-broken-smie-modes-a forces dtrt-indent-mode to expect exactly
one argument so an error will be raised when the latter is turned on
without args programmatically in lisp.
Its default value is acceptable in 28+ and handles clipboard integration
in PGTK Emacs, so we don't have to.
Thanks to @sei40kr for revealing this fix to me (in #5219).
Fix#5219
Reduce how much projectile hits the server in TRAMP buffers by:
- Not looking for fd/fdfind (just use the VCS-specific commands
projectile provides and assume they're present on the remote).
- Not walking up the directory tree to display the project name in the
mode line.
- Reducing TRAMP file-cache misses.
- Reducing how chatty tramp is about its connections.
Fix#5360
If a file has auto-saved data (see auto-save-default), after-find-file
will stop the world for 1 second to tell you about it. Very annoying.
Just log it to *Messages* and open the file immediately.
Also:
+ Refactors recentf config in general, revises/expands its code
comments, and uses :custom to set file variable (a new convention I'm
trying out).
+ recentf-auto-cleanup = 300 in daemon sessions, since the old strategy
of "cleanup on kill-emacs-hook" isn't so great for daemon users.
Emacs generates long file names for auto-save and backup files.
undo-fu-session and tramp are two more big offenders. This fix SHA1s
their file names so they never exceed 40 characters.
Will also affect any package that uses make-backup-file-name-1
directly (like undo-tree).
Throws wrong-type-argument number-or-marker-p errors otherwise, because
dtrt-indent--for-each-indentation calls
dtrt-indent--skip-to-end-of-match with four nil arguments (presumably
because there is no pascal entry in dtrt-indent-language-syntax-table)
and there is no fall back to its default entry.
Smartparens creates a conditional keybind on C-g when its overlays are
present (whether or not they're visible). This causes confusion when
evil users are forced to press C-g twice to exit insert mode.
febf960 introduced a regression, in that it caused `smartparens-mode' to
no longer be enabled for `evil-ex'. This is because the latter doesn't
call `read--expression', but calls the minibuffer directly instead.
Return `doom-init-smartparens-in-minibuffer-maybe-h', enabling
`smartparens' for `evil-ex'. The hook responsibly for enabling it in
`eval-expression-minibuffer-setup-hook' was renamed to
`doom-init-smartparens-in-eval-expression-h', since otherwise the naming
would have been awkward.
Also explicity enable `smartparens-mode' instead of toggling it.
`doom-init-smartparens-in-minibuffer-maybe-h' is responsible for enabling
`smartparens' in the minibuffer, which it does by checking `this-command'.
However, the list of commands doesn't include `edebug-eval-expression',
preventing the mode from being enabled for it.
Fix this by enabling `smartparens' in `eval-expression-minibuffer-setup-hook',
unconditionally, which means that anything using `interactive' "x" or
`read--expression' will work correctly.