This is a temporary measure until the interpolation in the powershell
script can be addressed directly (by someone better versed in
powershell).
Fix: #8572Close: #8654
Co-authored-by: kovan <kovan@users.noreply.github.com>
The lack of Symbola can cause crashes, slowdowns, or confusion when
certain glyphs don't show (like org-modern's unicode bullets or certain
ligatures).
Ref: doomemacs/community#66
Way back, I added these three pseudo-features:
(featurep 'dynamic-modules)
(featurep 'harfbuzz)
(featurep 'jansson)
Why? Because some build features have pseudo features (like
`tty-child-frames`, `pgtk`, and `threads`), but others don't, and I
wanted more consistency around build feature detection. Years later, I
realized it wasn't used much internally and only ended up confusing
readers who didn't realize these were Doom's additions and not built
into Emacs. Emacs' idiosyncrasies may not be nice or elegant, but
they're less surprising to elisp beginners and veterans alike.
- Rely on the more efficient `global-hl-line-mode` implementation in
31.1.
- Use the new `global-hl-line-buffers` predicate variable introduced in
31.1 to implement our disable-hl-line-during-selection and major mode
white/blacklist hacks.
- Reverts hl-line-sticky-flag to its default (t), because some features
were aggressively (and erroneously) disabling hl-line (particularly
eldoc).
Treat paths as paths, rather than strings. Removes the requirements that
doom-*-dir variables end in slash (though I'll continue doing so as a
convention). Also moves a lot of cache/data into the current profile's
cache/data directories. Shouldn't actually affect anything for folks not
using Doom's profile system (yet).
Fix: #8616
Add `doom/toggle-scratch-buffer` and `doom/toggle-project-scratch-buffer`
commands that toggle scratch buffer visibility, consistent with how
`SPC o t` toggles the terminal popup.
Also extract mode determination logic into `doom--scratch-buffer-initial-mode`
helper to ensure toggle commands respect `doom-scratch-initial-major-mode`
configuration (including mode inheritance when set to `t`).
Keybindings updated to use toggle variants:
- `SPC x` (evil) / `C-c f x` (emacs) for scratch buffer
- `SPC p x` (evil) / `C-c p x` (emacs) for project scratch buffer
Fix: #8604
Make the resulting auto-save files easier to recognize when perused by
hand (in case of a fatal data loss and recovery situation), by prefixing
the hashed autosave file with the target file name.
Also updates the explanatory comment above it to better explain the
purpose of these defaults.
Also uses file-name-concat in case auto-save-list-file-prefix doesn't
end in a slash.
This doesn't actually change anything yet, unless you're using Doom's
profiles, but this data should be associated with and stored in the
current profile, rather than in the global store.
This functionality was upstreamed to Emacs in 28, given the appropriate
`auto-save-file-name-transforms` rule whose UNIQUIFY argument names a
`secure-hash` algorithm (e.g. sha1), so we no longer need our cludge.
This also fixes an issue where TRAMP was saving its auto-save files to
the current working directory, rather than `tramp-auto-save-directory`.
Fix: doomemacs/community#53
There are some cases where the upgrade process will abort (due to
failure or user input), and it then runs `doom sync` anyway. Don't do
that.
Fix: #8595
In 71eae25, TRAMP settings were moved to a new :emacs tramp module,
reverting `tramp-backup-directory-alist` and `tramp-auto-save-directory`
to their Emacs defaults for anyone not using this module (which saves
those temp files in the current working directory, which is an
undesirable default), so we set them in core again.
Fix: doomemacs/community#53
Amend: 71eae252ac
From this point on, Straight will *not* download packages from tarballs
by default. There are too many edge cases for this that catch up
beginners who have BSD tar installed and get undecipherable tar errors,
and Straight offers no fallback or easy way to change what tar
executable it uses.
Packages that have already been installed won't be affected until the
next time they are updated/reinstalled.
Users can still opt back into tarballs by adding this to
$DOOMDIR/packages.el:
(setq straight-vc-use-snapshot-installation t)
Amend: 8cdddd87d9Fix: #8530
BREAKING CHANGE: Moves ws-butler, dtrt-indent, and whitespace defaults
out of Doom's core and into a new module. ws-butler is gated behind
+trim and dtrt-indent behind +guess. Users who depend on/like these
packages will need to enable the new module and their respective
flags (which is the default going forward).
This change is motivated by an ongoing effort to slim down Doom's
core (by (re)moving non-essentials from it).
This also addresses an issue where dtrt-indent would vastly increase
load times for some major-modes (e.g. elixir-mode & elm-mode, see #7537)
by restricting it to non-project files and non-read-only buffers AND
excludign those two major modes from indent guessing.
Fix: #8516Fix: #7537
Allows the association of arbitrary envvars or variables with the build
artifacts of a package. If they change, the package is rebuilt on the
next 'doom sync'. This is a temporary measure, which is why this is not
touted as a new feature. It will be replaced in v3.
Yes, yes. I did a stupid here. I depend on the order of a hash table,
and sure enough, that came back to bite me when that changed internally
in Emacs 29. In practice, this meant packages were getting
installed/rebuilt in reverse order, which, besides some odd output
during 'doom sync' for users on 29+, didn't pose any overt issues, but
may have caused strange, inexplicable byte-code warnings/errors.
But, rather than do the smart thing and *not* do this, I do the next
best thing: procrastinate! Because the solution is non-trivial (I don't
control the hash table in question) and this is precisely the sort of
technical debt I've fixed in v3, and I'd really, *really* rather beat my
head on that wall, rather than this one.
Prior to this, we had some rudimentary retry logic for failed git clones
resulting in an empty repo, but it didn't respond to other legit
errors (like connection errors or legit remote failures). This one does,
retrying in more contexts.
Close: #8523
Co-authored-by: NightMachinery <NightMachinery@users.noreply.github.com>