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)