You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adjust lispy--function-parse to a new object representation.
* lispy.el (lispy--function-parse): Update function to a newer object representation. Fix `lispy-flatten'. In Emacs 30, it began to use dedicated type to represent interpreted-function values, `read' function now returns Closure Function Type instead of simple lists for most types that `lispy--function-parse' tries to handle (except macros, at least). See: - https://git.sv.gnu.org/cgit/emacs.git/commit/?id=f2bccae22bd47a2e7e0937b78ea06131711b935a - (elisp) Closure Type - (elisp) Closure Objects Compare (defmacro test-macro (&rest body) ,@Body) (symbol-function 'test-macro) ;; (macro . #[(&rest body) ((\,@ body)) (t)]) with (defun test-defun (x) (+ x 1)) (symbol-function 'test-defun) ;; #[(x) ((+ x 1)) (t)] There's alternative way to mitigate it, by changing end of `lispy--function-str' to: (error (let ((str (cl-prin1-to-string (symbol-function fun)))) (if (string-prefix-p "#f" str) (substring str 2) str))) But it hides the underlying change that needs to be addresed in the future. Partially fixes `lispy-let-flatten' as well, but keywords (&optional, &rest) in function's signature are not recognized correctly.
0 commit comments