From: Frederik Vanrenterghem Date: Wed, 9 Apr 2025 14:04:29 +0000 (+0800) Subject: Use Tempel for templates in Emacs. X-Git-Url: http://git.vanrenterghem.biz/Dotty.git/commitdiff_plain/3f90ac737de790a536f50ec6a16810bfb8f42033?ds=inline Use Tempel for templates in Emacs. --- diff --git a/emacs/.emacs.d/init.el b/emacs/.emacs.d/init.el index ee17ca8..7df9f5a 100644 --- a/emacs/.emacs.d/init.el +++ b/emacs/.emacs.d/init.el @@ -60,6 +60,47 @@ vc-follow-symlinks t (use-package ess-view-data :ensure t) +;; Configure Tempel +(use-package tempel + :ensure t + ;; Require trigger prefix before template name when completing. + ;; :custom + ;; (tempel-trigger-prefix "<") + + :bind (("M-+" . tempel-complete) ;; Alternative tempel-expand + ("M-*" . tempel-insert)) + + :init + + ;; Setup completion at point + (defun tempel-setup-capf () + ;; Add the Tempel Capf to `completion-at-point-functions'. + ;; `tempel-expand' only triggers on exact matches. Alternatively use + ;; `tempel-complete' if you want to see all matches, but then you + ;; should also configure `tempel-trigger-prefix', such that Tempel + ;; does not trigger too often when you don't expect it. NOTE: We add + ;; `tempel-expand' *before* the main programming mode Capf, such + ;; that it will be tried first. + (setq-local completion-at-point-functions + (cons #'tempel-expand + completion-at-point-functions))) + + (add-hook 'conf-mode-hook 'tempel-setup-capf) + (add-hook 'prog-mode-hook 'tempel-setup-capf) + (add-hook 'text-mode-hook 'tempel-setup-capf) + + ;; Optionally make the Tempel templates available to Abbrev, + ;; either locally or globally. `expand-abbrev' is bound to C-x '. + ;; (add-hook 'prog-mode-hook #'tempel-abbrev-mode) + ;; (global-tempel-abbrev-mode) +) + +;; Optional: Add tempel-collection. +;; The package is young and doesn't have comprehensive coverage. +(use-package tempel-collection + :ensure t + :after tempel) + ;; enable autocomplete (use-package corfu :ensure t