UNPKG

tm-grammars

Version:
344 lines (343 loc) 7.75 kB
{ "displayName": "ROS Interface", "fileTypes": [ "msg", "srv", "action" ], "name": "rosmsg", "patterns": [ { "include": "#separators" }, { "include": "#lines" }, { "include": "#comments" } ], "repository": { "attributes": { "match": "@optional\\b", "name": "storage.modifier.attribute.rosmsg" }, "builtin-types": { "match": "\\b(?:bool|byte|char|u?int(?:8|16|32|64)|float(?:32|64)|w?string|time|duration)\\b", "name": "storage.type.rosmsg" }, "comments": { "match": "#.*", "name": "comment.line.number-sign.rosmsg" }, "field-other": { "begin": "(?=\\b[A-Z_a-z])", "end": "$|(?=#)", "patterns": [ { "captures": { "0": { "patterns": [ { "include": "#builtin-types" } ] } }, "match": "\\G[/-9A-Z_a-z]+", "name": "support.type.rosmsg" }, { "match": "\\d+", "name": "constant.numeric.integer.rosmsg" }, { "begin": "(?=[A-Z_a-z])", "end": "$|(?=#)", "patterns": [ { "include": "#field-other-after-type" } ] } ] }, "field-other-after-type": { "patterns": [ { "match": "\\G[0-9A-Z_a-z]+", "name": "variable.other.field.rosmsg" }, { "begin": "", "end": "$|(?=#)", "patterns": [ { "include": "#literal-other" }, { "include": "#literal-other-array" } ] } ] }, "field-string": { "begin": "(?=\\bw?string\\b)", "end": "$|(?=#)", "patterns": [ { "captures": { "0": { "name": "storage.type.rosmsg" } }, "match": "\\Gw?string\\b" }, { "match": "\\d+", "name": "constant.numeric.integer.rosmsg" }, { "begin": "(?=[A-Z_a-z])", "end": "$|(?=#)", "patterns": [ { "include": "#field-string-after-type" } ] } ] }, "field-string-after-type": { "patterns": [ { "match": "\\G[0-9A-Z_a-z]+", "name": "variable.other.field.rosmsg" }, { "begin": "=|(?<=\\s)", "end": "$|(?=#)", "patterns": [ { "include": "#literal-string" } ] } ] }, "field-string-array": { "begin": "(?=\\bw?string[<=\\d]*\\[)", "end": "$|(?=#)", "patterns": [ { "captures": { "0": { "name": "storage.type.rosmsg" } }, "match": "\\Gw?string\\b", "name": "support.type.rosmsg" }, { "match": "\\d+", "name": "constant.numeric.integer.rosmsg" }, { "begin": "(?=[A-Z_a-z])", "end": "$|(?=#)", "patterns": [ { "include": "#field-string-array-after-type" } ] } ] }, "field-string-array-after-type": { "patterns": [ { "match": "\\G[0-9A-Z_a-z]+", "name": "variable.other.field.rosmsg" }, { "begin": "(?<=\\s)", "end": "$|(?=#)", "name": "meta.default-value.rosmsg", "patterns": [ { "include": "#literal-string-array" } ] } ] }, "lines": { "patterns": [ { "include": "#attributes" }, { "include": "#field-string-array" }, { "include": "#field-string" }, { "include": "#field-other" } ] }, "literal-other": { "patterns": [ { "match": "[-+]?(?:(?:\\d+(?:_\\d+)*)?\\.\\d+(?:_\\d+)*|\\d+(?:_\\d+)*\\.)(?:[Ee][-+]?\\d+(?:_\\d+)*)?", "name": "constant.numeric.float.rosmsg" }, { "match": "[-+]?\\d+(?:_\\d+)*", "name": "constant.numeric.integer.rosmsg" }, { "match": "(?i)\\b(?:true|false)\\b", "name": "constant.language.boolean.rosmsg" } ] }, "literal-other-array": { "patterns": [ { "begin": "\\[", "end": "]|$|(?=#)", "name": "meta.array.rosmsg", "patterns": [ { "include": "#literal-other" } ] } ] }, "literal-string": { "patterns": [ { "include": "#literal-string-quoted" }, { "include": "#literal-string-unquoted" } ] }, "literal-string-array": { "patterns": [ { "begin": "\\[", "end": "]|$|(?=#)", "name": "meta.array.rosmsg", "patterns": [ { "include": "#literal-string-quoted" }, { "include": "#literal-string-unquoted-in-array" } ] } ] }, "literal-string-escape": { "patterns": [ { "match": "\\\\(?:[0-7]{3}|x\\h{2}|u\\h{4}|U\\h{8}|.)", "name": "constant.character.escape.rosmsg" } ] }, "literal-string-quoted": { "patterns": [ { "begin": "\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.rosmsg" } }, "end": "\"|$", "endCaptures": { "0": { "name": "punctuation.definition.string.end.rosmsg" } }, "name": "string.quoted.double.rosmsg", "patterns": [ { "include": "#literal-string-escape" } ] }, { "begin": "'", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.rosmsg" } }, "end": "'|$", "endCaptures": { "0": { "name": "punctuation.definition.string.end.rosmsg" } }, "name": "string.quoted.single.rosmsg", "patterns": [ { "include": "#literal-string-escape" } ] } ] }, "literal-string-unquoted": { "begin": "(?=[^\"'\\s])", "end": "(?=\\s*(?:#|$))", "name": "string.unquoted.rosmsg", "patterns": [ { "include": "#literal-string-escape" } ] }, "literal-string-unquoted-in-array": { "begin": "(?=[^]\"',\\s])", "end": "(?=\\s*(?:$|[],]))", "name": "string.unquoted.rosmsg", "patterns": [ { "include": "#literal-string-escape" } ] }, "separators": { "patterns": [ { "match": "^---\\s*$\\n?", "name": "meta.separator.rosmsg" }, { "match": "^={3,}\\s*$\\n?", "name": "meta.separator.rosmsg" }, { "captures": { "1": { "name": "entity.name.type.class.rosmsg" } }, "match": "^MSG:\\s+([/-9A-Z_a-z]+)\\s*$\\n?", "name": "meta.separator.rosmsg" } ] } }, "scopeName": "source.rosmsg" }