     `(defvar ,id (let ((map (make-sparse-keymap)))
                    (define-key map [mode-line down-mouse-1] ,f) map))))
 
-;; Shorten functions
-
-(defun boop--shorten-substring (id)
-  "Formats an ID string to be the substring of up to 5 characters."
-  (substring id 0 (min (length id) 5)))
-
-(defun boop--shorten-delim (id)
-  "Formats an ID string to be the substring of up to 5 characters."
-  (downcase (mapconcat (lambda (s) (substring s 0 1)) (s-split-words id) "-")))
-
 ;; Updating the results
 
 (defun boop--clear-result-list () "Clear the result list." (setq boop-result-alist nil))

  :type 'list)

(defcustom boop-format-alist
  '((1 :symbol ?● :color "#63ca13" :status "Pass")
    (0 :symbol ?● :color "#c64512" :status "Fail")
    (3 :symbol ?● :color "#23a2fb" :status "Building"))
   "An alist to map the echo results of the plugins to a display format.


  "Synchronizes the result alist to contain only items in the config alist."
  (setq boop-result-alist (--filter (assoc (car it) boop-config-alist) boop-result-alist)))

(defun boop--handle-result (id result &optional group)
  "Update the resut with ID by handling the RESULT of the async `shell-command-to-string`.

Also sets the results GROUP when non-nil"
  (if (assoc id boop-result-alist)
      (boop--update-result id result group)
    (setq boop-result-alist (append (list (list id :result result :group group)) boop-result-alist))))

(defun boop--update-result (id result &optional group)
  "Update the boop with ID to have the new RESULT.

Updating the result will also trigger any actions associated with that RESULT form."
  (let* ((result-plist   (cdr (assoc id boop-result-alist)))
         (current-result (plist-get result-plist :result))

         (form (or (cdr (assoc result boop-format-alist))
                   boop-default-format))
         (name   (car (assoc id boop-result-alist)))
         (action (plist-get form :action)))

    (plist-put (cdr (assoc id boop-result-alist)) :result result)
    (plist-put (cdr (assoc id boop-result-alist)) :group group)
    (when (and (not (eq current-result result)) action)
      (funcall (if (symbolp action)
                   (symbol-function action)
