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@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