created: 20221009121950630
modified: 20230419103154329
tags: Pragmas
title: Pragma: \widget
type: text/vnd.tiddlywiki

<<.from-version "5.3.0">> The ''\widget'' [[pragma|Pragmas]] is used to [[define custom widgets|Custom Widgets]]. It is a shortcut syntax for the SetVariableWidget with an implicit ParametersWidget.

The usual form allows custom widgets to span multiple lines:

```
\widget <widget-name>(<param-name>[:<param-default-value>],<param-name>[:<param-default-value>]...)
<multiple-line-definition-text>
\end [<widget-name>]
```

Note that the `\end` marker can optionally specify the name of the widget to which it relates which allows widget definitions to be nested.

There is also a single line form for shorter widgets:

```
\widget <widget-name>(<param-name>[:<param-default-value>],<param-name>[:<param-default-value>]...) <single-line-definition-text>
```

The first line of the definition specifies the widget name and any parameters. Each parameter has a name and, optionally, a default value that is used if no value is supplied on a particular call to the widget. The lines that follow contain the text of the widget text (i.e. the snippet represented by the widget name), until `\end` appears on a line by itself:

See [[Custom Widgets]] for more details.