changelog shortlog graph tags branches files raw help

Mercurial > infra > home / changeset: templates

changeset 39: 86ce16b512b7
parent 38: 891ace7526cc
child 41: 14878efc5a61
author: Richard Westhaver <ellis@rwest.io>
date: Wed, 05 Jun 2024 17:00:54 -0400
files: .emacs.d/ellis.el
description: templates
     1.1--- a/.emacs.d/ellis.el	Tue Jun 04 22:00:23 2024 -0400
     1.2+++ b/.emacs.d/ellis.el	Wed Jun 05 17:00:54 2024 -0400
     1.3@@ -575,7 +575,9 @@
     1.4 rebind locally inside a project or module, where you want to delete some
     1.5 prefix or replace it.")
     1.6 
     1.7-  (defun skt-buffer-path () (funcall skt-skeleton-path-function buffer-file-name))
     1.8+  (defun skt-buffer-path (&optional function)
     1.9+    (let ((path (or buffer-file-name (format "%s.lisp" (gensym "scratch-")))))
    1.10+      (funcall (or function skt-skeleton-path-function) path)))
    1.11 
    1.12   (defun skt-skelfile-path ()
    1.13     (if (string= (file-name-nondirectory buffer-file-name) "skelfile")
    1.14@@ -609,31 +611,22 @@
    1.15   ;; (skt-define-template defpackage (:mode lisp-mode :tag t :abbrev "defpackage"))
    1.16   ;; (skt-define-template defpkg (:mode lisp-mode :tag t :abbrev "defpkg"))
    1.17 
    1.18-  (skt-define-template defmacro (:abbrev "defvar" :tag t :mode lisp-mode)
    1.19+  (skt-define-template defmacro (:abbrev "(defmacro" :tag t :mode lisp-mode)
    1.20     "(defmacro " (p "Name: ") " (" (p "Args: ") ")" > n> r ")")
    1.21 
    1.22-  (skt-define-template defun (:abbrev "defvar" :tag t :mode lisp-mode)
    1.23+  (skt-define-template defun (:abbrev "(defun" :tag t :mode lisp-mode)
    1.24     "(defun " (p "Name: ") " (" (p "Args: ") ")" > n> r ")")
    1.25 
    1.26-  (skt-define-template defvar (:abbrev "defvar" :tag t :mode lisp-mode)
    1.27+  (skt-define-template defvar (:abbrev "(defvar" :tag t :mode lisp-mode)
    1.28     > "(defvar " > r ")")
    1.29 
    1.30   ;; skeletons
    1.31   (skt-define-skeleton head (:abbrev "head" :mode lisp-mode)
    1.32-    "title: "
    1.33-    ";;; " (skt-buffer-path) " --- " str \n \n \n ";;; Code:" \n > _)
    1.34-
    1.35-  (skt-define-skeleton system-head (:abbrev "system-head" :mode lisp-mode)
    1.36-    "name: "
    1.37-    ";;; " (skt-buffer-path) " --- "
    1.38-    '(setq v1 (file-name-base (skt-buffer-path))) (capitalize v1)
    1.39-    " Sytem Definitions" \n
    1.40-    > "(defsystem :" v1 \n
    1.41-    > ":depends-on (:std :log)" \n
    1.42-    > ":components ((:file \"pkg\")" _ "))")
    1.43+      "description: "
    1.44+      ";;; " (skt-buffer-path 'file-name-nondirectory) " --- " str \n \n ";; " _ \n \n ";;; Code:" \n >)
    1.45 
    1.46   (skt-define-skeleton head (:abbrev "head" :mode skel-mode)
    1.47-    "title: "
    1.48+    "description: "
    1.49     ";;; " (skt-skelfile-path) " --- " str " -*- mode: skel; -*-" \n _)
    1.50 
    1.51   (skt-define-skeleton head (:abbrev "head" :mode org-mode)
    1.52@@ -643,6 +636,28 @@
    1.53     "#+description: " (skeleton-read "description: ") \n
    1.54     "#+setupfile: clean.theme" \n > _)
    1.55 
    1.56+  (skt-define-skeleton head (:abbrev "head" :mode rust-mode)
    1.57+    "description: "
    1.58+    "//! " (skt-buffer-path 'file-name-nondirectory) " --- " str \n \n "// " _ \n \n "//! Code: " \n >)
    1.59+
    1.60+  (skt-define-skeleton system-head (:abbrev "system-head" :mode lisp-mode)
    1.61+    "system-name: "
    1.62+    ";;; " (skt-buffer-path) " --- "
    1.63+    '(setq v1 (file-name-base (skt-buffer-path))) (capitalize v1)
    1.64+    " Sytem Definitions" \n
    1.65+    > "(defsystem :" v1 \n
    1.66+    > ":depends-on (:std :log)" \n
    1.67+    > ":components ((:file \"pkg\")" _ "))")
    1.68+
    1.69+  (skt-define-skeleton crate-head (:abbrev "crate-head" :mode conf-toml-mode)
    1.70+    "ignored"
    1.71+    "### " (skt-buffer-path 'file-name-nondirectory) " --- " 
    1.72+    '(setq v1 (skeleton-read "name: ")) v1 " Cargo Manifest" \n >
    1.73+    "[package]" \n
    1.74+    "name = \"" v1 "\"" \n
    1.75+    "version = \"" skt-default-version "\"" \n
    1.76+    "[dependencies]" \n >)
    1.77+
    1.78   (skt-define-skeleton local-vars
    1.79       (:tag t :abbrev "local-vars"
    1.80             :docstring "Insert a local variables section.  Use current comment syntax if any.")
    1.81@@ -673,9 +688,11 @@
    1.82   ;; autoinsert
    1.83   (skt-register-auto-insert "skelfile" #'skt-template-skel-head)
    1.84   (skt-register-auto-insert "readme.org" #'skt-template-org-readme)
    1.85+  (skt-register-auto-insert "Cargo.toml" #'skt-template-conf-toml-crate-head)
    1.86   (skt-register-auto-insert ".*[.]asd" #'skt-template-lisp-system-head)
    1.87+  (skt-register-auto-insert ".*[.]lisp" #'skt-template-lisp-head)
    1.88+  (skt-register-auto-insert ".*[.].rs" #'skt-template-rust-head)
    1.89   (auto-insert-mode t)
    1.90-
    1.91   (keymap-set skel-minor-mode-map "C-<return>" 'company-tempo))
    1.92 
    1.93 (provide 'ellis)