[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/tempel e20f982dc5 25/82: Remove global variable tempel-
From: |
ELPA Syncer |
Subject: |
[elpa] externals/tempel e20f982dc5 25/82: Remove global variable tempel--state |
Date: |
Sun, 9 Jan 2022 20:58:42 -0500 (EST) |
branch: externals/tempel
commit e20f982dc5c4e5411d6ad3b1a979561e01dd6ba1
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
Remove global variable tempel--state
---
tempel.el | 65 +++++++++++++++++++++++++++++++--------------------------------
1 file changed, 32 insertions(+), 33 deletions(-)
diff --git a/tempel.el b/tempel.el
index 8c3ddb4801..1821594831 100644
--- a/tempel.el
+++ b/tempel.el
@@ -66,7 +66,6 @@
(defvar tempel--templates nil)
(defvar tempel--modified nil)
(defvar tempel--history nil)
-(defvar tempel--state nil)
(defvar-local tempel--overlays nil)
(defvar tempel-map
@@ -126,59 +125,59 @@ BEG and END are the boundaries of the modification."
;; with an invalid undo state after tempel-done.
(with-silent-modifications
(move-overlay ov (overlay-start ov) (max end (overlay-end ov)))
- (let ((state (overlay-get ov 'tempel--state))
+ (let ((st (overlay-get ov 'tempel--state))
(name (overlay-get ov 'tempel--name))
str)
(when name
(setq str (buffer-substring-no-properties (overlay-start ov)
(overlay-end ov)))
- (setf (alist-get name (cdr state)) str))
- (dolist (other (car state))
+ (setf (alist-get name (cdr st)) str))
+ (dolist (other (car st))
(unless (eq other ov)
(goto-char (overlay-start other))
(when-let (str (if-let (form (overlay-get other 'tempel--form))
- (eval form (cdr state))
+ (eval form (cdr st))
(and name (eq name (overlay-get other
'tempel--name)) str)))
(delete-char (- (overlay-end other) (point)))
(insert str)
(move-overlay other (overlay-start other) (point))))))))))
-(defun tempel--field (&optional face)
- "Create template field with FACE."
+(defun tempel--field (st &optional face)
+ "Add template field with FACE to ST."
(let ((ov (make-overlay (point) (point))))
(setq face (or face 'tempel-field))
(overlay-put ov 'face face)
(overlay-put ov 'before-string (propertize " " 'face face 'display '(space
:width (1))))
(overlay-put ov 'modification-hooks (list #'tempel--update-field))
(overlay-put ov 'insert-behind-hooks (list #'tempel--update-field))
- (overlay-put ov 'tempel--state tempel--state)
- (push ov (car tempel--state))
+ (overlay-put ov 'tempel--state st)
+ (push ov (car st))
(push ov tempel--overlays)
ov))
-(defun tempel--named (name)
- "Create template field named NAME."
- (let ((ov (tempel--field)))
+(defun tempel--named (st name)
+ "Add new template field NAME to ST."
+ (let ((ov (tempel--field st)))
(overlay-put ov 'tempel--name name)
- (when-let (str (alist-get name (cdr tempel--state)))
+ (when-let (str (alist-get name (cdr st)))
(insert str)
(move-overlay ov (overlay-start ov) (point)))))
-(defun tempel--form (form)
- "Create template field evaluating FORM."
- (let ((ov (tempel--field 'tempel-form)))
+(defun tempel--form (st form)
+ "Add new template field evaluating FORM to ST."
+ (let ((ov (tempel--field st 'tempel-form)))
(overlay-put ov 'tempel--form form)
;; Ignore variable errors, since some variables may not be defined yet.
(condition-case nil
- (insert (eval form (cdr tempel--state)))
+ (insert (eval form (cdr st)))
(void-variable nil))
(move-overlay ov (overlay-start ov) (point))))
-(defun tempel--query (prompt name)
- "Read input with PROMPT and assign to NAME."
- (setf (alist-get name (cdr tempel--state)) (read-string prompt)))
+(defun tempel--query (st prompt name)
+ "Read input with PROMPT and assign to binding NAME in ST."
+ (setf (alist-get name (cdr st)) (read-string prompt)))
-(defun tempel--element (element region)
- "Insert template ELEMENT given the REGION."
+(defun tempel--element (st element region)
+ "Add template ELEMENT to ST given the REGION."
(pcase element
('nil)
('n (insert "\n"))
@@ -192,24 +191,24 @@ BEG and END are the boundaries of the modification."
('o (unless (or region (eolp)
(save-excursion (re-search-forward "\\=\\s-*$" nil t)))
(open-line 1)))
- ('p (tempel--field))
- (`(s ,name) (tempel--named name))
+ ('p (tempel--field st))
+ (`(s ,name) (tempel--named st name))
;; LEGACY: (r ...) and (r> ...) is legacy syntax from Tempo, use r instead.
- ((or 'r `(r . ,_)) (if region (goto-char (cdr region)) (tempel--field)))
+ ((or 'r `(r . ,_)) (if region (goto-char (cdr region)) (tempel--field st)))
((or 'r> `(r> . ,_))
- (if (not region) (tempel--field)
+ (if (not region) (tempel--field st)
(goto-char (cdr region))
(indent-region (car region) (cdr region) nil)))
;; LEGACY: (p ...) and (P ...) is legacy syntax from Tempo, use q, s, or p
instead.
(`(,(or 'p 'P) ,prompt . ,rest)
(cond
- ((cadr rest) (tempel--query prompt (car rest)))
- ((car rest) (tempel--named (car rest)))
- (t (tempel--field))))
+ ((cadr rest) (tempel--query st prompt (car rest)))
+ ((car rest) (tempel--named st (car rest)))
+ (t (tempel--field st))))
;; EXTENSION: Query from minibuffer, Tempel extension!
- (`(q ,prompt ,name) (tempel--query prompt name))
+ (`(q ,prompt ,name) (tempel--query st prompt name))
;; EXTENSION: Evaluate forms, Tempel extension!
- (_ (tempel--form element))))
+ (_ (tempel--form st element))))
(defun tempel--insert (templates name region)
"Insert template NAME given the list of TEMPLATES and the REGION."
@@ -225,9 +224,9 @@ BEG and END are the boundaries of the modification."
(setf (overlay-end ov) (point))))
;; Begin marker
(push (make-overlay (point) (point)) tempel--overlays)
- (let ((tempel--state (cons nil nil))
+ (let ((st (cons nil nil))
(inhibit-modification-hooks t))
- (dolist (x template) (tempel--element x region)))
+ (dolist (x template) (tempel--element st x region)))
;; End marker
(push (make-overlay (point) (point) nil nil t) tempel--overlays))
;; Jump to first field
- [elpa] externals/tempel ac3df540a4 69/82: Remove underlines from faces, (continued)
- [elpa] externals/tempel ac3df540a4 69/82: Remove underlines from faces, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 7cf25bd795 71/82: Simplify templates data structure at load time, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 69f7cb3212 06/82: Reimplement without Tempo for more flexibility, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel fbef94d77d 48/82: Minor cleanup, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 01e7430343 27/82: Add docstrings, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel a03c36c8dd 02/82: Improve behavior when templates are nested, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel db6847a7f9 56/82: Make temple-key a macro, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 0e618cd169 23/82: Do not sort overlays, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 04d4f6c055 55/82: Use named key function, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 91f6978ddd 60/82: Use Tempo PROMPT as default value, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel e20f982dc5 25/82: Remove global variable tempel--state,
ELPA Syncer <=
- [elpa] externals/tempel fa99fb7f96 34/82: README: Update keybindings, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel c4cd6e0f69 73/82: Rename tempel-expand -> tempel-complete, add tempel-expand (Fix #13), ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 8f8588985a 04/82: Simplify template markers, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel d9efb707b3 20/82: Improve undo behavior, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 4bc75c1aba 52/82: Use the more subtle face colors from Modus, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 52d8556c05 57/82: Improve annotation function, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 675e759bde 64/82: Add special prompt treatment, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel e6aa1892af 14/82: README: Simplify template, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 2ba940809a 42/82: Add temple-abort (Fix #2), ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 5521546f48 10/82: README: Add header, ELPA Syncer, 2022/01/09