Subject: bug#70036: 30.0.50; Move file-truename to the C level

From: Eli Zaretskii <[email-masked]>
Date: Sat, 30 Mar 2024 15:45:39 +0300

> From: Felician Nemeth <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>,  [email-masked]
> Date: Sat, 30 Mar 2024 10:46:00 +0100
> 
> I think using find-buffer-visiting instead of get-file-buffer and
> file-truename instead of expand-file-name in Eglot is problematic.
> Let's say we have these files:
> 
> /project/a.c
> /project/a.h -> /other/a.h
> 
> Eglot will communicate these file names to the LSP server: /project/a.c
> and /other/a.h.  Then the server cannot "associate" a.h with a.c.
> Additionally, a.h will be outside of the LSP workspace.
> 
> This indeed confuses clangd a bit: it only takes into account the
> changes of buffer a.h when it is saved.  (Because it assumes
> /project/a.h is not opened in the editor.)

Can LSP servers resolve symlinks?  If they can, then expand-file-name
is TRT, AFAIU.