[TxMt] Braces inside placeholders

Allan Odgaard throw-away-1 at macromates.com
Wed Oct 26 20:54:07 UTC 2005


On 26/10/2005, at 21.30, Charilaos Skiadas wrote:

> As it stands, the second to last brace is matched as closing the  
> placeholder ${1, which leaves the wrong thing highlighted . The  
> trick is to escape it, like so:
>
> \\foo${1:{${2:0},${3:0}\}}
>
> Very nifty and useful, and not documented I think.

It actually is mentioned in my blog-entry on the subject of snippets  
(linked to from the TextMate Help Book):

     The default value can itself contain variables or shell code. If
     you want the default text to contain a }, you need to escape it.
     But all other characters are verbatim.

> My first impulse was to escape the corresponding left brace as  
> well, but it doesn't need (and in fact won't accept) escaping. No  
> sure how I feel about that, it looks asymmetric to me. But hey, it  
> works!

The problem is, if I accept arbitrary escapes, \ will have to be \\,  
and these are used e.g. in regexp's (in snippets) -- not to mention  
regexps matching literal \ in snippets, which would then be \\\\ --  
so for this reason, snippets use very conservative escaping.




More information about the textmate mailing list