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>
GNAT Project modes (`gpr-mode` and `gpr-ts-mode`) exist to handle .gpr files.
These modes are now used instead of the Ada major mode.
Lines may need to be re-indented when RET is pressed. This is to handle cases
of incomplete syntax and ambiguity in what may be entered when an empty line is
initially indented. Re-indenting after text has been entered corrects
incorrectly guessed initial indentation. To accommodate this scenario, RET is
remapped to `reindent-then-newline-and-indent`.
Also updates documentation to reflect these changes.
While not strictly necessary (because apheleia uses
`provided-mode-derived-p` for its major mode tests), many *-ts-modes
didn't declare themselves children of their base modes until 30.1+.
It's too much hassle to claim either 'SPC b s' or 'SPC f s' for the
saving-without-formatting command (and to justify why one over the
other), so porque no los dos? Plus, I now leave 'C-x C-s' (save-buffer)
alone; principle of least surprise and what not.
Fix: #8460
Ref: https://xkcd.com/1172
BREAKING CHANGE: This finally removes org-roam v1, which has been
deprecated for nearly 5 years (since 5ef733b). Most users should already
be on it. v2 has a migration wizard for anyone still on v1, which will
kick in if it detects a v1 roam db.
The default editorconfig implementation was changed upstream to the
elisp one, but — for the principle of least surprise — I believe it
should be the other way around: if the user has the native binary
installed, they're likely expecting it to be used; it will fall back to
the elisp implementation otherwise.
Also updates documentation to reflect these changes and removes the
doctor warning about a missing binary.
Ref: editorconfig/editorconfig-emacs#209
More recent versions of ob-python (Org 9.7+) calculates the python
command from `python-shell-interpreter` and
`python-shell-interpreter-args`, effectively rendering this block
(mostly) redundant. It still leaves
`org-babel-python-command-nonsession` to be changed, but I think I'll
leave that to users to set, for simplicity's sake.
What's more, users who repin Org to an older version (predating
bzg/org-mode@9239b0e8d1) will see void-variable errors for this new
variable.
Fix: #8509
In case doom-profile-data-dir doesn't end with a slash (which is a
stipulation I won't be enforcing for Doom's dir variables in v3 and
beyond).
Fix: #8511
Neither lsp-mode nor eglot work over tramp with direct-async on, but I
don't want to disable direct-async globally just for lsp-mode/eglot
users, so I try to disable it solely for their stdio processes.
More testing is needed to weed out edge cases that may result from this.
Ref: emacs-lsp/lsp-mode#4573
Fix: #8510
The scripts directory was removed from org-contrib back in Org 9.5. Now,
there is no way to resolve the "correct" location of these jar paths
without cloning the entirety of Worg, which is too heavy a dependency to
manage for an unmaintained package.