ws-butler only strips trailing spaces on lines that have been modified.
+ ws-butler is disabled if editorconfig enables
trim_trailing_whitespace, which resorts to delete-trailing-whitespace
instead.
+ Updates doom|(enable|disable)-delete-trailing-whitespace hooks to use
ws-butler-mode.
Also adds doom|disable-delete-trailing-whitespace hook, which can be
used to disable this behavior on a per-buffer basis. If you want to turn
off this global behavior:
(remove-hook 'write-file-functions #'delete-trailing-whitespace)
+ Instead of remapping delete-backward-char to doom/delete-backward-char
(which was unreliable, depending on the mode), it is now overridden
with it, without sacrificing its original functionality. The new
behavior is as follows:
+ Fall back to sp-backward-delete-char when it makes sense to delete
the adjacent pair: {|} => |
+ Collapse an indented pair block, if at bolp in between: {
|
} => {|}
+ Refresh a pair's :post-handlers when deleting into pair: {
|
} => {|} => {
|
} (can be repeated)
+ When cursor is preceded by whitespace, delete in increments of
tab-width.
+ newline-and-indent has been advised to:
+ Only newline when in a string.
+ Continue comment lines consistently (needs more testing!)
+ Falls back to basic newline-and-indent, without affecting whitespace
in the origin line (it would originally delete-horizontal-space
before creating a new line).
+ Incorporates a set of reasonable defaults for brace expansion on RET
or SPC, as mentioned in #343 and #413.
Affects #343, #413
+ New command: doom/popup-kill-all
+ Update references to :fixed (now named :static)
+ Simplified doom-popup-p; moved :static filtering to
doom-popup-windows.
+ New :autofit popup property, which resizes the popup to fit its
content, if possible.
+ doom-popup-windows now takes one boolean argument: whether to ignore
static popups or not.
+ enable lexical-scope everywhere (lexical-binding = t): ~5-10% faster
startup; ~5-20% general boost
+ reduce consing, function calls & garbage collection by preferring
cl-loop & dolist over lambda closures (for mapc[ar], add-hook, and
various cl-lib filter/map/reduce functions) -- where possible
+ prefer functions with dedicated opcodes, like assq (see byte-defop's
in bytecomp.el for more)
+ prefer pcase & cond (faster) over cl-case
+ general refactor for code readability
+ ensure naming & style conventions are adhered to
+ appease byte-compiler by marking unused variables with underscore
+ defer minor mode activation to after-init, emacs-startup or
window-setup hooks; a customization opportunity for users + ensures
custom functionality won't interfere with startup.