anchor.diff:    (:use :common-lisp :nyxt)
     (:documentation "Mode for editing macros."))
   (in-package :nyxt/macro-edit-mode)
  +(use-nyxt-package-nicknames)
   
   (define-mode macro-edit-mode ()
     "Mode for creating and editing macros."
     ((name
       ""
  -    :documentation "The name used for the macro."
  -    :accessor nil)
  +    :accessor nil
  +    :documentation "The name used for the macro.")
      (functions
  -    (make-hash-table)
  -    :documentation "A hash table of functions the user has added to their
  -macro. The key represents a unique identifier for a command, and the value
  -represents a command.")))
  +    '()
  +    :documentation "Functions the user has added to their macro.")))
   
   (define-internal-page-command-global edit-macro ()
       (buffer "*Macro edit*" 'nyxt/macro-edit-mode:macro-edit-mode)
  
positive.code:   (flet ((render-functions ()
             (spinneret:with-html-string
               (:table
                (loop for key being the hash-keys of (functions macro-editor)
                      using (hash-value value)
                      collect (:tr (:td (:button :class "button"
                                                 :onclick (ps:ps (nyxt/ps:lisp-eval
                                                                  `(nyxt/macro-edit-mode::remove-function
                                                                    (current-mode 'macro-edit-mode)
                                                                    ,key)))
                                                 "✕"))
                                   (:td (:button :class "button"
                                                 :onclick (ps:ps (nyxt/ps:lisp-eval
                                                                  `(nyxt/macro-edit-mode::command-help
                                                                    (current-mode 'macro-edit-mode)
                                                                    ,key)))
                                                 "🛈"))
                                   (:td (symbol-name (name value)))))))))
      (ffi-buffer-evaluate-javascript-async
       (buffer macro-editor)
       (ps:ps
  
negative.code:   (let ((name (intern (name macro-editor)))
          (commands (mapcar
                     (lambda (command) `(,(name command)))
                     (functions macro-editor))))
      `(define-command-global ,name () "User generated macro form." ,@commands)))
  
  (define-command add-command (&optional (macro-editor (current-mode 'macro-edit-mode)))
    "Add a command to the macro."
  