Subject: bug#70724: 29.2.50; eglot-reconnect errors when the project is deleted

From: Spencer Baugh <[email-masked]>
Date: Thu, 21 Nov 2024 14:55:37 -0500

Spencer Baugh <[email-masked]> writes:
> João Távora <[email-masked]> writes:
>> Anyway, this patch is slightly simpler (same idea)
>>
>> diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
>> index e5c27de81fc..1e9a8a36343 100644
>> --- a/lisp/progmodes/eglot.el
>> +++ b/lisp/progmodes/eglot.el
>> @@ -1518,13 +1518,11 @@ eglot--connect
>>    "Connect to MANAGED-MODES, LANGUAGE-IDS, PROJECT, CLASS and CONTACT.
>>  This docstring appeases checkdoc, that's all."
>>    (let* ((default-directory (project-root project))
>> -         (nickname (project-name project))
>> -         (readable-name
>> -          (progn
>> -            (unless (file-exists-p default-directory)
>> -              ;; could happen because of bug#70724 or just because
>> -              (eglot--error "Project '%s' is gone!" nickname))
>> -            (format "EGLOT (%s/%s)" nickname managed-modes)))
>> +         (nickname (if (file-exists-p default-directory)
>> +                       (project-name project)
>> +                     ;; could happen because of bug#70724 or just because
>> +                     (eglot--error "Project at `%s' is gone!"
>> default-directory)))
>> +         (readable-name (format "EGLOT (%s/%s)" nickname managed-modes))
>>           server-info
>>           (contact (if (functionp contact) (funcall contact) contact))
>>           (initargs
>
> That looks good to me.

Actually, wait, sorry, neither this nor your initial revised patch fixes
this bug at all.  The process sentinel still errors because
eglot-reconnect errors.  We need to actually not try to reconnect when
the project is gone.