Hello John,
You can match multiple tokens on the same line and assign them to different coloured groups like this:
{ name = 'meta.entity.ksp'; match = '^(%)([a-zA-Z0-9_]\w*)'; captures = { 1 = { name = 'punctuation.ksp'; }; 2 = { name = 'entity.ksp'; }; }; },
Notice that both tokens to be identified have parentheses around them in order to be captured. The "captures" list follows standard regexp convention, that is, 0 is the matched string, 1 is the first matched group in parentheses, 2 is the second matched group, and so on.
Not specifying the "captures" list (like in your example) is the same as using capture "0," which is the entire matched string.
In my example, I assigned a different syntax scope identifiers to each token, allowing me to colour them individually.
By the way, the character class "[a-zA-Z0-9_]" is exactly what "\w" represents, so you could shorten your pattern to,
match = '^(%)(\w+)';
which matches at least one, possibly more, contiguous word characters.
I hope this helps.
dZ.
On Oct 11, 2011, at 13:27, John Relosa wrote:
Hello,
I have a question about syntax coloring. I am using the below code to signify that this is let's say an entity scope
{name = 'entity.ksp'; match = '(%)[a-zA-Z0-9_]\w*'; },
% is actually the signifier for a variable array so when I go to the preferences and change the scope to entity then those words that start with %array get a certain color.
The problem is that the whole word including the "%" symbol gets colored.
So here is my question to the textmate gurus.
Is there a way to have the "%" symbol a different color and the word array a different color?
What would be the code to accomplish that. Any pointers or ideas would be appreciated.
Thank you.
John _______________________________________________ textmate mailing list textmate@lists.macromates.com http://lists.macromates.com/listinfo/textmate