                              `(lambda (result) (boop--handle-result (quote ,id) (string-to-number result) (quote ,group)))))))
           boop-config-alist)))
 
-(defun boop-flash-result-ids ()
-  "Flashes the results based on their ID for 5 seconds."
-  (interactive)
-  (let ((previous-format-func boop-format-result-func))
-    (setq boop-format-result-func 'boop--format-result-as-id)
-    (run-at-time "2 sec" nil `(lambda () (setq boop-format-result-func (quote ,previous-format-func))))))
-
-(defun boop-cycle-format-results ()
-  "Cycle between the different format functions for the results."
-  (interactive)
-  (let ((format-funcs))
-    (mapatoms (lambda (sym) (when (string-match "boop--format-results-" (symbol-name sym))
-                         (setq format-funcs (cons sym format-funcs)))))
-    (let* ((current (-elem-index boop-format-results-func format-funcs))
-           (next (mod (+ current 1) (length format-funcs))))
-      (setq boop-format-results-func (nth next format-funcs)))))
-
 (defun boop (id status &optional group)
   "Manually boop something and set ID to have a status of STATUS."
   (if (assoc id boop-result-alist)

    (push '(:eval (boop-format-results)) result)
    (setq-default mode-line-format (nreverse result)))
  (force-mode-line-update t))


;; Updating the results



;;;;;; individual results

(defun boop--format-result (f &optional shorten-f)
  (let* ((result-id (car result-alist))
         (result    (plist-get (cdr result-alist) :result))
         (group     (plist-get (cdr result-alist) :group))

         (form (or (cdr (assoc result boop-format-alist)) boop-default-format))
         (map-symbol (intern (format "boop-%s-mode-line-map" result-id)))
         (string-id (concat (format "%s" result-id) (when group (format ":%s" group))))
         (short-id (when shorten-f (funcall shorten-f string-id))))

    (funcall f form string-id (and (boundp map-symbol) map-symbol) short-id)))

(defun boop--format-result-as-is (result-alist)
  "Format an individual RESULT-ALIST using its ID."
  (boop--format-result
   (lambda (form id map override) (format "[%s] " (boop--propertize form id map override)))
   'format))

(defun boop--format-result-as-substring (result-alist)
  "Format an individual RESULT-ALIST using its ID."
  (boop--format-result
   (lambda (form id map override) (format "[%s] " (boop--propertize form id map override)))
   'boop--shorten-substring))

(defun boop--format-result-as-id (result-alist)
  "Format an individual RESULT-ALIST using its ID."
  (boop--format-result
   (lambda (form id map override) (format "[%s] " (boop--propertize form id map override)))
   'boop--shorten-delim))

(defun boop--format-result-as-symbol (result-alist)
  "Format an individual RESULT-ALIST normally."
  (boop--format-result (lambda (form id map &rest args) (boop--propertize form id map))))

(defun boop--propertize (form &optional help-echo map symbol-override)
  "Propertizes FORM with optional HELP-ECHO string.
