[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacs-29 3d930b928fe: Eglot: fix relative position of coinciding inlay h
From: |
João Távora |
Subject: |
emacs-29 3d930b928fe: Eglot: fix relative position of coinciding inlay hint overlays (bug#64101) |
Date: |
Sat, 17 Jun 2023 10:24:22 -0400 (EDT) |
branch: emacs-29
commit 3d930b928fe683d380809d53257017022f74aae9
Author: João Távora <joaotavora@gmail.com>
Commit: João Távora <joaotavora@gmail.com>
Eglot: fix relative position of coinciding inlay hint overlays (bug#64101)
Only seems to happen on certain platforms, like Mac OS. Reason
unknown reason so far, but this defensive fix seems safe.
* lisp/progmodes/eglot.el (eglot--update-hints-1): Explicitly put
priority in inlay hint overalys.
---
lisp/progmodes/eglot.el | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index df8f5f64829..352a6ffd6b0 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -3644,8 +3644,9 @@ If NOERROR, return predicate, else erroring function."
(if peg-after-p
(make-overlay (point) (1+ (point)) nil t)
(make-overlay (1- (point)) (point) nil nil nil)))
- (do-it (label lpad rpad firstp)
- (let* ((tweak-cursor-p (and firstp peg-after-p))
+ (do-it (label lpad rpad i)
+ (let* ((firstp (zerop i))
+ (tweak-cursor-p (and firstp peg-after-p))
(ov (make-ov))
(text (concat lpad label rpad)))
(when tweak-cursor-p (put-text-property 0 1 'cursor 1
text))
@@ -3656,17 +3657,18 @@ If NOERROR, return predicate, else erroring function."
(1 'eglot-type-hint-face)
(2 'eglot-parameter-hint-face)
(_ 'eglot-inlay-hint-face))))
+ (overlay-put ov 'priority i)
(overlay-put ov 'eglot--inlay-hint t)
(overlay-put ov 'evaporate t)
(overlay-put ov 'eglot--overlay t))))
- (if (stringp label) (do-it label left-pad right-pad t)
+ (if (stringp label) (do-it label left-pad right-pad 0)
(cl-loop
for i from 0 for ldetail across label
do (eglot--dbind ((InlayHintLabelPart) value) ldetail
(do-it value
(and (zerop i) left-pad)
(and (= i (1- (length label))) right-pad)
- (zerop i))))))))))
+ i)))))))))
(jsonrpc-async-request
(eglot--current-server-or-lose)
:textDocument/inlayHint
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- emacs-29 3d930b928fe: Eglot: fix relative position of coinciding inlay hint overlays (bug#64101),
João Távora <=