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)
|
||||
(macroexp-progn
|
||||
(if (not (keywordp (car rest)))
|
||||
`((defvar-local ,name nil ,docstring)
|
||||
(setq-default
|
||||
,name
|
||||
,(if (or (stringp (car rest))
|
||||
(memq (car (car-safe rest)) '(:eval :propertize)))
|
||||
(car rest)
|
||||
`(quote (:eval ,(macroexp-progn rest)))))
|
||||
(append `((defvar-local ,name nil ,docstring)
|
||||
(put ',name 'risky-local-variable t))
|
||||
(if (or (stringp (car rest))
|
||||
(memq (car (car-safe rest)) '(:eval :propertize)))
|
||||
`((setq-default ,name ,(car rest)))
|
||||
(let ((fn (intern (format "+modeline--%s" name))))
|
||||
`((fset ',fn (lambda () ,@rest))
|
||||
(byte-compile ',fn)
|
||||
(setq-default ,name (quote (:eval (,fn))))))))
|
||||
;; isolate body
|
||||
(setq body rest)
|
||||
(while (keywordp (car body))
|
||||
|
Reference in New Issue
Block a user