{ "name": "Roff", "scopeName": "text.roff", "patterns": [ { "include": "#main" } ], "repository": { "3-part-title": { "name": "string.3-part.other.roff", "match": "\\G[ \t]*(.)((?:(?!\\1).)*)(\\1)((?:(?!\\1).)*)(\\1)((?:(?!\\1).)*)(\\1)", "captures": { "1": { "name": "punctuation.definition.string.begin.roff" }, "2": { "name": "entity.string.left.roff", "patterns": [ { "include": "#escapes" } ] }, "3": { "name": "punctuation.definition.string.begin.roff" }, "4": { "name": "entity.string.centre.roff", "patterns": [ { "include": "#escapes" } ] }, "5": { "name": "punctuation.definition.string.end.roff" }, "6": { "name": "entity.string.right.roff", "patterns": [ { "include": "#escapes" } ] }, "7": { "name": "punctuation.definition.string.end.roff" } } }, "alternating-fonts": { "patterns": [ { "begin": "^([.'])[ \t]*(BI)(?=\\s)", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)|(?=\\\\\")", "patterns": [ { "include": "#odd-bold" }, { "include": "#even-italic-after-bold" }, { "include": "#even-italic" }, { "include": "#bridge-escapes" } ], "beginCaptures": { "0": { "name": "meta.function.man.macro.roff" }, "1": { "name": "punctuation.definition.function.macro.roff" }, "2": { "name": "entity.name.function.roff" } } }, { "begin": "^([.'])[ \t]*(BR)(?=\\s)", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)|(?=\\\\\")", "patterns": [ { "include": "#odd-bold" }, { "include": "#even-roman-after-bold" }, { "include": "#even-roman" }, { "include": "#bridge-escapes" } ], "beginCaptures": { "0": { "name": "meta.function.man.macro.roff" }, "1": { "name": "punctuation.definition.function.macro.roff" }, "2": { "name": "entity.name.function.roff" } } }, { "begin": "^([.'])[ \t]*(IB)(?=\\s)", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)|(?=\\\\\")", "patterns": [ { "include": "#odd-italic" }, { "include": "#even-bold-after-italic" }, { "include": "#even-bold" }, { "include": "#bridge-escapes" } ], "beginCaptures": { "0": { "name": "meta.function.man.macro.roff" }, "1": { "name": "punctuation.definition.function.macro.roff" }, "2": { "name": "entity.name.function.roff" } } }, { "begin": "^([.'])[ \t]*(IR)(?=\\s)", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)|(?=\\\\\")", "patterns": [ { "include": "#odd-italic" }, { "include": "#even-roman-after-italic" }, { "include": "#even-roman" }, { "include": "#bridge-escapes" } ], "beginCaptures": { "0": { "name": "meta.function.man.macro.roff" }, "1": { "name": "punctuation.definition.function.macro.roff" }, "2": { "name": "entity.name.function.roff" } } }, { "begin": "^([.'])[ \t]*(RB)(?=\\s)", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)|(?=\\\\\")", "patterns": [ { "include": "#odd-roman" }, { "include": "#even-bold-after-roman" }, { "include": "#even-bold" }, { "include": "#bridge-escapes" } ], "beginCaptures": { "0": { "name": "meta.function.man.macro.roff" }, "1": { "name": "punctuation.definition.function.macro.roff" }, "2": { "name": "entity.name.function.roff" } } }, { "begin": "^([.'])[ \t]*(RI)(?=\\s)", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)|(?=\\\\\")", "patterns": [ { "include": "#odd-roman" }, { "include": "#even-italic-after-roman" }, { "include": "#even-italic" }, { "include": "#bridge-escapes" } ], "beginCaptures": { "0": { "name": "meta.function.man.macro.roff" }, "1": { "name": "punctuation.definition.function.macro.roff" }, "2": { "name": "entity.name.function.roff" } } } ] }, "arithmetic": { "patterns": [ { "include": "#escapes" }, { "name": "meta.brackets.roff", "match": "(\\()(.*?)(\\))", "captures": { "1": { "name": "punctuation.arithmetic.begin.roff" }, "2": { "patterns": [ { "include": "#arithmetic" } ] }, "3": { "name": "punctuation.arithmetic.end.roff" } } }, { "include": "#number" }, { "name": "keyword.operator.minimum.gnu.roff", "match": "\u003c\\?" }, { "name": "keyword.operator.maximum.gnu.roff", "match": "\u003e\\?" }, { "name": "keyword.operator.arithmetic.roff", "match": "[-/+*%]" }, { "name": "keyword.operator.logical.roff", "match": ":|\u0026|[\u003c=\u003e]=?" }, { "name": "keyword.operator.absolute.roff", "match": "\\|" }, { "name": "meta.scaling-indicator.gnu.roff", "match": "(?\u003c=^|\\()([cfimnPpsuvz])(;)", "captures": { "1": { "name": "keyword.other.unit.roff" }, "2": { "name": "punctuation.separator.semicolon.roff" } } } ] }, "bold-first": { "patterns": [ { "name": "markup.bold.roff", "begin": "\\G[ \t]*(?!\")(?=(?:[^\\s\\\\]|\\\\(?!\").)+)", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=\\s|$)|(?=\\\\\")", "patterns": [ { "include": "#escapes" } ] }, { "name": "markup.bold.roff", "match": "(\")(\")", "captures": { "0": { "name": "string.quoted.double.empty.roff" }, "1": { "name": "punctuation.definition.string.begin.roff" }, "2": { "name": "punctuation.definition.string.end.roff" } } }, { "name": "markup.bold.roff", "contentName": "string.quoted.double.roff", "begin": "\\G[ \t]*(\")", "end": "((?:\"\")*)\"(?!\")|(?\u003c!\\\\)(?:$|\\n)|(?=\\\\\")", "patterns": [ { "include": "#string-escapes" } ], "beginCaptures": { "0": { "name": "string.quoted.double.roff" }, "1": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.roff" }, "1": { "name": "markup.bold.roff", "patterns": [ { "include": "#string-escapes" } ] } } }, { "include": "#escapes" }, { "include": "#string" } ] }, "bold-italic-first": { "patterns": [ { "name": "markup.bold.italic.roff", "begin": "\\G[ \t]*(?!\")(?=(?:[^\\s\\\\]|\\\\(?!\").)+)", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=\\s|$)|(?=\\\\\")", "patterns": [ { "include": "#escapes" } ] }, { "name": "markup.bold.italic.roff", "match": "(\")(\")", "captures": { "0": { "name": "string.quoted.double.empty.roff" }, "1": { "name": "punctuation.definition.string.begin.roff" }, "2": { "name": "punctuation.definition.string.end.roff" } } }, { "name": "markup.bold.italic.roff", "contentName": "string.quoted.double.roff", "begin": "\\G[ \t]*(\")", "end": "((?:\"\")*)\"(?!\")|(?\u003c!\\\\)(?:$|\\n)|(?=\\\\\")", "patterns": [ { "include": "#string-escapes" } ], "beginCaptures": { "0": { "name": "string.quoted.double.roff" }, "1": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.roff" }, "1": { "name": "markup.bold.italic.roff", "patterns": [ { "include": "#string-escapes" } ] } } }, { "include": "#escapes" }, { "include": "#string" } ] }, "bold-italic-word": { "name": "markup.bold.italic.roff", "match": "\\S+?(?=\\\\|$|\\s)" }, "bold-word": { "name": "markup.bold.roff", "match": "\\S+?(?=\\\\|$|\\s)" }, "bridge-escapes": { "patterns": [ { "name": "constant.character.escape.newline.roff", "begin": "[ \t]+(\\\\)$\\n?", "end": "^", "beginCaptures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.newline.roff", "begin": "(\\\\)$\\n?", "end": "^[ \t]*", "beginCaptures": { "1": { "name": "punctuation.definition.escape.roff" } } } ] }, "conditional-innards": { "patterns": [ { "begin": "^\\s*(\\\\\\{(?:\\\\(?=\\n))?)?\\s*(.*)", "end": "$", "beginCaptures": { "1": { "name": "punctuation.section.conditional.begin.roff" }, "2": { "patterns": [ { "include": "$self" } ] } } } ] }, "conditionals": { "patterns": [ { "begin": "(?x)^\n([.']) [ \t]* # 1: punctuation.definition.request.roff\n(ie|if) [ \t]* # 2: keyword.control.roff\n(!)? # 3: keyword.operator.logical\n\n(?:\n\t# One-character built-in comparison name\n\t([notev]) # 4: constant.language.builtin-comparison.$4.roff\n\t\n\t|\n\t\n\t# GNU extensions\n\t([cdFmrS]) # 5: constant.language.builtin-comparison.$5.gnu.roff\n\t\n\t# Name being validated\n\t[ \t]*\n\t((?:[^ \\t\\\\]|\\\\(?![\"#]).)+) # 6: Include “#escapes”\n\t\n\t|\n\t\n\t# Arithmetic\n\t( # 7: meta.equation.roff\n\t\t\n\t\t# Starts with a bracket\n\t\t(\\() # 8: punctuation.definition.begin.roff\n\t\t(.*?) # 9: Include “#arithmetic”\n\t\t(\\)) # 10: punctuation.definition.end.roff\n\t\t\n\t\t# Anything else affixed to it\n\t\t( # 11: Include “#arithmetic”\n\t\t\t(?:\n\t\t\t\t[^\\s\\(] | # Operators/numbers\n\t\t\t\t\\(.*?\\) # More brackets\n\t\t\t)*\n\t\t)\n\t\t\n\t\t|\n\t\t\n\t\t# Doesn’t start with a bracket\n\t\t(?:\n\t\t\t# Starts with a long-form string/register\n\t\t\t(\\|?\\\\+[n*]\\(\\S{2}) # 12: Include “#escapes”\n\t\t\t|\n\t\t\t# Starts with a digit or backslash\n\t\t\t(?=\\d|\\\\)\n\t\t)\n\t\t([^\\s\\(]*) # 13: Sandwiched mathematical junk\n\t\t\n\t\t(?: # Possible embedded brackets\n\t\t\t(\\() # 14: punctuation.definition.begin.roff\n\t\t\t(.*?) # 15: Include “#arithmetic”\n\t\t\t(\\)) # 16: punctuation.definition.end.roff\n\t\t)?\n\t\t(?: # Possible trailing digits/operators\n\t\t\t[^\\s\\(]*?\n\t\t\t\\d+\n\t\t)?\n\t\t\n\t\t# Ends with a...\n\t\t(?\u003c=\n\t\t\t# Digit\n\t\t\t\\d |\n\t\t\t\n\t\t\t# Unit suffix\n\t\t\t(?\u003c=[\\d.])\n\t\t\t[A-Za-z] |\n\t\t\t\n\t\t\t# Closing bracket\n\t\t\t[\\)\\]] |\n\t\t\t\n\t\t\t# String/register: Long-form\n\t\t\t\\\\[n*]\n\t\t\t\\(\n\t\t\t\\S{2} |\n\t\t\t\n\t\t\t# String/register: Short-form\n\t\t\t\\\\[n*]\\S\n\t\t)\n\t)\n\t\n\t|\n\t\n\t# String/variable comparison\n\t([^\\d\\s\\\\]) # 17: punctuation.definition.string.begin.roff\n\t( # 18: variable.parameter.operand.left.roff\n\t\t(.*?) # 19: Include “#escapes”\n\t)\n\t(\\17) # 20: punctuation.definition.string.roff\n\t( # 21: variable.parameter.operand.right.roff\n\t\t(.*?) # 22: Include “#escapes”\n\t)\n\t(\\17) # 23: punctuation.definition.string.end.roff\n\t\n\t|\n\t\n\t# Anything not recognised\n\t(\\S) # 24: meta.operand.single.roff\n)?\n\n(.*) # 25: Include “#conditional-innards”", "end": "$", "beginCaptures": { "0": { "name": "meta.function.request.$2.roff" }, "1": { "name": "punctuation.definition.request.roff" }, "10": { "name": "punctuation.definition.end.roff" }, "11": { "patterns": [ { "include": "#arithmetic" } ] }, "12": { "patterns": [ { "include": "#escapes" } ] }, "13": { "patterns": [ { "include": "#arithmetic" } ] }, "14": { "name": "punctuation.definition.begin.roff" }, "15": { "patterns": [ { "include": "#arithmetic" } ] }, "16": { "name": "punctuation.definition.end.roff" }, "17": { "name": "punctuation.definition.string.begin.roff" }, "18": { "name": "variable.parameter.operand.left.roff" }, "19": { "patterns": [ { "include": "#escapes" } ] }, "2": { "name": "keyword.control.roff" }, "20": { "name": "punctuation.definition.string.roff" }, "21": { "name": "variable.parameter.operand.right.roff" }, "22": { "patterns": [ { "include": "#escapes" } ] }, "23": { "name": "punctuation.definition.string.end.roff" }, "24": { "name": "meta.operand.single.roff" }, "25": { "patterns": [ { "include": "#conditional-innards" } ] }, "3": { "name": "keyword.operator.logical" }, "4": { "name": "constant.language.builtin-comparison.$4.roff" }, "5": { "name": "constant.language.builtin-comparison.$5.gnu.roff" }, "6": { "patterns": [ { "include": "#escapes" } ] }, "7": { "name": "meta.equation.roff" }, "8": { "name": "punctuation.definition.begin.roff" }, "9": { "patterns": [ { "include": "#arithmetic" } ] } } }, { "begin": "^([.'])[ \t]*(el)\\s*(.*)", "end": "$", "beginCaptures": { "0": { "name": "meta.function.request.$2.roff" }, "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "keyword.control.roff" }, "3": { "patterns": [ { "include": "#conditional-innards" } ] } } } ] }, "continuous-newline": { "begin": "(\\\\)?(\\\\)$\\n?", "end": "^(?:[.'])?", "beginCaptures": { "0": { "name": "constant.character.escape.newline.roff" }, "1": { "name": "punctuation.definition.concealed.escape.backslash.roff" }, "2": { "name": "punctuation.definition.escape.roff" } } }, "definition": { "patterns": [ { "name": "meta.macro.definition.$2.roff", "begin": "^([.'])[ \t]*((dei?1?)|(ami?1?))\\s+(\\S+?)?\\s*(\\\\[\"#].*)?$", "end": "^(?:[ \t]*\\x5C{2})?\\.[ \t]*\\.", "patterns": [ { "include": "$self" } ], "beginCaptures": { "1": { "name": "punctuation.definition.request.roff" }, "3": { "name": "storage.type.function.roff" }, "4": { "name": "entity.name.function.roff" }, "5": { "name": "variable.parameter.roff" }, "6": { "patterns": [ { "include": "#escapes" } ] }, "7": { "patterns": [ { "include": "#param-group" } ] } }, "endCaptures": { "0": { "name": "punctuation.definition.request.roff" } } }, { "name": "meta.macro.definition.with-terminator.$2.roff", "begin": "^([.'])[ \t]*((dei?1?)|(ami?1?))\\s+(\\S+)\\s*(\"[^\"]+\"?|\\S+?(?=\\s|\\\\[\"#]))?(.*)$", "end": "^(\\.)[ \t]*((\\6)(?=$|\\s|\\\\(?:$|\")))", "patterns": [ { "include": "$self" } ], "beginCaptures": { "1": { "name": "punctuation.definition.request.roff" }, "3": { "name": "storage.type.function.roff" }, "4": { "name": "entity.name.function.roff" }, "5": { "name": "variable.parameter.roff" }, "6": { "name": "keyword.control.terminator.roff", "patterns": [ { "include": "#string" } ] }, "7": { "patterns": [ { "include": "#param-group" } ] } }, "endCaptures": { "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "keyword.control.terminator.roff" }, "3": { "patterns": [ { "include": "#string" } ] } } } ] }, "eqn": { "patterns": [ { "name": "constant.language.greek-letter.eqn.roff", "match": "(?x)\\b\n(DELTA|GAMMA|LAMBDA|OMEGA|PHI|PI|PSI|SIGMA|THETA|UPSILON|XI|alpha|beta|chi\n|delta|epsilon|eta|gamma|iota|kappa|lambda|mu|nu|omega|omicron|phi|pi|psi\n|rho|sigma|tau|theta|upsilon|xi|zeta)\\b" }, { "name": "constant.character.math-symbol.eqn.roff", "match": "(?x)\\b\n(sum|int|prod|union|inter|inf|partial|half|prime|approx|nothing|cdot\n|times|del|grad|[\u003e\u003c=!]=|\\+-|-\u003e|\u003c-|\u003c\u003c|\u003e\u003e|\\.{3}|,\\.,)\\b" }, { "name": "punctuation.definition.eqn.roff", "match": "[~,^{}]" }, { "name": "keyword.language.eqn.roff", "match": "(?x)\\b\n(above|back|bar|bold|ccol|col|cpile|define|delim|dot|dotdot|down|dyad|fat|font|from\n|fwd|gfont|gsize|hat|italic|lcol|left|lineup|lpile|mark|matrix|ndefine|over|pile\n|rcol|right|roman|rpile|size|sqrt|sub|sup|tdefine|tilde|to|under|up|vec)\\b" }, { "name": "keyword.language.eqn.gnu.roff", "match": "(?x)\\b\n(accent|big|chartype|smallover|type|vcenter|uaccent|split|nosplit\n|opprime|special|sdefine|include|ifdef|undef|g[rb]font|space)\\b" }, { "name": "constant.language.eqn.gnu.roff", "match": "(?x)\\b\n(Alpha|Beta|Chi|Delta|Epsilon|Eta|Gamma|Iota|Kappa|Lambda|Mu|Nu\n|Omega|Omicron|Phi|Pi|Psi|Rho|Sigma|Tau|Theta|Upsilon|Xi|Zeta\n|ldots|dollar)\\b" }, { "name": "meta.set-variable.eqn.gnu.roff", "match": "(?x)\\b(set)[ \t]+\n(accent_width|axis_height|baseline_sep|big_op_spacing[1-5]|body_depth|body_height|column_sep\n|default_rule_thickness|delimiter_factor|delimiter_shortfall|denom[12]|draw_lines|fat_offset\n|matrix_side_sep|medium_space|minimum_size|nroff|null_delimiter_space|num[12]|over_hang\n|script_space|shift_down|su[bp]_drop|sub[12]|sup[1-3]|thick_space|thin_space|x_height)\\b", "captures": { "1": { "name": "storage.type.var.eqn.roff" }, "2": { "name": "variable.other.mathml.eqn.roff" } } }, { "include": "#string" } ] }, "escapes": { "patterns": [ { "include": "#escapes-copymode" }, { "include": "#escapes-full" } ] }, "escapes-clipped": { "patterns": [ { "begin": "\\\\f(?:[I2]|\\(CI|\\[\\s*(?:[I2]|CI)\\s*\\])", "end": "$|(?=\\\\f[\\[A-Za-z0-9])", "patterns": [ { "include": "#escaped-newline" }, { "include": "$self" }, { "include": "#italic-word" } ], "beginCaptures": { "0": { "patterns": [ { "include": "#escapes" } ] } } }, { "begin": "\\\\f(?:[B3]|\\(CB|\\[\\s*(?:[B3]|CB)\\s*\\])", "end": "$|(?=\\\\f[\\[A-Za-z0-9])", "patterns": [ { "include": "#escaped-newline" }, { "include": "$self" }, { "include": "#bold-word" } ], "beginCaptures": { "0": { "patterns": [ { "include": "#escapes" } ] } } }, { "begin": "\\\\f(?:4|\\(BI|\\[\\s*BI\\s*\\])", "end": "$|(?=\\\\f[\\[A-Za-z0-9])", "patterns": [ { "include": "#escaped-newline" }, { "include": "$self" }, { "include": "#bold-italic-word" } ], "beginCaptures": { "0": { "patterns": [ { "include": "#escapes" } ] } } }, { "begin": "\\\\f(?:\\(C[WR]|\\[\\s*C[WR]\\s*\\])", "end": "$|(?=\\\\f[\\[A-Za-z0-9])", "patterns": [ { "include": "#escaped-newline" }, { "include": "$self" }, { "include": "#monospace-word" } ], "beginCaptures": { "0": { "patterns": [ { "include": "#escapes" } ] } } } ] }, "escapes-copymode": { "patterns": [ { "name": "punctuation.definition.concealed.escape.backslash.roff", "match": "(\\\\+?)(?=\\1\\S)" }, { "name": "comment.line.roff", "begin": "(?:^(\\.|'+)\\s*)?(\\\\\")", "end": "$", "beginCaptures": { "1": { "name": "punctuation.definition.comment.roff" }, "2": { "name": "punctuation.definition.comment.roff" } } }, { "name": "comment.line.number-sign.gnu.roff", "begin": "(?:^(\\.|'+)\\s*)?(\\\\#).*$\\n?", "end": "^", "beginCaptures": { "1": { "name": "punctuation.definition.comment.roff" }, "2": { "name": "punctuation.definition.comment.roff" } } }, { "name": "comment.empty.roff", "match": "^(\\.|'+)[ \t]*$", "captures": { "1": { "name": "punctuation.definition.comment.roff" } } }, { "include": "#continuous-newline" }, { "include": "#register-expansion" }, { "name": "constant.character.escape.backslash.roff", "match": "(\\\\)\\1", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.tab.roff", "match": "(\\\\)t", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.leader-char.roff", "match": "(\\\\)a", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.dot.roff", "match": "(\\\\)\\.", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "begin": "^(\\\\\\*\\[[^\\]]+\\])\\s*(\\.\\w+.*)", "end": "$", "beginCaptures": { "1": { "patterns": [ { "include": "#escapes" } ] }, "2": { "patterns": [ { "include": "#conditional-innards" } ] } } }, { "name": "constant.character.escape.function.interpolate-string.gnu.roff", "contentName": "function-call.arguments.roff", "begin": "((\\\\)\\*(\\[))", "end": "(\\])|(?\u003c!\\\\)(?=$)", "patterns": [ { "include": "#long-name" } ], "beginCaptures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.section.begin.bracket.square.roff" } }, "endCaptures": { "1": { "name": "punctuation.section.end.bracket.square.roff" } } }, { "name": "constant.character.escape.function.interpolate-string.roff", "match": "((\\\\)\\*(\\())(\\S{2})|((\\\\)\\*)(\\S)", "captures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.definition.brace.roff" }, "4": { "name": "variable.parameter.roff" }, "5": { "name": "entity.name.roff" }, "6": { "name": "punctuation.definition.escape.roff" }, "7": { "name": "variable.parameter.roff" } } }, { "name": "constant.character.escape.function.interpolate-argument.roff", "match": "((\\\\)\\$\\d)", "captures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.function.set-colour.gnu.roff", "contentName": "variable.parameter.roff", "begin": "((\\\\)[Mm](\\[))", "end": "(\\])|(?\u003c!\\\\)(?=$)", "patterns": [ { "include": "#params" } ], "beginCaptures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.section.begin.bracket.square.roff" } }, "endCaptures": { "1": { "name": "punctuation.section.end.bracket.square.roff" } } }, { "name": "constant.character.escape.function.set-colour.gnu.roff", "match": "((\\\\)[Mm](\\())(\\S{2})|((\\\\)[Mm])(\\S)", "captures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.definition.brace.roff" }, "4": { "name": "variable.parameter.roff" }, "5": { "name": "entity.name.roff" }, "6": { "name": "punctuation.definition.escape.roff" }, "7": { "name": "variable.parameter.roff" } } }, { "name": "constant.character.escape.function.point-size.gnu.roff", "contentName": "variable.parameter.roff", "begin": "((\\\\)s([-+])?(\\[))", "end": "(\\])|(?\u003c!\\\\)(?=$)", "patterns": [ { "include": "#params" } ], "beginCaptures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "keyword.operator.arithmetic.roff" }, "4": { "name": "punctuation.section.begin.bracket.square.roff" } }, "endCaptures": { "1": { "name": "punctuation.section.end.bracket.square.roff" } } }, { "name": "constant.character.escape.function.check-identifier.gnu.roff", "contentName": "string.other.roff", "begin": "((\\\\)(?!s[-+]?\\d)[ABRsZ])((.))", "end": "(\\4)|(?\u003c!\\\\)(?=$)", "patterns": [ { "include": "#escapes" } ], "beginCaptures": { "1": { "name": "entity.name.function.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "string.other.roff" }, "4": { "name": "punctuation.definition.begin.roff" } }, "endCaptures": { "0": { "name": "string.other.roff" }, "1": { "name": "punctuation.definition.end.roff" } } }, { "name": "constant.character.escape.internal.gnu.roff", "match": "((\\\\)O([0-4]))", "captures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "constant.numeric.roff" } } }, { "name": "constant.character.escape.internal.stderr-write-file.gnu.roff", "contentName": "string.unquoted.filename.roff", "begin": "((\\\\)O(5)(\\[))", "end": "(\\])|(?\u003c!\\\\)(?=$)", "patterns": [ { "include": "#escapes" } ], "beginCaptures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "constant.numeric.roff" }, "4": { "name": "punctuation.section.begin.bracket.square.roff" } }, "endCaptures": { "1": { "name": "punctuation.section.end.bracket.square.roff" } } }, { "name": "constant.character.escape.function.interpolate-variable.gnu.roff", "begin": "((\\\\)[VY](\\[))", "end": "(\\])|(?\u003c!\\\\)(?=$)", "patterns": [ { "include": "#long-name" } ], "beginCaptures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.section.begin.bracket.square.roff" } }, "endCaptures": { "1": { "name": "punctuation.section.end.bracket.square.roff" } } }, { "name": "constant.character.escape.function.interpolate-variable.gnu.roff", "match": "((\\\\)[VY](\\())(\\S{2})|((\\\\)[VY])(\\S)", "captures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.definition.brace.roff" }, "4": { "name": "variable.parameter.roff" }, "5": { "name": "entity.name.roff" }, "6": { "name": "punctuation.definition.escape.roff" }, "7": { "name": "variable.parameter.roff" } } }, { "match": "((\\\\)(\\?))(.*)((\\\\)(\\?))", "captures": { "1": { "name": "constant.character.escape.embed-diversion.start.gnu.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.definition.script.roff" }, "4": { "name": "string.interpolated.roff", "patterns": [ { "include": "$self" } ] }, "5": { "name": "constant.character.escape.embed-diversion.start.gnu.roff" }, "6": { "name": "punctuation.definition.escape.roff" }, "7": { "name": "punctuation.definition.script.roff" } } }, { "name": "constant.character.escape.function.concatenated-arguments.gnu.roff", "match": "((\\\\)\\$[*@^])", "captures": { "1": { "name": "variable.language.roff" }, "2": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.function.interpolate-argument.gnu.roff", "match": "((\\\\)\\$(\\())(\\S{2})", "captures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.definition.brace.roff" }, "4": { "name": "variable.parameter.roff" } } }, { "name": "constant.character.escape.function.interpolate-argument.gnu.roff", "contentName": "variable.parameter.roff", "begin": "((\\\\)\\$(\\[))", "end": "(\\])|(?\u003c!\\\\)(?=$)", "patterns": [ { "include": "#long-name" } ], "beginCaptures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.section.begin.bracket.square.roff" } }, "endCaptures": { "1": { "name": "punctuation.section.end.bracket.square.roff" } } } ] }, "escapes-full": { "patterns": [ { "name": "constant.character.escape.current-escape-char.roff", "match": "(\\\\)e", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.acute-accent.roff", "match": "(\\\\)´", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.grave-accent.roff", "match": "(\\\\)`", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.minus.roff", "match": "(\\\\)-", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.space.roff", "match": "(\\\\) ", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.space.digit-width.roff", "match": "(\\\\)0", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.space.one-sixth-em.roff", "match": "(\\\\)\\|", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.space.one-twelfth-em.roff", "match": "(\\\\)\\^", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.zero-width-marker.roff", "match": "(\\\\)\u0026", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.hyphenation-char.roff", "match": "(\\\\)%", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.connect.roff", "match": "(\\\\)c", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.downwards.roff", "match": "(\\\\)d", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.spread-line.roff", "match": "(\\\\)p", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.reverse.roff", "match": "(\\\\)r", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.upwards.roff", "match": "(\\\\)u", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.function.named-char.roff", "match": "(\\\\)(\\()(\\S{2})", "captures": { "1": { "name": "punctuation.definition.brace.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "variable.parameter.roff" } } }, { "name": "constant.character.escape.function.named-char.gnu.roff", "begin": "(\\\\)(\\[)", "end": "(\\S*?)(\\])|(?\u003c!\\\\)(?=$)", "patterns": [ { "include": "#params" }, { "name": "variable.parameter.roff", "match": "(?:[^\\s\\]\\\\]|\\\\(?![\"#]).)+" } ], "beginCaptures": { "1": { "name": "punctuation.definition.escape.roff" }, "2": { "name": "punctuation.section.begin.bracket.square.roff" } }, "endCaptures": { "1": { "patterns": [ { "include": "#params" } ] }, "2": { "name": "punctuation.section.end.bracket.square.roff" } } }, { "name": "meta.function.begin.roff", "match": "(?:^(\\.|'+)[ \t]*)?(\\\\\\{(?:\\\\(?=\\n))?)", "captures": { "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "punctuation.section.conditional.begin.roff" } } }, { "name": "meta.function.end.roff", "match": "(?:^(\\.|'+)[ \t]*)?(\\\\\\}(?:\\\\(?=\\n))?)", "captures": { "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "punctuation.section.conditional.end.roff" } } }, { "name": "constant.character.escape.function.roff", "contentName": "string.other.roff", "begin": "((\\\\)[bCDhHSlLovwxXN])((.))", "end": "(\\4)|(?\u003c!\\\\)(?=$)", "patterns": [ { "include": "#escapes" } ], "beginCaptures": { "1": { "name": "entity.name.function.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "string.other.roff" }, "4": { "name": "punctuation.definition.begin.roff" } }, "endCaptures": { "0": { "name": "string.other.roff" }, "1": { "name": "punctuation.definition.end.roff" } } }, { "name": "meta.throughput.roff", "begin": "(\\\\)!", "end": "(?\u003c!\\\\)$", "patterns": [ { "include": "#escapes-copymode" } ], "beginCaptures": { "0": { "name": "constant.character.escape.transparent-line.roff" }, "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "constant.character.escape.font.roff", "match": "(\\\\)f[RP1]", "captures": { "0": { "name": "entity.name.roff" }, "1": { "name": "punctuation.definition.escape.roff" } } }, { "begin": "((\\\\)f(?:[I2]|(\\()CI|(\\[)\\s*(?:[I2]|CI)\\s*(\\])))", "end": "(?=\\\\f[\\[A-Za-z0-9])|^(?=\\.(?:SH|SS|P|[HILPT]P)\\b)", "patterns": [ { "include": "$self" }, { "include": "#italic-word" } ], "beginCaptures": { "0": { "name": "constant.character.escape.font.roff" }, "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.section.begin.bracket.square.roff" }, "4": { "name": "punctuation.section.end.bracket.square.roff" } } }, { "begin": "((\\\\)f(?:[B3]|(\\()CB|(\\[)\\s*(?:[B3]|CB)\\s*(\\])))", "end": "(?=\\\\f[\\[A-Za-z0-9])|^(?=\\.(?:SH|SS|P|[HILPT]P)\\b)", "patterns": [ { "include": "$self" }, { "include": "#bold-word" } ], "beginCaptures": { "0": { "name": "constant.character.escape.font.roff" }, "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.definition.brace.roff" }, "4": { "name": "punctuation.section.begin.bracket.square.roff" }, "5": { "name": "punctuation.section.end.bracket.square.roff" } } }, { "begin": "((\\\\)f(?:4|(\\()BI|(\\[)\\s*BI\\s*(\\])))", "end": "(?=\\\\f[\\[A-Za-z0-9])|^(?=\\.(?:SH|SS|P|[HILPT]P)\\b)", "patterns": [ { "include": "$self" }, { "include": "#bold-italic-word" } ], "beginCaptures": { "0": { "name": "constant.character.escape.font.roff" }, "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.definition.brace.roff" }, "4": { "name": "punctuation.section.begin.bracket.square.roff" }, "5": { "name": "punctuation.section.end.bracket.square.roff" } } }, { "begin": "((\\\\)f(?:(\\()C[WR]|(\\[)\\s*C[WR]\\s*(\\])))", "end": "(?=\\\\f[\\[A-Za-z0-9])|^(?=\\.(?:SH|SS|P|[HILPT]P)\\b)", "patterns": [ { "include": "$self" }, { "include": "#monospace-word" } ], "beginCaptures": { "0": { "name": "constant.character.escape.font.roff" }, "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.definition.brace.roff" }, "4": { "name": "punctuation.section.begin.bracket.square.roff" }, "5": { "name": "punctuation.section.end.bracket.square.roff" } } }, { "name": "constant.character.escape.function.font.gnu.roff", "contentName": "variable.parameter.roff", "begin": "((\\\\)[Ff](\\[))", "end": "(\\])|(?\u003c!\\\\)(?=$)", "patterns": [ { "include": "#escapes" } ], "beginCaptures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.section.begin.bracket.square.roff" } }, "endCaptures": { "1": { "name": "punctuation.section.end.bracket.square.roff" } } }, { "name": "constant.character.escape.function.font.roff", "match": "((\\\\)[Ff](\\())(\\S{2})|((\\\\)[Ff])(\\S)", "captures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.definition.brace.roff" }, "4": { "name": "variable.parameter.roff" }, "5": { "name": "entity.name.roff" }, "6": { "name": "punctuation.definition.escape.roff" }, "7": { "name": "variable.parameter.roff" } } }, { "name": "constant.character.escape.function.format-register.roff", "match": "((\\\\)g(\\())(\\S{2})|((\\\\)g)(\\S)", "captures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.definition.brace.roff" }, "4": { "name": "variable.parameter.roff" }, "5": { "name": "entity.name.roff" }, "6": { "name": "punctuation.definition.escape.roff" }, "7": { "name": "variable.parameter.roff" } } }, { "name": "constant.character.escape.function.mark-input.roff", "match": "((\\\\)k)(\\S)", "captures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "variable.parameter.roff" } } }, { "name": "constant.character.escape.function.point-size.roff", "match": "((\\\\)s[-+]?(\\()?)(\\d+)", "captures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "punctuation.definition.brace.roff" }, "4": { "name": "variable.parameter.roff" } } }, { "name": "constant.character.escape.function.zero-width-print.roff", "match": "((\\\\)z)([^\\s\\\\])", "captures": { "1": { "name": "entity.name.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "variable.parameter.roff" } } }, { "name": "constant.character.escape.misc.roff", "match": "(\\\\)\\S", "captures": { "1": { "name": "punctuation.definition.escape.roff" } } } ] }, "even-bold": { "patterns": [ { "name": "markup.bold.roff", "begin": "(?\u003c=^|\\s|\")(?!\"|\\\\\")((?:[^\\s\"\\\\]|\\\\(?!\").)+)", "end": "(?=[ \t])|(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)|(?=\\\\\")", "patterns": [ { "include": "#escapes" } ], "beginCaptures": { "1": { "patterns": [ { "include": "#escapes" } ] } } } ] }, "even-bold-after-italic": { "patterns": [ { "contentName": "markup.bold.roff", "begin": "(\")", "end": "((\"))([^\"\\s]+[ \t]*)?|(?=\\\\\")|(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)", "patterns": [ { "match": "((?:[^\"\\\\]|\"\"|\\\\(?!\").)+)(?!$)", "captures": { "1": { "patterns": [ { "include": "#string-escapes" } ] } } }, { "include": "#string-escapes" } ], "beginCaptures": { "0": { "name": "markup.bold.roff" }, "1": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "1": { "name": "markup.bold.roff" }, "2": { "name": "punctuation.definition.string.end.roff" }, "3": { "name": "markup.italic.roff" } } } ] }, "even-bold-after-roman": { "patterns": [ { "contentName": "markup.bold.roff", "begin": "(\")", "end": "((\"))([^\"\\s]+[ \t]*)?|(?=\\\\\")|(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)", "patterns": [ { "match": "((?:[^\"\\\\]|\"\"|\\\\(?!\").)+)(?!$)", "captures": { "1": { "patterns": [ { "include": "#string-escapes" } ] } } }, { "include": "#string-escapes" } ], "beginCaptures": { "0": { "name": "markup.bold.roff" }, "1": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "1": { "name": "markup.bold.roff" }, "2": { "name": "punctuation.definition.string.end.roff" }, "3": { "name": "markup.plain.roff" } } } ] }, "even-italic": { "patterns": [ { "name": "markup.italic.roff", "begin": "(?\u003c=^|\\s|\")(?!\"|\\\\\")((?:[^\\s\"\\\\]|\\\\(?!\").)+)", "end": "(?=[ \t])|(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)|(?=\\\\\")", "patterns": [ { "include": "#escapes" } ], "beginCaptures": { "1": { "patterns": [ { "include": "#escapes" } ] } } } ] }, "even-italic-after-bold": { "patterns": [ { "contentName": "markup.italic.roff", "begin": "(\")", "end": "((\"))([^\"\\s]+[ \t]*)?|(?=\\\\\")|(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)", "patterns": [ { "match": "((?:[^\"\\\\]|\"\"|\\\\(?!\").)+)(?!$)", "captures": { "1": { "patterns": [ { "include": "#string-escapes" } ] } } }, { "include": "#string-escapes" } ], "beginCaptures": { "0": { "name": "markup.italic.roff" }, "1": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "1": { "name": "markup.italic.roff" }, "2": { "name": "punctuation.definition.string.end.roff" }, "3": { "name": "markup.bold.roff" } } } ] }, "even-italic-after-roman": { "patterns": [ { "contentName": "markup.italic.roff", "begin": "(\")", "end": "((\"))([^\"\\s]+[ \t]*)?|(?=\\\\\")|(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)", "patterns": [ { "match": "((?:[^\"\\\\]|\"\"|\\\\(?!\").)+)(?!$)", "captures": { "1": { "patterns": [ { "include": "#string-escapes" } ] } } }, { "include": "#string-escapes" } ], "beginCaptures": { "0": { "name": "markup.italic.roff" }, "1": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "1": { "name": "markup.italic.roff" }, "2": { "name": "punctuation.definition.string.end.roff" }, "3": { "name": "markup.plain.roff" } } } ] }, "even-roman": { "patterns": [ { "name": "markup.plain.roff", "begin": "(?\u003c=^|\\s|\")(?!\"|\\\\\")((?:[^\\s\"\\\\]|\\\\(?!\").)+)", "end": "(?=[ \t])|(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)|(?=\\\\\")", "patterns": [ { "include": "#escapes" } ], "beginCaptures": { "1": { "patterns": [ { "include": "#escapes" } ] } } } ] }, "even-roman-after-bold": { "patterns": [ { "contentName": "markup.plain.roff", "begin": "(\")", "end": "((\"))([^\"\\s]+[ \t]*)?|(?=\\\\\")|(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)", "patterns": [ { "match": "((?:[^\"\\\\]|\"\"|\\\\(?!\").)+)(?!$)", "captures": { "1": { "patterns": [ { "include": "#string-escapes" } ] } } }, { "include": "#string-escapes" } ], "beginCaptures": { "0": { "name": "markup.plain.roff" }, "1": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "1": { "name": "markup.plain.roff" }, "2": { "name": "punctuation.definition.string.end.roff" }, "3": { "name": "markup.bold.roff" } } } ] }, "even-roman-after-italic": { "patterns": [ { "contentName": "markup.plain.roff", "begin": "(\")", "end": "((\"))([^\"\\s]+[ \t]*)?|(?=\\\\\")|(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)", "patterns": [ { "match": "((?:[^\"\\\\]|\"\"|\\\\(?!\").)+)(?!$)", "captures": { "1": { "patterns": [ { "include": "#string-escapes" } ] } } }, { "include": "#string-escapes" } ], "beginCaptures": { "0": { "name": "markup.plain.roff" }, "1": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "1": { "name": "markup.plain.roff" }, "2": { "name": "punctuation.definition.string.end.roff" }, "3": { "name": "markup.italic.roff" } } } ] }, "generic-parameter": { "name": "variable.parameter.roff", "match": "[^\\s\\\\]+" }, "ignore": { "patterns": [ { "contentName": "comment.block.ignored-input.with-terminator.roff", "begin": "^([.'])[ \t]*(ig)[ \t]+(?!\\\\[\"#]|\\\\+\\$\\d+)((\"[^\"]+\")|\\S+?(?=\\s|\\\\[\"#]))(.*)$", "end": "^([.'])[ \t]*(\\3)(?=\\s|$|\\\\)", "patterns": [ { "include": "#register-expansion" } ], "beginCaptures": { "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "keyword.control.terminator.roff" }, "4": { "patterns": [ { "include": "#string" } ] }, "5": { "patterns": [ { "include": "#params" } ] } }, "endCaptures": { "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "keyword.control.terminator.roff", "patterns": [ { "include": "#string" } ] } } }, { "contentName": "comment.block.ignored-input.roff", "begin": "^([.'])[ \t]*(ig)(?=\\s|\\\\[\"#])(.*)$", "end": "^([.'])[ \t]*\\.(?=\\s|\\\\[\"#])", "patterns": [ { "include": "#register-expansion" } ], "beginCaptures": { "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "patterns": [ { "include": "#params" } ] } }, "endCaptures": { "0": { "name": "punctuation.definition.request.roff" } } } ] }, "italic-first": { "patterns": [ { "name": "markup.italic.roff", "begin": "\\G[ \t]*(?!\")(?=(?:[^\\s\\\\]|\\\\(?!\").)+)", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=\\s|$)|(?=\\\\\")", "patterns": [ { "include": "#escapes" } ] }, { "name": "markup.italic.roff", "match": "(\")(\")", "captures": { "0": { "name": "string.quoted.double.empty.roff" }, "1": { "name": "punctuation.definition.string.begin.roff" }, "2": { "name": "punctuation.definition.string.end.roff" } } }, { "name": "markup.italic.roff", "contentName": "string.quoted.double.roff", "begin": "\\G[ \t]*(\")", "end": "((?:\"\")*)\"(?!\")|(?\u003c!\\\\)(?:$|\\n)|(?=\\\\\")", "patterns": [ { "include": "#string-escapes" } ], "beginCaptures": { "0": { "name": "string.quoted.double.roff" }, "1": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.roff" }, "1": { "name": "markup.italic.roff", "patterns": [ { "include": "#string-escapes" } ] } } }, { "include": "#escapes" }, { "include": "#string" } ] }, "italic-word": { "name": "markup.italic.roff", "match": "\\S+?(?=\\\\|$|\\s)" }, "long-name": { "patterns": [ { "name": "variable.parameter.other.roff", "begin": "\\G\\s*", "end": "(?=\\]|\\s)", "patterns": [ { "include": "#escapes" } ] }, { "include": "#escapes" }, { "include": "#string" }, { "include": "#number" } ] }, "macros": { "patterns": [ { "include": "#man" }, { "include": "#mdoc" }, { "include": "#ms" }, { "include": "#mm" }, { "include": "#me" }, { "include": "#www" }, { "name": "meta.function.macro.roff", "begin": "^([.'])[ \t]*((?:[^\\s\\\\]|\\\\(?![#\"]).)+)", "end": "(?\u003c!\\\\)(?=$)|(?=\\\\\")", "patterns": [ { "include": "#param-group" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } } ] }, "main": { "patterns": [ { "include": "#preprocessors" }, { "include": "#escapes" }, { "include": "#requests" }, { "include": "#macros" } ] }, "man": { "patterns": [ { "name": "meta.function.${2:/downcase}.man.macro.roff", "begin": "^([.'])[ \t]*(RE|RS|SM|BT|PT)(?=\\s)", "end": "(?\u003c!\\\\)(?=$)|(?=\\\\\")", "patterns": [ { "include": "#param-group" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "name": "meta.deprecated.function.${2:/downcase}.man.macro.roff", "begin": "^([.'])[ \t]*((AT|DT|PD|UC))(?=\\s)", "end": "(?\u003c!\\\\)(?=$)|(?=\\\\\")", "patterns": [ { "include": "#param-group" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "invalid.deprecated.roff" } } }, { "name": "markup.heading.title.function.man.macro.roff", "begin": "^([.'])[ \t]*(TH)(?=\\s)", "end": "(?\u003c!\\\\)$|(?=\\\\\")", "patterns": [ { "include": "#escapes" } ], "beginCaptures": { "0": { "name": "meta.function.man.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.name.function.roff" } } }, { "name": "markup.heading.section.function.man.macro.roff", "begin": "^([.'])[ \t]*(SH)(?=\\s)", "end": "(?\u003c!\\\\)$|(?=\\\\\")", "patterns": [ { "include": "#escapes" } ], "beginCaptures": { "0": { "name": "meta.function.man.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.name.function.roff" } } }, { "name": "markup.heading.subsection.function.man.macro.roff", "begin": "^([.'])[ \t]*(SS)(?=\\s)", "end": "(?\u003c!\\\\)$|(?=\\\\\")", "patterns": [ { "include": "#escapes" } ], "beginCaptures": { "0": { "name": "meta.function.man.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.name.function.roff" } } }, { "contentName": "markup.raw.roff", "begin": "^([.'])[ \t]*(EX)\\s*(\\\\[#\"].*)?$", "end": "^([.'])[ \t]*(EE)(?=\\s|\\\\[#\"])", "patterns": [ { "include": "$self" } ], "beginCaptures": { "0": { "name": "meta.function.man.macro.roff" }, "1": { "name": "punctuation.definition.function.macro.roff" }, "2": { "name": "entity.name.function.roff" }, "3": { "patterns": [ { "include": "#escapes-copymode" } ] } }, "endCaptures": { "0": { "name": "meta.function.man.macro.roff" }, "1": { "name": "punctuation.definition.function.macro.roff" }, "2": { "name": "entity.name.function.roff" } } }, { "name": "meta.function.paragraph.man.macro.roff", "begin": "^([.'])[ \t]*(LP|PP?)(?=\\s|\\\\[\"#])", "end": "(?\u003c!\\\\)(?=$)|(?=\\\\\")", "patterns": [ { "include": "#params" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "name": "meta.function.indented-paragraph.man.macro.roff", "begin": "^([.'])[ \t]*(IP)(?=\\s|\\\\[\"#])", "end": "(?\u003c!\\\\)(?=$)|(?=\\\\\")", "patterns": [ { "include": "#param-group" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "begin": "^([.'])[ \t]*(TP|TQ)(?=\\s|\\\\[\"#])(.*)?$\\n?", "end": "^(.*)(?\u003c!\\\\)$", "patterns": [ { "match": ".+", "captures": { "0": { "patterns": [ { "include": "$self" } ] } } } ], "beginCaptures": { "0": { "name": "meta.function.titled-paragraph.man.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "patterns": [ { "include": "#param-group" } ] } }, "endCaptures": { "0": { "name": "markup.heading.paragraph.roff" }, "1": { "patterns": [ { "include": "$self" } ] } } }, { "name": "meta.deprecated.function.hanging-paragraph.man.macro.roff", "begin": "^([.'])[ \t]*((HP))(?=\\s|\\\\[\"#])", "end": "(?\u003c!\\\\)(?=$)|(?=\\\\\")", "patterns": [ { "include": "#param-group" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "invalid.deprecated.roff" } } }, { "name": "meta.function.mailto.hyperlink.man.macro.gnu.roff", "begin": "^([.'])[ \t]*(MT)(?=\\s|\\\\[\"#])", "end": "^([.'])[ \t]*(ME)(?=\\s|\\\\[\"#])(.*)\\s*(\\\\[\"#].*)?$", "patterns": [ { "include": "#underline-first" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.gnu.roff" }, "2": { "name": "entity.function.name.gnu.roff" } }, "endCaptures": { "1": { "name": "punctuation.definition.macro.gnu.roff" }, "2": { "name": "entity.function.name.gnu.roff" }, "3": { "patterns": [ { "include": "#param-group" } ] }, "4": { "patterns": [ { "include": "#escapes" } ] } } }, { "name": "meta.function.hyperlink.man.macro.gnu.roff", "begin": "^([.'])[ \t]*(UR)(?=\\s|\\\\[\"#])", "end": "^([.'])[ \t]*(UE)(?=\\s|\\\\[\"#])(.*)\\s*(\\\\[\"#].*)?$", "patterns": [ { "include": "#underline-first" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.gnu.roff" }, "2": { "name": "entity.function.name.gnu.roff" } }, "endCaptures": { "1": { "name": "punctuation.definition.macro.gnu.roff" }, "2": { "name": "entity.function.name.gnu.roff" }, "3": { "patterns": [ { "include": "#param-group" } ] }, "4": { "patterns": [ { "include": "#escapes" } ] } } }, { "name": "meta.command-synopsis.roff", "begin": "^([.'])[ \t]*(SY)(?=\\s|\\\\[\"#])", "end": "^([.'])[ \t]*(YS)(?=\\s|\\\\[\"#])", "patterns": [ { "include": "#bold-first" }, { "name": "meta.function.option-description.man.macro.gnu.roff", "begin": "^([.'])[ \t]*(OP)(?=\\s)", "end": "(?\u003c!\\\\)(?=\\n)|(?=\\\\\")", "patterns": [ { "name": "function-call.arguments.roff", "begin": "\\G", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)|(?=\\\\\")", "patterns": [ { "include": "#odd-bold" }, { "include": "#even-italic-after-bold" }, { "include": "#even-italic" }, { "include": "#bridge-escapes" } ] }, { "include": "#escapes" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.gnu.roff" }, "2": { "name": "entity.function.name.gnu.roff" } } }, { "include": "$self" } ], "beginCaptures": { "0": { "name": "meta.function.begin.synopsis.man.macro.gnu.roff" }, "1": { "name": "punctuation.definition.macro.gnu.roff" }, "2": { "name": "entity.function.name.gnu.roff" } }, "endCaptures": { "0": { "name": "meta.function.end.synopsis.man.macro.gnu.roff" }, "1": { "name": "punctuation.definition.macro.gnu.roff" }, "2": { "name": "entity.function.name.gnu.roff" } } }, { "begin": "^([.'])[ \t]*(S?B)(\\s*\\\\[#\"].*$)?(?=$|[ \t]+|\\\\)", "end": "^(?=[.'])|(?=\\\\\")|(?!\\\\#)((\\S+[ \t]*)(?\u003c![^\\\\]\\\\)\n)", "patterns": [ { "include": "$self" }, { "name": "markup.bold.roff", "match": "\\S+" } ], "beginCaptures": { "0": { "name": "meta.function.man.macro.roff" }, "1": { "name": "punctuation.definition.function.macro.roff" }, "2": { "name": "entity.name.function.roff" }, "3": { "patterns": [ { "include": "#escapes-copymode" } ] } }, "endCaptures": { "1": { "name": "markup.bold.roff" }, "2": { "patterns": [ { "include": "#escapes" } ] } } }, { "begin": "^([.'])[ \t]*(I)(\\s*\\\\[#\"].*$)?(?=$|[ \t]+|\\\\)", "end": "^(?=[.'])|(?=\\\\\")|(?!\\\\#)((\\S+[ \t]*)(?\u003c![^\\\\]\\\\)\n)", "patterns": [ { "include": "$self" }, { "name": "markup.italic.roff", "match": "\\S+" } ], "beginCaptures": { "0": { "name": "meta.function.man.macro.roff" }, "1": { "name": "punctuation.definition.function.macro.roff" }, "2": { "name": "entity.name.function.roff" }, "3": { "patterns": [ { "include": "#escapes-copymode" } ] } }, "endCaptures": { "1": { "name": "markup.italic.roff" }, "2": { "patterns": [ { "include": "#escapes" } ] } } }, { "include": "#alternating-fonts" } ] }, "mdoc": { "patterns": [ { "name": "meta.function.begin-emphasis.unparsed.macro.mdoc.roff", "begin": "^([.'])\\s*(Bf)[ \t]+(-emphasis|Em)(?=\\s)(.*)", "end": "^(?=[.']\\s*[BE]f\\s)", "patterns": [ { "include": "$self" }, { "include": "#italic-word" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "constant.language.option.mdoc.macro.roff" }, "4": { "patterns": [ { "include": "#escapes" } ] } } }, { "name": "meta.function.begin-literal.unparsed.macro.mdoc.roff", "begin": "^([.'])\\s*(Bf)[ \t]+(-literal|Li)(?=\\s)(.*)", "end": "^(?=[.']\\s*[BE]f\\s)", "patterns": [ { "include": "$self" }, { "include": "#monospace-word" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "constant.language.option.mdoc.macro.roff" }, "4": { "patterns": [ { "include": "#escapes" } ] } } }, { "name": "meta.function.begin-symbolic.unparsed.macro.mdoc.roff", "begin": "^([.'])\\s*(Bf)[ \t]+(-symbolic|Sy)(?=\\s)(.*)", "end": "^(?=[.']\\s*[BE]f\\s)", "patterns": [ { "include": "$self" }, { "include": "#bold-word" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "constant.language.option.mdoc.macro.roff" }, "4": { "patterns": [ { "include": "#escapes" } ] } } }, { "contentName": "meta.citation.mdoc.roff", "begin": "^([.'])\\s*(Rs)(?=\\s)(.*)$", "end": "^([.'])\\s*(Re)(?=\\s)", "patterns": [ { "include": "#refer" } ], "beginCaptures": { "0": { "name": "meta.function.unparsed.macro.mdoc.roff" }, "1": { "name": "punctuation.definition.macro.mdoc.roff" }, "2": { "name": "entity.function.name.mdoc.roff" }, "3": { "patterns": [ { "include": "#escapes" } ] } }, "endCaptures": { "0": { "name": "meta.function.unparsed.macro.mdoc.roff" }, "1": { "name": "punctuation.definition.mdoc.macro.roff" }, "2": { "name": "entity.function.name.mdoc.roff" } } }, { "begin": "^([.'])\\s*(Bd)\\s+(-literal)(?=\\s|$)(.*)", "end": "^([.'])\\s*(Ed)(?=\\s|$)", "patterns": [ { "name": "meta.html-snippet.mdoc.roff", "begin": "^(?:\\S*.*?\\s+)?HTML:\\s*$\\n?", "end": "^(?!\\t|\\s*$)", "patterns": [ { "name": "text.embedded.html.basic", "match": ".+", "captures": { "0": { "patterns": [ { "include": "text.html.basic" } ] } } } ], "beginCaptures": { "0": { "patterns": [ { "include": "#main" } ] } } }, { "name": "meta.js-snippet.mdoc.roff", "begin": "^(?:\\S*.*?\\s+)?JavaScript:\\s*$\\n?", "end": "^(?!\\t|\\s*$)", "patterns": [ { "match": ".+", "captures": { "0": { "patterns": [ { "include": "source.js" } ] } } } ], "beginCaptures": { "0": { "patterns": [ { "include": "#main" } ] } } }, { "name": "meta.css-snippet.mdoc.roff", "begin": "^(?:\\S*.*?\\s+)?CSS:\\s*$\\n?", "end": "^(?!\\t|\\s*$)", "patterns": [ { "include": "source.css" } ], "beginCaptures": { "0": { "patterns": [ { "include": "#main" } ] } } }, { "name": "meta.shell-snippet.mdoc.roff", "begin": "^(?:\\S*.*?\\s+)?(?i:Bash|(?:Bourne[\\s-]?)?Shell(?:[\\s-]?Script)?):\\s*$\\n?", "end": "^(?!\\t|\\s*$)", "patterns": [ { "match": ".+", "captures": { "0": { "patterns": [ { "include": "source.shell" } ] } } } ], "beginCaptures": { "0": { "patterns": [ { "include": "#main" } ] } } }, { "include": "#main" } ], "beginCaptures": { "0": { "name": "meta.function.$2.unparsed.macro.mdoc.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "patterns": [ { "include": "#mdoc-args" } ] }, "4": { "patterns": [ { "include": "#mdoc-unparsed" } ] } }, "endCaptures": { "0": { "name": "meta.function.$2.unparsed.macro.mdoc.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "name": "meta.function.$2.unparsed.macro.mdoc.roff", "begin": "^([.'])\\s*(%[ABCDIJNOPQRTUV]|B[dfklt]|br|D[bdt]|E[dfklx]|F[do]|Hf|In|L[bp]|Nd|Os|Pp|R[esv]|Sm|sp|Ud)(?=\\s)", "end": "(?\u003c!\\\\)$", "patterns": [ { "include": "#mdoc-unparsed" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "name": "meta.function.$2.parsed.macro.mdoc.roff", "begin": "(?x)^([.'])\\s*\n(Ac|Ad|An|Ao|Ap|Aq|Ar|At|Bc|Bo|Bq|Brc|Bro|Brq|Bsx|Bx|Cd|Cm|D1|Dc\n|Dl|Do|Dq|Dv|Dx|Ec|Em|En|Eo|Eq|Er|Es|Ev|Fa|Fc|Fl|Fn|Fr|Ft|Fx|Ic\n|It|Li|Lk|Me|Ms|Mt|Nm|No|Ns|Nx|Oc|Oo|Op|Ot|Ox|Pa|Pc|Pf|Po|Pq|Qc\n|Ql|Qo|Qq|Rd|Sc|Sh|So|Sq|Ss|St|Sx|Sy|Ta|Tn|Ux|Va|Vt|Xc|Xo|Xr)\n(?=\\s)", "end": "(?\u003c!\\\\)$", "patterns": [ { "include": "#mdoc-callables" }, { "include": "#mdoc-args" }, { "include": "#generic-parameter" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } } ] }, "mdoc-args": { "patterns": [ { "include": "#escapes" }, { "include": "#string" }, { "name": "string.quoted.other.date.roff", "begin": "\\$(?=Mdocdate)", "end": "\\$", "beginCaptures": { "0": { "name": "punctuation.section.begin.date.roff" } }, "endCaptures": { "0": { "name": "punctuation.section.end.date.roff" } } }, { "name": "punctuation.delimiter.mdoc.macro.roff", "match": "(?\u003c=\\s)[(\\[.,:|;)\\]?!](?=\\s|$)" }, { "name": "constant.language.option.mdoc.macro.roff", "match": "(?x)\n(?\u003c=\\s) (-)\n(alpha|beta|bullet|centered|column|compact|dash|devel|diag|emphasis|enum|file|filled|hang\n|hyphen|inset|item|literal|nested|nosplit|ohang|ragged|split|std|symbolic|tag|type|unfilled\n|width|words|offset(?:\\s+(?:left|center|indent|indent-two|right))?)(?=\\s)", "captures": { "1": { "name": "punctuation.definition.dash.roff" } } } ] }, "mdoc-callables": { "patterns": [ { "name": "meta.function.$1.callable.macro.mdoc.roff", "begin": "(?\u003c=Em|Ar)\\G|(?\u003c=\\s)(Em|Ar)(?=\\s)", "end": "(?x)\n(?\u003c!\\\\)$ |\n(?=\n\t\\s+\n\t(?:Ac|Ad|An|Ao|Ap|Aq|Ar|At|Bc|Bo|Bq|Brc|Bro|Brq|Bsx|Bx|Cd|Cm|Dc|Do|Dq|Dv|Dx|Ec|Em\n\t|En|Eo|Er|Es|Ev|Fa|Fc|Fl|Fn|Fr|Ft|Fx|Ic|Li|Lk|Ms|Mt|Nm|No|Ns|Nx|Oc|Oo|Op|Ot|Ox|Pa\n\t|Pc|Pf|Po|Pq|Qc|Ql|Qo|Qq|Sc|So|Sq|Sx|Sy|Ta|Tn|Ux|Va|Vt|Xc|Xo|Xr)\n\t\\s |\n\t\\\\\" |\n\t\\\\f[\\[A-Za-z0-9]\n)", "patterns": [ { "include": "#mdoc-args" }, { "include": "$self" }, { "include": "#italic-word" } ], "beginCaptures": { "1": { "name": "entity.function.name.roff" } } }, { "name": "meta.function.$1.callable.macro.mdoc.roff", "begin": "(?\u003c=Sy|Fl|Cm)\\G|(?\u003c=\\s)(Sy|Fl|Cm)(?=\\s)", "end": "(?x)\n(?\u003c!\\\\)$ |\n(?=\n\t\\s+\n\t(?:Ac|Ad|An|Ao|Ap|Aq|Ar|At|Bc|Bo|Bq|Brc|Bro|Brq|Bsx|Bx|Cd|Cm|Dc|Do|Dq|Dv|Dx|Ec|Em\n\t|En|Eo|Er|Es|Ev|Fa|Fc|Fl|Fn|Fr|Ft|Fx|Ic|Li|Lk|Ms|Mt|Nm|No|Ns|Nx|Oc|Oo|Op|Ot|Ox|Pa\n\t|Pc|Pf|Po|Pq|Qc|Ql|Qo|Qq|Sc|So|Sq|Sx|Sy|Ta|Tn|Ux|Va|Vt|Xc|Xo|Xr)\n\t\\s |\n\t\\\\\" |\n\t\\\\f[\\[A-Za-z0-9]\n)", "patterns": [ { "include": "#mdoc-args" }, { "include": "$self" }, { "include": "#bold-word" } ], "beginCaptures": { "1": { "name": "entity.function.name.roff" } } }, { "name": "meta.function.$1.callable.macro.mdoc.roff", "begin": "(?\u003c=Li)\\G|(?\u003c=\\s)(Li)(?=\\s)", "end": "(?x)\n(?\u003c!\\\\)$ |\n(?=\n\t\\s+\n\t(?:Ac|Ad|An|Ao|Ap|Aq|Ar|At|Bc|Bo|Bq|Brc|Bro|Brq|Bsx|Bx|Cd|Cm|Dc|Do|Dq|Dv|Dx|Ec|Em\n\t|En|Eo|Er|Es|Ev|Fa|Fc|Fl|Fn|Fr|Ft|Fx|Ic|Li|Lk|Ms|Mt|Nm|No|Ns|Nx|Oc|Oo|Op|Ot|Ox|Pa\n\t|Pc|Pf|Po|Pq|Qc|Ql|Qo|Qq|Sc|So|Sq|Sx|Sy|Ta|Tn|Ux|Va|Vt|Xc|Xo|Xr)\n\t\\s |\n\t\\\\\" |\n\t\\\\f[A-Za-z0-9]\n)", "patterns": [ { "include": "#mdoc-args" }, { "include": "$self" }, { "include": "#monospace-word" } ], "beginCaptures": { "1": { "name": "entity.function.name.roff" } } }, { "name": "meta.function.$1.callable.macro.mdoc.roff", "begin": "(?\u003c=Lk|Mt)\\G|(?\u003c=\\s)(Lk|Mt)(?=\\s)", "end": "$|(?=\\\\\")|(\\S+?)(?=$|\\s|\\\\\")", "beginCaptures": { "1": { "name": "entity.function.name.roff" } }, "endCaptures": { "0": { "name": "markup.underline.link.hyperlink.mdoc.roff" }, "1": { "patterns": [ { "include": "#escapes" } ] } } }, { "name": "meta.function.$1.callable.macro.mdoc.roff", "match": "(?x) (?\u003c=[ \t])\n(Ac|Ad|An|Ao|Ap|Aq|Ar|At|Bc|Bo|Bq|Brc|Bro|Brq|Bsx|Bx|Cd|Cm|Dc|Do|Dq|Dv|Dx|Ec|En\n|Eo|Er|Es|Ev|Fa|Fc|Fl|Fn|Fr|Ft|Fx|Ic|Li|Lk|Ms|Mt|Nm|No|Ns|Nx|Oc|Oo|Op|Ot|Ox|Pa|Pc\n|Pf|Po|Pq|Qc|Ql|Qo|Qq|Sc|So|Sq|Sx|Ta|Tn|Ux|Va|Vt|Xc|Xo|Xr)(?=\\s)", "captures": { "1": { "name": "entity.function.name.roff" } } } ] }, "mdoc-unparsed": { "patterns": [ { "include": "#mdoc-delimiters" }, { "include": "#mdoc-args" }, { "include": "#generic-parameter" } ] }, "me": { "patterns": [ { "name": "meta.function.${3:/downcase}.me.macro.roff", "begin": "(?x) ^([.'])[ \t]* ((?:[()][cdfqxz]|\\+\\+|\\+c)| (1c|2c|EN|EQ|GE|GS|PE|PS|TE|TH|TS|ba|bc|bu|bx|hx |hl|ip|lp|np|pd|pp|r|re|sk|sm|sz|tp|uh|xp)(?=\\s))", "end": "(?\u003c!\\\\)$|(?=\\\\\")", "patterns": [ { "include": "#params" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "3": { "name": "entity.function.name.roff" } } }, { "contentName": "markup.list.unnumbered.roff", "begin": "^([.'])[ \t]*(\\(l)(?=\\s)", "end": "^([.'])[ \t]*(\\)l)(?=\\s)", "patterns": [ { "include": "$self" } ], "beginCaptures": { "0": { "name": "meta.function.list.begin.me.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } }, "endCaptures": { "0": { "name": "meta.function.list.end.me.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "contentName": "function-call.arguments.roff", "begin": "^([.'])[ \t]*(b)(?=\\s)", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=$|\\n)|(?=\\\\\")", "patterns": [ { "include": "#bold-first" } ], "beginCaptures": { "0": { "name": "meta.function.bold-text.me.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "contentName": "function-call.arguments.roff", "begin": "^([.'])[ \t]*(i)(?=\\s)", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=$|\\n)|(?=\\\\\")", "patterns": [ { "include": "#italic-first" } ], "beginCaptures": { "0": { "name": "meta.function.italic-text.me.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "contentName": "function-call.arguments.roff", "begin": "^([.'])[ \t]*(bi)(?=\\s)", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=$|\\n)|(?=\\\\\")", "patterns": [ { "include": "#bold-italic-first" } ], "beginCaptures": { "0": { "name": "meta.function.bold-italic-text.me.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "contentName": "function-call.arguments.roff", "begin": "^([.'])[ \t]*(u)(?=\\s)", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=$|\\n)|(?=\\\\\")", "patterns": [ { "include": "#underline-first" } ], "beginCaptures": { "0": { "name": "meta.function.underline-text.me.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "name": "markup.heading.section.function.me.macro.roff", "begin": "^([.'])[ \t]*(sh)[ \t]+((?!\")\\S+)\\b[ \t]*(?!$|\\n|\\\\\")", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=$|\\n)|(?=\\\\\")", "patterns": [ { "include": "#bold-first" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "variable.parameter.roff", "patterns": [ { "include": "#params" } ] } } }, { "name": "meta.function.${2:/downcase}.me.macro.roff", "contentName": "function-call.arguments.roff", "begin": "^([.'])[ \t]*(of|oh|he|eh|fo|ef)(?=\\s)", "end": "(?\u003c!\\\\)(?=\n)|(?=\\\\\")", "patterns": [ { "include": "#3-part-title" }, { "include": "#escapes" }, { "include": "#string" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } } ] }, "mm": { "patterns": [ { "name": "meta.function.${2:/downcase}.mm.macro.roff", "begin": "(?x) ^([.'])[ \t]* (1C|2C|AE|AF|AL|APP|APPSK|AS|AST|AT|AU|AV|AVL|B1|B2|BE|BL|BS|BVL |COVER|COVEND|DE|DF|DL|DS|EC|EF|EH|EN|EOP|EPIC|EQ|EX|FC|FD|FE|FG |FS|GETHN|GETPN|GETR|GETST|H|HC|HM|HU|HX|HY|HZ|IA|IE|INITI|INITR |IND|INDP|ISODATE|LB|LC|LE|LI|LT|LO|MC|ML|MT|MOVE|MULB|MULN|MULE |nP|NCOL|NS|ND|OF|OH|OP|PGFORM|PGNH|PIC|PE|PF|PH|PS|PX?|RD|RF|RL |RP|RS|S|SA|SETR|SG|SK|SM|SP|TA?B|TC|TE|TL|TM|TP|TS|TX|TY|VERBON |VERBOFF|VL|VM|WA|WE|WC|\\)E)(?=\\s)", "end": "(?\u003c!\\\\)$|(?=\\\\\")", "patterns": [ { "include": "#params" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } } ] }, "monospace-word": { "name": "markup.raw.monospaced.roff", "match": "\\S+?(?=\\\\|$|\\s)" }, "ms": { "patterns": [ { "name": "meta.function.${2:/downcase}.ms.macro.roff", "begin": "(?x) ^([.'])[ \t]* (1C|2C|AB|AE|AI|AU|B1|B2|BT|BX|DA|DE|DS|EN|EQ|FE|FS|IP|KE|KF|KS|LG |LP|MC|ND|NH|NL|P1|PE|PP|PS|PT|PX|QP|RP|SH|SM|TA|TC|TE|TL|TS|XA|XE |XP|XS)(?=\\s)", "end": "(?\u003c!\\\\)(?=\n)|(?=\\\\\")", "patterns": [ { "include": "#params" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "name": "meta.function.${2:/downcase}.ms.macro.roff", "contentName": "function-call.arguments.roff", "begin": "^([.'])[ \t]*([EO][FH])(?=\\s)", "end": "(?\u003c!\\\\)(?=\n)|(?=\\\\\")", "patterns": [ { "include": "#3-part-title" }, { "include": "#escapes" }, { "include": "#string" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "name": "meta.deprecated.function.${2:/downcase}.ms.macro.roff", "contentName": "function-call.arguments.roff", "begin": "^([.'])[ \t]*((De|Ds))(?=\\s)", "end": "(?\u003c!\\\\)$|(?=\\s*\\\\\")", "patterns": [ { "include": "#escapes" }, { "include": "#string" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "invalid.deprecated.roff" } } }, { "name": "meta.function.cw.ms.macro.roff", "begin": "^([.'])[ \t]*(CW)(?=\\s)", "end": "(?\u003c!\\\\)$|(?=\\\\\")", "patterns": [ { "name": "markup.raw.roff", "begin": "\\G[ \t]*(?!\")(?=(?:[^\\s\\\\]|\\\\(?!\").)+)", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=\\s|$)|(?=\\\\\")", "patterns": [ { "include": "#escapes" } ] }, { "name": "markup.raw.roff", "match": "(\")(\")", "captures": { "0": { "name": "string.quoted.double.empty.roff" }, "1": { "name": "punctuation.definition.string.begin.roff" }, "2": { "name": "punctuation.definition.string.end.roff" } } }, { "name": "string.quoted.double.roff", "contentName": "markup.raw.roff", "begin": "\\G[ \t]*(\")", "end": "((?:\"\")*)\"(?!\")|(?\u003c!\\\\)$|(?=\\\\\")", "patterns": [ { "include": "#string-escapes" } ], "beginCaptures": { "1": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.roff" }, "1": { "name": "markup.raw.roff", "patterns": [ { "include": "#string-escapes" } ] } } }, { "include": "#escapes" }, { "include": "#string" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "name": "meta.function.ul.ms.macro.roff", "begin": "^([.'])[ \t]*(UL)(?=\\s)", "end": "(?\u003c!\\\\)$|(?=\\\\\")", "patterns": [ { "include": "#underline-first" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } } ] }, "number": { "name": "constant.numeric.roff", "match": "(?!\\d+(?:/|[cfimnPpsuvz]\\w))(\\|)?(?:(?\u003c!\\w)[-+])?(?:\\d+(?:\\.\\d*)?|\\.\\d+|(?\u003c=[-+])\\.)([cfimnPpsuvz])?", "captures": { "1": { "name": "keyword.operator.absolute.roff" }, "2": { "name": "keyword.other.unit.roff" } } }, "odd-bold": { "patterns": [ { "name": "markup.bold.roff", "begin": "[ \t]+(\")", "end": "(\")[ \t]*|(?=\\\\\")|(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)", "patterns": [ { "match": "((?:[^\"\\\\]|\"\"|\\\\(?!\").)+)(?!$)", "captures": { "1": { "patterns": [ { "include": "#string-escapes" } ] } } }, { "include": "#string-escapes" } ], "beginCaptures": { "1": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "1": { "name": "punctuation.definition.string.end.roff" } } }, { "name": "markup.bold.roff", "begin": "[ \t]+(\\\\$\\n?)", "end": "(?\u003c!^)[ \t]+|(?=\\\\\")|(?\u003c!\\\\)(?=\\n|$)", "patterns": [ { "include": "#escapes" }, { "begin": "^[ \t]+", "end": "(?=\\S)|(?\u003c!\\\\)(?:$|\\n)" } ], "beginCaptures": { "1": { "patterns": [ { "include": "#escapes" } ] } } }, { "name": "markup.bold.roff", "begin": "[ \t]+(?!\")((?:[^\\s\"\\\\]|\\\\(?!\").)+)", "end": "[ \t]+|(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)|(?=\\\\\")", "patterns": [ { "include": "#escapes" } ], "beginCaptures": { "1": { "patterns": [ { "include": "#escapes" } ] } } } ] }, "odd-italic": { "patterns": [ { "name": "markup.italic.roff", "begin": "[ \t]+(\")", "end": "(\")[ \t]*|(?=\\\\\")|(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)", "patterns": [ { "match": "((?:[^\"\\\\]|\"\"|\\\\(?!\").)+)(?!$)", "captures": { "1": { "patterns": [ { "include": "#string-escapes" } ] } } }, { "include": "#string-escapes" } ], "beginCaptures": { "1": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "1": { "name": "punctuation.definition.string.end.roff" } } }, { "name": "markup.italic.roff", "begin": "[ \t]+(\\\\$\\n?)", "end": "(?\u003c!^)[ \t]+|(?=\\\\\")|(?\u003c!\\\\)(?=\\n|$)", "patterns": [ { "include": "#escapes" }, { "begin": "^[ \t]+", "end": "(?=\\S)|(?\u003c!\\\\)(?:$|\\n)" } ], "beginCaptures": { "1": { "patterns": [ { "include": "#escapes" } ] } } }, { "name": "markup.italic.roff", "begin": "[ \t]+(?!\")((?:[^\\s\"\\\\]|\\\\(?!\").)+)", "end": "[ \t]+|(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)|(?=\\\\\")", "patterns": [ { "include": "#escapes" } ], "beginCaptures": { "1": { "patterns": [ { "include": "#escapes" } ] } } } ] }, "odd-roman": { "patterns": [ { "name": "markup.plain.roff", "begin": "[ \t]+(\")", "end": "(\")[ \t]*|(?=\\\\\")|(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)", "patterns": [ { "match": "((?:[^\"\\\\]|\"\"|\\\\(?!\").)+)(?!$)", "captures": { "1": { "patterns": [ { "include": "#string-escapes" } ] } } }, { "include": "#string-escapes" } ], "beginCaptures": { "1": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "1": { "name": "punctuation.definition.string.end.roff" } } }, { "name": "markup.plain.roff", "begin": "[ \t]+(\\\\$\\n?)", "end": "(?\u003c!^)[ \t]+|(?=\\\\\")|(?\u003c!\\\\)(?=\\n|$)", "patterns": [ { "include": "#escapes" }, { "begin": "^[ \t]+", "end": "(?=\\S)|(?\u003c!\\\\)(?:$|\\n)" } ], "beginCaptures": { "1": { "patterns": [ { "include": "#escapes" } ] } } }, { "name": "markup.plain.roff", "begin": "[ \t]+(?!\")((?:[^\\s\"\\\\]|\\\\(?!\").)+)", "end": "[ \t]+|(?\u003c![^\\\\]\\\\|^\\\\)(?=\\n|$)|(?=\\\\\")", "patterns": [ { "include": "#escapes" } ], "beginCaptures": { "1": { "patterns": [ { "include": "#escapes" } ] } } } ] }, "param-group": { "name": "function-call.arguments.roff", "begin": "\\G|^", "end": "\\Z|$", "patterns": [ { "include": "#params" } ] }, "params": { "patterns": [ { "include": "#escapes" }, { "include": "#string" }, { "include": "#number" }, { "include": "#generic-parameter" } ] }, "preprocessors": { "patterns": [ { "contentName": "markup.other.table.preprocessor.tbl.roff", "begin": "^([.'])[ \t]*(TS)(?=\\s|\\\\[\"#])(.*)", "end": "^([.'])[ \t]*(TE)(?=\\s|\\\\[\"#])", "patterns": [ { "include": "#tbl" } ], "beginCaptures": { "0": { "name": "meta.function.begin.table.section.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "patterns": [ { "include": "#escapes" } ] } }, "endCaptures": { "0": { "name": "meta.function.end.table.section.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.name.function.roff" } } }, { "contentName": "markup.other.math.preprocessor.eqn.roff", "begin": "^([.'])[ \t]*(EQ)(?=\\s|\\\\[\"#])[ \t]*([LIC]\\b)?\\s*([^\\\\\"]+|\\\\[^\"])*(\\\\\".*)?$", "end": "^([.'])[ \t]*(EN)(?=\\s|\\\\[\"#])", "patterns": [ { "include": "#eqn" } ], "beginCaptures": { "0": { "name": "meta.function.begin.math.section.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "constant.language.alignment-mode.eqn.roff" }, "4": { "name": "string.unquoted.equation-label.eqn.roff" }, "5": { "patterns": [ { "include": "#escapes" } ] } }, "endCaptures": { "0": { "name": "meta.function.end.math.section.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.name.function.roff" } } }, { "contentName": "meta.citation.roff", "begin": "^([.'])[ \t]*(\\[)\\s*([-$'\\w.\\\\]*?)\\s*(\\\\[\"#].*)?$", "end": "^([.'])[ \t]*(\\])\\s*([-$'\\w.\\\\]*?)(?=\\s|$|\\\\\")", "patterns": [ { "begin": "\\G", "end": "$|(?=\\\\[#\"])", "patterns": [ { "name": "constant.character.flags.refer.gnu.roff", "match": "^[#\\[\\]]+" }, { "include": "#params" } ] }, { "include": "#refer" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "punctuation.section.function.begin.roff" }, "3": { "name": "string.unquoted.opening-text.refer.roff", "patterns": [ { "include": "#escapes" } ] }, "4": { "patterns": [ { "include": "#escapes" } ] } }, "endCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "punctuation.section.function.end.roff" }, "3": { "name": "string.unquoted.closing-text.refer.roff", "patterns": [ { "include": "#escapes" } ] } } }, { "begin": "^([.'])[ \t]*(GS)(?=\\s|\\\\[\"#])(.*)$", "end": "^([.'])[ \t]*(GE)(?=\\s|\\\\[\"#])", "patterns": [ { "name": "keyword.operator.gremlin", "match": "(?x)\n\\b((?:sun)?gremlinfile|ARC|BEZIER|BOTCENT|BOTLEFT|BOTRIGHT\n|BSPLINE|CENTCENT|CENTLEFT|CENTRIGHT|CURVE|POLYGON|TOPCENT\n|TOPLEFT|TOPRIGHT|VECTOR)\\b" }, { "include": "#params" } ], "beginCaptures": { "0": { "name": "meta.function.begin.gremlin.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "patterns": [ { "include": "#escapes" } ] } }, "endCaptures": { "0": { "name": "meta.function.end.gremlin.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.name.function.roff" } } }, { "contentName": "source.embedded.perl.gnu.roff", "begin": "^([.'])[ \t]*(Perl)[ \t]+(begin|start)(?=\\s|\\\\[\"#])(.*)$", "end": "^([.'])[ \t]*(Perl)[ \t]+(end|stop)(?=\\s|\\\\[\"#])", "patterns": [ { "include": "source.perl" } ], "beginCaptures": { "0": { "name": "meta.function.begin.perl.macro.gnu.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "constant.language.embedding-control.roff" }, "4": { "patterns": [ { "include": "#escapes" } ] } }, "endCaptures": { "0": { "name": "meta.function.end.perl.macro.gnu.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "constant.language.embedding-control.roff" } } }, { "contentName": "source.embedded.lilypond.gnu.roff", "begin": "^([.'])[ \t]*(lilypond)[ \t]+(begin|start)(?=\\s|\\\\[\"#])(.*)$", "end": "^([.'])[ \t]*(lilypond)[ \t]+(end|stop)(?=\\s|\\\\[\"#])", "patterns": [ { "include": "source.lilypond" } ], "beginCaptures": { "0": { "name": "meta.function.begin.lilypond.macro.gnu.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "constant.language.embedding-control.roff" }, "4": { "patterns": [ { "include": "#escapes" } ] } }, "endCaptures": { "0": { "name": "meta.function.end.lilypond.macro.gnu.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "constant.language.embedding-control.roff" } } }, { "contentName": "meta.pinyin.gnu.roff", "begin": "^([.'])[ \t]*(pinyin)[ \t]+(begin|start)(?=\\s|\\\\[\"#])(.*)$", "end": "^([.'])[ \t]*(pinyin)[ \t]+(end|stop)(?=\\s|\\\\[\"#])", "patterns": [ { "include": "#main" } ], "beginCaptures": { "0": { "name": "meta.function.begin.pinyin.macro.gnu.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "constant.language.embedding-control.roff" }, "4": { "patterns": [ { "include": "#escapes" } ] } }, "endCaptures": { "0": { "name": "meta.function.end.pinyin.macro.gnu.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "constant.language.embedding-control.roff" } } }, { "include": "source.pic#tags" }, { "include": "source.ideal#tags" } ] }, "refer": { "patterns": [ { "name": "comment.line.refer.roff", "begin": "#", "end": "$", "beginCaptures": { "0": { "name": "punctuation.definition.comment.refer.roff" } } }, { "name": "variable.other.readonly.author-names.refer.roff", "match": "@" }, { "name": "meta.structure.dictionary.refer.roff", "contentName": "meta.structure.dictionary.value.refer.roff", "begin": "^([.'])?\\s*(%)([A-Z])(?=\\s)", "end": "(?\u003c!\\\\)$", "patterns": [ { "name": "string.unquoted.refer.roff", "begin": "\\G", "end": "(?\u003c!\\\\)$", "patterns": [ { "name": "meta.symbol.refer.roff", "match": "[-+'\"\u003c\u003e\\].*\\[~!\u0026?:]" }, { "include": "#refer" } ] }, { "include": "#escapes" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.mdoc.roff" }, "2": { "name": "punctuation.definition.percentage-sign.refer.roff" }, "3": { "name": "variable.other.readonly.key-letter.refer.roff" } } }, { "name": "string.quoted.single.refer.roff", "begin": "'", "end": "'", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.roff" } } }, { "name": "variable.other.readonly.formatted.refer.roff", "match": "(%+)[\\daiA-Z]", "captures": { "1": { "name": "punctuation.definition.percentage-sign.refer.roff" } } }, { "name": "keyword.operator.label-expression.refer.roff", "match": "(?x)\n(?\u003c=\\S)(?:\\*|[-+]\\d+|(\\.)(?:[-+]?y|[lucran]))(?=\\s|$) |\n(?\u003c=\\S)[~!\u0026?:](?=\\S)", "captures": { "1": { "name": "punctuation.separator.period.full-stop.refer.roff" } } }, { "begin": "\u003c", "end": "\u003e|^(?=\\.\\])", "patterns": [ { "include": "#refer" } ], "beginCaptures": { "0": { "name": "punctuation.bracket.angle.refer.roff" } }, "endCaptures": { "0": { "name": "punctuation.bracket.angle.refer.roff" } } }, { "begin": "\\(", "end": "\\)|^(?=\\.\\])", "patterns": [ { "include": "#refer" } ], "beginCaptures": { "0": { "name": "punctuation.bracket.round.refer.roff" } }, "endCaptures": { "0": { "name": "punctuation.bracket.round.refer.roff" } } }, { "name": "keyword.operator.negatable.refer.roff", "match": "(?x)\\b\n(?:no-)?\n(?:abbreviate|abbreviate-label-ranges|accumulate|annotate|compatible|date-as-label\n|default-database|discard|et-al|label-in-reference|label-in-text|move-punctuation\n|reverse|search-ignore|search-truncate|short-label|sort|sort-adjacent-labels)\\b", "captures": { "0": { "name": "entity.function.name.refer.roff" } } }, { "name": "keyword.operator.refer.roff", "match": "\\b(articles|bibliography|capitalize|join-authors|label|separate-label-second-parts)\\b", "captures": { "0": { "name": "entity.function.name.refer.roff" } } }, { "begin": "^\\s*\\b(database|include)\\b", "end": "(?\u003c!\\\\)$", "patterns": [ { "include": "#escapes" }, { "name": "string.unquoted.filename.refer.roff", "match": "((?:[^\\\\\\s]|\\\\(?!\").)+)", "captures": { "0": { "name": "markup.link.underline.refer.roff" }, "1": { "patterns": [ { "include": "#escapes" } ] } } } ], "beginCaptures": { "0": { "name": "keyword.operator.refer.roff" }, "1": { "name": "entity.function.name.refer.roff" } } }, { "include": "#string" }, { "include": "#escapes" } ] }, "register-expansion": { "patterns": [ { "name": "constant.character.escape.function.expand-register.gnu.roff", "begin": "(\\|)?(((?:(?\u003c=\\|)\\\\*?)?\\\\)n([-+])?(\\[))", "end": "(\\])|(?\u003c!\\\\)(?=$)", "patterns": [ { "include": "#long-name" } ], "beginCaptures": { "1": { "name": "keyword.operator.absolute.roff" }, "2": { "name": "entity.name.roff" }, "3": { "name": "punctuation.definition.escape.roff" }, "4": { "name": "keyword.operator.arithmetic.roff" }, "5": { "name": "punctuation.section.begin.bracket.square.roff" } }, "endCaptures": { "1": { "name": "punctuation.section.end.bracket.square.roff" } } }, { "name": "constant.character.escape.function.expand-register.roff", "match": "(?x)\n\n# 1: keyword.operator.absolute.roff\n(\\|)?\n\n# 2: entity.name.roff\n(\n\t# 3: punctuation.definition.escape.roff\n\t(\n\t\t(?:(?\u003c=\\|)\\\\*?)?\n\t\t\\\\\n\t)\n\tn\n\t([-+])? # 4: keyword.operator.arithmetic.roff\n\t(\\() # 5: punctuation.definition.brace.roff\n)\n\n# Name of register\n(?:\n\t# 6: constant.language.predefined.register.roff\n\t(ct|dl|dn|dw|dy|ln|mo|nl|sb|st|yr)\n\t|\n\t# 7: constant.language.predefined.register.gnu.roff\n\t(c\\.)\n\t|\n\t# 8: constant.language.predefined.register.readonly.roff\n\t(\\${2} | \\.[$aAbcdfFhHijklLnopRTstuvVwxyz])\n\t|\n\t# 9: constant.language.predefined.register.readonly.gnu.roff\n\t(\\.[CgmMOPUxyY])\n\t|\n\t# 10: variable.parameter.roff\n\t(\\S{2})\n)\n\n|\n\n# 11: keyword.operator.absolute.roff\n(\\|)?\n\n# 12: entity.name.roff\n(\n\t# 13: punctuation.definition.escape.roff\n\t(\n\t\t(?:(?\u003c=\\|)\\\\*?)?\n\t\t\\\\\n\t)\n\tn\n)\n\n# 14: keyword.operator.arithmetic.roff\n([-+])?\n\n# Name of register\n(?:\n\t(%) | # 15: constant.language.predefined.register.roff\n\t(\\S) # 16: variable.parameter.roff\n)", "captures": { "1": { "name": "keyword.operator.absolute.roff" }, "10": { "name": "variable.parameter.roff" }, "11": { "name": "keyword.operator.absolute.roff" }, "12": { "name": "entity.name.roff" }, "13": { "name": "punctuation.definition.escape.roff" }, "14": { "name": "keyword.operator.arithmetic.roff" }, "15": { "name": "constant.language.predefined.register.roff" }, "16": { "name": "variable.parameter.roff" }, "2": { "name": "entity.name.roff" }, "3": { "name": "punctuation.definition.escape.roff" }, "4": { "name": "keyword.operator.arithmetic.roff" }, "5": { "name": "punctuation.definition.brace.roff" }, "6": { "name": "constant.language.predefined.register.roff" }, "7": { "name": "constant.language.predefined.register.gnu.roff" }, "8": { "name": "constant.language.predefined.register.readonly.roff" }, "9": { "name": "constant.language.predefined.register.readonly.gnu.roff" } } } ] }, "requests": { "patterns": [ { "name": "meta.function.request.$2.gnu.roff", "begin": "(?x) ^([.'])[ \t]* (aln|als|asciify|backtrace|blm|boxa|box|brp|cflags|chop|close|composite|color |cp|devicem|device|do|ecs|ecr|evc|fam|fchar|fcolor|fschar|fspecial|ftr|fzoom |gcolor|hcode|hla|hlm|hpfa|hpfcode|hpf|hym|hys|itc|kern|length|linetabs|lsm |mso|nop|nroff|opena|open|output|pev|pnr|psbb|pso|ptr|pvs|rchar|rfschar|rj |rnn|schar|shc|shift|sizes|special|spreadwarn|sty|substring|tkf|tm1|tmc|trf |trin|trnt|troff|unformat|vpt|warnscale|warn|writec|writem|write) (?=\\s|\\\\[\"#])", "end": "(?\u003c!\\\\)(?=\n)|(?=\\\\\")", "patterns": [ { "include": "#param-group" } ], "beginCaptures": { "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "name": "meta.function.request.assign-class.gnu.roff", "begin": "^([.'])[ \t]*(class)[ \t]+(\\S+)", "end": "(?\u003c!\\\\)(?=$)|(?=\\\\\")", "patterns": [ { "match": "[^\\s\\\\]+(-)[^\\s\\\\]+", "captures": { "0": { "name": "string.unquoted.character-range.roff" }, "1": { "name": "punctuation.separator.dash.roff" } } }, { "include": "#params" } ], "beginCaptures": { "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "variable.parameter.roff" } } }, { "name": "meta.function.request.$2.gnu.roff", "begin": "^([.'])[ \t]*(char)[ \t]*(\\S+)?[ \t]*(.*)(?=$|\\\\[\"#])", "end": "(?\u003c!\\\\)(?=$)|(?=\\\\[\"#])", "patterns": [ { "include": "$self" } ], "beginCaptures": { "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "storage.type.var.roff" }, "3": { "name": "variable.parameter.roff" }, "4": { "patterns": [ { "include": "#param-group" } ] } } }, { "name": "meta.function.request.define-colour.gnu.roff", "begin": "^([.'])[ \t]*(defcolor)(?=\\s)[ \t]*((?:[^\\s\\\\]|\\\\(?![\"#]).)*)[ \t]*(rgb|cmyk?|gr[ae]y)?", "end": "(?\u003c!\\\\)(?=$)|(?=\\\\[\"#])", "patterns": [ { "name": "constant.other.colour.hex.roff", "match": "(#{1,2})[A-Fa-f0-9]+", "captures": { "1": { "name": "punctuation.definition.colour.roff" } } }, { "include": "#params" } ], "beginCaptures": { "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "storage.type.var.roff" }, "3": { "name": "string.other.colour-name.roff", "patterns": [ { "include": "#escapes" } ] }, "4": { "name": "constant.language.colour-scheme.roff" } } }, { "begin": "^([.'])[ \t]*(break|continue|return|while)(?=\\s)", "end": "(?\u003c!\\\\)(?=$)|(?=\\\\\")", "patterns": [ { "include": "#param-group" } ], "beginCaptures": { "0": { "name": "meta.function.request.control.gnu.roff" }, "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "keyword.control.roff" } } }, { "name": "meta.function.request.$2.roff", "contentName": "string.unquoted.roff", "begin": "^([.'])[ \t]*(ab|tm)(?=\\s|\\\\[\"#])", "end": "(?\u003c!\\\\)(?=\n)|(?=\\\\\")", "patterns": [ { "include": "#escapes-copymode" } ], "beginCaptures": { "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "name": "meta.function.request.$2.roff", "begin": "(?x) ^([.'])[ \t]* (ab|ad|af|bd|bp|br|c2|cc|ce|cf|ch|cs|da|di|dt|ec|em|eo|ev |ex|fc|fi|fl|fp|ft|hc|hw|hy|in|it|lc|lg|lf|ll|ls|lt|mc|mk |na|ne|nf|nh|nm|nn|ns|nx|os|pc|pi|pl|pm|pn|po|ps|rd|rm|rn |rr|rs|rt|so|sp|ss|sv|sy|ta|tc|ti|tm|tr|uf|vs|wh) (?=\\s|\\d+\\s*$|\\\\[\"#])", "end": "(?\u003c!\\\\)(?=\n)|(?=\\\\\")", "patterns": [ { "include": "#param-group" } ], "beginCaptures": { "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "include": "#conditionals" }, { "include": "#definition" }, { "include": "#ignore" }, { "include": "#underlines" }, { "name": "meta.function.request.$2.roff", "begin": "^([.'])[ \t]*(nr)[ \t]*(?:(%|ct|dl|dn|dw|dy|ln|mo|nl|sb|st|yr)|(c\\.)|(\\${2}|\\.[$aAbcdfFhHijklLnopRTstuvVwxyz])|(\\.[CgmMOPUxyY])|(\\S+))?[ \t]*(.*)$", "end": "(?\u003c!\\\\)$", "beginCaptures": { "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "storage.type.var.roff" }, "3": { "name": "constant.language.predefined.register.roff" }, "4": { "name": "constant.language.predefined.register.gnu.roff" }, "5": { "name": "invalid.illegal.readonly.register.roff" }, "6": { "name": "invalid.illegal.readonly.register.gnu.roff" }, "7": { "name": "variable.parameter.roff", "patterns": [ { "include": "#escapes" } ] }, "8": { "patterns": [ { "include": "#arithmetic" }, { "include": "#param-group" } ] } } }, { "name": "meta.function.request.$2.roff", "contentName": "string.unquoted.roff", "begin": "^([.'])[ \t]*([ad]s1?)[ \t]+(((?:[^\\s\\\\]|\\\\(?!\").)+))?", "end": "(?\u003c!\\\\)$", "patterns": [ { "include": "#escapes-clipped" }, { "include": "#escapes" } ], "beginCaptures": { "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "storage.type.var.roff" }, "3": { "name": "variable.parameter.roff" }, "4": { "name": "entity.name.roff", "patterns": [ { "include": "#escapes" } ] } } }, { "name": "meta.function.request.$2.roff", "contentName": "function-call.arguments.roff", "begin": "^([.'])[ \t]*(tl)(?=\\s)", "end": "(?\u003c!\\\\)$|(?=\\\\\")", "patterns": [ { "include": "#3-part-title" }, { "include": "#params" } ], "beginCaptures": { "1": { "name": "punctuation.definition.request.roff" }, "2": { "name": "entity.function.name.roff" } } } ] }, "string": { "patterns": [ { "name": "string.quoted.double.empty.roff", "match": "(?\u003c=(?\u003c=[^\\\\]|^)\\s|^)(\")(\")(?=\\s|$)", "captures": { "1": { "name": "punctuation.definition.string.begin.roff" }, "2": { "name": "punctuation.definition.string.end.roff" } } }, { "name": "string.quoted.double.roff", "begin": "(?\u003c=(?\u003c=[^\\\\]|^)\\s|^)\"(?!\")", "end": "(?\u003c!\")\"(?!\")|(?\u003c!\\\\)$|(?=\\\\\")", "patterns": [ { "include": "#string-escapes" } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.roff" } } } ] }, "string-escapes": { "patterns": [ { "name": "constant.character.escape.quote.double.roff", "match": "\"\"" }, { "include": "#escapes" } ] }, "tbl": { "patterns": [ { "name": "meta.function-call.arguments.tbl.roff", "begin": "\\G|^((\\.)T\u0026)[ \t]*$", "end": "(\\.)$\\n?|^(?=[.'][ \t]*TE(?=\\s))", "patterns": [ { "begin": "^(?=\\.)", "end": "^(?=[.'][ \t]*TE(?=\\s|\\\\[\"#]))", "patterns": [ { "include": "$self" } ] }, { "match": "^(.+)(;)$", "captures": { "1": { "patterns": [ { "name": "punctuation.separator.comma.tbl.roff", "match": "," }, { "name": "constant.language.$1.tbl.roff", "match": "\\b(center|centre|expand|box|allbox|doublebox)\\b" }, { "match": "\\b((tab|linesize|delim)(\\()([^\\)\\s]*)(\\)))", "captures": { "1": { "name": "constant.language.$2.tbl.roff" }, "3": { "name": "punctuation.definition.arguments.begin.tbl.roff" }, "4": { "patterns": [ { "include": "#params" } ] }, "5": { "name": "punctuation.definition.arguments.end.tbl.roff" } } } ] }, "2": { "name": "punctuation.terminator.line.tbl.roff" } } }, { "name": "constant.language.key-letter.tbl.roff", "match": "[ABCEFILNPRSTUVWZabcefilnprstuvwz^]" }, { "name": "punctuation.keyword.tbl.roff", "match": "[|_=]" }, { "name": "constant.numeric.tbl.roff", "match": "[-+]?\\d+" }, { "name": "punctuation.delimiter.period.full-stop.tbl.roff", "match": "\\." }, { "name": "punctuation.separator.comma.tbl.roff", "match": "," }, { "include": "#params" } ], "beginCaptures": { "1": { "name": "entity.function.name.roff" }, "2": { "name": "punctuation.definition.macro.roff" } }, "endCaptures": { "1": { "patterns": [ { "include": "#params" } ] }, "2": { "name": "punctuation.terminator.section.tbl.roff" } } }, { "name": "punctuation.keyword.tbl.roff", "match": "^\\s*([=_]|\\\\_)\\s*$" }, { "name": "constant.character.escape.repeat.tbl.roff", "match": "(?\u003c!\\\\)((\\\\)R)(.)", "captures": { "1": { "name": "keyword.operator.tbl.roff" }, "2": { "name": "punctuation.definition.escape.roff" }, "3": { "name": "string.unquoted.tbl.roff" } } }, { "name": "constant.character.escape.vertical-span.tbl.roff", "match": "(\\\\)\\^", "captures": { "0": { "name": "keyword.operator.tbl.roff" }, "1": { "name": "punctuation.definition.escape.roff" } } }, { "name": "meta.multiline-cell.tbl.roff", "contentName": "string.unquoted.tbl.roff", "begin": "T(\\{)", "end": "^T(\\})|^(?=[.'][ \t]*TE\\b)", "patterns": [ { "include": "$self" } ], "beginCaptures": { "0": { "name": "keyword.operator.section.begin.tbl.roff" }, "1": { "name": "punctuation.embedded.tbl.roff" } }, "endCaptures": { "0": { "name": "keyword.operator.section.end.tbl.roff" }, "1": { "name": "punctuation.embedded.tbl.roff" } } }, { "include": "$self" } ] }, "underline-first": { "patterns": [ { "contentName": "markup.underline.roff", "begin": "\\G[ \t]*(?!\")(?=(?:[^\\s\\\\]|\\\\(?!\").)+)", "end": "(?\u003c![^\\\\]\\\\|^\\\\)(?=\\s|$)|(?=\\\\\")", "patterns": [ { "include": "#escapes" } ] }, { "name": "string.quoted.double.empty.roff", "match": "(\")(\")", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.roff" } } }, { "name": "string.quoted.double.roff", "contentName": "markup.underline.roff", "begin": "\\G[ \t]*(\")", "end": "((?:\"\")*)\"(?!\")|(?\u003c!\\\\)$|(?=\\\\\")", "patterns": [ { "include": "#string-escapes" } ], "beginCaptures": { "1": { "name": "punctuation.definition.string.begin.roff" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.roff" }, "1": { "name": "markup.underline.roff", "patterns": [ { "include": "#string-escapes" } ] } } }, { "include": "#escapes" }, { "include": "#string" } ] }, "underlines": { "patterns": [ { "name": "meta.request.$2.roff", "match": "^([.'])[ \t]*(ul|cu)\\s*(0+)(?:(?!\\\\\")[\\D])*(?=\\s|$)(.*)$", "captures": { "1": { "name": "punctuation.definition.function.request.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "constant.numeric.roff" }, "4": { "patterns": [ { "include": "#params" } ] } } }, { "name": "meta.request.$2.roff", "begin": "^([.'])[ \t]*(ul|cu)(?=\\s|$|\\\\)(.*?)$\\n", "end": "(?\u003c!\\\\)$", "patterns": [ { "begin": "^(?=[.']|\\\\!)(.*)$\\n", "end": "^", "beginCaptures": { "1": { "patterns": [ { "include": "$self" } ] } } }, { "name": "markup.underline.roff", "begin": "^(?![.'])", "end": "(?\u003c!\\\\)$" } ], "beginCaptures": { "1": { "name": "punctuation.definition.function.request.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "patterns": [ { "include": "#params" } ] } } } ] }, "www": { "patterns": [ { "name": "meta.function.${2:/downcase}.www.macro.roff", "begin": "(?x) ^([.'])[ \t]* (ALN|BCL|BGIMG|DC|DLE|DLS|HEAD|HR|HTM?L|HX|JOBNAME |LI|LINKSTYLE|LK|LNE|LNS|MPIMG|NHR|P?IMG|TAG)(?=\\s)", "end": "(?\u003c!\\\\)$|(?=\\\\\")", "patterns": [ { "include": "#params" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "name": "meta.function.${2:/downcase}.www.macro.roff", "begin": "^([.'])[ \t]*(URL|FTP|MTO)(?=\\s)", "end": "(?\u003c!\\\\)(?=$)|(?=\\\\\")", "patterns": [ { "include": "#underline-first" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "name": "meta.function.${2:/downcase}.www.macro.roff", "contentName": "markup.raw.roff", "begin": "^([.'])[ \t]*(CDS)(?=\\s|\\\\[\"#])\\s*(\\\\[#\"].*)?$", "end": "^([.'])[ \t]*(CDE)(?=\\s|\\\\[\"#])", "patterns": [ { "include": "$self" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "patterns": [ { "include": "#escapes" } ] } }, "endCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "name": "markup.heading.$3.www.macro.roff", "contentName": "string.unquoted.heading.roff", "begin": "^([.'])[ \t]*(HnS)(?=\\s)(?:\\s*(\\d+))?(?:\\s*(\\\\[#\"].*)$)?", "end": "^([.'])[ \t]*(HnE)(?=\\s)(.*)$", "patterns": [ { "include": "$self" } ], "beginCaptures": { "0": { "name": "meta.function.${2:/downcase}.macro.roff" }, "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "name": "constant.numeric.roff" }, "4": { "patterns": [ { "include": "#escapes" } ] } }, "endCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "patterns": [ { "include": "#escapes" } ] } } }, { "name": "meta.function.${2:/downcase}.www.macro.roff", "contentName": "markup.list.ordered.roff", "begin": "^([.'])[ \t]*(OLS)(?=\\s)\\s*(\\\\[#\"].*)?$", "end": "^([.'])[ \t]*(OLE)(?=\\s)", "patterns": [ { "include": "$self" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "patterns": [ { "include": "#escapes" } ] } }, "endCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } }, { "name": "meta.function.${2:/downcase}.www.macro.roff", "contentName": "markup.list.ordered.roff", "begin": "^([.'])[ \t]*(ULS)(?=\\s)\\s*(\\\\[#\"].*)?$", "end": "^([.'])[ \t]*(ULE)(?=\\s)", "patterns": [ { "include": "$self" } ], "beginCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" }, "3": { "patterns": [ { "include": "#escapes" } ] } }, "endCaptures": { "1": { "name": "punctuation.definition.macro.roff" }, "2": { "name": "entity.function.name.roff" } } } ] } } }