Function: eglot--read-execute-code-action
eglot--read-execute-code-action is a byte-compiled function defined in
eglot.el.gz.
Signature
(eglot--read-execute-code-action ACTIONS SERVER &optional ACTION-KIND)
Documentation
Helper for interactive calls to eglot-code-actions.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/eglot.el.gz
(defun eglot--read-execute-code-action (actions server &optional action-kind)
"Helper for interactive calls to `eglot-code-actions'."
(let* ((menu-items
(or (cl-loop for a in actions
collect (cons (plist-get a :title) a))
(apply #'eglot--error
(if action-kind `("No \"%s\" code actions here" ,action-kind)
`("No code actions here")))))
(preferred-action (cl-find-if
(lambda (menu-item)
(plist-get (cdr menu-item) :isPreferred))
menu-items))
(default-action (car (or preferred-action (car menu-items))))
(chosen (if (and action-kind (null (cadr menu-items)))
(cdr (car menu-items))
(if (listp last-nonmenu-event)
(x-popup-menu last-nonmenu-event `("Eglot code actions:"
("dummy" ,@menu-items)))
(cdr (assoc (completing-read
(format "[eglot] Pick an action (default %s): "
default-action)
menu-items nil t nil nil default-action)
menu-items))))))
(eglot-execute server chosen)))