GNU bug report logs - #72701
eglot crash when project-files-relative-names t

Previous Next

Package: emacs;

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


View this message in rfc822 format

From: Ship Mints <shipmints <at> gmail.com>
To: 72701 <at> debbugs.gnu.org
Cc: Dmitry Gutov <dmitry <at> gutov.dev>, João Távora <joaotavora <at> gmail.com>
Subject: bug#72701: eglot crash when project-files-relative-names t
Date: Thu, 22 Aug 2024 13:04:23 -0400
[Message part 1 (text/plain, inline)]
Greetings, just want to make sure this fix doesn't get lost...

-Stephane

On Sun, Aug 18, 2024 at 11:46 AM Ship Mints <shipmints <at> gmail.com> 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:
>
>          (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))))))
>
> -Stephane
>
[Message part 2 (text/html, inline)]

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.