Templates
Some Generators are so common across CLI tools that it doesn't make sense for every spec to reimplement them from scratch.
The most notable examples are the generators that provide suggestions for filepaths
and folders
. Implementing these generators are surprisingly involved and require advanced properties, like filterTerm
and trigger
.
So as a shorthand, Fig offers Templates. template
is a property are defined inside of Arguments.
The completion spec for cd
demonstrate how templates are used. Rather than writing a complicated generator, we can just drop in the folders
template.
const completion: Fig.Spec = {
name: "cd",
description: "Change the shell's working directory.",
args: {
name: "directory"
template: "folders"
}
};
Templates are syntactic sugar for complicated Generators. Conceptually, they do the same thing: help Fig provide suggestions for an argument. However, rather than saying how to generate the suggestions, they merely say what to generate… and leave the underlying implementation to Fig.
See "Generators" for more information on how to use templates.
Currently there are only two types of templates.
filepaths
folders
Filtering Template Suggestions
Notes & Tips
- the
filterTemplateSuggestions
is only available if you define the thetemplate
inside a generator object- if you define
template
outside a generator object, this will override- If you don't plan on using
filterTemplateSuggestions
, we recommend definingtemplate
outside the generator object. It is easier to read inside the spec.- Both templates have a trigger attached to them which cause Fig to re-run the suggestion object when a user types a
"/"
- e.g. if a user is in their Home (~) directory and inserts
cd Desktop/
Fig will render suggestions from the Desktop directory