A convention on many text editors and applications is to make RET
auto-indent new lines. That has already been done. Another convention is
for S-RET to insert an unindented line; this commit adds this convention
to Doom.
Relevant to #3694
+ Fixes: doom-unpropertize-kill-ring-h ran too late to affect the value
of kill-ring that gets saved.
+ Adds: now persist mark-ring and global-mark-ring (doesn't affect evil
users)
Also refactors +org-make-last-point-visible-h to be more realistic about
when it should and shouldn't expand the hidden region at point. Since
org-agenda-inhibit-startup is now non-nil by default it makes no sense
to test it (and it was a poor choice to begin with).
Plus, instead of using outline's API, better to use org's, even if
they're aliases or wrappers. Less of a maintenance burden.
Ultimately, I didn't find this useful. Unifying n/N and ;/, was
inconvenient when you wanted to repeat each kind of search
independently (which happened more often than I had anticipated).
What's more, it introduced another point of confusion for new users
coming from vim. In the end, it's simply better to do as vim does.
Fixes#3689
The problem is that at this point, flycheck-mode might not be active
yet. Calling flycheck-disable-checker always call (flycheck-buffer)
which would result in an error: (user-error "Flycheck mode disabled")
If a load call occurs within the autoloads file and throws a
file-missing error, it would be misleading to say 'doom sync' will fix
it, so forward the real error!
I had incorrectly assumed tramp-own-remote-path would prepend the remote
system's PATH to tramp's exec-path, but it does not, it prepends your
local machine's PATH onto it. tramp-default-remote-path was what I was
looking for and it is already in tramp-remote-path by default.
If tramp can't find a program on the remote it's because either the
remote doesn't support getconf (which tramp uses to scrape the remote
PATH), or your PATH on the remote has been incorrectly configured.
Doom highlights incorrect indentation (i.e. tabs if indent-tabs-mode =
nil, spaces if indent-tabs-mode = t). This used to be disabled in
read-only buffers (e.g. built-in libraries), making style conflicts hard
to see. No more! Now you can see the mess for yourself!
This should at least report what function invoked the error.
doom-first-input-hook was especially problematic because it runs on
pre-command-hook, which Emacs is very protective of. It will smother
errors that arise from it and auto-remove the offending hook. This
self-correction is nice for avoiding a broken Emacs, but it makes it
tough to debug those issues.
`lsp-deferred` calls `lsp` and `lsp` seems to do something expensive
whether or not lsp-mode is already active. Over TRAMP, this is much too
expensive, so we no-op lsp-deferred if lsp-mode is already active.
I took this for granted:
Works:
export PATH=~/.emacs.d/bin:$PATH
export PATH="$HOME/.emacs.d/bin:$PATH"
Does not work:
export PATH="~/.emacs.d/bin:$PATH"