Prevent which-key faces from over-extending during formatting

* lisp/which-key.el (which-key--pad-column): Instead of
injecting the description using a left-aligned format-string (%-[n]s),
we manually add the necessary padding so that the text
properties don't extend beyond the description.  This allows us
to use a face with a background without it extending until the
end of a column.

See also 63a6fb2a7a for a similar
issue with Quick Help.
This commit is contained in:
Philip Kaludercic 2024-06-18 10:40:01 +02:00
parent e0871780ac
commit e0190c4fb8
No known key found for this signature in database

View file

@ -2005,10 +2005,12 @@ that width."
col-keys 2
which-key-min-column-description-width)))
(col-width (+ col-key-width col-sep-width col-desc-width))
(col-format (concat "%" (int-to-string col-key-width)
"s%s%-" (int-to-string col-desc-width) "s")))
(col-format (concat "%" (int-to-string col-key-width) "s%s%s")))
(cons col-width
(mapcar (lambda (k) (apply #'format col-format k))
(mapcar (pcase-lambda (`(,key ,sep ,desc ,_doc))
(concat
(format col-format key sep desc)
(make-string (- col-desc-width (length desc)) ?\s)))
col-keys))))
(defun which-key--partition-list (n list)