* tpl.names()
* regionNames()
* metaData() .annotation(name)

Reflective API template as a config

The reflective API of the Snippetory Template allows the implement code generators, that are flexibly configured by the templates executed. One example would be Beanery, a generator that builds wrappers around templates, so that the IDE can provide code completion, or the Pagesally generator where the templates can define metadata, that's then used in other templates.

Template.names()

Provides all names, where a call to Templates.set(name, value) will have an effect. This includes location marks and regions

Template.regionNames()

This only gives the names of the region, so here a call to Templates.get(name) makes sense.

Annotations

Annotations are a way to place arbitrary data in a template, that's not interpreted by the template platform itself, but rather by application code. This can be used as more general arguments for formatters, or, in case of regions this can provide additional information for the generator.

Links

Allow importing template code from different files, as well as setting up an alias for other elements. Again this is mostly valuable in scenarios, where a generator reacts on the setup of the template, because a link also represents the region through the reflective API.