Prior to this, I used window-width to determine whether file details
should be hidden, but there was a jarring delay on `dirvish-setup-hook`
that made the effect look awful (especially when walking up and down
file trees).
This changes `dirvish-hide-details` to accept a list of contexts where
it should be enabled, which I think is more elegant. Of course,
`dirvish-hide-details` will fall back on old behavior if set to `t` or
`nil`.
I'll consider upstreaming it later (and perhaps doing similar for
`dirvish-hide-cursor`).
Ref: #6760
Currently, setting `dirvish-use-mode-line` to nil blanks out the
mode-line, and setting it to `t` makes Dirvish use its own mode-line. To
get the default mode-line, `dirvish-mode-line-format` needs to be set to
nil, but even then Dirvish will prepend a bar to the default-mode-line
so it can control its height, which I think is a confusing chain of
causes and effects.
This changes the behavior such that `dirvish-use-mode-line` controls
whether `dirvish-mode-line-format` will be used or not. I'll upstream
this to hlissner/dirvish later.
Fix: #8000
Eventually, Emacs will process any files passed to it via the command
line, and will do so *really* early in the startup process. These might
contain special file paths like TRAMP paths (e.g.
/sudo://etc/ssh/ssh_config), so restore `file-name-handler-alist' just
for this small portion of startup.
Apheleia's default config for prettier adds --use-tabs/--tab-width to
force prettier to match Emacs' indent settings, which is fine until a
prettier config file tries to overwrite it and is ignored. As a
compromise (and stopgap solution), I omit these flags if any prettier
settings are set in the current project.
Fix: #7998
BREAKING CHANGE: This drops the Dired module's +ranger flag and replaces
much of this module's innards with (my maintained fork of) Dirvish,
which provides a spiritually similar (if not superior) experience to
Ranger. Plus, Dirvish makes most of our dired plugins unnecessary.
Also, I am now registering myself as this module's maintainer now that I
dogfood and maintain Dirvish.
Close: #6760
Co-authored-by: alexluigit <alexluigit@users.noreply.github.com>
Co-authored-by: hpfr <hpfr@users.noreply.github.com>
Co-authored-by: LemonBreezes <LemonBreezes@users.noreply.github.com>
Co-authored-by: pharcosyle <pharcosyle@users.noreply.github.com>
These uses of this macro are a micro optimization that yield no benefit.
The only place it's useful is in autoloads (which are guaranteed to be
byte-compiled during `doom sync`).
popen is a dependency of flymake-popen, and is on nongnu-elpa, which
wasn't supported by straight until recently, so the package! statement
is no longer needed.
Ref: 71469d8056
There are still a few edge cases where inhibit-redisplay is never
reset (usually involving errors at startup), leaving Emacs as a blank
screen until the user performs an action that forces it to redraw (e.g.
pressing M-x). This tries to address more of those.
Due to the nested structure of eglot-server-programs, our advice would
not correctly detect entries for some modes (like javascript modes),
effectively disabling Eglot in those modes.
I've replaced the advice with a solution baked into lsp!, so folks still
have the option of using eglot-ensure directly if they want it activated
unconditionally.
Amend: #7219
Reduces edge cases, in the case the user eagerly loads any of these
packages. Also replaces all hardcoded paths to ocp-indent and opam's
executables with variables, respecting user configuration.
The ocamlformat.el package reinvents what Apheleia is already doing, but
Apheleia's default definition for ocamlformat is a little simplistic.
This merges the efforts of both and allows us to cut down on an unneeded
dependency.
I introduced '--ignore-file .project' to `projectile-git-fd-args` in
4fcf332 expecting fd to ignore the file if it didn't exist, but it
throws an error if it doesn't, causing it to throw these errors in any
project without a .project file.
Amend: 4fcf332749
Reverts projectile-project-root-files-bottom-up to its original value,
since the absence of those VC entries may surprise folks who aren't new
to projectile.
The "clangd" package links to the version of clangd associated with that
version of the distribution. In Debian 11 it's clangd-11, in 12 it's
clangd-14, Ubuntu 22.04 LTS also has clangd-14, and 23.10 seems to have
clangd-16. No need to specify the clangd package name for each release.
Ref: #7502
I intend to eventually replace projectile with project.el, so these
doom-projectile-* variables need to be generalized, starting with the
fd/ripgrep executable paths.
ALong with that, this refactors Doom's projectile-generic-command to
lean more on built-in fd support in projectile, where possible (fewer
wheels reinvented).
Ref: doomemacs/core#1
I intend to keep `project-vc-extra-root-markers` much lighter than what
`projectile-project-root-files` ended up being, so I won't be
transferring all the root markers.
Ref: doomemacs/core#1
Adapts to changes made upstream to Org's window management logic (e.g.
Org dropped `org-switch-to-buffer-other-window` for
`switch-to-buffer-other-window`, and org-journal renamed one of its
helper functions).
Doom removes the "none" workspace from persp-mode's default list of
perspectives, because it is a special case that doesn't behave
identically to other persps in the list, making it a pain to deal with.
This worked fine up until a change to `persp-update-names-cache` (in
Bad-ptr/persp-mode.el@0d6cacc) made it re-insert this "none" workspace
into `persp-names-cache` whenever it is called, undoing our hack; this
commit adapts to that change.
Ref: Bad-ptr/persp-mode.el@0d6caccab3
Ref: Bad-ptr/persp-mode.el@b2e68f97cbFix: #7986
Amend: 7f3412e317
`org-map-entries` uses `org-get-agenda-file-buffer` to visit agenda
files, and Doom optimizes the latter to open those org buffers in a
limited capacity (since buffers opened this way are rarely visible, and
full initialization of them is very expensive), deferring their
initialization until the user interactively switches to the buffer
later.
However, if an agenda buffer has already been visited, opening it with
`org-get-agenda-file-buffer` with all these disabled initializations
could have unpredictable effects on whatever the user is doing in their
`org-map-entries` call. Since these optimizations aren't needed for
agenda buffers that already exist, I'll no-op `+org--restart-mode-h` in
those cases.
Fix: #7979
Allow ahead-of-time native-compilation during CLI operations that
install or update packages. This will not retroactively native-compile
already-installed packages, you'll need to use --rebuild to do so.
(This is a stop-gap solution until the v3.0 release)
Fix: #6811
When running `doom sync --rebuild` after emacs upgrade the user is
prompted with "Installed packages must be rebuilt. Do so now?", even
though doom was explicitly instructed to rebuild. This PR removes this
prompt when the `--rebuild` option is provided