From 98b91b323d87231dd475b9a0c722f2fb0e935bc0 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Sun, 7 Jan 2024 19:51:46 -0500 Subject: include tempel templates --- emacs/.config/emacs-v2/lisp/kj-development.el | 33 +++++++++++++++++++++++++++ emacs/.config/emacs-v2/templates | 23 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 emacs/.config/emacs-v2/templates diff --git a/emacs/.config/emacs-v2/lisp/kj-development.el b/emacs/.config/emacs-v2/lisp/kj-development.el index c7f1168..423ddf8 100644 --- a/emacs/.config/emacs-v2/lisp/kj-development.el +++ b/emacs/.config/emacs-v2/lisp/kj-development.el @@ -13,6 +13,39 @@ (add-to-list 'yas-snippet-dirs (expand-file-name "yasnippets" user-emacs-directory)) (yas-global-mode)) +(use-package tempel + ;; 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) +) + (use-package rustic :after eglot :bind (("C-c C-r C-s" . rustic-popup) diff --git a/emacs/.config/emacs-v2/templates b/emacs/.config/emacs-v2/templates new file mode 100644 index 0000000..5d8a773 --- /dev/null +++ b/emacs/.config/emacs-v2/templates @@ -0,0 +1,23 @@ +;; ~/.config/emacs/templates -*- mode: lisp-data; -*- + +fundamental-mode + +(today (format-time-string "%Y-%m-%d")) + +text-mode + +(cut "--8<---------------cut here---------------start------------->8---" n r n + "--8<---------------cut here---------------end--------------->8---" n) + +emacs-lisp-mode + +(header ";;; " (file-name-nondirectory (or (buffer-file-name) (buffer-name))) + " -- " p " -*- lexical-binding: t -*-" n + ";;; Commentary:" n ";;; Code:" n n) +(provide "(provide '" (file-name-base (or (buffer-file-name) (buffer-name))) ")" n + ";;; " (file-name-nondirectory (or (buffer-file-name) (buffer-name))) + " ends here" n) + +;; Local Variables: +;; outline-regexp: "[a-z]" +;; End: -- cgit v1.2.3