This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+completion/templates
..
config.el
packages.el
README.org

Templates layer

Description

This layer provides templates to Spacemacs. A template consists of text that is automatically inserted into a new file when it is opened. This is done via yatemplate, which leverages yasnippet.

Features:

  • Auto-insert snippets when creating specific new files.

Install

To use this configuration layer, add it to your ~/.spacemacs. You will need to add templates to the existing dotspacemacs-configuration-layers list in this file.

Configuration

Drop your templates in ~/.emacs.d/private/templates.

You can also specify a different location with templates-private-directory:

  (setq-default dotspacemacs-configuration-layers
    '((templates :variables templates-private-directory "~/.spacemacs.d/templates")))

Each file in this directory must be of the form XXX:regexp where regexp is a regular expression that will be matched against filenames. The prefix XXX can be used to enforce an ordering (templates that come first will have priority). It is not part of the final regexp. Therefore, more specific templates should come first. For example,

  00:test_.*.py
  01:.*.py

See the yatemplate documentation for specifics. Full yasnippet syntax is supported, so consult the yasnippet documentation for details.

Default insertions

Note that Emacs ships with some default templates. If these are not to your liking, set the layer variable templates-use-default-templates to nil.

  (setq-default dotspacemacs-configuration-layers
    '((templates :variables templates-use-default-templates nil)))

Querying

To disable the automatic querying each time a new file is opened, set auto-insert-query to nil.

  (setq auto-insert-query nil)