Back to blog
how-to macros fill-in templates

Fill-In Fields: Snippets That Ask Before They Expand

Create interactive snippets with text fields, dropdowns, and optional sections that prompt for input before expanding.

By Aaron Hampton 4 min read

Some snippets need a little input before they’re ready. A client name. A project number. A choice between options. TypeSnap’s fill-in fields turn static templates into interactive forms.

When you trigger a snippet that contains fill-in macros, a dialog pops up with fields for you to complete. Fill them in, hit Enter, and the expanded text is inserted with your values.

Text Input Fields

The {{input}} macro creates a single-line text field.

Basic Input

{{input:Field Name}}

The text after the colon is the label shown in the fill-in dialog.

Abbreviation: ;email

Hi {{input:Name}},

Thank you for reaching out about {{input:Topic}}. I'll look into this and get back to you by end of day.

Best,
Aaron

When you type ;email, a dialog appears with two fields: “Name” and “Topic”. Fill them in, press Enter, and the complete email is inserted.

Input with a Default Value

{{input:Field Name:default value}}

The second parameter pre-fills the field:

Project: {{input:Project:Acme Corp}}
Priority: {{input:Priority:Medium}}

The dialog shows “Acme Corp” and “Medium” already filled in. Press Enter to accept the defaults, or change them.

Multi-Line Text Areas

The {{textarea}} macro creates a larger text input for multi-line content.

{{textarea:Field Name}}

Abbreviation: ;bugreport

## Bug Report — {{date:yyyy-MM-dd}}

**Steps to reproduce:**
{{textarea:Steps}}

**Expected behavior:**
{{input:Expected}}

**Actual behavior:**
{{input:Actual}}

**Severity:** {{select:Low,Medium,High,Critical}}

The “Steps” field renders as a text area so you can type multiple lines.

Textarea with Default and Size

{{textarea:name=Notes:default=Enter notes here:rows=5:cols=40}}

The rows and cols parameters control the size of the text area in the dialog.

The {{select}} macro creates a dropdown menu.

Basic Select

{{select:Option A,Option B,Option C}}

List the options separated by commas. The fill-in dialog shows a dropdown.

Abbreviation: ;status

Status update for {{date:MMMM d}}:

Project: {{input:Project}}
Status: {{select:On Track,At Risk,Blocked,Complete}}
Next milestone: {{input:Milestone}}
ETA: {{input:Date}}

Named Select with Default

{{select:name=Priority:options=Low,Medium,High:default=Medium}}

This shows “Priority” as the label and pre-selects “Medium”.

Practical Example: Support Reply

Abbreviation: ;support

Hi {{input:Customer Name}},

{{select:Thank you for contacting us about this issue.,Thanks for your patience while we looked into this.,I appreciate you bringing this to our attention.}}

{{textarea:Response Body}}

{{select:name=Closing:options=Let me know if you have any other questions.,I'll follow up again in 24 hours.,Please don't hesitate to reach out if this happens again.}}

Best regards,
{{snippet:;sig}}

This gives you a structured support reply with selectable opening lines, a free-text body, and a selectable closing — all filled in through one dialog.

Optional Sections

The {{optional}} macro wraps content that can be included or excluded with a checkbox.

{{optional:Section Name}}
This content only appears if the checkbox is checked.
{{/optional}}

Abbreviation: ;proposal

# Project Proposal

**Client:** {{input:Client}}
**Date:** {{date:MMMM d, yyyy}}

## Scope
{{textarea:Scope Description}}

## Timeline
{{input:Timeline:6 weeks}}

{{optional:Discount Section}}
## Early Payment Discount
A 5% discount is available for payment within 15 days of invoice.
{{/optional}}

{{optional:NDA Section}}
## Confidentiality
This proposal is confidential and subject to the NDA signed on {{input:NDA Date}}.
{{/optional}}

## Total
{{input:Amount}}

The fill-in dialog shows checkboxes for “Discount Section” and “NDA Section”. Check the ones you need; unchecked sections are omitted entirely from the output.

Optional with Default State

{{optional:name=Terms:default=yes}}
Standard terms and conditions apply.
{{/optional}}

Setting default=yes means the section is checked (included) by default.

Reusing Field Values

If you use the same field name more than once, all instances share the same value. Type it once, and it appears everywhere.

Abbreviation: ;contract

SERVICE AGREEMENT

This agreement is between {{input:Company}} ("Client") and TypeSnap LLC ("Provider").

{{input:Company}} agrees to the following terms:

1. Provider will deliver the services described below to {{input:Company}}.
2. {{input:Company}} will pay the agreed fee within 30 days of invoice.

Signed: ________________________
On behalf of {{input:Company}}
Date: {{date:MMMM d, yyyy}}

You type the company name once in the dialog. It appears in all five places.

Combining Fill-Ins with Other Macros

Fill-in fields work alongside every other macro type:

Abbreviation: ;meeting

# {{input:Meeting Title}} — {{date:EEEE, MMMM d}}

**Time:** {{time:h:mm a}}
**Attendees:** {{input:Attendees}}
**Location:** {{select:Zoom,Conference Room A,Conference Room B,Phone}}

## Agenda
{{textarea:Agenda Items}}

## Action Items
- [ ] {{cursor}}

## Next Meeting
{{date+7d:EEEE, MMMM d}} at {{input:Next Time:same time}}

This combines fill-in fields, date macros, a cursor position, and a date offset into one practical template.

Fill-in snippets work with any trigger mode — delimiter, immediate, or manual. They’re especially useful with Quick Search (Cmd+Shift+T), where you can search for a template by name, select it, and fill in the fields all in one flow.

Stop typing the same things over and over

TypeSnap expands your snippets instantly. One-time purchase, no subscription.

Coming Soon · $17.99

Coming soon to Mac App Store

TypeSnap is launching soon. Be the first to know when it's available.

$17.99 — One-time purchase
Sandboxed Mac App No data collection Made by an indie developer