Speaking of perl, any specific reason why 'sub' is not defined as keyword or anything else? I use the hack below, which I am sure is not quite appropriate. Gerd { name = 'other.function'; match = '^\s*(sub)\s*([^\(]*)(.*)'; captures = { 1 = { name = 'keyword.control.perl'; }; 2 = { name = 'entity.name.function'; }; 3 = { name = 'storage.type.method'; }; }; },