On 25/08/2005, at 8.40, Chris Ruzin wrote:
[...] What I'm wanting is to have EE tags folded and colorized even when HTML is the language.
What you should do is include the HTML language from your EE grammar. That way, it will, in addition to your rules, use all the rules of the HTML language, and thus colorize HTML as well (see below).
My definition is small, so I've copied it below for others to critique. Keep in mind I don't know what the hell I'm doing.
{ scopeName = "source.ee";
Since this is embedded in HTML (as I understand), you probably want to name the scope something like “text.html.ee” -- that way, all snippets/commands etc. which have their scope set to “text.html” will also work when in EE files.
fileTypes = ( "html", "htm", "php" ); foldingStartMarker = "\\{(exp:([a-zA-Z0-9:]+)|if)\\b.*?\\}"; foldingStopMarker = "\\{/(exp:([a-zA-Z0-9:]+)|if)\\}"; patterns = ( { name = "constant.tag.ee"; begin = "\\{/?([-a-zA-Z0-9_:]+)"; end = "\\}"; captures = { 1 = { name = "entity.name.tag.html"; }; }; patterns = ( [...] { name = "string.single-quoted.ee"; begin = "'"; end = "'"; },
Here you add:
{ include = "text.html.basic"; },
); } );
}
I defined EE tags as constants because I wanted them to stand out within HTML code. If you see things I'm doing wrong (which I'm sure I am), please give me some advice/tips/help.
I'd suggest two other approaches, 1) name them source.ee.embedded instead -- there's a style which set the background color of source in text, and thus, the tags will stand out (this assumes though, that they are source), 2) name them meta.ee-tag or something like that, and just add the style you want for that name in Fonts & Colors preferences.
But ultimately, the choice is of course yours! :)