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)
         (let* ((props (slot-value conn '-events-buffer-config))
                (max (plist-get props :size)))
           (unless (eql max 0)
             (cl-loop initially (goto-char beg)
                      do (forward-line)
                      while (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))
                             (jsonrpc--limit-buffer-size max)))
                      until (eobp)))))
       nil t))
    (current-buffer)))