This release took an immense amount of work, with lots of thought taken in the design of the placeholders feature, hopefully you find these new super powers useful!
- Date/Time: Insert the current or calculated date/time with configurable format.
- Clipboard: Insert the text contents of the clipboard.
- Snippets: Insert snippets in your snippets!
- Cursor: Set where the cursor should end up after the snippet has expanded.
Read on for a summary of the placeholders feature and how to use the different types of placeholder.
All placeholders are delimited (wrapped) by
$$, with the placeholder name starting with an
For example, today’s date can be inserted with
Some placeholders allow for extra arguments when
: follows their name and that is followed by the argument. For example a format for a date, or the abbreviation for a snippet. Check the following descriptions for each placeholder for more details.
$$ in your snippet body, escape the second
$ with a backslash like so:
- Today’s date with system format:
- Today’s date with custom format:
- Tomorrow’s date with system format:
- Date 2 weeks from today with custom format:
- Time 3 hours from now:
@time is an alias for
@date, with one important difference, the default output if no format specified is the default time format (
%X) rather than default date format (
The optional format specified after
: can take a format string as detailed in the GLib.DateTime.format function’s docs.
The optional date calculation starts with an
@ after the placeholder name, followed by a signed integer and unit. The unit types are as follows:
- Y: Years
- M: Months
- W: Weeks
- D: Days
- h: Hours
- m: Minutes
- s: Seconds
You can apply more than one date calculation, for example
+2h+30m adds 2 hours and 30 minutes to the current time.
You can use both positive (
+) and negative calculations, for example
-3D takes 3 days from the current date.
$$@clipboard$$ is part of a snippet’s body, when its abbreviation is expanded the current text contents of the clipboard will replace the placeholder.
You can have up to three levels of embedded snippets with the
The abbreviation for the snippet to be embedded is entered after
:, for example
$$@snippet:sigg;$$ expands the snippet with abbreviation
sigg; in place of the placeholder.
$$@cursor$$ to a snippet’s body will put the cursor in its place after expansion instead of at the end of the expanded text.
$$@cursor$$ is entered more than once in a snippet’s body or via snippet embedding, then the last occurrence of the cursor placeholder wins.