[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