[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/tempel a5dde06576 75/82: Add tempel-abbrev-mode and tem
From: |
ELPA Syncer |
Subject: |
[elpa] externals/tempel a5dde06576 75/82: Add tempel-abbrev-mode and tempel-global-abbrev-mode |
Date: |
Sun, 9 Jan 2022 20:58:46 -0500 (EST) |
branch: externals/tempel
commit a5dde06576d55f3985e72225d48d42948e2152d5
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
Add tempel-abbrev-mode and tempel-global-abbrev-mode
These modes make the Tempel templates available to `expand-abbrev` (C-x ').
See #11 for discussion.
---
tempel.el | 34 +++++++++++++++++++++++++++-------
1 file changed, 27 insertions(+), 7 deletions(-)
diff --git a/tempel.el b/tempel.el
index f3b5cd7e65..6dabefd3bf 100644
--- a/tempel.el
+++ b/tempel.el
@@ -429,7 +429,7 @@ The completion table specifies the category `tempel'."
If INTERACTIVE is nil the function acts like a capf."
(interactive (list t))
(if interactive
- (tempel--interactive #'tempel-exact)
+ (tempel--interactive #'tempel-expand)
(when-let* ((templates (tempel--templates))
(bounds (bounds-of-thing-at-point 'symbol))
(name (buffer-substring-no-properties
@@ -495,12 +495,32 @@ If called interactively, select a template with
`completing-read'."
(define-key ,(or map 'global-map) ,(kbd key) #',cmd))))
;;;###autoload
-(defmacro tempel-abbrev (name &optional table)
- "Define template abbrev NAME in abbrevation TABLE."
- `(define-abbrev ,(or table global-abbrev-table)
- ,(symbol-name name) ""
- (lambda () (tempel-insert ',name))
- :system t))
+(define-minor-mode tempel-abbrev-mode
+ "Install Tempel templates as abbrevs."
+ :group 'tempel
+ :global nil
+ (setq-local abbrev-minor-mode-table-alist
+ (assq-delete-all 'tempel-abbrev-mode
abbrev-minor-mode-table-alist))
+ (when (eq abbrev-minor-mode-table-alist (default-value
'abbrev-minor-mode-table-alist))
+ (kill-local-variable 'abbrev-minor-mode-table-alist))
+ (when tempel-abbrev-mode
+ (let ((table (make-abbrev-table)))
+ (dolist (template (tempel--templates))
+ (define-abbrev table (symbol-name (car template)) ""
+ (apply-partially #'tempel--insert (cdr template) nil)
+ :system t))
+ (setq-local abbrev-minor-mode-table-alist
+ (cons `(tempel-abbrev-mode . ,table)
+ abbrev-minor-mode-table-alist)))))
+
+;;;###autoload
+(define-globalized-minor-mode tempel-global-abbrev-mode tempel-abbrev-mode
+ tempel--abbrev-on :group 'tempel)
+
+(defun tempel--abbrev-on ()
+ "Enable abbrev mode locally."
+ (unless (or noninteractive (eq (aref (buffer-name) 0) ?\s))
+ (tempel-abbrev-mode 1)))
(provide 'tempel)
;;; tempel.el ends here
- [elpa] externals/tempel 5e1a864123 68/82: Add tempel-abbrev to define an abbrev, (continued)
- [elpa] externals/tempel 5e1a864123 68/82: Add tempel-abbrev to define an abbrev, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 6c288c32a2 80/82: README: Document Capf setup (Fix #14), ELPA Syncer, 2022/01/09
- [elpa] externals/tempel b5cea7ac67 03/82: Add template markers, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 545b929a28 45/82: README: Fix formatting, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 1ef2d76dd1 35/82: Add screenshots, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel fcfb19e134 47/82: Improve undo, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 36a7977702 62/82: Use cyan color for default values, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel bcf135f993 66/82: Bind lexical environment for prompt eval, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 7a7813e531 26/82: Maintain list of active templates, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 934bf35f4b 37/82: Set deleted overlays to nil, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel a5dde06576 75/82: Add tempel-abbrev-mode and tempel-global-abbrev-mode,
ELPA Syncer <=
- [elpa] externals/tempel 49ba6e795e 79/82: README update, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 72a31055cc 41/82: Fix movement commands, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 29ca4b424d 13/82: README formatting, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 931ea613cb 49/82: Remove faces, reduce visual noise, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 49f779027c 38/82: Minor corrections, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel c8bd4d7e95 61/82: Add special treatment for default values, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 23443415c6 29/82: README: add more examples, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 566fbe15da 50/82: Add back faces, improve undo, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 87a5237034 28/82: Expand docstring, ELPA Syncer, 2022/01/09
- [elpa] externals/tempel 9fc17d541c 58/82: temple-key: Generate docstring, ELPA Syncer, 2022/01/09