[TxMt] Flex 2 Bundle
Joshua Scott Emmons
skia at skia.net
Thu Apr 26 02:02:06 UTC 2007
> I'm looking at the definition of the <mx:Script> tag. It seems to
> differ from the way other tags are supported. For one, the < and >
> characters do not include the meta.tag label and are thus not
> properly colored. Also - and of less importance (to me) - the
> punctuation.definition.tag.(m)xml label is missing from the bracket
> and slash characters.
The way I dealt with this was to match the script tags with a look
behind and look ahead. Both are zero-width, and thus don't actually
include the script tags themselves in the match, leaving the standard
tag matching to do the job.
{ begin = '(?<=<mx:Script>)';
end = '(?=</mx:Script>)';
patterns = ( { include = '#script-stuff'; } );
}
I then let #script-stuff handle the parsing of internal stuff:
script-stuff = {
begin = '<!\[CDATA\[';
end = '\]\]>';
beginCaptures = { 0 = { name = 'string.unquoted.cdata.xml.mxml
punctuation.definition.string.begin.xml.mxml'; }; };
endCaptures = { 0 = { name = 'string.unquoted.cdata.xml.mxml
punctuation.definition.string.end.xml.mxml'; }; };
patterns = ( { include = 'source.actionscript3'; } );
contentName = 'source.actionscript3.embeded.mxml';
};
This defines the CDATA tags properly and gives everything else the
scope of "source.actionscript3.embeded.mxml".
For this to work, though, you need to move the including of text.xml
down on the grammar so that it doesn't match the CDATA first.
More information about the textmate
mailing list