   (let ((force-semantic
          (when ycmd-force-semantic-completion "/s"))
         (text (pcase ycmd--last-status-change
+                (`parsed "")
+                (`parsing "*")
+                (`unparsed "?")
                 (`stopped "-")
-                (`unparsed "?")
-                (`parsing "*")
-                (`errored "!")
-                (`parsed ""))))
+                (`starting ">")
+                (`errored "!"))))
     (concat " ycmd" force-semantic text)))
 
 ;;;###autoload

    (window-configuration-change-hook . ycmd--on-window-configuration-change)
    (kill-buffer-hook                 . ycmd--on-close-buffer)
    (before-revert-hook               . ycmd--teardown)
    (window-configuration-change-hook . ycmd--perform-deferred-parse)
    (post-command-hook                . ycmd--perform-deferred-parse))
  "Hooks which ycmd hooks in.")



(defun ycmd--on-window-configuration-change ()
  "Function to run by `window-configuration-change-hook'."
  (if (ycmd--deferred-parse?)
      (ycmd--perform-deferred-parse)
    (when (and ycmd-mode
               (pcase ycmd--last-status-change
                 ((or `unparsed `starting) t))
               (memq 'buffer-focus ycmd-parse-conditions))
      (ycmd--kill-timer ycmd--on-focus-timer)
      (let ((on-buffer-focus-fn
             (apply-partially 'ycmd--on-unparsed-buffer-focus
                              (current-buffer))))
        (setq ycmd--on-focus-timer
              (run-at-time 1.0 nil on-buffer-focus-fn))))))

(defmacro ycmd--with-all-ycmd-buffers (&rest body)
  "Execute BODY with each `ycmd-mode' enabled buffer."
