emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/company 23f44eba28 3/3: Merge pull request #1387 from n


From: ELPA Syncer
Subject: [elpa] externals/company 23f44eba28 3/3: Merge pull request #1387 from nagyation/master
Date: Fri, 30 Jun 2023 21:57:29 -0400 (EDT)

branch: externals/company
commit 23f44eba28ec4736b95117a5f0c07265659245d9
Merge: 8a78f32001 5c5645ee7a
Author: Dmitry Gutov <dmitry@gutov.dev>
Commit: GitHub <noreply@github.com>

    Merge pull request #1387 from nagyation/master
    
    company--posn-col-row: fix wrong col value with RTL direction
---
 company.el              |  4 ++++
 test/frontends-tests.el | 16 ++++++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/company.el b/company.el
index bcbe3a5057..e8075a3145 100644
--- a/company.el
+++ b/company.el
@@ -1061,6 +1061,10 @@ means that `company-mode' is always turned on except in 
`message-mode' buffers."
         (row (cdr (or (posn-actual-col-row posn)
                       ;; When position is non-visible for some reason.
                       (posn-col-row posn)))))
+    ;; posn-col-row return value relative to the left
+    (when (eq (current-bidi-paragraph-direction) 'right-to-left)
+      (let ((ww (window-body-width)))
+        (setq col (- ww col))))
     (when (bound-and-true-p display-line-numbers)
       (cl-decf col (+ 2 (line-number-display-width))))
     (cons (+ col (window-hscroll)) row)))
diff --git a/test/frontends-tests.el b/test/frontends-tests.el
index 9a0a355f9c..a824dbd903 100644
--- a/test/frontends-tests.el
+++ b/test/frontends-tests.el
@@ -59,6 +59,22 @@
         (should (string= (overlay-get ov 'company-display)
                          "  123 \nc 45  c\nddd\n")))))))
 
+(ert-deftest company-pseudo-tooltip-show-at-point-RTL ()
+  :tags '(interactive)
+  (with-temp-buffer
+    (save-window-excursion
+    (set-window-buffer nil (current-buffer))
+    (setq bidi-display-reordering t)
+    (setq bidi-paragraph-direction 'right-to-left)
+    (insert "انا مثال للكتابة بالعربية")
+    (search-backward "مثال")
+    (let ((company-candidates-length 2)
+          (company-candidates '("123" "45"))
+          (company-backend 'ignore))
+      (company-pseudo-tooltip-show-at-point (point) 0)
+      (let ((ov company-pseudo-tooltip-overlay))
+        (should (eq (overlay-get ov 'company-column) 5)))))))
+
 (ert-deftest company-pseudo-tooltip-edit-updates-width ()
   :tags '(interactive)
   (with-temp-buffer



reply via email to

[Prev in Thread] Current Thread [Next in Thread]