[TxMt] Re: Conditional insertion with nested placeholder.
Allan Odgaard
mailinglist at textmate.org
Sun Nov 16 10:53:04 UTC 2008
On 12 Nov 2008, at 10:28, Matt Foster wrote:
> [...]
> and what I'd like to have is something more like this:
> for [${1:n} ${2:=} ${2/(in)|(.+)/(?1:"$3":$3\:$4)/}] $0
>
> The conditional expansion seems to work ok, but unfortunately the
> placeholders inside it don't appear.
You can’t generate new placeholders via mirrors.
We fake it in a few snippets by having all the placeholders and then
use transformations to make it appear as if they are moving.
So something like this:
for [${1:n} ${2:=} ${2/(in)|.+/(?1:")/}$3${2/(in)|.+/(?1:":\:)/}$4]
So incase of ‘in’ you get an extra tab stop after ", but otherwise it
does what you want. You can probably improve the behavior by rewriting
the latter transformation into two transformations, one that inserts
the : and the other which inserts the ", then place $4 before the one
that inserts ", that way, when the loop uses ‘in’ it’ll have $4
immidiately after $3 (no character inbetween) and TextMate _should_
skip it when you tab away from $3 (making $4 appear invisible).
More information about the textmate
mailing list