81

GitHub - mineo/yatemplate: Simple file templates for Emacs with YASnippet

 5 years ago
source link: https://github.com/mineo/yatemplate
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

MELPA MELPA Stable Build Status

YATemplate

Installation

Install this package from MELPA with M-x package-install RET yatemplate RET.

Description

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.

Note that a dollar sign $ will be added to the end of the regular expression automatically because most of the template filenames will very likely be of the form filename.extension. If you want to specify a template filename where the last letters are not the extension, add .* at the end.

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.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK