Skip to content

Commit 005907e

Browse files
committed
perf: improve modals segment
1 parent 05fec1d commit 005907e

File tree

1 file changed

+57
-55
lines changed

1 file changed

+57
-55
lines changed

doom-modeline-segments.el

Lines changed: 57 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1862,37 +1862,38 @@ TEXT is alternative if icon is not available."
18621862
(defsubst doom-modeline--evil ()
18631863
"The current evil state. Requires `evil-mode' to be enabled."
18641864
(when (bound-and-true-p evil-local-mode)
1865-
(doom-modeline--modal-icon
1866-
(let ((tag (evil-state-property evil-state :tag t)))
1867-
(if (stringp tag) tag (funcall tag)))
1868-
(cond
1869-
((evil-normal-state-p) 'doom-modeline-evil-normal-state)
1870-
((evil-emacs-state-p) 'doom-modeline-evil-emacs-state)
1871-
((evil-insert-state-p) 'doom-modeline-evil-insert-state)
1872-
((evil-motion-state-p) 'doom-modeline-evil-motion-state)
1873-
((evil-visual-state-p) 'doom-modeline-evil-visual-state)
1874-
((evil-operator-state-p) 'doom-modeline-evil-operator-state)
1875-
((evil-replace-state-p) 'doom-modeline-evil-replace-state)
1876-
(t 'doom-modeline-evil-user-state))
1877-
(evil-state-property evil-state :name t)
1878-
(cond
1879-
((evil-normal-state-p) "nf-md-alpha_n_circle")
1880-
((evil-emacs-state-p) "nf-md-alpha_e_circle")
1881-
((evil-insert-state-p) "nf-md-alpha_i_circle")
1882-
((evil-motion-state-p) "nf-md-alpha_m_circle")
1883-
((evil-visual-state-p) "nf-md-alpha_v_circle")
1884-
((evil-operator-state-p) "nf-md-alpha_o_circle")
1885-
((evil-replace-state-p) "nf-md-alpha_r_circle")
1886-
(t "nf-md-alpha_u_circle"))
1887-
(cond
1888-
((evil-normal-state-p) "🅝")
1889-
((evil-emacs-state-p) "🅔")
1890-
((evil-insert-state-p) "🅘")
1891-
((evil-motion-state-p) "🅜")
1892-
((evil-visual-state-p) "🅥")
1893-
((evil-operator-state-p) "🅞")
1894-
((evil-replace-state-p) "🅡")
1895-
(t "🅤")))))
1865+
(let-alist (cond
1866+
((evil-normal-state-p) '((face . doom-modeline-evil-normal-state)
1867+
(icon . "nf-md-alpha_n_circle")
1868+
(unicode . "🅝")))
1869+
((evil-emacs-state-p) '((face . doom-modeline-evil-emacs-state)
1870+
(icon . "nf-md-alpha_e_circle")
1871+
(unicode . "🅔")))
1872+
((evil-insert-state-p) '((face . doom-modeline-evil-insert-state)
1873+
(icon . "nf-md-alpha_i_circle")
1874+
(unicode . "🅘")))
1875+
((evil-motion-state-p) '((face . doom-modeline-evil-motion-state)
1876+
(icon . "nf-md-alpha_m_circle")
1877+
(unicode . "🅜")))
1878+
((evil-visual-state-p) '((face . doom-modeline-evil-visual-state)
1879+
(icon . "nf-md-alpha_v_circle")
1880+
(unicode . "🅥")))
1881+
((evil-operator-state-p) '((face . doom-modeline-evil-operator-state)
1882+
(icon . "nf-md-alpha_o_circle")
1883+
(unicode . "🅞")))
1884+
((evil-replace-state-p) '((face . doom-modeline-evil-replace-state)
1885+
(icon . "nf-md-alpha_r_circle")
1886+
(unicode . "🅡")))
1887+
(t '((face . doom-modeline-evil-user-state)
1888+
(icon . "nf-md-alpha_u_circle")
1889+
(unicode . "🅤"))))
1890+
(doom-modeline--modal-icon
1891+
(let ((tag (evil-state-property evil-state :tag t)))
1892+
(if (stringp tag) tag (funcall tag)))
1893+
.face
1894+
(evil-state-property evil-state :name t)
1895+
.icon
1896+
.unicode))))
18961897

18971898
(defsubst doom-modeline--overwrite ()
18981899
"The current overwrite state which is enabled by command `overwrite-mode'."
@@ -1944,30 +1945,31 @@ TEXT is alternative if icon is not available."
19441945
(defsubst doom-modeline--meow ()
19451946
"The current Meow state. Requires `meow-mode' to be enabled."
19461947
(when (bound-and-true-p meow-mode)
1947-
(doom-modeline--modal-icon
1948-
(substring-no-properties meow--indicator)
1949-
(cond
1950-
((meow-normal-mode-p) 'doom-modeline-meow-normal-state)
1951-
((meow-insert-mode-p) 'doom-modeline-meow-insert-state)
1952-
((meow-beacon-mode-p) 'doom-modeline-meow-beacon-state)
1953-
((meow-motion-mode-p) 'doom-modeline-meow-motion-state)
1954-
((meow-keypad-mode-p) 'doom-modeline-meow-keypad-state)
1955-
(t 'doom-modeline-meow-normal-state))
1956-
(symbol-name (meow--current-state))
1957-
(cond
1958-
((meow-normal-mode-p) "nf-md-alpha_n_circle")
1959-
((meow-insert-mode-p) "nf-md-alpha_i_circle")
1960-
((meow-beacon-mode-p) "nf-md-alpha_b_circle")
1961-
((meow-motion-mode-p) "nf-md-alpha_m_circle")
1962-
((meow-keypad-mode-p) "nf-md-alpha_k_circle")
1963-
(t "nf-md-alpha_n_circle"))
1964-
(cond
1965-
((meow-normal-mode-p) "🅝")
1966-
((meow-insert-mode-p) "🅘")
1967-
((meow-beacon-mode-p) "🅑")
1968-
((meow-motion-mode-p) "🅜")
1969-
((meow-keypad-mode-p) "🅚")
1970-
(t "🅝")))))
1948+
(let-alist (cond
1949+
((meow-normal-mode-p) '((face . doom-modeline-meow-normal-state)
1950+
(icon . "nf-md-alpha_n_circle")
1951+
(unicode . "🅝")))
1952+
((meow-insert-mode-p) '((face . doom-modeline-meow-insert-state)
1953+
(icon . "nf-md-alpha_i_circle")
1954+
(unicode . "🅘")))
1955+
((meow-beacon-mode-p) '((face . doom-modeline-meow-beacon-state)
1956+
(icon . "nf-md-alpha_b_circle")
1957+
(unicode . "🅑")))
1958+
((meow-motion-mode-p) '((face . doom-modeline-meow-motion-state)
1959+
(icon . "nf-md-alpha_m_circle")
1960+
(unicode . "🅜")))
1961+
((meow-keypad-mode-p) '((face . doom-modeline-meow-keypad-state)
1962+
(icon . "nf-md-alpha_k_circle")
1963+
(unicode . "🅚")))
1964+
(t '((face . doom-modeline-meow-normal-state)
1965+
(icon . "nf-md-alpha_n_circle")
1966+
(unicode . "🅝"))))
1967+
(doom-modeline--modal-icon
1968+
(substring-no-properties meow--indicator)
1969+
.face
1970+
(symbol-name (meow--current-state))
1971+
.icon
1972+
.unicode))))
19711973

19721974
(doom-modeline-def-segment modals
19731975
"Displays modal editing states.

0 commit comments

Comments
 (0)