Subject: Re: bug#64101: 29.0.91; Eglot inlay hints rendered out of order

From: Stefan Monnier <[email-masked]>
Date: Sun, 18 Jun 2023 10:36:13 -0400

>    ;; This buffer is for text that is not saved, and for Lisp evaluation.
>    ;; To create a file, visit it with C-x C-f and enter text in its buffer.
>     
>    (progn
>      (mapc #'delete-overlay (overlays-in (point-min) (point-max)))
>      (let ((a (make-overlay 10 20))
>            (b (make-overlay 10 20)))
>        (overlay-put a 'after-string (propertize "aaaa" 'face 'highlight))
>        (overlay-put b 'after-string (propertize "bbbb" 'face 'speedbar-highlight-face))
>        ;; (overlay-put a 'priority 1)
>        ;; (overlay-put b 'priority 2)
>        (overlay-put a 'priority `(nil . 1))
>        (overlay-put b 'priority `(nil . 2))
>        ))
>
> This displays AAAABBBB eventually, but I would expect it to show
> BBBBAAAA, which is what I get if I use "primary" priorities.

Hmm... I see that the (PRIMARY . SECONDARY) priority format is only
understood by `make_sortvec_item`, but not by
xdisp.c:RECORD_OVERLAY_STRING nor by buffer.c:record_overlay_string.

> Anyway, can you explain this?

[ Revised answer: ]  Yes.

        Stefan