Homepage: https://github.com/mineo/yatemplate
Author: Wieland Hoffmann
Updated:
File templates with yasnippet
This package bridges the gap between yasnippet and auto-insert-mode. By
populating auto-insert-alist with filenames and automatically expanding their
content after insertion by auto-insert-mode, it's an easy way to create
dynamic file templates. Simply call `yatemplate-fill-alist' somewhere in
your Emacs initialization file to populate `auto-insert-alist' with filenames
from `yatemplate-dir'.
Each filename will be turned into a new element to `push' onto
`auto-insert-alist'. To guarantee a particular order, filenames must contain
one colon (":"). After collecting all the filenames in `yatemplate-dir',
their names will be sorted with `string<', then split on the colon. The
first substring will be discarded, which means it can be used to establish an
ordering. The second substring will be used as a regexp as the CONDITION of
the element to push onto `auto-insert-alist'. The ACTION will be a vector of
actions that first insert the content of the template file and then expand
the content of the buffer with `yatemplate-expand-yas-buffer', which simply
calls `yas-expand-snippet', so you can use everything YASnippet offers in the
template.
This means that if `yatemplate-dir' looks like this:
.emacs.d/templates
├── 00:test_.*.py
└── 01:.*.py
`yatemplate-fill-alist' will first `push' (".*.py" . ACTION) onto
`auto-insert-alist' and then ("test_.*.py" . ACTION).
Of course, you will need to enable `auto-insert-mode' to have the snippet
inserted and expanded into new files.