{ "name": "Pic", "scopeName": "source.pic", "fileTypes": [ "chem", "pic" ], "firstLineMatch": "^#[!/].*\\bpic2plot\\b", "patterns": [ { "include": "#tags" }, { "begin": "^(?=[.'][ \t]*(?:\\w|\\\\))", "end": "(?<]=?|!=|&&|\\|\\|", "name": "keyword.operator.comparison.pic" }, { "match": ":?=", "name": "keyword.operator.assignment.pic" }, { "match": "<-|<->|->", "name": "keyword.operator.arrow.pic" }, { "match": "[-/+*%^]", "name": "keyword.operator.arithmetic.pic" } ] }, "primitives": { "name": "keyword.function.pic", "match": "\\b(box|line|arrow|circle|ellipse|arc|move|spline|print|command|plot)\\b", "captures": { "0": { "name": "entity.function.name.pic" } } }, "pic-line": { "begin": "^(pic)\\b", "end": "$", "beginCaptures": { "1": { "name": "keyword.control.dformat.pic" } }, "patterns": [ { "include": "#main" } ] }, "punctuation": { "patterns": [ { "match": "\\}", "name": "punctuation.definition.bracket.curly.pic" }, { "match": "\\)", "name": "punctuation.definition.bracket.round.pic" }, { "match": "\\]", "name": "punctuation.definition.bracket.square.pic" }, { "match": ";", "name": "punctuation.terminator.statement.pic" }, { "match": ",", "name": "punctuation.separator.comma.pic" }, { "match": "<|>", "name": "punctuation.definition.bracket.angle.pic" }, { "match": "\\.(?!\\d)", "name": "punctuation.delimiter.period.full-stop.pic" } ] }, "string": { "name": "string.quoted.double.pic", "begin": "\"", "end": "\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.pic" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.pic" } }, "patterns": [ { "include": "text.roff#escapes" } ] }, "tags": { "patterns": [ { "name": "invalid.deprecated.function.picture.macro.roff", "match": "^([.'])[ \t]*(PS)[ \t]*(<)(.*)(?=$|\\\\\")", "captures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "punctuation.definition.filename.roff" }, "4": { "patterns": [ { "include": "text.roff#params" } ] } } }, { "begin": "^([.'])[ \t]*(PS)\\b([\\d \t]*(?:#.*)?)?(\\\\[#\"].*)?$", "end": "^([.'])[ \t]*(P[EF])\\b", "contentName": "source.embedded.pic", "patterns": [ { "include": "$self" } ], "beginCaptures": { "0": { "name": "meta.function.begin.picture.section.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "patterns": [ { "include": "source.pic" } ] }, "4": { "patterns": [ { "include": "text.roff#escapes" } ] } }, "endCaptures": { "0": { "name": "meta.function.end.picture.section.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.name.function.roff" } } }, { "begin": "^([.'])[ \t]*(cstart)\\b\\s*(\\S.*)?", "end": "^([.'])[ \t]*(cend)\\b", "contentName": "source.embedded.chem.pic", "patterns": [ { "include": "#chem" } ], "beginCaptures": { "0": { "name": "meta.function.begin.chemical.picture.section.macro.roff" }, "1": { "name": "punctuation.definition.macro.pic.chem" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "invalid.illegal.unexpected-characters.pic.chem" } }, "endCaptures": { "0": { "name": "meta.function.end.chemical.picture.section.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "begin": "^([.'])[ \t]*(begin[ \t]+dformat)\\b", "end": "^([.'])[ \t]*(end)\\b", "contentName": "source.embedded.dformat.pic", "patterns": [ { "include": "#dformat" } ], "beginCaptures": { "0": { "name": "meta.function.begin.dformat.picture.section.macro.roff" }, "1": { "name": "punctuation.definition.macro.pic.dformat" }, "2": { "name": "entity.function.name.roff" } }, "endCaptures": { "0": { "name": "meta.function.end.dformat.picture.section.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "begin": "^([.'])[ \t]*(G1)\\b(\\s*\\d+)?(\\s*\\\\\".*$)?", "end": "^([.'])[ \t]*(G2)\\b", "contentName": "source.embedded.grap.pic", "patterns": [ { "include": "#grap" } ], "beginCaptures": { "0": { "name": "meta.function.begin.graph.picture.section.macro.roff" }, "1": { "name": "punctuation.definition.macro.pic.grap" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "constant.numeric.parameter.pic.grap" }, "4": { "patterns": [ { "include": "text.roff#escapes" } ] } }, "endCaptures": { "0": { "name": "meta.function.end.graph.picture.section.macro.roff" }, "1": { "name": "punctuation.definition.macro.pic.grap" }, "2": { "name": "entity.function.name.roff" } } } ] } } }