Hi,
I'm writing a small bundle for a HTML template language I use, Tenjin (http://www.kuwata-lab.com/tenjin/). So far so good but I ran into a problem with pattern priority in the language definition.
The relevant part of the grammar is this:
patterns = ( { include = 'text.html.basic'; }, { name = 'source.perl.pltenjin.expression'; begin = '([==?)'; end = '(=?=])'; captures = { 1 = { name = 'keyword.control'; }; 2 = { name = 'keyword.control'; }; }; patterns = ( { include = 'source.perl'; } ); } );
I "extend" the text.html.basic language (because most of the file is HTML) and add Tenjin expression. They are in the format [==? =?=] (the second = means "raw" output, single = means HTML encoded).
TextMate recognizes perfectly my expressions in the text between tags:
<p>[= $var =]</p> # this is ok
but not when used as a tag attribute value:
<p class="[= $class =]">text</p> # not ok
In the second case, the [= $class =] text is all green, the context is string.quoted.double.html and not the expected source.perl.pltenjin.expression.
Is there any way to work around this?
Thanks,