anchor.diff:        (:head (:style (style repl-mode)))
         (:body
          (:div :id "container"
  -             (:div :id "evaluation-history"
  -                   (:ul (loop
  -                          for (package input results) in (reverse (evaluation-history repl-mode))
  -                          collect (:li (:b package "> " input)
  -                                       (loop
  -                                         for result in results
  -                                         collect (:li (:raw
  -                                                       (value->html
  -                                                        result (or (typep result 'standard-object)
  -                                                                   (typep result 'structure-object))))))))))
  -             (:div :id "input"
  -                   (:span :id "prompt"
  -                          (format nil "~a>" (package-short-name *package*)))
  -                   (:input :type "text" :id "input-buffer"
  -                           :autofocus "autofocus")))))))
  +             (:div :id "evaluations"
  +                   (loop
  +                     for evaluation in (evaluations repl-mode)
  +                     for order from 0 by 1
  +                     collect (:div :class "input"
  +                                   (:span :class "prompt" (package-short-name (eval-package evaluation)) "> ")
  +                                   (:input :class "input-buffer" :data-repl-id order :type "text"
  +                                           :value (input evaluation)))
  +                     collect (loop
  +                               for result in (results evaluation)
  +                               collect (:raw
  +                                        (value->html
  +                                         result (or (typep result 'standard-object)
  +                                                    (typep result 'structure-object))))
  +                               collect (:br)))
  +                   (:div :class "input"
  +                         (:span :class "prompt" (package-short-name *package*) "> ")
  +                         (:input :class "input-buffer"
  +                                 :data-repl-id ""
  +                                 :type "text" :value ""
  +                                 :placeholder "Input some Lisp expression here"))))))))
  
positive.code:       (setf (cursor repl) cursor))))
  
  (define-command tab-complete-symbol (&optional (repl (find-submode 'repl-mode)))
    "Complete the current symbol and insert the completion into the REPL prompt."
    (let* ((input (input repl))
           (cursor (cursor repl))
           (previous-delimiter (unless (= cursor 0)
  
negative.code: (nyxt:define-package :nyxt/repl-mode
      (:documentation "Mode for programming in Common Lisp."))
  (in-package :nyxt/repl-mode)
  
  (define-class evaluation ()
    ((input
      nil
      :type (maybe string)
      :documentation "User input.")
     (eval-package
      *package*
      :type package
      :documentation "The package that the evaluation happens in.")
     (results
      nil
      :documentation "The results (as a list) of `input' evaluation.")
     (raised-condition
      nil
      :type (maybe condition)
      :documentation "The condition that was raised during the `input' execution."))
    (:export-class-name-p t)
    (:export-accessor-names-p t)
    (:accessor-name-transformer (class*:make-name-transformer name)))
  
  (define-mode repl-mode ()
    "Mode for interacting with the REPL."
  