doomemacs/modules/editor/file-templates
Sam Whitlock 86345887d8
Fixing the gpl template clash.
Need to escape the backticks that should appear as literals in the GPLv3 license.
2021-02-27 15:38:04 +01:00
..
templates
autoload.el
config.el
packages.el
README.org

editor/file-templates

Description

This module adds file templates for blank files, powered by yasnippet.

Module Flags

This module provides no flags.

Plugins

This module installs no plugins.

Prerequisites

This module has no prerequisites.

Usage

File templates are automatically expanded when opening empty files.

They are also regular yasnippet snippets, which can be expanded by typing their trigger and pressing TAB. By convention, the triggers for file templates are prefixed with two underscores __.

Inserting OSS licenses

A special command is available for inserting software licenses: M-x +file-templates/insert-license.

Licenses with a -bp suffix are boilerplate templates; shorter versions meant for comment headers in code.

Configuration

Registering a new file template

Look into the documentation of set-file-template! and set-file-templates!.

Changing existing file templates

Simply register a new template (using set-file-template!) that matches the same file. The new template would be pushed to the top of +file-template-alist and thus would take priority while searching for a template to insert.

Adding new OSS licenses

The +file-templates/insert-license command searches for snippets under text-mode that are named __license-ABC, where ABC is the short name of the license. e.g. __license-mit.

So long as these files exist, +file-templates/insert-license will recognize them.

Troubleshooting

If a file template isn't expanding where you expect it to, run M-x +file-templates/debug. This will report to you what file template rule would apply for the correct file.

Appendix

API

  • set-file-template! PRED &rest PLIST
  • set-file-templates! &rest TEMPLATES

Commands

  • +file-templates/insert-license
  • +file-templates/debug

Variables

  • +file-templates-dir
  • +file-templates-default-trigger
  • +file-templates-alist