Every Language.properties defines its own colors and maybe even tabs. This is quite confusing and often not what many (or at least I) want.
In geany and Notepad++ they both have global settings, e.g. all keywords in all languages will appear in the same color instead of green in C++ and red in Python.
The standard .property files don't have that feature, or at least not well supported. I spent already so much time to do this for my 4 or 5 languages I need by defining global variables:
colour.keyword=fore:#777777,bold colour.string=fore:#BBBBBB colour.comment=fore:#3F3F3F colour.operator=$(colour.keyword) colour.error=fore:#FF0000,back:#000000 [...] # Default style.cpp.32=$(font.base) # White space style.cpp.0=$(colour.code.whitespace) # Comment: /* */. style.cpp.1=$(colour.code.comment.box),$(font.code.comment.box) # Line Comment: //. style.cpp.2=$(colour.code.comment.line),$(font.code.comment.line) # Doc comment: block comments beginning with /** or /*! style.cpp.3=$(colour.code.comment.doc),$(font.code.comment.doc) # Number style.cpp.4=$(colour.number) # Keyword style.cpp.5=$(colour.keyword),bold # Double quoted string style.cpp.6=$(colour.string) [...] # White space style.python.0=$(colour.code.whitespace) # Comment style.python.1=$(colour.code.comment.box),$(font.comment) # Number style.python.2=$(colour.number) # String style.python.3=$(colour.string.double) # Single quoted string style.python.4=$(colour.string.single) # Keyword style.python.5=$(colour.keyword)
There is the option of using a wildcard:
style.*.5 = ???
But as you can see in the larger sample above already some simple elements like "numbers" can have different style numbers in every language, so this wildcard option wouldn't work, because of non-unified styling code numbers.
Furthermore some .properties-files like perl.properties contain more than the specified language. perl.properties contains bash and awk, too. This is very confusing and in my opinion should be cleand up.
Different languages emphasise different areas and this leads to different sets of lexical classes. For example, Perl has a rich set of string types. SciTE's style choices are implemented to allow access to every nuance of each language instead of restricting styling as other editors do.
There is no awk lexer so awk uses the perl lexer so is included in perl.properties. Bash includes string literal types that are siilar to Perl, including here-docs.