anchor.diff:                    :background-color "#E8E8E8"
                     :width "100%"
                     :autofocus "true")
  +                 (".source"
  +                  :margin-left "10px"
  +                  :margin-top "15px")
                    (".source-glyph"
                     :margin-right "3px")
                    (".source-name"
  
positive.code:                '((* :font-family "monospace,monospace"
                      :font-size "14px"
                      :line-height "18px")
                   (body :border-top "3px solid dimgray"
                         :margin "0"
                         :padding "0 6px")
                   ("#prompt-area"
                    :display "grid"
                    :grid-template-columns "auto auto 1fr"
                    :width "100%"
                    :padding "6px 0"
                    :color "dimgray")
                   ("#prompt"
                    :line-height "26px")
                   ("#prompt-extra"
                    :line-height "26px"
  
negative.code:     ;; TODO: Only print `active-properties'.
      (flet ((source->html (source)
               (markup:markup
                (:div :class "source"
                      (:div :class "source-name" (:span :class "source-glyph" "⛯") (prompter:name source))
                      (:table :class "source-content"
                              (:tr
                               (loop with property-sample = (if (first (prompter:suggestions source)) ; TODO: Instead, ensure that suggestions always has an element?
                                                                (prompter:properties (first (prompter:suggestions source)))
                                                                (list :default ""))
                                     for (property-name _) on property-sample by #'cddr
                                     collect (markup:markup (:th (str:capitalize (symbol-name property-name))))))
                              (loop ;; TODO: Only print as many lines as fit the height.  But how can we know in advance?
                                    ;; Maybe first make the table, then add the element one by one _if_ there are into view.
                                    with max-suggestion-count = 10
                                    repeat max-suggestion-count
                                    with cursor-index = (prompter:selected-suggestion-position (prompter prompt-buffer))
                                    for suggestion-index from (max 0 (- cursor-index (/ max-suggestion-count 2)))
                                    for suggestion in (nthcdr suggestion-index (prompter:suggestions source))
                                    collect (markup:markup
                                             (:tr :id (when (equal (list suggestion source)
                                                                   (multiple-value-list (prompter:selected-suggestion (prompter prompt-buffer))))
                                                        "selection")
                                                  :class (when (find (prompter:value suggestion) (prompter:marked-suggestions source))
                                                           "marked")
                                                  (loop for (_ property) on (prompter:properties suggestion) by #'cddr
                                                        collect (markup:markup (:td property)))))))))))
        (evaluate-script
         prompt-buffer
         (ps:ps
  