anchor.diff:    (when (> (length input) 2)
       (let ((input (str:replace-all " " " " input))
             (all-matches nil)
  -          (padding 0))
  +          (padding (if (> (list-length buffers) 1) 0 nil)))
         (map nil
              (lambda (buffer)
                (query-buffer :query input :buffer buffer
                 :callback (lambda (result)
  -                          (setf padding (1+ padding))
  +                          (when padding
  +                            (setf padding (1+ padding)))
                             (let* ((matches (matches-from-json
                                              result buffer padding)))
                               (setf all-matches (append all-matches matches))
  
positive.code: 
  (define-command search-buffer ()
    "Add search boxes for a given search string."
    (let* ((minibuffer (make-minibuffer
                        :input-prompt "Search for (3+ characters)"
                        :completion-function 'match-completion-function
                        :history (minibuffer-search-history *interface*)))
           (keymap-scheme (current-keymap-scheme minibuffer))
           (keymap (getf (keymap-schemes (first (modes minibuffer))) keymap-scheme)))
      (define-key :keymap keymap "C-s"
        #'(lambda ()
            (when (completions minibuffer)
              (focus-match :match (nth (completion-cursor minibuffer)
                                       (completions minibuffer))))))
      (with-result (input (read-from-minibuffer minibuffer))
        (focus-match :match input))))
  
  (define-command search-buffers ()
    "Like search-buffer but for multiple buffers at a time."
    (with-result (buffers (read-from-minibuffer
                             (make-minibuffer
                              :input-prompt "Search buffer(s)"
                              :multi-selection-p t
                              :completion-function (buffer-completion-filter))))
      (let* ((minibuffer (make-minibuffer
                          :input-prompt "Search for (3+ characters)"
                          :completion-function #'(lambda (input)
  
negative.code:   ;; TODO: scroll doesn't work properly because it seems it tries to scroll
    ;; before switching buffer in cases where the buffer should be switched
    ;; so have to find a way to sync that up
    (let* ((rel-identifier
             (ps:lisp
              (let ((id (identifier match)))
                (if (stringp id)
                    (cadr (str:split ":" id))
                    id))))
           (element (ps:chain document (get-element-by-id rel-identifier))))
      (ps:chain element (scroll-into-view t))))
  
  