anchor.diff:                     `(:multi-selection-p ,multi-selection-p)
                      '())))))
   
  +(export-always 'input-buffer)
   (defmethod input-buffer ((minibuffer minibuffer))
     (str:replace-all " " " " (text-buffer::string-representation (slot-value minibuffer 'input-buffer))))
   
  
positive.code:   (insert minibuffer value)
    (reset-suggestion-state minibuffer))
  
  (defmethod reset-suggestion-state ((minibuffer minibuffer))
    "Update the suggestions and move the suggestion cursor to the
  beginning."
  
negative.code: 
  (in-package :nyxt)
  
  (define-class minibuffer (buffer)
    ((default-modes '(minibuffer-mode))
     (suggestion-function nil
                          :type (or function null)
                          :documentation "
  Take the input string and returns a list of suggestion strings.
  Example: `buffer-suggestion-filter'.")
     (callback nil
               :export nil
               :documentation "Function to call over the selected suggestion.")
     (callback-buffer (when *browser* (current-buffer))
                      :type (or buffer null)
                      :export nil
                      :documentation "The active buffer when the minibuffer was
  brought up.
  This can be useful to know which was the original buffer in the `callback' in
  case the buffer was changed.")
     (setup-function #'setup-default
                     :type (or function null)
                     :documentation "Fills the `content' on when the minibuffer is created.
  Takes no argument.  Called only once.")
     (cleanup-function nil
                       :type (or function null)
                       :documentation "Run after a suggestion has been selected.
  This should not rely on the minibuffer's content.")
     (changed-callback nil
                       :type (or function null)
                       :documentation "Called whenever a change happens.")
     (must-match-p t
                   :documentation "If nil, allow input matching no suggestions.")
     (input-prompt :initform "Input"
                   :documentation "Text to prompt to the user, before `input-buffer'.")
     (input-buffer (make-instance 'text-buffer:text-buffer)
                   :accessor nil
                   :documentation "Buffer used to capture keyboard input.")
     (input-cursor (make-instance 'text-buffer:cursor)
                   :documentation "Cursor used in conjunction with the input-buffer.")
     (invisible-input-p nil
                        :documentation "If non-nil, input is replaced by placeholder character.
  This is useful to conceal passwords.")
     (history (minibuffer-generic-history *browser*)
              :type (or containers:ring-buffer-reverse null)
              :documentation "History of inputs for the minibuffer.
  If nil, no history is used.")
     (multi-selection-p nil
                        :documentation "If non-nil, allow for selecting multiple suggestions.")
     (suggestions '()
                  :export nil)
     (marked-suggestions '()
                         :export nil)
     (hide-suggestion-count-p nil
                              :documentation "Show the number of chosen suggestions
  inside brackets. It can be useful to disable, for instance for a yes/no question.")
     (suggestion-head 0
                      :export nil)
     (suggestion-cursor 0
                        :export nil)
     (content ""
              :accessor nil
              :export nil
              :documentation "The HTML content of the minibuffer.")
     (max-lines 10
                :documentation "Max number of suggestion lines to show.  You will
  want edit this to match the changes done to `minibuffer-style'.")
     (minibuffer-style #.(cl-css:css
                          '((* :font-family "monospace,monospace"
                               :font-size "14px"
                               :line-height "18px")
                            (body :border-top "4px solid dimgray"
                                  :margin "0"
                                  :padding "0 6px")
                            ("#container" :display "flex"
                                          :flex-flow "column"
                                          :height "100%")
                            ("#input" :padding "6px 0"
                                      :border-bottom "solid 1px lightgray")
                            ("#suggestions" :flex-grow "1"
                                            :overflow-y "auto"
                                            :overflow-x "auto")
                            ("#cursor" :background-color "gray"
                                       :color "white")
                            ("#prompt" :padding-right "4px"
                                       :color "dimgray")
                            (ul :list-style "none"
                                :padding "0"
                                :margin "0")
                            (li :padding "2px")
                            (.marked :background-color "darkgray"
                                     :font-weight "bold"
                                     :color "white")
                            (.selected :background-color "gray"
                                       :color "white")))
                       :documentation "The CSS applied to a minibuffer when it is set-up.")
     (user-style ""
                 :documentation "User CSS that is applied after the
  minibuffer-style. This can be used to override any styles in the
  minibuffer-style.")
     (override-map (let ((map (make-keymap "overide-map")))
                     (define-key map
                       "escape"
                       ;; We compute symbol at runtime because
                       ;; nyxt/minibuffer-mode does not exist at
                       ;; compile-time since it's loaded afterwards.
                       (find-symbol (string 'cancel-input)
                                    (find-package 'nyxt/minibuffer-mode))))
                   :type keymap:keymap
                   :documentation "Keymap that takes precedence over all modes' keymaps."))
    (:export-class-name-p t)
    (:export-accessor-names-p t)
    (:accessor-name-transformer #'class*:name-identity)
    (:documentation "The minibuffer is the interface for user interactions.  Each
  prompt spawns a new minibuffer object: this makes it possible to nest minibuffer
  calls, such as invoking `minibuffer-history'.
  