[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/boxy 5ff0999 02/10: Add support for chinese characters
From: |
ELPA Syncer |
Subject: |
[elpa] externals/boxy 5ff0999 02/10: Add support for chinese characters in tooltip |
Date: |
Fri, 15 Oct 2021 10:57:10 -0400 (EDT) |
branch: externals/boxy
commit 5ff0999ea05533be36e3e69bb9c5e3e02836f9fc
Author: Tyler Grinn <tylergrinn@gmail.com>
Commit: Tyler Grinn <tylergrinn@gmail.com>
Add support for chinese characters in tooltip
---
boxy.el | 37 ++++++++++++++++++++-----------------
tests/boxy-test-visual.el | 32 ++++++++++++++++++++++++++++++++
2 files changed, 52 insertions(+), 17 deletions(-)
diff --git a/boxy.el b/boxy.el
index 04c9089..9087b52 100644
--- a/boxy.el
+++ b/boxy.el
@@ -1625,35 +1625,38 @@ characters if possible."
(rows (split-string content "\n"))
(height (length rows))
(width (+ 2 (min boxy--tooltip-max-width
- (apply #'max 0 (mapcar #'length rows)))))
+ (apply #'max 0 (mapcar #'string-width rows)))))
(top (if (< (- cur-line 2 height) min-line)
(+ cur-line 2)
(- cur-line 1 height)))
(left (if (> (+ cur-column width 1) max-column)
(- max-column width 1)
cur-column))
- overlay overlays)
+ overlays)
(dolist (str rows)
- (let* ((pos (save-excursion
- (forward-line (- top (line-number-at-pos)))
- (let ((inhibit-read-only t))
- (move-to-column left t))
- (point)))
- (remaining-chars (save-excursion
- (goto-char pos)
- (- (save-excursion
- (end-of-line)
- (current-column))
- (current-column)))))
+ (let ((left-margin 0)
+ start end overlay cur-column)
+ (save-excursion
+ (let ((inhibit-read-only t))
+ (forward-line (- top (line-number-at-pos)))
+ (move-to-column left t)
+ (setq cur-column (current-column))
+ (if (= cur-column left)
+ (setq start (point))
+ (setq left-margin (- cur-column left))
+ (setq start (- (point) (- cur-column left))))
+ (move-to-column (+ left width) t)
+ (setq cur-column (current-column))
+ (if (= cur-column (+ left width))
+ (setq end (point))
+ (setq end (- (point) (- cur-column left))))))
(setq str (format
(concat " %-" (number-to-string (- width 2)) "s ")
(truncate-string-to-width str boxy--tooltip-max-width nil
nil t)))
- (when (= 0 remaining-chars)
- (save-excursion (goto-char pos) (let ((inhibit-read-only t)) (insert
" ")))
- (setq remaining-chars 1))
- (setq overlay (make-overlay pos (+ pos (min remaining-chars width))))
+ (setq overlay (make-overlay start end))
(overlay-put overlay 'face boxy--tooltip-face)
(overlay-put overlay 'display `((margin nil) ,str))
+ (overlay-put overlay 'before-string (make-string left-margin ?\s))
(push overlay overlays)
(setq top (+ top 1))))
(save-excursion (boxy-mode-recalculate-box-ring))
diff --git a/tests/boxy-test-visual.el b/tests/boxy-test-visual.el
new file mode 100644
index 0000000..fb1a523
--- /dev/null
+++ b/tests/boxy-test-visual.el
@@ -0,0 +1,32 @@
+;;; boxy-test-chinese.Eli --- Visual tests for boxy -*- lexical-binding: t -*-
+
+;; Copyright (C) 2021 Free Software Foundation, Inc.
+
+;; Author: Tyler Grinn <tylergrinn@gmail.com>
+
+;;; Commentary:
+;;
+;; These tests must be evaluated manually
+;;
+
+;;; Code:
+
+;;;; Tests
+
+;; Check that the tooltip for 你好 shows correctly
+(let* ((world (boxy-box))
+ (greeting (boxy-box :name "我叫泰勒" :margin-y 0))
+ (hello (boxy-box :name "你好" :rel "in" :tooltip "你好\n我叫泰勒")))
+ (boxy-add-next greeting world)
+ (boxy-add-next hello greeting)
+ (boxy-pp world))
+
+;; Check that the tooltip for 你好 shows correctly
+(let* ((world (boxy-box))
+ (greeting (boxy-box :name "我叫泰勒" :margin-y 0))
+ (hello (boxy-box :name "你好" :rel "in" :tooltip "你好\n我叫泰勒"))
+ (right (boxy-box :name "右边 " :rel "to the right of")))
+ (boxy-add-next greeting world)
+ (boxy-add-next hello greeting)
+ (boxy-add-next right greeting)
+ (boxy-pp world))
- [elpa] externals/boxy updated (bda3f52 -> 888e78c), ELPA Syncer, 2021/10/15
- [elpa] externals/boxy 7f5d955 04/10: Typo in boxy--add-matching, ELPA Syncer, 2021/10/15
- [elpa] externals/boxy f6bc713 06/10: Refactoring, ELPA Syncer, 2021/10/15
- [elpa] externals/boxy 888e78c 10/10: Merge branch 'next' into 'main', ELPA Syncer, 2021/10/15
- [elpa] externals/boxy 5ff0999 02/10: Add support for chinese characters in tooltip,
ELPA Syncer <=
- [elpa] externals/boxy 7a04171 07/10: Added more tooltip test cases, ELPA Syncer, 2021/10/15
- [elpa] externals/boxy a12239a 08/10: Make world dirty after showing tooltip, ELPA Syncer, 2021/10/15
- [elpa] externals/boxy d88b495 03/10: Go to first marker first, then cycle, ELPA Syncer, 2021/10/15
- [elpa] externals/boxy aa6a077 01/10: Added variable boxy-tooltip-show-function, ELPA Syncer, 2021/10/15
- [elpa] externals/boxy b1a67f1 05/10: Removed boxy--boxes, ELPA Syncer, 2021/10/15
- [elpa] externals/boxy c6f0d05 09/10: Bump version, ELPA Syncer, 2021/10/15