Even `emacs --batch -f kill-emacs` can take a non-trivial amount of time
to start up (0.661s on my system). This makes the two `emacs` calls in
bin/doom's shebang amount to >1s of startup time for Doom scripts (~1.5s
on my system). This change removes the second call (or at least defers
it until the after-script; at least, if $TMPDIR or $TEMP aren't set),
bringing down that time to a more bearable 0.9s.
This sacrifices the more descriptive "Can't find Emacs in your $PATH"
error message should the user set their own $EMACS, but the alternative
bash error is good enough:
$ EMACS=foo doom version
/home/$USER/.config/emacs/bin/doom: line 12: foo: command not found
I'm not doing more sophisticated checks on $EMACS, because it could be a
command (like `flatpak run org.gnu.emacs`), rather than an executable or
path, and the boilerplate to handle that, within what small space we get
in bin/doom's shebang, would be too much maintenance headache just for a
slightly better error message.
`git-commit` is no longer distributed with `magit` and no longer
declares its dependencies, causing "file missing: with-editor" and
similar errors for folks who don't have magit installed. Also, VC's
commit workflows don't utilize the mode, so there's no reason to keep it
in this module.
Ref: magit/magit@c170fcf399
Ref: #8003
Most of these lsp packages are already in `lsp-client-packages`, which
lsp-mode will eagerly load the first time `lsp-mode` is activated, so we
don't need to do it ourselves, except in cases where the package isn't
in `lsp-client-packages` (like lsp-julia).
BREAKING CHANGE: This removes the irony and rtags packages so we can
lean on LSP servers like clangd and ccls fully, which provide the same
features with much more consistency.
Close: #8049
In e0a926d, I defaulted to not using bitmaps for indent-guides, but
after some more research, I realize this slowness is more prominent on
MacOS, older PGTK builds, and (possibly) Windows, so I've opted to
re-enable bitmaps by default, unless you're on one of those
systems (except Windows; still testing that).
This change also makes the guide bars more subtle, since the default is
too distracting and colorful.
Ref: #8052
Ref: e0a926dc1e
Changing workspace is big motion so we should blink the cursor.
We can not use `+nav-flash-blink-cursor-maybe-h` as the point
is not yet in the correct buffer when the hook is triggered.
0893ede removed magit-todos from the default magit module configuration.
Users are expected to install it by themselves, if they wish to use the
package, given it's simple config.
Amend: 0893edefae
Now, uses can rebind ctrl+m by targeting [C-m] (or "<C-m>", same thing),
and it won't rebind RET. This will only work in GUI Emacs, however, and
there is no kkp support for this one.
Ref: 96d7e50f3e
Experienced users (the type to use symlinks in their projects) can add
-L back to `projectile-git-fd-args`, otherwise, its poorer UX for
beginners if Projectile indexes symlinked build artifacts (like 'result'
symlinks by Nix); i.e. things they didn't symlink themselves.
Fix: #7781
Instead of constantly checking $__DOOMSH, since I may eventually add
additional values for it (like in the cases where the doom script is
invoked by bin/doomscript, from a terminal emulator in Emacs, or future
wrappers).
c9acdb7 removes doom.cmd because it was broken in most cases. This adds
doom.ps1; an alternative script for Windows+Powershell users, which
properly initializes the state it needs. Naturally, it requires
Powershell 3+ be installed on your systems, but it can be invoked from
either cmd.exe or PowerShell.exe.
This is the first powershell script I've ever written, so I expect edge
cases (for one, shell commands passed to `exit!` will need to be guarded
against the environment).
This also requires emacs.exe be your $PATH, however, unless you set
$EMACS to its path first. E.g.
$env:EMACS = "C:\Program Files\Emacs\emacs-29.4\bin\emacs.exe"
That said, if you use WSL2, you're still far better off using the bash
script (bin/doom).
Ref: c9acdb72a4