Subject: bug#60570: 29.0.60; Eglot+pyright freeze Emacs when edit a single file in Home director

From: Yuan Fu <[email-masked]>
Date: Sat, 7 Jan 2023 14:38:54 -0800

> On Jan 6, 2023, at 2:29 AM, João Távora <[email-masked]> wrote:
> 
> On Fri, Jan 6, 2023, 06:17 Yuan Fu <[email-masked]> wrote:
> 
> > I use a custom function eglot-soft-ensure which only enables eglot if
> > there is already a LSP server running for the current project. This way
> > eglot doesn’t auto-start in which files that I don’t want it to start.
> >
> > (defun eglot-soft-ensure ()
> >   "Turn on eglot when there is an exising server for the current project."
> >   (require 'eglot)
> >   (when-let* ((project (project-current))
> >               (eglot-server (gethash project eglot--servers-by-project)))
> >     (eglot-ensure)))
> 
> Hello Yuan,
> 
> I must me missing something, because I would say you can just 
> get rid of eglot-soft-ensure. I can't understand what it is adding 
> on top of the normal Eglot behaviour. From the manual:
> 
> "When you visit a file under the same project, whether an existing or a 
> new file, its buffer is automatically added to the set of buffers managed by
> Eglot, and the server which supports the buffer’s major-mode is notified 
> about that. Thus, visiting a non-existent file /home/joe/projects/fooey/lib/y.foo 
> in the above example will notify the server of the *.foo files’ language 
> that a new file was added to the project, even before the file appears 
> on disk. The special Eglot minor mode is also turned on automatically 
> in the buffer visiting the file."
> 
> https://joaotavora.github.io/eglot/#Eglot-and-Buffers

Oh! I must have done something wrong that prompted me to write eglot-soft-ensure. But I don’t remember :-) Sorry for the misinformation!

Yuan