[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/tempel 2cff879181 30/82: Do not call modification hooks
From: |
ELPA Syncer |
Subject: |
[elpa] externals/tempel 2cff879181 30/82: Do not call modification hooks from forms |
Date: |
Sun, 9 Jan 2022 20:58:43 -0500 (EST) |
branch: externals/tempel
commit 2cff879181c4024f364f564bf67a8f4bd99ea83f
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
Do not call modification hooks from forms
---
tempel.el | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/tempel.el b/tempel.el
index a2f4a5a4bc..f817473f70 100644
--- a/tempel.el
+++ b/tempel.el
@@ -153,12 +153,11 @@ BEG and END are the boundaries of the modification."
(insert str)
(move-overlay other (overlay-start other) (point))))))))))
-(defun tempel--field (st &optional face)
- "Add template field with FACE to ST."
+(defun tempel--field (st)
+ "Add template field 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 'face 'tempel-field)
+ (overlay-put ov 'before-string #(" " 0 1 (display (space :width (1)) face
tempel-field)))
(overlay-put ov 'modification-hooks (list #'tempel--update-field))
(overlay-put ov 'insert-behind-hooks (list #'tempel--update-field))
(overlay-put ov 'tempel--state st)
@@ -175,13 +174,16 @@ BEG and END are the boundaries of the modification."
(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.
+ (let ((beg (point)))
(condition-case nil
(insert (eval form (cdr st)))
+ ;; Ignore errors since some variables may not be defined yet.
(void-variable nil))
- (move-overlay ov (overlay-start ov) (point))))
+ (let ((ov (make-overlay beg (point) nil t)))
+ (overlay-put ov 'face 'tempel-form)
+ (overlay-put ov 'before-string #(" " 0 1 (display (space :width (1))
face tempel-form)))
+ (overlay-put ov 'tempel--form form)
+ (push ov (car st)))))
(defun tempel--query (st prompt name)
"Read input with PROMPT and assign to binding NAME in ST."
@@ -243,7 +245,7 @@ BEG and END are the boundaries of the modification."
(inhibit-modification-hooks t))
(push (make-overlay (point) (point)) (car st))
(dolist (x template) (tempel--element st x region))
- (push (make-overlay (point) (point) nil nil t) (car st))
+ (push (make-overlay (point) (point)) (car st))
(push st tempel--active)))
;; Jump to first field
(tempel-next 1))
- [elpa] externals/tempel db24ec0c9e 22/82: Reevaluate forms when arbitrary fields are modified, (continued)
- [elpa] externals/tempel db24ec0c9e 22/82: Reevaluate forms when arbitrary fields are modified, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 09a0e3bfb0 19/82: Improve annotations, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 16b0fa274a 09/82: Rename commands, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 73cee5feb6 12/82: Update comments, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel b54036f1fa 21/82: Add comment, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 11cfbe239d 36/82: Fix undo, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel ffdf2c792a 77/82: Document the abbrev modes (See #14), ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 460f8fe806 81/82: Fix the MELPA issues, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel aec4f10253 82/82: Addition to GNU ELPA, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel d4bd649645 59/82: Minor renaming, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 2cff879181 30/82: Do not call modification hooks from forms,
ELPA Syncer <=
- [elpa] externals/tempel 1222c59b30 39/82: Update README, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 07d16fded7 67/82: Update fields when new field is inserted, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel f0df571f66 17/82: Respect derived modes, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel bf95b3f1c2 31/82: Add support for (q (FORM ...) var), ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 64f896d782 44/82: Fix jump to first field, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 9948c6889d 43/82: Add tempel-form-prefix and tempel-field-prefix, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel ad71c25632 32/82: Add syntax extension (p (FORM...) <NAME>), ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 5dbdc76eb2 74/82: Specify the completion category tempel, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 65a3eb0458 76/82: Improve abbreviation expansion, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 57bbc5e681 78/82: README update, ELPA Syncer, 2022/01/09