anchor.diff:    "Mode for buffer-listing."
     ((rememberable-p nil)))
   
  -(define-command-global list-buffers (&key (cluster nil))
  -  "Show the *Buffers* buffer."
  +(define-command-global list-buffers (&key (cluster nil)
  +                                     linear-view-p) ; TODO: Document `cluster'.
  +  "Show a buffer listing all buffer trees.
  +Buffers have relationships.  When a buffer is spawned from another one (e.g. by
  +middle-clicking on a link), the new buffer is a child buffer.
  +This kind of relationships creates 'trees' of buffers.
  +
  +With LINEAR-VIEW-P, list buffers linearly instead."
     (labels ((cluster-buffers ()
                "Return buffers as hash table, where each value is a cluster (list of documents)."
                (let ((collection (make-instance 'analysis::document-collection)))
  
positive.code:                (analysis::dbscan collection :minimum-points 3 :epsilon 0.065)
                 (analysis::clusters collection)))
             (buffer-markup (buffer)
               "Create the presentation for a buffer."
               (spinneret:with-html
                 (:p (:a :class "button"
                         :href (lisp-url `(nyxt::delete-buffer :id ,(id buffer))) "✕")
                     (:a :class "button"
                         :href (lisp-url `(nyxt::switch-buffer :id ,(id buffer))) "→")
                     (:span (title buffer) " - "(render-url (url buffer))))))
             (cluster-markup (cluster-id cluster)
               "Create the presentation for a cluster."
               (spinneret:with-html
                 (:div (:h2 (format nil "Cluster ~a" cluster-id))
                       (loop for document in cluster
                             collect (buffer-markup (analysis::source document))))))
             (internal-buffers-markup ()
               "Create the presentation for the internal buffers."
               (spinneret:with-html
                 (:div (:h2 "Internal Buffers")
                       (loop for buffer in (buffer-list)
  
negative.code:                                    (:a :class "button" :href (lisp-url '(nyxt/buffer-listing-mode::show-buffers-panel)) "Update ↺")
                                     (loop for buffer in (buffer-list)
                                           collect (buffer-markup buffer)))))))
  