From: Philip Kaludercic Date: Tue, 18 Jun 2024 08:40:01 +0000 (+0200) Subject: Prevent which-key faces from over-extending during formatting X-Git-Tag: archive/raspbian/1%30.1+1-3+rpi1^2~2^2~20^2~983^2~3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=e0190c4fb80182e4436f394213d46fafebc03469;p=emacs.git 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 63a6fb2a7a02ca88835c3fd473894d3b7d39ff15 for a similar issue with Quick Help. --- diff --git a/lisp/which-key.el b/lisp/which-key.el index a2355527dd3..a4720040f7a 100644 --- a/lisp/which-key.el +++ b/lisp/which-key.el @@ -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)