Function: eglot--read-server
eglot--read-server is a byte-compiled function defined in eglot.el.gz.
Signature
(eglot--read-server PROMPT &optional DONT-IF-JUST-THE-ONE)
Documentation
Read a running Eglot server from minibuffer using PROMPT.
If DONT-IF-JUST-THE-ONE and there's only one server, don't prompt and just return it. PROMPT shouldn't end with a question mark.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/eglot.el.gz
(defun eglot--read-server (prompt &optional dont-if-just-the-one)
"Read a running Eglot server from minibuffer using PROMPT.
If DONT-IF-JUST-THE-ONE and there's only one server, don't prompt
and just return it. PROMPT shouldn't end with a question mark."
(let ((servers (cl-loop for servers
being hash-values of eglot--servers-by-project
append servers))
(name (lambda (srv)
(format "%s %s" (eglot-project-nickname srv)
(eglot--major-modes srv)))))
(cond ((null servers)
(eglot--error "No servers!"))
((or (cdr servers) (not dont-if-just-the-one))
(let* ((default (when-let* ((current (eglot-current-server)))
(funcall name current)))
(read (completing-read
(if default
(format "%s (default %s)? " prompt default)
(concat prompt "? "))
(mapcar name servers)
nil t
nil nil
default)))
(cl-find read servers :key name :test #'equal)))
(t (car servers)))))