'jsonrpc-request' already has its "interrupt on user input" mechanism
base on 'sit-for'. If called from a situation that uses
while-no-input to do basically the same, that mechanism may become
confused, so it's important to prevent that interfence.
This was confirmed to be a problem when using the Corfu completion
front-end.
See also
https://github.com/joaotavora/eglot/discussions/1127#discussioncomment-
7277567
Many thanks to JD Smith <jdtsmith@gmail.com> for helping me debug this
and pointing in the right direction.
* lisp/jsonrpc.el (Version): Bump to 1.0.18
(jsonrpc-request): Bind throw-on-input to nil
;; Author: João Távora <joaotavora@gmail.com>
;; Keywords: processes, languages, extensions
-;; Version: 1.0.17
+;; Version: 1.0.18
;; Package-Requires: ((emacs "25.2"))
;; This is a GNU ELPA :core package. Avoid functionality that is not
ignored."
(let* ((tag (cl-gensym "jsonrpc-request-catch-tag")) id-and-timer
canceled
+ (throw-on-input nil)
(retval
(unwind-protect
(catch tag