python-ts-mode and bash-ts-mode are not packages or features, so
we can't use them in a use-package expression.
Since we can't create use-package expressions for them, just set
up the requires variables in the treesit use-package expression.
Some of the init.el setup code moved to early-init.el to allow loading
our init modules in early init.
Loading the native comp init module in init.el set the cache directory variable
too late and resulted in the original directory still being populated
with eln files.
Themes in Emacs can be loaded on top of each other, allowing to easily
customize or override aspects of other themes, which I did not realize
at the time of creating the custom-wombat theme! Badgar adds a few
small tweaks, like setting highlight-indentation colors, making the
fringe match the background, and highlighting the current line when
using line-number-mode.
Rustdoc does not respect "CARGO_TARGET_DIR" and instead uses "TMPDIR"
or /tmp. On systems that mount /tmp with "noexec" this breaks doc
tests, since they can't be executed.
The old display-buffer-alist thing did not work like I expected it to,
so we removed it.
Instead of trying to update display-buffer-alist
when the screen resizes via a hook, we just create our own display function that
can be used in display-buffer-alist directly. The function takes a
"which-side" property in the alist, the property holds a function that returns
which side the new buffer will snap to when invoked. The display
function then creates a new alist with the side property and any other
properties were passed in, and calls display-buffer-in-side-window
with the new alist.
This allows us to use this function as if it were
display-buffer-in-side-window, but with an extra property to decide
which side the window snaps to each time the function is invoked. This
is useful if you want side windows to snap to different parts of the
screen based on the current size of the frame, or anything else.