A template-based incrementation Service

I don’t know how much use this will be to anyone (even me after a one time need for it), but for posterity: a System Service1 that takes a templated block and builds a sequential list from it. It allows you to set start and end count and include modified (+/-) integers in the template.

A template line can be any amount of text that you want to repeat with sequential numbering. The start and end numbers are defined with ##x,y## and any modified versions of the current number to be inserted are specified with ##+/-x## or ##0## to include the current counter. For example, running the Service on this line:

<li class="item-##0,5##">This is item ##+1##</li>

Results in:

<li class="item-0">This is item 1</li>
<li class="item-1">This is item 2</li>
<li class="item-2">This is item 3</li>
<li class="item-3">This is item 4</li>
<li class="item-4">This is item 5</li>
<li class="item-5">This is item 6</li>

You can only include one start/end template in a block (any after the first are ignored), but you can include as many modified counters as you want:

<li class="item-##0,3##">This is item ##+1## which is after ##0## and before ##+2##</li>

becomes:

<li class="item-0">This is item 1 which is after 0 and before 2</li>
<li class="item-1">This is item 2 which is after 1 and before 3</li>
<li class="item-2">This is item 3 which is after 2 and before 4</li>
<li class="item-3">This is item 4 which is after 3 and before 5</li>

Like I said, limited utility, but if it would be handy for you then download below. Installation instructions are available in the how-to section. Source code available as a gist.

Increment Templated Service v2

Repeats a selected block of text a specified number of times, replacing placeholders with the count of the current item with variable start and end numbers.

Published 07/01/12.

Updated 02/10/14. Changelog

DonateMore info…

  1. Easily ported to a TextMate command, or Sublime Text 2 with a little Ruby->Python work.

Brett Terpstra

Brett is a writer and developer living in Minnesota, USA. You can follow him as ttscoff on Twitter, GitHub, and Mastodon. Keep up with this blog by subscribing in your favorite news reader.

This content is supported by readers like you.

Join the conversation