[SVN] Revised names for class, function, and tag names/parameters
Allan Odgaard
allan at macromates.com
Mon May 2 10:47:10 UTC 2005
On May 1, 2005, at 22:31, Jeroen van der Ham wrote:
>> entity.parameter.attribute.tag
>> entity.parameter.parent.class
>> entity.parameter.variable.function
>>
>> keyword.entity.name-of-parameter.function
> Could you give examples of these? Because you lost me with those.
> All the others seem like a pretty good idea.
Okay, for the keyword.entity.name-of-parameter.function that's because
some languages allow an argument to have a name. For example in
Objective-C the declaration of a method looks like this:
- (BOOL)compareTo:(NSString*)aString caseSensitive:(BOOL)flag
So we'd call it like this:
[@"foo" compareTo:@"Foo" caseSensitive:NO];
The second argument (NO) consists (in the declaration) of 3 parts:
caseSensitive: -- name of argument
BOOL -- type of argument
flag -- the name of the variable used in the method
Some may argue that in fact the method is really called
“compareTo:caseSensitive:” and takes two arguments, so the above is
just fancy notation for @"foo"->compareTo:caseSensitive:(@"Foo", NO);.
But in the declaration it does look like the name of the
parameter/argument -- there are other languages which also support
named parameters, but I think they all do it more at the calling time
than declaration time (by e.g. collecting arguments in a dictionary),
so in these languages, there'd be nothing to style.
As for the entity.parameter that's the argument variable of the
function, e.g. in the above “aString” and “flag” would be the
parameter. For tags, it's the name of the attribute, e.g.: <aTag
parameter="value">, and for classes which inherit from a
base/superclass it's the name of the base/super class.
More information about the textmate-dev
mailing list