Function: doom-modeline-update-flymake

doom-modeline-update-flymake is a natively compiled function defined in doom-modeline-segments.el.

Signature

(doom-modeline-update-flymake &rest _)

Documentation

Update flymake.

Source Code

;; Defined in /nix/store/1lcicrdd2r4b8rkc91nnn74ymk1jl6yd-emacs-packages-deps/share/emacs/site-lisp/elpa/doom-modeline-20260928.1632/doom-modeline-segments.el
(defun doom-modeline-update-flymake (&rest _)
  "Update flymake."
  (setq doom-modeline--flymake
        (when (and (bound-and-true-p flymake-mode)
                   (bound-and-true-p flymake--state))
          (let* ((known (hash-table-keys flymake--state))
                 (running (flymake-running-backends))
                 (disabled (flymake-disabled-backends))
                 (reported (flymake-reporting-backends))
                 (all-disabled (and disabled (null running)))
                 (some-waiting (cl-set-difference running reported)))
            (let-alist (doom-modeline--flymake-count-errors)
              (let* ((vsep (doom-modeline-vspc))
                     (seg (cond
                           ((or (eq doom-modeline-check 'simple)
                                (and doom-modeline--limited-width-p (eq doom-modeline-check 'auto)))
                            (let ((count (+ .error .warning .note)))
                              (cond
                               (some-waiting
                                (concat
                                 (doom-modeline-check-icon "nf-md-timer_sand" "⏳" "*" 'doom-modeline-debug)
                                 (when (> count 0)
                                   (concat
                                    vsep
                                    (doom-modeline-check-text (number-to-string count) 'doom-modeline-debug)))))
                               ((null known)
                                (doom-modeline-check-icon "nf-md-alert_box_outline" "⚠" "!" 'doom-modeline-urgent))
                               (all-disabled
                                (doom-modeline-check-icon "nf-md-alert_box_outline" "⚠" "!" 'doom-modeline-warning))
                               (t
                                (if (> count 0)
                                    (let ((face (cond ((> .error 0) 'doom-modeline-urgent)
                                                      ((> .warning 0) 'doom-modeline-warning)
                                                      (t 'doom-modeline-info))))
                                      (concat
                                       (doom-modeline-check-icon "nf-md-alert_circle_outline" "⚠" "!" face)
                                       vsep
                                       (doom-modeline-check-text (number-to-string count) face)))
                                  (doom-modeline-check-icon "nf-md-check_circle_outline" "✔" "*" 'doom-modeline-info))))))
                           ((or (eq doom-modeline-check 'full)
                                (and (not doom-modeline--limited-width-p) (eq doom-modeline-check 'auto)))
                            (concat
                             (doom-modeline-check-icon "nf-md-close_circle_outline" "⮾" "!" 'doom-modeline-urgent)
                             vsep
                             (doom-modeline-check-text (number-to-string .error) 'doom-modeline-urgent)
                             vsep
                             (doom-modeline-check-icon "nf-md-alert_outline" "⚠" "!" 'doom-modeline-warning)
                             vsep
                             (doom-modeline-check-text (number-to-string .warning) 'doom-modeline-warning)
                             vsep
                             (doom-modeline-check-icon "nf-md-information_outline" "🛈" "!" 'doom-modeline-info)
                             vsep
                             (doom-modeline-check-text (number-to-string .note) 'doom-modeline-info)))
                           (t ""))))
                (propertize
                 seg
                 'help-echo (concat
                             "Flymake\n"
                             (cond (some-waiting "Checking...")
                                   ((null known) "No Checker")
                                   (all-disabled "All Checkers Disabled")
                                   (t (format "%d/%d backends running\nerror: %d, warning: %d, note: %d"
                                              (length running) (length known) .error .warning .note)))
                             "\nmouse-1: Display minor mode menu\nmouse-2: Show help for minor mode")
                 'mouse-face 'doom-modeline-highlight
                 'local-map (let ((map (make-sparse-keymap)))
                              (define-key map [mode-line down-mouse-1]
                                flymake-menu)
                              (define-key map [mode-line mouse-2]
                                (lambda ()
                                  (interactive)
                                  (describe-function 'flymake-mode)))
                              map))))))))