Function: jsonrpc--forwarding-buffer

jsonrpc--forwarding-buffer is a byte-compiled function defined in jsonrpc.el.gz.

Signature

(jsonrpc--forwarding-buffer NAME PREFIX CONN)

Documentation

Helper for jsonrpc-process-connection(var)/jsonrpc-process-connection(fun) helpers.

Make a stderr buffer named NAME, forwarding lines prefixed by PREFIX to CONN's events buffer.

Source Code

;; Defined in /usr/src/emacs/lisp/jsonrpc.el.gz
(defun jsonrpc--forwarding-buffer (name prefix conn)
  "Helper for `jsonrpc-process-connection' helpers.
Make a stderr buffer named NAME, forwarding lines prefixed by
PREFIX to CONN's events buffer."
  (with-current-buffer (get-buffer-create name)
    (let ((inhibit-read-only t))
      (fundamental-mode)
      (erase-buffer)
      (buffer-disable-undo)
      (add-hook
       'after-change-functions
       (lambda (beg _end _pre-change-len)
         (cl-loop initially (goto-char beg)
                  do (forward-line)
                  when (bolp)
                  for line = (buffer-substring
                              (line-beginning-position 0)
                              (line-end-position 0))
                  do (with-current-buffer (jsonrpc-events-buffer conn)
                       (goto-char (point-max))
                       (let ((inhibit-read-only t))
                         (insert
                          (propertize (format "%s %s\n" prefix line)
                                      'face 'shadow))))
                  until (eobp)))
       nil t))
    (current-buffer)))