diff --git a/README.md b/README.md index ab980b09..4f6fa17e 100644 --- a/README.md +++ b/README.md @@ -294,8 +294,15 @@ Run `M-x customize-group RET doom-modeline RET` or set the variables. (setq doom-modeline-total-line-number nil) ;; If non-nil, only display one number for check information if applicable. +;; If set to icons, display check information with icons. (setq doom-modeline-check-simple-format t) +;; Change error icons. +;; Only if doom-modeline-check-simple-format is set to icons +(setq doom-modeline-check-error-icon "⛔") +(setq doom-modeline-check-warning-icon "❌") +(setq doom-modeline-check-note-icon "❎") + ;; The maximum number displayed for notifications. (setq doom-modeline-number-limit 99) diff --git a/doom-modeline-core.el b/doom-modeline-core.el index f1ae8bc5..8c47adcb 100644 --- a/doom-modeline-core.el +++ b/doom-modeline-core.el @@ -474,8 +474,10 @@ in the given order." "4.2.0") (defcustom doom-modeline-check-simple-format t - "If non-nil, only display one number for check information if applicable." - :type 'boolean + "If non-nil, only display one number for check information if applicable. +If set to icons, display check information with icons." + :type '(choice boolean + (const :tag "simple icons" icons)) :group 'doom-modeline) (defcustom doom-modeline-number-limit 99 diff --git a/doom-modeline-segments.el b/doom-modeline-segments.el index 95c5a39c..a8dc599b 100644 --- a/doom-modeline-segments.el +++ b/doom-modeline-segments.el @@ -109,6 +109,30 @@ (defvar winum-auto-setup-mode-line) (defvar xah-fly-insert-state-p) +(defcustom doom-modeline-check-error-icon + (doom-modeline-check-icon + "nf-md-alert_circle_outline" "❗" "!" 'doom-modeline-urgent) + "Icon to be using in check segment. +Only works if `doom-modeline-check-simple-format' is set to icons." + :type '(string) + :group 'doom-modeline) + +(defcustom doom-modeline-check-warning-icon + (doom-modeline-check-icon + "nf-md-alert_outline" "⚠" "!" 'doom-modeline-warning) + "Icon to be using in check segment. +Only works if `doom-modeline-check-simple-format' is set to icons." + :type '(string) + :group 'doom-modeline) + +(defcustom doom-modeline-check-note-icon + (doom-modeline-check-icon + "nf-md-information_outline" "❔" "i" 'doom-modeline-info) + "Icon to be using in check segment. +Only works if `doom-modeline-check-simple-format' is set to icons." + :type '(string) + :group 'doom-modeline) + (declare-function anzu--reset-status "ext:anzu") (declare-function anzu--where-is-here "ext:anzu") (declare-function async-inject-variables "ext:async") @@ -783,11 +807,13 @@ level." (pcase status ('finished (if flycheck-current-errors (let-alist (doom-modeline--flycheck-count-errors) - (doom-modeline-check-icon - "nf-md-alert_circle_outline" "❗" "!" - (cond ((> .error 0) 'doom-modeline-urgent) - ((> .warning 0) 'doom-modeline-warning) - (t 'doom-modeline-info)))) + (if (not (eq doom-modeline-check-simple-format 'icons)) + (doom-modeline-check-icon + "nf-md-alert_circle_outline" "❗" "!" + (cond ((> .error 0) 'doom-modeline-urgent) + ((> .warning 0) 'doom-modeline-warning) + (t 'doom-modeline-info))) + doom-modeline-check-error-icon)) (doom-modeline-check-icon "nf-md-check_circle_outline" "✔" "" 'doom-modeline-info))) ('running (doom-modeline-check-icon "nf-md-timer_sand" "⏳" "*" 'doom-modeline-debug)) ('no-checker (doom-modeline-check-icon "nf-md-alert_box_outline" "⚠" "-" 'doom-modeline-debug)) @@ -846,19 +872,28 @@ mouse-2: Show help for minor mode") (pcase status ('finished (when flycheck-current-errors (let-alist (doom-modeline--flycheck-count-errors) - (if doom-modeline-check-simple-format - (doom-modeline-check-text - (number-to-string (+ .error .warning .info)) - (cond ((> .error 0) 'doom-modeline-urgent) - ((> .warning 0) 'doom-modeline-warning) - (t 'doom-modeline-info))) - (format "%s/%s/%s" - (doom-modeline-check-text (number-to-string .error) - 'doom-modeline-urgent) - (doom-modeline-check-text (number-to-string .warning) - 'doom-modeline-warning) - (doom-modeline-check-text (number-to-string .info) - 'doom-modeline-info)))))) + (pcase doom-modeline-check-simple-format + ('t (doom-modeline-check-text + (number-to-string (+ .error .warning .info)) + (cond ((> .error 0) 'doom-modeline-urgent) + ((> .warning 0) 'doom-modeline-warning) + (t 'doom-modeline-info)))) + ('nil (format "%s/%s/%s" + (doom-modeline-check-text (number-to-string .error) + 'doom-modeline-urgent) + (doom-modeline-check-text (number-to-string .warning) + 'doom-modeline-warning) + (doom-modeline-check-text (number-to-string .info) + 'doom-modeline-info))) + ('icons (format "%s %s %s %s %s" + (doom-modeline-check-text (number-to-string .error) + 'doom-modeline-urgent) + doom-modeline-check-warning-icon + (doom-modeline-check-text (number-to-string .warning) + 'doom-modeline-warning) + doom-modeline-check-note-icon + (doom-modeline-check-text (number-to-string .info) + 'doom-modeline-info))))))) ('running (and doom-modeline--flycheck-text (propertize doom-modeline--flycheck-text 'face 'doom-modeline-debug))) ;; ('no-checker nil) @@ -958,10 +993,12 @@ mouse-3: Next error" ((> severity note-level) (cl-incf .warning)) (t (cl-incf .note)))))) (if (> (+ .error .warning .note) 0) - (doom-modeline-check-icon "nf-md-alert_circle_outline" "❗" "!" - (cond ((> .error 0) 'doom-modeline-urgent) - ((> .warning 0) 'doom-modeline-warning) - (t 'doom-modeline-info))) + (if (not (eq doom-modeline-check-simple-format 'icons)) + (doom-modeline-check-icon "nf-md-alert_circle_outline" "❗" "!" + (cond ((> .error 0) 'doom-modeline-urgent) + ((> .warning 0) 'doom-modeline-warning) + (t 'doom-modeline-info))) + (doom-modeline-check-icon "nf-md-alert_circle_outline" "❗" "!" 'doom-modeline-urgent)) (doom-modeline-check-icon "nf-md-check_circle_outline" "✔" "-" 'doom-modeline-info)))))))) (propertize icon @@ -1039,18 +1076,27 @@ mouse-2: Show help for minor mode" (all-disabled nil) (t (let ((num (+ .error .warning .note))) (when (> num 0) - (if doom-modeline-check-simple-format - (doom-modeline-check-text (number-to-string num) + (pcase doom-modeline-check-simple-format + ('t (doom-modeline-check-text (number-to-string num) (cond ((> .error 0) 'doom-modeline-urgent) ((> .warning 0) 'doom-modeline-warning) - (t 'doom-modeline-info))) - (format "%s/%s/%s" - (doom-modeline-check-text (number-to-string .error) - 'doom-modeline-urgent) - (doom-modeline-check-text (number-to-string .warning) - 'doom-modeline-warning) - (doom-modeline-check-text (number-to-string .note) - 'doom-modeline-info))))))))) + (t 'doom-modeline-info)))) + ('nil (format "%s/%s/%s" + (doom-modeline-check-text (number-to-string .error) + 'doom-modeline-urgent) + (doom-modeline-check-text (number-to-string .warning) + 'doom-modeline-warning) + (doom-modeline-check-text (number-to-string .note) + 'doom-modeline-info))) + ('icons (format "%s %s %s %s %s" + (doom-modeline-check-text (number-to-string .error) + 'doom-modeline-urgent) + doom-modeline-check-warning-icon + (doom-modeline-check-text (number-to-string .warning) + 'doom-modeline-warning) + doom-modeline-check-note-icon + (doom-modeline-check-text (number-to-string .note) + 'doom-modeline-info)))))))))) (propertize text 'help-echo (cond