yatemplate

Homepage: https://github.com/mineo/yatemplate

Author: Wieland Hoffmann

Updated:

Summary

File templates with yasnippet

Commentary

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.

Dependencies