Function: eglot--request

eglot--request is a byte-compiled function defined in eglot.el.gz.

Signature

(eglot--request SERVER METHOD PARAMS &key IMMEDIATE TIMEOUT CANCEL-ON-INPUT CANCEL-ON-INPUT-RETVAL)

Documentation

Like jsonrpc-request, but for Eglot LSP requests.

Unless IMMEDIATE, send pending changes before making request.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/eglot.el.gz
(cl-defun eglot--request (server method params &key
                                 immediate
                                 timeout cancel-on-input
                                 cancel-on-input-retval)
  "Like `jsonrpc-request', but for Eglot LSP requests.
Unless IMMEDIATE, send pending changes before making request."
  (unless immediate (eglot--signal-textDocument/didChange))
  (cl-flet ((cancel (id)
              (jsonrpc-notify server '$/cancelRequest `(:id ,id))))
    (condition-case oops
        (jsonrpc-request server method params
                         :timeout timeout
                         :cancel-on-input
                         (if (and cancel-on-input eglot-advertise-cancellation)
                             #'cancel
                           cancel-on-input)
                         :cancel-on-quit
                         (and eglot-advertise-cancellation #'cancel)
                         :cancel-on-input-retval cancel-on-input-retval)
      (jsonrpc-error
       (let* ((data (cddr oops)) (ec (alist-get 'jsonrpc-error-code data)))
         (if (zerop ec) (eglot--message (alist-get 'jsonrpc-error-message data))
           (signal 'jsonrpc-error (cdr oops))))))))