            return (cadr choice)))
 
 ;;;###autodef
-(cl-defun set-formatter! (modes formatter &key
-                                name
-                                install
-                                filter
-                                ok-statuses
-                                error-regexp)
-  "Define a FORMATTER for MODES.
+(cl-defun set-formatter!
+    (modes-or-name formatter
+                   &key
+                   name
+                   modes
+                   install
+                   filter
+                   ok-statuses
+                   error-regexp)
+  "Define a formatter.
 
-MODES can be a major mode symbol, a list of major modes, or a list of
-two-element lists made up of (MAJOR-MODE FORM). FORM is evaluated when the
-buffer is formatted and its return value serves two roles:
+MODES-OR-NAME can either be a major mode symbol (or list thereof), a unique name
+for the formatter being defined (also a symbol), or a special list of
+two-element sublists with the structure: (MAJOR-MODE FORM).
 
-1. It is a predicate for this formatter. If it returns non-nil (and MAJOR-MODE
-   matches the current mode), that formatter is used.
-2. Its return value is stored in the `mode-result' variable for FORMATTER (if
-   it's a function).
+FORM is evaluated when the buffer is formatted and its return value serves two
+purposes:
+
+1. It is a predicate for this formatter. Assuming the MAJOR-MODE matches the
+   current mode, if FORM evaluates to nil, the formatter is skipped.
+2. It's return value is made available to FORMATTER if it is a function or list
+   of shell arguments via the `mode-result' variable.
 
 FORMATTER can be a function, string or nested list.
 

    :ok-statuses '(0 1)
    :install '(macos \"brew install tidy-html5\"))

  (set-formatter! 'elm-mode
    \"elm-format --yes --stdin\"
    :install '(macos \"brew install elm\")

            first-diff)))"
  (declare (indent defun))
  (cl-check-type name (or symbol null))
  ;; Determine if MODES-OR-NAME means MODES or NAMES
  (if (and (symbolp modes-or-name)
           (not (string-match-p "-mode$" (symbol-name modes-or-name))))
      (setq name modes-or-name)
    (setq modes (doom-enlist modes-or-name)))
  (let* ((command-list (cond ((stringp formatter)   ; shell command
                              (split-string formatter " " t))
                             ((listp formatter)     ; shell command in lists
