On Fri, Jan 6, 2023, 06:17 Yuan Fu 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 João