From: "Thomas Voss" via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: 73463@debbugs.gnu.org
Subject: bug#73463: [PATCH] Align columns with wide characters properly
Date: Wed, 25 Sep 2024 02:23:29 +0200 [thread overview]
Message-ID: <D4EXQO3Q5G2B.2O2XVK8E3OQCI@thomasvoss.com> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 777 bytes --]
Hi all,
For a while I’ve been bugged by some behaviour in Which-Key. My font of
choice is Iosevka — a font that is quite popular — and it chooses to make
the ellipsis character 2-columns wide. This is typically not a problem,
but it causes Which-Key columns to appear misaligned as it truncates long
descriptions with the ellipsis by default when the user configures it to
use Unicode (and I rather enjoy the ellipsis).
This happens despite the following being in my init.el:
(set-char-table-range char-width-table ?… 2)
After further investigation, this appears to be due to a simple usage of
‘length’ instead of ‘string-width’. The following trivial patch attached
to this email seems to have solved this issue.
--
— Thomas
[-- Attachment #2: 0001-Align-columns-with-wide-characters-properly.patch --]
[-- Type: text/x-patch, Size: 1214 bytes --]
From b87de8beb17582608afb7e9f30e67085c5d78d7a Mon Sep 17 00:00:00 2001
From: Thomas Voss <mail@thomasvoss.com>
Date: Wed, 25 Sep 2024 02:17:49 +0200
Subject: [PATCH] Align columns with wide characters properly
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In the case that a character in takes up multple columns (such as `…'
when used as a truncation character) make sure that the columns are
still aligned properly.
* lisp/which-key.el (which-key--pad-column):
Use `string-width' instead of `length'.
Copyright-paperwork-exempt: yes
---
lisp/which-key.el | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lisp/which-key.el b/lisp/which-key.el
index 91eb05c..fb0685c 100644
--- a/lisp/which-key.el
+++ b/lisp/which-key.el
@@ -2037,7 +2037,7 @@ that width."
(mapcar (pcase-lambda (`(,key ,sep ,desc ,_doc))
(concat
(format col-format key sep desc)
- (make-string (- col-desc-width (length desc)) ?\s)))
+ (make-string (- col-desc-width (string-width desc)) ?\s)))
col-keys))))
(defun which-key--partition-list (n list)
--
2.46.1
next reply other threads:[~2024-09-25 0:23 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-25 0:23 Thomas Voss via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2024-09-25 11:57 ` bug#73463: [PATCH] Align columns with wide characters properly Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=D4EXQO3Q5G2B.2O2XVK8E3OQCI@thomasvoss.com \
--to=bug-gnu-emacs@gnu.org \
--cc=73463@debbugs.gnu.org \
--cc=mail@thomasvoss.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.