[SVN] More name revising
Allan Odgaard
allan at macromates.com
Wed May 4 12:47:58 UTC 2005
First a big thank you to all who've contributed in the last weeks
standardizing names in the language definitions -- I went through all
of it yesterday, and it's looking very good, especially considering my
passiveness in giving exact definitions (religion taught me that order
comes from chaos! ;) ).
One thing I'd like to fix is the keyword group. This is overloaded, and
too many different names at the second level, making it hard to apply
general styles to everything but keyword itself, but that touches too
much IMHO, so here is my proposal:
Move keyword.function to its own group and let this contain all
functions, methods, classes, types and constants defined by a
framework, library or similar, e.g. (examples from Cocoa):
support.function -- NSBeep, …
support.class -- NSWindow, NSString, …
support.type -- NSRect, …
support.constant -- NSZeroRect, …
support.function include methods (if we really want to match these?!?).
Then restrain ourself to these 3 keyword groups:
keyword.storage -- static, final, abstract, class, function, int,
var, …
keyword.control -- continue, while, if, return, break, try, do,
end, throw, …
keyword.operator -- instanceof, dynamic_cast, and, or, not, …
Keyword.storage should probably be divided into keyword.storage.type
and keyword.storage.modifier.
Another group which is also currently a little diffuse is constant, I
suggest these 3:
constant.numeric -- 42, 1.3f, 0x4AB1U, …
constant.character -- <, \e, \031, '"', …
constant.language -- true, false, nil, YES, NO, …
If something doesn't go into either of these defined groups, I'd
suggest we put it in
<most-appropriate-group>.other.<suggested-category>. This makes it
easier to see what goes outside the normal definitions, and should
reduce the number of second-level groups, which helps styling.
I expect the default themes will style only keyword, support, and
constant (i.e. all children of these will be styled identical by
default). The same goes for comment, string, variable, invalid,
entity.name, and entity.parameter.
I intend to update the wiki page after making sure that these suggested
groups are not too limiting, or there are better naming suggestions.
Something semi-related, when writing language definition files,
formatting the rules like this:
{ name = "foo";
...
},
Makes it possible to fold rules and still see the name of them. Try
e.g. HTML.plist for an example -- it makes it a bit easier to work with
the larger files.
Kind regards Allan
More information about the textmate-dev
mailing list