[TxMt] Re: Coloring for a function call

John Relosa john.relosa at yahoo.com
Tue Jan 3 17:57:01 UTC 2012


Hello and Happy New Year!

Does any of the TxMt gurus know why the below does not work?

Message: 5
Date: Thu, 29 Dec 2011 11:27:01 -0800 (PST)
From: John Relosa <john.relosa at yahoo.com>
To: textmate <textmate at lists.macromates.com>
Subject: [TxMt] Re: Coloring for a function call
Message-ID:
    <1325186821.60244.YahooMailNeo at web121902.mail.ne1.yahoo.com>
Content-Type: text/plain; charset="iso-8859-1"

Hi Hans,

Thanks for your reply, getting closer :-)

The one for call works great as it's never in the?beginning?of a line and there is always space before so this works:

{name = 'meta.call.my_LG';
match = '\s*(call)\s+((\w+)\w*)';
captures = {
1 = { name = 'keyword.control.my_LG'; };
2 = { name = 'entity.name.call.my_LG'; };
};
},

I cannot make it to work for the function though which is always in the beginning of a line with no space before it. 

I removed the \s* and replaced it with the ^ (start of line anchor) but it does NOT seem to work:

{name = 'meta.function.my_LG';
match = '^(function)\s+((\w+)\w*)';
captures = {
1 = { name = 'keyword.control.my_LG'; };
2 = { name = 'entity.name.function.my_LG'; };
};
},

What am I doing wrong?

Thanks.



________________________________
 From: Hans-Jörg Bibiko <bibiko at eva.mpg.de>
To: John Relosa <john.relosa at yahoo.com>; TextMate users <textmate at lists.macromates.com> 
Sent: Thursday, December 29, 2011 9:50 AM
Subject: Re: [TxMt] Re: Coloring for a function call
 

On 29 Dec 2011, at 18:18, John Relosa wrote:

> What I was hoping to have is have the arbitrary name of the function "xyz_any_function_name" have a color red when it's defined(after the word "function") or when it's called(after the word "call".
> 

Hi,

maybe try something like (AN EXAMPLE!):

{    name = 'meta.call.your_LG';
    match = '^\s*(call)\s+(\S+)';
    captures = {
        1 = { name = 'keyword.control.your_LG'; };
        2 = { name = 'entity.name.type.call.your_LG'; };
    };
},
{    name = 'meta.function.your_LG';
    match = '^\s*(function)\s+(\S+)';
    captures = {
        1 = { name = 'storage.type.function.your_LG'; };
        2 = { name = 'entity.name.function.your_LG'; };
    };
},


If you assign the same name for the 2. match in 'call' and 'function'  or you write (function|call) the function name will appear in the same colour.

And look in other Language Grammars (C, Ruby, Python, ...) since it's a common task.

Hope it helps a bit.

Best,
--Hans
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macromates.com/textmate/attachments/20120103/9a59d607/attachment-0001.html>


More information about the textmate mailing list