GNU bug report logs -
#72701
eglot crash when project-files-relative-names t
Previous Next
Reported by: Ship Mints <shipmints <at> gmail.com>
Date: Sun, 18 Aug 2024 15:47:02 UTC
Severity: normal
Done: Dmitry Gutov <dmitry <at> gutov.dev>
Bug is archived. No further changes may be made.
Full log
Message #20 received at 72701 <at> debbugs.gnu.org (full text, mbox):
Hi!
On 18/08/2024 18:43, Ship Mints wrote:
> project-files-relative-names was introduced a few months ago, so it's no
> surprise that there are some side effects when set.
>
> This affects the handler for workspace/didChangeWatchedFiles. The result
> is that dirs-to-watch...
>
> (dirs-to-watch
> (delete-dups (mapcar #'file-name-directory
> (project-files
> (eglot--project server))))))
>
> ...is nil when project-files-relative-names is t, due to
> file-name-directory failing to parse the directories it was expecting.
> This results in file-readable-p failing with a nil dir:
You're not really supposed to customize it as an end user (or at least
not yet) - the caller code either sets it to t to indicate support for
relative names, or not.
> (watch-dir (dir)
> (when-let ((probe
> (and (file-readable-p dir)
>
> One solution which I've tested is simply the defensive:
>
> (project-files-relative-names nil) ; add this
> (dirs-to-watch
> (delete-dups (mapcar #'file-name-directory
> (project-files
> (eglot--project server))))))
...that said, someday the default value of this var will be flipped, and
some changes like that might be needed.
The relative version is a bit faster, though, so maybe Eglot could
switch to relative names too. If it makes sense.
This bug report was last modified 254 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.