summaryrefslogtreecommitdiff
path: root/reviews/emacs/hype.org
diff options
context:
space:
mode:
Diffstat (limited to 'reviews/emacs/hype.org')
-rw-r--r--reviews/emacs/hype.org66
1 files changed, 60 insertions, 6 deletions
diff --git a/reviews/emacs/hype.org b/reviews/emacs/hype.org
index 747da3d..cf57734 100644
--- a/reviews/emacs/hype.org
+++ b/reviews/emacs/hype.org
@@ -1,9 +1,22 @@
Emacs's NEWS files are useful as a searchable reference, but they can
-be overwhelming as an entry point. In this file, I'm keeping track of
-the changes /I/ am excited about.
+be overwhelming as an entry point to a new release. In this file, I'm
+keeping track of the changes /I/ am excited about.
* 30
-** ERC
-*** ~visual-line-mode~ integration
+** =:core= promotions
+*** visual-wrap (was adaptive-wrap): soft & mode-sensitive wrap prefixes
+This package enhances the way Emacs displays continuation lines.
+Unpacking that word salad of a heading:
+
+- wrap prefixes :: strings that Emacs prepends to continuation lines;
+- soft :: these strings are intangible decoration, not actual buffer
+ content;
+- mode-sensitive :: leverages the mode's [[info:emacs#Adaptive Fill][adaptive-fill settings]] to
+ determine the "proper" prefix, i.e. the same prefix you would get by
+ hard-wrapping with =M-q=.
+*** which-key: key binding discovery (bug#68929)
+** Applications
+*** ERC
+**** ~visual-line-mode~ integration
In previous versions, I would take =fill= off ~erc-modules~ and enable
~visual-line-mode~ in order to get reflowable windows; this would [[file:~/memory-leaks/itches/emacs/tracker.org::*+Make timestamps robust vs window width changes+][mess
with right-aligned timestamps]], however.
@@ -13,8 +26,47 @@ As of ERC 5.6, setting ~erc-fill-function~ to ~'erc-fill-wrap~ enables
=wrap-prefix= & margin trickery to (a) align nicks and messages (b)
make messages reflowable (c) keep timestamps firmly stuck to the right
margin.
-** shr
-*** ~shr-fill-text~
+*** shr
+**** ~shr-fill-text~
+Set to nil to completely disable shr's line-wrapping. This lets users
+leverage ~visual-line-mode~ to get all the benefits of
+display-engine-backed wrapping: text is reflowed on the fly as windows
+are resized or text is rescaled.
+
+Tables still use rigid wrapping though; this can be circumvented by
+remapping =<table>= tags:
+
+#+begin_src elisp
+(pcase-dolist (`(,tag . ,shr-function)
+ '((table . shr-tag-div)
+ (thead . shr-tag-div)
+ (tbody . shr-tag-div)
+ (tr . shr-tag-ul)
+ (th . shr-tag-li)
+ (td . shr-tag-li)))
+ (setf (alist-get tag shr-external-rendering-functions) shr-function))
+#+end_src
+
+Eww automatically enables ~visual-line-mode~ when it detects that
+~shr-fill-text~ is =nil=; Gnus does not yet, and so requires some
+hand-holding to take full-advantage of ~visual-line-mode~:
+
+#+begin_src elisp
+;; Enable visual-line-mode after rendering an article:
+(add-hook 'gnus-article-prepare-hook 'visual-line-mode)
+
+;; This is to go e v e n f u r t h e r b e y o n d.
+(setopt
+ ;; Never hard-wrap any lines.
+ gnus-treat-fill-article nil
+ gnus-treat-fill-long-lines nil
+ ;; Re-assemble headers into a single line.
+ gnus-article-unfold-long-headers t
+ gnus-treat-fold-headers nil
+ ;; Unfurl format=flowed emails.
+ fill-flowed-display-column most-positive-fixnum)
+#+end_src
+
** Programming features
*** ~etags-regen-mode~
Not sure how straightforward it is to set up for complex projects,
@@ -23,6 +75,8 @@ subdirectories, and one source file uses symbols from multiple TAGS
files.
Sounds useful though.
+*** tree-sitter
+**** outline integration (bug#68824)
** UI
*** Completion
**** ~completion-preview-mode~