mirror of
https://github.com/doomemacs/doomemacs
synced 2025-08-03 12:27:26 -05:00
Byte-compile mode-line segment :eval forms
Byte-compiled function calls are ~10% faster than evalling quoted forms.
This commit is contained in:
@ -23,14 +23,15 @@ keep them left and right aligned respectively."
|
|||||||
body)
|
body)
|
||||||
(macroexp-progn
|
(macroexp-progn
|
||||||
(if (not (keywordp (car rest)))
|
(if (not (keywordp (car rest)))
|
||||||
`((defvar-local ,name nil ,docstring)
|
(append `((defvar-local ,name nil ,docstring)
|
||||||
(setq-default
|
(put ',name 'risky-local-variable t))
|
||||||
,name
|
(if (or (stringp (car rest))
|
||||||
,(if (or (stringp (car rest))
|
(memq (car (car-safe rest)) '(:eval :propertize)))
|
||||||
(memq (car (car-safe rest)) '(:eval :propertize)))
|
`((setq-default ,name ,(car rest)))
|
||||||
(car rest)
|
(let ((fn (intern (format "+modeline--%s" name))))
|
||||||
`(quote (:eval ,(macroexp-progn rest)))))
|
`((fset ',fn (lambda () ,@rest))
|
||||||
(put ',name 'risky-local-variable t))
|
(byte-compile ',fn)
|
||||||
|
(setq-default ,name (quote (:eval (,fn))))))))
|
||||||
;; isolate body
|
;; isolate body
|
||||||
(setq body rest)
|
(setq body rest)
|
||||||
(while (keywordp (car body))
|
(while (keywordp (car body))
|
||||||
|
Reference in New Issue
Block a user