From 4b2e57e396314e63d70558e0aa5ad32c1cf87532 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Fri, 14 Jan 2022 17:20:23 -0600 Subject: David Bowie --- lisp/remember.el | 56 -------------------------------------------------------- 1 file changed, 56 deletions(-) delete mode 100644 lisp/remember.el (limited to 'lisp/remember.el') diff --git a/lisp/remember.el b/lisp/remember.el deleted file mode 100644 index a759419..0000000 --- a/lisp/remember.el +++ /dev/null @@ -1,56 +0,0 @@ -;;; remember.el --- Remember variables and modes -*- lexical-binding: t; -*- - -;;; Code: - -(defmacro remember-remember (alist) - (let* ((template (format "remember--%s-%%s" (gensym))) - (reset-fn (intern (format template "recall"))) - (things (cl-loop for (sym . newval) in alist - as rem = (intern (format template sym)) - - ;; Collect original values - - ))))) - - -(defmacro remember-set (&rest symbols) - "Setup a closure remembering symbols to apply with -`remember-reset'. The variables will be renamed using TEMPLATE. -SYMBOLS is a plist: the properties are symbols or mode names, and -their values what to set after `remember-setup'." - (let* ((template (format "remember--%s-%%s" (gensym))) - (reset-fn (intern (format template "reset"))) - (list (cl-loop for sym in symbols by #'cddr - collect `(,(intern (format template sym)) - ,sym) - into let-list - collect (let ((val (plist-get symbols sym))) - (cond ((eq val 'enable) - `(,sym +1)) - ((eq val 'disable) - `(,sym -1)) - (t `(setq-local ,sym ,val)))) - into fn-set-list - collect (let ((val (plist-get symbols sym)) - (rem (intern (format template sym)))) - (cond ((memq val '(enable disable)) - `(,sym (if ,rem +1 -1))) - (t `(setq-local ,sym ,rem)))) - into fn-reset-list - finally return (list let-list - fn-reset-list - fn-set-list)))) - `(progn - (defvar-local ,reset-fn nil - "Function to recall values from `remember-set'.") - (let ,(cl-first list) - (setf (symbol-function ',reset-fn) - (lambda () - ,@(cl-second list)))) - ,@(cl-third list) - ',reset-fn))) - -;; test - -(set 'fn (remember-set display-fill-column-indicator-mode disable)) -(funcall fn) -- cgit 1.4.1-21-gabe81