anchor.diff:  
   (defmethod macro-form-valid-p ((macro-editor macro-edit-mode))
     (and (name macro-editor)
  -       (alexandria:hash-table-values (functions macro-editor))))
  +       (functions macro-editor)))
   
   (define-command save-macro (&optional (macro-editor (current-mode 'macro-edit-mode)))
     "Save the macro to the `*auto-config-file*' file."
  
positive.code:   (:use :common-lisp :nyxt)
    (:documentation "Mode for editing macros."))
  (in-package :nyxt/macro-edit-mode)
  
  (define-mode macro-edit-mode ()
    "Mode for creating and editing macros."
    ((name
      ""
      :documentation "The name used for the macro."
      :accessor nil)
     (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.")))
  
  (define-internal-page-command-global edit-macro ()
      (buffer "*Macro edit*" 'nyxt/macro-edit-mode:macro-edit-mode)
  
negative.code:              (ps:lisp
                (render-functions)))))))
  
  (defmethod command-help ((macro-editor macro-edit-mode) command-index)
    (nyxt::describe-command :command (name (nth command-index (functions macro-editor)))))
  
  (defmethod add-function ((macro-editor macro-edit-mode) command)
    (alex:appendf (functions macro-editor)
                  (list command))
    (render-functions macro-editor))
  
  (defun delete-nth (n list)
    (nconc (subseq list 0 n) (nthcdr (1+ n) list)))
  
  (defmethod remove-function ((macro-editor macro-edit-mode) command-index)
    (setf (functions macro-editor) (delete-nth command-index (functions macro-editor)))
    (render-functions macro-editor))
  
  (defmethod name ((macro-editor macro-edit-mode))
  