Function: doom-modeline-def-segment
doom-modeline-def-segment is a macro defined in doom-modeline-core.el.
Signature
(doom-modeline-def-segment NAME &rest BODY)
Documentation
Define a modeline segment NAME with BODY and byte compiles it.
Source Code
;; Defined in /nix/store/1lcicrdd2r4b8rkc91nnn74ymk1jl6yd-emacs-packages-deps/share/emacs/site-lisp/elpa/doom-modeline-20260928.1632/doom-modeline-core.el
(defmacro doom-modeline-def-segment (name &rest body)
"Define a modeline segment NAME with BODY and byte compiles it."
(declare (indent defun) (doc-string 2))
(let ((sym (intern (format "doom-modeline-segment--%s" name)))
(docstring (if (stringp (car body))
(pop body)
(format "%s modeline segment" name))))
(cond ((and (symbolp (car body))
(not (cdr body)))
`(add-to-list 'doom-modeline--var-alist (cons ',name ',(car body))))
(t
`(progn
(defun ,sym () ,docstring ,@body)
(add-to-list 'doom-modeline--fn-alist (cons ',name ',sym))
,(unless (bound-and-true-p byte-compile-current-file)
`(let (byte-compile-warnings)
(unless (and (fboundp 'subr-native-elisp-p)
(subr-native-elisp-p (symbol-function #',sym)))
(byte-compile #',sym)))))))))