On Mon, Oct 24, 2022, 05:38 Stephen Leake wrote: > See bug#58745; there's a patch included. Report duplicated here: > > I'm calling `eglot' from lisp. The doc string says the first argument > `managed-major-mode' is an atom, not a list. But it is passed to > eglot--connect as the first argument, which is expected to be a list of > major modes. When called interactively, `managed-major-mode' is set by > (eglot--guess-contact t), which returns a list. > > So when not interactive, `eglot' must convert `managed-major-mode' into > a list: > > ------------------- > > [2. text/x-patch] > diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el > index 71001ba680..dee88db022 100644 > --- a/lisp/progmodes/eglot.el > +++ b/lisp/progmodes/eglot.el > @@ -1078,6 +1078,8 @@ eglot > > INTERACTIVE is t if called interactively." > (interactive (append (eglot--guess-contact t) '(t))) > + (unless (listp managed-major-mode) > + (setq managed-major-mode (list managed-major-mode))) > (let* ((current-server (eglot-current-server)) > (live-p (and current-server (jsonrpc-running-p current-server)))) > (if (and live-p > ------------------ > > > João Távora; ok to commit this patch? > Yes (but please CC me next time to grab my attention). Also see other's comments about ensure-list. Also eglot, the function, does not have any non-interactive use i know of. João >