{ "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", "information_for_contributors": [ "This file provides highlighting for Object::Pad and the new 5.38 feature class" ], "name": "objectpad", "scopeName": "source.perl.package.objectpad", "injectionSelector": "L:meta.objectpad.perl -comment -string -text", "patterns": [ { "include": "#objectpad" } ], "repository": { "objectpad": { "patterns": [ { "match": "\\b(has|field)\\s+([\\$\\@\\%]\\w+)\\b(?:\\s+:(param)(?:\\(\\s*(\\w+)\\s*\\)|\\b))?", "captures": { "1": { "name": "keyword.other.attribute.objectpad.perl" }, "2": { "name": "variable.other.readwrite.objectpad.perl" }, "3": { "name": "constant.language.objectpad" }, "4": { "name": "entity.name.function.perl" } } }, { "match": "\\b(class)\\s+([\\w:]+)\\b(?:\\s+(\\d+(?:\\.\\d+)?))?(?:\\s+:(isa|does|repr)\\(\\s*([\\w:]+)\\s*\\))?", "captures": { "1": { "name": "keyword.control.objectpad" }, "2": { "name": "entity.name.type.class.objectpad" }, "3": { "name": "constant.numeric.objectpad" }, "4": { "name": "constant.language.objectpad" }, "5": { "name": "entity.name.type.class.objectpad" } } }, { "match": "\\b(role)\\s+([\\w:]+)\\b", "captures": { "1": { "name": "keyword.control.objectpad" }, "2": { "name": "entity.name.type.class.objectpad" } } }, { "match": "\\b(method)\\s+([\\w]+)\\b", "captures": { "1": { "name": "storage.type.sub.perl" }, "2": { "name": "entity.name.function.perl" } } }, { "match": "\\b(method)\\s+(\\$[\\w]+)\\b", "captures": { "1": { "name": "storage.type.sub.perl" }, "2": { "name": "variable.other.method" } } }, { "match": "\\b(BUILD|ADJUST|ADJUSTPARAMS|DESTRUCT)\\b", "captures": { "1": { "name": "entity.name.function.perl" } } } ] } } }