{ "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", "name": "PDDL Plan Happenings", "patterns": [ { "include": "#happening" }, { "include": "#meta" }, { "include": "#comments" }, { "include": "#scalars" }, { "include": "#unexpected" } ], "repository": { "happening": { "patterns": [ { "name": "variable.happening", "match": "^\\s*((\\d+|\\d+\\.\\d+|\\.\\d+)\\s*:)?\\s*(start|end)?\\s*\\(([\\w -]+)\\)\\s*(#\\d+)?\\s*(;.*)?$", "captures": { "2": { "name": "constant.numeric.happening.time" }, "3": { "name": "keyword.control.happening.snap"}, "4": { "name": "support.function.action.name" }, "5": { "name": "constant.other.happening.counter" }, "6": { "name": "comment.line" } } }, { "name": "variable.til", "comment": "Time-initial literal", "match": "^\\s*((\\d+|\\d+\\.\\d+|\\.\\d+)\\s*:)?\\s*(set|unset)\\s*\\(([\\w -]+)\\)\\s*(;.*)?$", "captures": { "2": { "name": "constant.numeric.happening.time" }, "3": { "name": "keyword.control.happening.operator"}, "4": { "name": "support.variable.predicate.name" }, "5": { "name": "comment.line" } } }, { "name": "variable.tif", "comment": "Time-initial fluent", "match": "^\\s*((\\d+|\\d+\\.\\d+|\\.\\d+)\\s*:)?\\s*\\(=\\s*\\(([\\w -]+)\\)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)\\s*\\)\\s*(;.*)?$", "captures": { "2": { "name": "constant.numeric.happening.time" }, "3": { "name": "keyword.control.happening.operator"}, "4": { "name": "support.variable.function.name" }, "5": { "name": "constant.numeric.function.value" }, "6": { "name": "comment.line" } } } ] }, "meta": { "patterns": [{ "name": "meta.preprocessor.reference", "match": "^;;\\s*!(domain|problem):\\s*([\\w-]+)\\s*$", "captures": { "1": { "name": "variable.parameter.key"}, "3": { "name": "variable.parameter.value"} } }, { "name": "meta.preprocessor", "match": "^;;\\s*!" }] }, "comments": { "patterns": [{ "name": "comment.line", "match": ";.*$" }] }, "scalars": { "patterns": [{ "name": "constant.numeric", "match": "\\b[-+]?([0-9]*\\.[0-9]+|[0-9]+)\\b" }] }, "unexpected": { "patterns": [{ "name": "invalid.illegal", "match": ":[\\w-]+\\b" }, { "name": "invalid.illegal", "match": "\\?" }, { "name": "invalid.illegal", "match": ".*" }] } }, "scopeName": "source.pddl.happenings" }