On Thu, Feb 23, 2023 at 5:17 PM Eli Zaretskii wrote: > > > From: João Távora > > Date: Thu, 23 Feb 2023 16:09:24 +0000 > > Cc: dalal.chinmay.0101@gmail.com, emacs-devel@gnu.org, dimitri@belopopsky.com, > > luangruo@yahoo.com > > > > > If there's a change in A that affects B, jit-lock will call > > > fontification-functions in both A and B, each one when it's about to > > > display the corresponding window. > > > > Sure, but you're in charge of coding up the "affection" by asking > > the LSP server. In other words, only the LSP server knows that the > > change in A affects B. You must assume that it does and ask it "Hey LSP > > server, given that I've just changed document A, in your document B from > > 42 to 420 is are there any new or different inlay hints you'd like to > > give me?" jit-lock cannot foresee that upfront, it will only act on B's > > display if B's buffer is changed. > > That's no for jit-lock to do. And I don't see how it could be > relevant to the issue we are discussing. How do you do this now? I don't. I was just pointing out that jit-lock by itself doesn't solve this A -> B dependency, which you seemed to suggest it does when you wrote: > > If there's a change in A that affects B, jit-lock will call > > fontification-functions in both A and B, each one when it's about to > > display the corresponding window. So I agree with you shouldn't be continuing the discussion of this topic: it is for later. > That might be so, but one problem it does NOT have is missing the > cases when you MUST ask the LSP server, because something is going to > change on display. That's true. But then so does the other more naive implementation which you get when you set eglot-lazy-inlay-hints to nil, and I'm not sure which one is more performance. > window-scroll-functions cannot promise that, since > they are only called "when the window is scrolled", and there's more > to that condition than meets the eye, believe me. I believe you. But as far as I can tell so far, it's the least imperfect of the methods, and I haven't seen demonstrations of problems so far, only your speculation of hypothetical problems. Which again, I believe in, but I would like to measure the actual problems quantitatively and qualitatively to make a good decision. I'd love to switch over to the jit-lock implementation as it has potential to be much neater. But I can't seem to get it to not over-request stuff. I attach the patch I've been trying, and it's clearly got some thinkos when you test it. It doesn't help that `window-start` and `window-end` aren't -- apparently -- reliable when called from a jit-lock function. João