From 5344491f766d82898507143bae617699439d904b Mon Sep 17 00:00:00 2001 From: jao Date: Sun, 13 Mar 2022 01:16:43 +0000 Subject: skels: functions and vars jao-skel-prefixed --- lib/skels/jao-skel-asdf.el | 2 +- lib/skels/jao-skel-caml.el | 6 +-- lib/skels/jao-skel-cpp.el | 17 +++--- lib/skels/jao-skel-cppunit.el | 8 +-- lib/skels/jao-skel-geiser.el | 10 ++-- lib/skels/jao-skel-haskell.el | 8 +-- lib/skels/jao-skel-latex.el | 4 +- lib/skels/jao-skel-lisp.el | 8 +-- lib/skels/jao-skel-make.el | 6 +-- lib/skels/jao-skel-perl.el | 16 +++--- lib/skels/jao-skel-python.el | 6 +-- lib/skels/jao-skel-readme.el | 2 +- lib/skels/jao-skel-texinfo.el | 12 ++--- lib/skels/jao-skel.el | 118 ++++++++++++------------------------------ 14 files changed, 80 insertions(+), 143 deletions(-) (limited to 'lib') diff --git a/lib/skels/jao-skel-asdf.el b/lib/skels/jao-skel-asdf.el index 132d780..71c1bad 100644 --- a/lib/skels/jao-skel-asdf.el +++ b/lib/skels/jao-skel-asdf.el @@ -27,7 +27,7 @@ (define-skeleton jao-skel-asdf-file "ASDF file header" "Description: " - '(setq sys (jao-basename)) + '(setq sys (jao-skel-basename)) '(lisp-mode) ";; -*- lisp -*- " sys " definition" \n \n diff --git a/lib/skels/jao-skel-caml.el b/lib/skels/jao-skel-caml.el index 32e7257..33e9b03 100644 --- a/lib/skels/jao-skel-caml.el +++ b/lib/skels/jao-skel-caml.el @@ -33,12 +33,12 @@ "Brief description: " "(* " (file-name-nondirectory (buffer-file-name)) ": " str " *)" > \n \n - (jao-copyright-line "(* " " *)") + (jao-skel-copyright-line "(* " " *)") > ?\n - (jao-insert-copyright-file) + (jao-skel-insert-license) "(* $" "Id$ *)" \n \n _) -(jao-provide-skel "\\.ml[i]?" 'jao-skel-caml-file) +(jao-skel-install "\\.ml[i]?" 'jao-skel-caml-file) (provide 'jao-skel-caml) ;;; jao-skel-caml ends here diff --git a/lib/skels/jao-skel-cpp.el b/lib/skels/jao-skel-cpp.el index 9a57123..0ddb61e 100644 --- a/lib/skels/jao-skel-cpp.el +++ b/lib/skels/jao-skel-cpp.el @@ -56,7 +56,7 @@ (defun jao-skel-cpp-make-guard-name (ns) "Create a standard include guard name" (upcase (mapconcat #'identity - `(,@ns ,(jao-basename) ,(jao-extension) + `(,@ns ,(jao-skel-basename) ,(jao-skel-extension) ,(user-login-name) ,(format-time-string "%y%m%d%H%M")) "_"))) @@ -136,16 +136,16 @@ > \n "*" > \n - (jao-copyright-line "* " "") + (jao-skel-copyright-line "* " "") "*" > ?\n - (jao-insert-copyright-file) + (jao-skel-insert-license) > \n \n _) (define-skeleton jao-skel-cpp-header-brief "Brief initial header blurb" nil - (jao-copyright-line "/* " " */") + (jao-skel-copyright-line "/* " " */") \n) (define-skeleton jao-skel-cpp-header-comment @@ -172,7 +172,6 @@ '(jao-skel-cpp-header-comment) "#include \"" (jao-skel-cpp--find-other "h") "\"" > _ \n \n \n \n - (jao-scm-line "/* " " */") > \n) @@ -183,7 +182,7 @@ (define-skeleton jao-skel-cpp-class-def "Insert a class definition" nil - '(setq v1 (jao-basename)) + '(setq v1 (jao-skel-basename)) > \n "/**" > \n @@ -240,11 +239,9 @@ "#define " v1 > _ \n \n \n \n "#endif /* " v1 " */" - > \n \n - (jao-scm-line "/* " " */") - > \n) + > \n > \n) -(jao-skel-provide +(jao-skel-install* '(("\\.cpp$" jao-skel-cpp-source-header) ("\\.hpp$" jao-skel-cpp-header) ("\\.c$" jao-skel-c-source-header) diff --git a/lib/skels/jao-skel-cppunit.el b/lib/skels/jao-skel-cppunit.el index de77f3a..37c683a 100644 --- a/lib/skels/jao-skel-cppunit.el +++ b/lib/skels/jao-skel-cppunit.el @@ -47,7 +47,7 @@ "Create a CPPUNIT class definition preamble" nil > - "CPPUNIT_TEST_SUITE(" (jao-basename) ");" + "CPPUNIT_TEST_SUITE(" (jao-skel-basename) ");" > \n "CPPUNIT_TEST(test);" > \n @@ -68,11 +68,11 @@ "Create a CPPUNIT class implementation preamble" nil > - "CPPUNIT_TEST_SUITE_REGISTRATION(" (jao-basename) ");" + "CPPUNIT_TEST_SUITE_REGISTRATION(" (jao-skel-basename) ");" > \n \n "void" > \n - (jao-basename) "::set_up()" + (jao-skel-basename) "::set_up()" > \n "{" > \n @@ -80,7 +80,7 @@ > \n \n "void" > \n - (jao-basename) "::tear_down()" + (jao-skel-basename) "::tear_down()" > \n "{" > \n diff --git a/lib/skels/jao-skel-geiser.el b/lib/skels/jao-skel-geiser.el index f42b16c..8e64c17 100644 --- a/lib/skels/jao-skel-geiser.el +++ b/lib/skels/jao-skel-geiser.el @@ -22,18 +22,18 @@ "Brief description: " ";;; " (file-name-nondirectory (buffer-file-name)) " -- " str "" \n \n - (jao-copyright-line ";; ") \n + (jao-skel-copyright-line ";; ") \n jao-skel-geiser--bsd - \n (jao-date-line ";; ") \n) + \n (jao-skel-date-line ";; ") \n) (define-skeleton jao-skel-geiser-elisp "Geiser elisp header" nil '(jao-skel-geiser--common) - " " \n _ \n \n " " \n "(provide '" (jao-basename) ")" \n + " " \n _ \n \n " " \n "(provide '" (jao-skel-basename) ")" \n (jao-skel-geiser--end-line)) -(jao-provide-skel "geiser/elisp/.+\\.el\\'" 'jao-skel-geiser-elisp) +(jao-skel-install "geiser/elisp/.+\\.el\\'" 'jao-skel-geiser-elisp) (define-skeleton jao-skel-geiser-scheme "Geiser scheme header" @@ -41,7 +41,7 @@ '(jao-skel-geiser--common) _ \n (jao-skel-geiser--end-line)) -(jao-provide-skel "geiser/scheme/.+\\.\\(scm\\|ss\\|sls\\)\\'" +(jao-skel-install "geiser/scheme/.+\\.\\(scm\\|ss\\|sls\\)\\'" 'jao-skel-geiser-scheme) diff --git a/lib/skels/jao-skel-haskell.el b/lib/skels/jao-skel-haskell.el index 559b467..d785dbf 100644 --- a/lib/skels/jao-skel-haskell.el +++ b/lib/skels/jao-skel-haskell.el @@ -34,7 +34,7 @@ (mbase (and ddir (concat (replace-regexp-in-string "/" "." ddir) "."))) (m (read-string "Module prefix (empty for no module): " - (concat (or mbase "") (jao-basename))))) + (concat (or mbase "") (jao-skel-basename))))) (or m ""))) (defconst jao-skel--haskell-line (make-string 78 ?-)) @@ -47,7 +47,7 @@ jao-skel--haskell-line \n "-- |" \n "-- Module: " v \n - (jao-copyright-line "-- Copyright: " "" t) + (jao-skel-copyright-line "-- Copyright: " "" t) "-- License: BSD3-style (see LICENSE)" \n "--" \n "-- Maintainer: " user-mail-address \n @@ -62,8 +62,8 @@ \n \n \n "module " v " where " \n \n \n) -(jao-provide-skel "\\.hs\\'" 'jao-skel-haskell-file) -;; (jao-provide-skel "\\.lhs\\'" 'jao-skel-lit-haskell-file) +(jao-skel-install "\\.hs\\'" 'jao-skel-haskell-file) +;; (jao-skel-install "\\.lhs\\'" 'jao-skel-lit-haskell-file) (provide 'jao-skel-haskell) diff --git a/lib/skels/jao-skel-latex.el b/lib/skels/jao-skel-latex.el index 4981acc..c8f6bb2 100644 --- a/lib/skels/jao-skel-latex.el +++ b/lib/skels/jao-skel-latex.el @@ -41,11 +41,11 @@ \n "%%" ?\n - (jao-copyright-line "% ") + (jao-skel-copyright-line "% ") \n "%%" \n \n) -(jao-provide-skel "\\.tex$\\|\\.sty$\\|\\.cls$" 'jao-skel-latex) +(jao-skel-install "\\.tex$\\|\\.sty$\\|\\.cls$" 'jao-skel-latex) (provide 'jao-skel-latex) diff --git a/lib/skels/jao-skel-lisp.el b/lib/skels/jao-skel-lisp.el index 999481d..34bbd41 100644 --- a/lib/skels/jao-skel-lisp.el +++ b/lib/skels/jao-skel-lisp.el @@ -33,18 +33,18 @@ "Brief description: " ";; " (file-name-nondirectory (buffer-file-name)) " -- " str "" ?\n - (jao-c&co-line ";; ") + (jao-skel-copyright-lines ";; ") ?\n - (jao-insert-copyright-file) + (jao-skel-insert-license) \n ";;; Comentary: " \n \n ";; " _ \n \n ";;; Code: " \n \n \n \n '(when (eq major-mode 'emacs-lisp-mode) - (insert (format " \n(provide '%s)\n" (jao-basename)))) + (insert (format " \n(provide '%s)\n" (jao-skel-basename)))) ";;; " (file-name-nondirectory (buffer-file-name)) " ends here" \n \n) -(jao-provide-skel "\\.\\(scm\\|ss\\|lisp\\|cl)\\'" 'jao-skel-lisp-file) +(jao-skel-install "\\.\\(scm\\|ss\\|lisp\\|cl)\\'" 'jao-skel-lisp-file) (provide 'jao-skel-lisp) ;;; jao-skel-lisp.el ends here diff --git a/lib/skels/jao-skel-make.el b/lib/skels/jao-skel-make.el index e24e509..5810c69 100644 --- a/lib/skels/jao-skel-make.el +++ b/lib/skels/jao-skel-make.el @@ -43,10 +43,10 @@ \n "#" ?\n - (jao-copyright-line "# ") + (jao-skel-copyright-line "# ") \n - (jao-insert-copyright-file)) + (jao-skel-insert-license)) -(jao-provide-skel "\\.mk$\\|Makefile\\(\\.am\\)?\\|configure\\.in" 'jao-skel-makefile) +(jao-skel-install "\\.mk$\\|Makefile\\(\\.am\\)?\\|configure\\.in" 'jao-skel-makefile) (provide 'jao-skel-make) diff --git a/lib/skels/jao-skel-perl.el b/lib/skels/jao-skel-perl.el index eea02d0..62f89a3 100644 --- a/lib/skels/jao-skel-perl.el +++ b/lib/skels/jao-skel-perl.el @@ -41,9 +41,9 @@ > \n "#" > ?\n - (jao-copyright-line "# ") + (jao-skel-copyright-line "# ") > ?\n - (jao-insert-copyright-file) + (jao-skel-insert-license) > \n "use strict;" > \n \n @@ -58,20 +58,20 @@ > \n "#" > ?\n - (jao-copyright-line "# ") + (jao-skel-copyright-line "# ") > ?\n - (jao-insert-copyright-file) + (jao-skel-insert-license) "# " > \n \n "package " - (read-string (concat "Module name (" (jao-basename) "): ") - nil nil (jao-basename)) + (read-string (concat "Module name (" (jao-skel-basename) "): ") + nil nil (jao-skel-basename)) ";" > \n \n _ \n \n "1;" > \n) -(jao-provide-skel "\\.pl$" 'jao-skel-perl-script) -(jao-provide-skel "\\.pm$" 'jao-skel-perl-module) +(jao-skel-install "\\.pl$" 'jao-skel-perl-script) +(jao-skel-install "\\.pm$" 'jao-skel-perl-module) (provide 'jao-skel-perl) diff --git a/lib/skels/jao-skel-python.el b/lib/skels/jao-skel-python.el index 25a0ba1..aa224df 100644 --- a/lib/skels/jao-skel-python.el +++ b/lib/skels/jao-skel-python.el @@ -41,12 +41,12 @@ > \n "#" > ?\n - (jao-copyright-line "# ") + (jao-skel-copyright-line "# ") > ?\n - (jao-insert-copyright-file) + (jao-skel-insert-license) > \n > \n _) -(jao-provide-skel "\\.py$" 'jao-skel-python-module) +(jao-skel-install "\\.py$" 'jao-skel-python-module) (provide 'jao-skel-python) diff --git a/lib/skels/jao-skel-readme.el b/lib/skels/jao-skel-readme.el index dfeb7ad..227afa8 100644 --- a/lib/skels/jao-skel-readme.el +++ b/lib/skels/jao-skel-readme.el @@ -33,7 +33,7 @@ \n "-----------------------------------------------------" \n _ \n \n \n "-----------------------------------------------------" \n - (jao-copyright-line "" "") + (jao-skel-copyright-line "" "") \n \n "$Id" "$" \n) diff --git a/lib/skels/jao-skel-texinfo.el b/lib/skels/jao-skel-texinfo.el index b822e3f..1130850 100644 --- a/lib/skels/jao-skel-texinfo.el +++ b/lib/skels/jao-skel-texinfo.el @@ -33,18 +33,15 @@ (desc (read-string "Direntry description: "))) (concat "@dircategory " cat "\n@direntry\n" ent - ": (" (jao-basename) "). " desc "." + ": (" (jao-skel-basename) "). " desc "." "\n@end direntry\n"))) (define-skeleton jao-skel-main-texinfo "Main texinfo file skeleton" "Document title: " "\\input texinfo" - \n "@ignore" > - \n (jao-scm-line "") - "@end ignore" > \n > "@c %**start of header" - \n "@setfilename " (jao-basename) ".info" > + \n "@setfilename " (jao-skel-basename) ".info" > \n "@settitle " str > \n "@syncodeindex pg cp" > \n "@setchapternewpage odd" > @@ -60,7 +57,7 @@ \n \n "@copying" \n "This manual is for " str " (version @value{VERSION}, @value{UPDATED})." \n - \n "Copyright @copyright{} " (format-time-string "%Y") " " jao-company-name + \n "Copyright @copyright{} " (format-time-string "%Y") " " jao-skel-company-name \n \n "@quotation" \n "Permission is granted to copy, distribute and/or modify this document" @@ -106,9 +103,6 @@ "Node name: " "@node " str \n > "@chapter " str \n - > "@ignore" \n - (jao-scm-line "") - > "@end ignore" \n \n _ \n \n "@c This is part of the " (read-string "Main doc title: ") \n "@c See the main file for copying conditions." diff --git a/lib/skels/jao-skel.el b/lib/skels/jao-skel.el index 859810d..9bd402d 100644 --- a/lib/skels/jao-skel.el +++ b/lib/skels/jao-skel.el @@ -29,129 +29,75 @@ (require 'skeleton) (require 'autoinsert) -(defvar jao-company-name nil +(defvar jao-skel-company-name nil "Company name used in copyright notice") -(defvar jao-copyright-file ".copyright" +(defvar jao-skel-copyright-file ".copyright" "Basename of the raw (uncommented) copyright file") -(defvar jao-skels-default-scm nil - "Default SCM system") +(defun jao-skel--prefix (pref) (or pref (concat comment-start " "))) +(defun jao-skel--suffix (suff) (or suff (concat " " comment-end))) -(defun jao-prefix (pref) (or pref (concat comment-start " "))) -(defun jao-suffix (suff) (or suff (concat " " comment-end))) - -(defun jao-copyright-line (prefix &optional suffix omit-cpy) +(defun jao-skel-copyright-line (prefix &optional suffix omit-cpy) "Create a brief copyright notice with given PREFIX and SUFFIX" - (concat (jao-prefix prefix) + (concat (jao-skel--prefix prefix) (if omit-cpy "" "Copyright ") "(c) " (format-time-string "%Y") " " - (or jao-company-name (user-full-name)) - (jao-suffix suffix) "\n")) + (or jao-skel-company-name (user-full-name)) + (jao-skel--suffix suffix) "\n")) -(defun jao-date-line (prefix &optional suffix) +(defun jao-skel-date-line (prefix &optional suffix) "Create a start date line" - (concat (jao-prefix prefix) + (concat (jao-skel--prefix prefix) "Start date: " (format-time-string "%a %b %d, %Y %H:%M") - (jao-suffix suffix) "\n")) + (jao-skel--suffix suffix) "\n")) -(defun jao-author-line (prefix &optional suffix) +(defun jao-skel-author-line (prefix &optional suffix) "Create an author date line" - (concat (jao-prefix prefix) + (concat (jao-skel--prefix prefix) "Author: " (user-full-name) " <" user-mail-address "> " - (jao-suffix suffix) "\n")) - -(defun jao-cvs-line (prefix &optional suffix) - "Create a CVS ID line" - (concat (jao-prefix prefix) "$" "Id$" (jao-suffix suffix) "\n")) - -(defun jao-svn-line (prefix &optional suffix) - "Create a SVN ID line" - (concat (jao-prefix prefix) "X-SVN: $" "Id$" (jao-suffix suffix) "\n")) - -(defun jao-arch-line (&optional prefix suffix) - "Create an arch-tag line" - (let ((uuid (shell-command-to-string "uuidgen"))) - (concat (jao-prefix prefix) "arch-tag: " uuid (jao-suffix suffix) "\n"))) - -(defun jao-insert-arch-line () - (interactive) - (insert (jao-arch-line))) - -(defun jao-scm-line (prefix &optional suffix) - "Create an scm line" - (let* ((formats '(("arch" . jao-arch-line) - ("svn" . jao-svn-line) - ("cvs" . jao-cvs-line) - ("none" . (lambda (p f) "")))) - (names (mapcar 'car formats)) - (prompt (concat "SCM (" (mapconcat 'identity names ", ") "): ")) - (sel (or jao-skels-default-scm - (completing-read prompt formats nil 1))) - (fun (cdr (assoc sel formats)))) - (when fun (concat (funcall fun prefix suffix))))) - -(defun jao-c&co-line (&optional prefix suffix) - (concat (jao-scm-line prefix suffix) "\n" - (jao-co-line prefix suffix))) - -(defun jao-co-line (&optional prefix suffix) - (concat (jao-copyright-line prefix suffix) "\n" - (jao-author-line prefix suffix) - (jao-date-line prefix suffix))) - -;; aux functions --------------------------------------------------------- -(defun jao-basename () - "Get buffer file name without dir nor extension" - (file-name-sans-extension (file-name-nondirectory (buffer-file-name)))) + (jao-skel--suffix suffix) "\n")) -(defun jao-basedir () - "Base directory" - (file-name-nondirectory - (substring (file-name-directory (buffer-file-name)) 0 -1))) +(defun jao-skel-copyright-lines (&optional prefix suffix) + (concat (jao-skel-copyright-line prefix suffix) "\n" + (jao-skel-author-line prefix suffix) + (jao-skel-date-line prefix suffix))) -(defun jao-dir-level (l) - (let ((elems (split-string - (file-name-sans-extension (buffer-file-name)) "/"))) - (mapconcat 'identity (nthcdr (- (length elems) (+ 1 l)) elems) "/"))) +(defun jao-skel-basename () + "Get buffer file name without dir nor extension" + (file-name-sans-extension (file-name-nondirectory (buffer-file-name)))) -(defun jao-extension () +(defun jao-skel-extension () "Find the extension of the currently visited file" (let ((elems (split-string (file-name-nondirectory (buffer-file-name)) "\\."))) (nth (- (length elems) 1) elems))) -(defun jao-other-file-name (ext1 ext2) - "Find the complimentary file name of header/source file" - (let ((extension (jao-extension)) - (basename (jao-basename))) - (if (string= extension ext1) (concat basename "." ext2) - (concat basename "." ext1)))) - -(defun jao-insert-commented-file (file-name) +(defun jao-skel--insert-commented-file (file-name) (let* ((start (point)) (end (+ start (cadr (insert-file-contents file-name))))) (goto-char end) (comment-region start (point)))) -(defun jao-insert-copyright-file () - (let ((dir (locate-dominating-file (buffer-file-name) jao-copyright-file))) +(defun jao-skel-insert-license () + (let ((dir (locate-dominating-file (buffer-file-name) jao-skel-copyright-file))) (when dir - (let ((file (expand-file-name jao-copyright-file dir))) + (let ((file (expand-file-name jao-skel-copyright-file dir))) (when (file-exists-p file) - (jao-insert-commented-file file)))))) + (jao-skel--insert-commented-file file)))))) -(defun jao-provide-skel (regexp skel) +(defun jao-skel-install (regexp skel) (let ((ex (assoc regexp auto-insert-alist))) (if ex (setf (cdr ex) skel) (add-to-list 'auto-insert-alist (cons regexp skel))))) -(defsubst jao-skel-provide (lst) - (mapc (lambda (x) (apply #'jao-provide-skel x)) lst)) +(defsubst jao-skel-install* (lst) + (mapc (lambda (x) (apply #'jao-skel-install x)) lst)) (setq auto-insert t) (add-hook 'find-file-hooks 'auto-insert) -(setq auto-insert-directory "~/.autoinsert/") + +(setq auto-insert-directory "~/.emacs.d/autoinsert/") (setq auto-insert-query t) (provide 'jao-skel) -- cgit v1.2.3