Otherwise, undo could delete entire chunks of a shell buffer. This
addresses the issue in eshell, comint shells, and derivatives (like
ielm, shell, or inferior-* shells).
Ref: #8410
This makes the output of previous commands and prompts immutable (by
default), so users can't accidentally alter them, which can leave the
buffer in a half-broken state (requiring the user flush out the garbled
input with a couple RETs).
This targets comint shells (shell, ielm, etc), eshell, (ansi-)term, and
any derivatives thereof.
Fix: #8411
There are two editorconfig libraries. One built into 30+ and one on
MELPA. Same name, different APIs. If the MELPA one is installed through,
say, your OS package manager, then the detection heuristic in
`doom/set-indent-width` could get confused which library is which.
Fix: #8423
In v3, 'doom run' will have a different purpose (for launching project
or CI/CD tasks), so it now emits a warning that it's moved to a new
'doom emacs' command.
I refrain from updating documentation because a rewrite of our docs will
be coming up soon.
- cmd.exe chokes on the space in "C:\Program Files\...", but more
importantly, doom.ps1 should be invoked with powershell, not cmd.exe.
- Windows has pwsh.exe and powershell.exe, which, while not identical,
are close enough for our purposes, but needed to be accounted for.
Fix: #8098
Allow doom-project-find-file to search file hierarchies from arbitrary
starting points (otherwise, project.el will resolve to the nearest
project root).
Used to be that a ;;;###COOKIE with no argument would return NULL-VALUE.
No more, it will now return `t`.
Also corrects the docstring to properly reflect what this does.
A version of describe-char that, when given a prefix arg, will prompt
the user to click where to execute the command (so you can read
text-properties/overlay information for otherwise unselectable text, in
the minibuffer or special UIs).
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
As of recent commits of Emacs 31, elisp files missing a
"lexical-binding: t" cookie will emit this warning:
Warning (files): Missing ‘lexical-binding’ cookie in "path/to/elisp/file".
You can add one with ‘M-x elisp-enable-lexical-binding RET’.
See ‘(elisp)Selecting Lisp Dialect’ and ‘(elisp)Converting to Lexical Binding’
for more information.
You can look forward to many of these if you use any old and
unmaintained elisp packages, or if you have elisp shell scripts with
shebang lines (which make this warning unavoidable).
This commit silences these warnings because it's poorly implemented.
It's obnoxious to users and they aren't the ones that should be told
this. It ought to be emitted during byte-compilation or by linters (e.g.
`M-x checkdoc`) at the folks actually in a position to do something
about the warning (i.e. the developers).
Ref: https://lists.gnu.org/r/emacs-devel/2024-05/msg00283.html
Now `doom-debug-mode` manipulates `doom-log-level` if you activate it
with a prefix arg, setting it to 1 by default, reducing its verbosity
and cutting down on noise in the logs.
Since we disable tooltip-mode, the echo-area should expand to display
multi-line output, to be consistent with our default for
resize-mini-windows. This also fixes the truncation of annotations in
PDF buffers (#1615).
Fix: #1615
For the sake of reducing complexity, I stop Doom from stripping symlinks
or the "/sudo:" prefix from tramp paths in recentf's file list. It's
extra work that's not strictly necessary or unanimously desired.
Also removes the tidbit about `recentf-show-abbreviated`; the variable
was removed just prior to 29's release so it is no longer an option.
Due to a typo in the hook's self-removal, causing this function to
trigger many times per second. It isn't doing much thanks to the
debouncing, but was still legitimately triggering doom-switch-frame-hook
every ~2 seconds despite no change in frame focus.
Also removes the ineffectual inhibit-redisplay let-bind.
Amend: 653b465c74
Redesign this hook around `after-focus-change-function`, along with
debouncing, to prevent it from triggering too aggressively (due to
misbehaving desktop environments, elisp packages that tinker with frame
focus, or accidental (and rapid) focus changes by the user).
`doom-switch-{window,buffer}-hook` have also been simplified, and
`doom-switch-window-hook` now will not trigger when focusing another
frame (only when you switch windows *within* any one frame).
This also fixes diff-hl not updating when refocusing an Emacs frame.