{ "name": "Texinfo", "scopeName": "text.texinfo", "patterns": [ { "match": "\\A\\s*((\\\\)input)\\s+([^@\\s\\x7F]+)", "captures": { "1": { "name": "support.function.general.tex" }, "2": { "name": "punctuation.definition.function.tex" }, "3": { "name": "support.constant.language.other.tex" } } }, { "include": "#main" } ], "repository": { "alias": { "name": "meta.command.alias.texinfo", "match": "((@)alias)\\s+([^=\\s]+)\\s*(=)\\s*([^=\\s]+)", "captures": { "1": { "name": "keyword.operator.command.alias.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" }, "3": { "name": "entity.name.function.alias.texinfo" }, "4": { "name": "punctuation.separator.separator.texinfo" }, "5": { "name": "entity.name.function.source.texinfo" } } }, "blockCommands": { "name": "meta.command.$3.block.texinfo", "begin": "(?x) ((@)\n(cartouche|copying|direntry|display|documentdescription|enumerate\n|float|flushleft|flushright|format|ftable|group|itemize|multitable\n|raggedright|smalldisplay|smallformat|smallindentedblock|table\n|titlepage|vtable))\n(?=\\s|$)(.*)", "end": "((@)end\\s+\\3)\\b", "patterns": [ { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" }, "4": { "patterns": [ { "include": "#param" }, { "include": "#main" } ] } }, "endCaptures": { "1": { "name": "keyword.operator.command.end-$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, "boldText": { "patterns": [ { "name": "meta.command.$3.braced.texinfo", "contentName": "markup.bold.texinfo", "begin": "((@)(b|strong))({)", "end": "}", "patterns": [ { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" }, "4": { "name": "punctuation.section.scope.begin.texinfo" } }, "endCaptures": { "0": { "name": "punctuation.section.scope.end.texinfo" } } }, { "name": "meta.command.$3.line.texinfo", "contentName": "markup.heading.string.unquoted.texinfo", "begin": "(?x) ^ ((@)\n(appendixsection|appendixsec|appendixsubsec|appendixsubsubsec|appendix\n|chapheading|chapter|heading|majorheading|section|subheading|subsection\n|subsubheading|subsubsection|top|unnumberedsec|unnumberedsubsec\n|unnumberedsubsubsec|unnumbered))\n(?=\\s|$)", "end": "$", "patterns": [ { "include": "#main" } ], "beginCaptures": { "0": { "name": "markup.bold.texinfo" }, "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } } ] }, "booleanCommands": { "patterns": [ { "name": "meta.command.headings.texinfo", "match": "((@)headings)\\s+(?:(on)|(off)|(single|double))\\b", "captures": { "1": { "name": "keyword.operator.command.headings.texinfo" }, "2": { "name": "punctuation.defining.function.texinfo" }, "3": { "name": "constant.language.boolean.true.texinfo" }, "4": { "name": "constant.language.boolean.false.texinfo" }, "5": { "name": "constant.language.heading-type.$5.texinfo" } } }, { "name": "meta.command.setchapternewpage.texinfo", "match": "((@)setchapternewpage)\\s+(?:(on)|(off)|(odd))\\b", "captures": { "1": { "name": "keyword.operator.command.headings.texinfo" }, "2": { "name": "punctuation.defining.function.texinfo" }, "3": { "name": "constant.language.boolean.true.texinfo" }, "4": { "name": "constant.language.boolean.false.texinfo" }, "5": { "name": "constant.language.odd.texinfo" } } }, { "name": "meta.command.$3.texinfo", "match": "((@)(allowcodebreaks))\\s+(true|false)(?=\\s|$)", "captures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" }, "4": { "name": "constant.language.boolean.$4.texinfo" } } }, { "name": "meta.command.$3.texinfo", "match": "(?x) ((@)\n(codequotebacktick|codequoteundirected|deftypefnnewline\n|frenchspacing|validatemenus|xrefautomaticsectiontitle))\n\\s+ (?:(on)|(off)) \\b", "captures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" }, "4": { "name": "constant.language.boolean.true.texinfo" }, "5": { "name": "constant.language.boolean.false.texinfo" } } } ] }, "codeBlocks": { "patterns": [ { "name": "meta.command.$3.block.texinfo", "contentName": "source.embedded.emacs.lisp", "begin": "((@)(lisp|smalllisp))(?=\\s|$)", "end": "((@)end\\s+\\3)\\b", "patterns": [ { "include": "source.emacs.lisp" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } }, "endCaptures": { "1": { "name": "keyword.operator.command.end-$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "meta.command.$3.block.texinfo", "contentName": "markup.raw.texinfo", "begin": "((@)(example|smallexample|verbatim))(?=\\s|$)", "end": "((@)end\\s+\\3)\\b", "patterns": [ { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } }, "endCaptures": { "1": { "name": "keyword.operator.command.end-$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } } ] }, "comma": { "name": "punctuation.separator.delimiter.comma.texinfo", "match": "," }, "command": { "patterns": [ { "name": "meta.command.braced.texinfo", "begin": "((@)(\\w+))({)", "end": "}", "patterns": [ { "include": "#param" }, { "include": "#comma" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" }, "4": { "name": "punctuation.section.scope.begin.texinfo" } }, "endCaptures": { "0": { "name": "punctuation.section.scope.end.texinfo" } } }, { "name": "keyword.operator.command.$2.texinfo", "match": "(@)(\\w+)", "captures": { "1": { "name": "punctuation.definition.function.texinfo" } } } ] }, "comments": { "patterns": [ { "name": "comment.line.at-sign.texinfo", "begin": "((@)c(?:omment)?)(?=$|[^-A-Za-z0-9])", "end": "$", "beginCaptures": { "1": { "name": "keyword.operator.command.start-comment.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "comment.line.tex-style.texinfo", "begin": "\\x7F", "end": "$", "beginCaptures": { "0": { "name": "punctuation.whitespace.delete.texinfo" } } } ] }, "conditionals": { "patterns": [ { "name": "meta.command.$3.conditional.block.texinfo", "begin": "((@)(ifclear|ifcommanddefined|ifcommandnotdefined|ifset))\\s+(\\S+)", "end": "((@)end\\s+\\3)\\b", "patterns": [ { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.control.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" }, "4": { "name": "variable.parameter.texinfo" } }, "endCaptures": { "1": { "name": "keyword.control.command.end-$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "meta.command.$3.conditional.block.texinfo", "begin": "(?x) ((@)\n(ifdocbook|ifhtml|ifinfo|ifnotdocbook|ifnothtml|ifnotinfo|ifnotplaintext\n|ifnottex|ifnotxml|ifplaintext|iftex|ifxml))\n(?=\\s|$)", "end": "((@)end\\s+\\3)\\b", "patterns": [ { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.control.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" }, "4": { "name": "variable.parameter.texinfo" } }, "endCaptures": { "1": { "name": "keyword.control.command.end-$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } } ] }, "dashes": { "patterns": [ { "name": "constant.character.dash.em-dash.texinfo", "match": "---" }, { "name": "constant.character.dash.en-dash.texinfo", "match": "--" } ] }, "definitions": { "patterns": [ { "name": "meta.command.$3.line.texinfo", "begin": "((@)(defcodeindex|defindex|defopt|defoptx|defvar|defvarx))(?=\\s|$)", "end": "$", "patterns": [ { "name": "entity.name.var.texinfo", "match": "\\G\\s*(?:({)[^}]*(})|\\S+)", "captures": { "1": { "name": "punctuation.definition.begin.texinfo" }, "2": { "name": "punctuation.definition.end.texinfo" } } }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "meta.command.$3.line.texinfo", "begin": "((@)(defcvx|defcv|defopx|defop))(?=\\s|$)", "end": "$", "patterns": [ { "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?\n(?: \\s+ (({)[^}]*(})|\\S+))?", "captures": { "1": { "name": "storage.type.var.texinfo" }, "2": { "name": "punctuation.definition.begin.texinfo" }, "3": { "name": "punctuation.definition.end.texinfo" }, "4": { "name": "entity.other.inherited-class.texinfo" }, "5": { "name": "punctuation.definition.begin.texinfo" }, "6": { "name": "punctuation.definition.end.texinfo" }, "7": { "name": "entity.name.var.texinfo" }, "8": { "name": "punctuation.definition.begin.texinfo" }, "9": { "name": "punctuation.definition.end.texinfo" } } }, { "include": "#param" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "meta.command.$3.line.texinfo", "begin": "((@)(deffnx|deffn|deftpx|deftp|defvrx|defvr))(?=\\s|$)", "end": "$", "patterns": [ { "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?", "captures": { "1": { "name": "storage.type.var.texinfo" }, "2": { "name": "punctuation.definition.begin.texinfo" }, "3": { "name": "punctuation.definition.end.texinfo" }, "4": { "name": "entity.name.var.texinfo" }, "5": { "name": "punctuation.definition.begin.texinfo" }, "6": { "name": "punctuation.definition.end.texinfo" } } }, { "include": "#param" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "meta.command.$3.line.texinfo", "begin": "((@)(definfoenclose))(?=\\s|$)", "end": "$", "patterns": [ { "match": "\\G\\s*(({)[^}]*(})|[^\\s,]+)", "captures": { "1": { "name": "entity.name.var.texinfo" }, "2": { "name": "punctuation.definition.begin.texinfo" }, "3": { "name": "punctuation.definition.end.texinfo" } } }, { "name": "string.unquoted.texinfo", "match": "[^\\s,@]+" }, { "include": "#comma" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "meta.command.$3.line.texinfo", "begin": "((@)(defivarx|defivar|defmethodx|defmethod))(?=\\s|$)", "end": "$", "patterns": [ { "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?", "captures": { "1": { "name": "entity.other.inherited-class.texinfo" }, "2": { "name": "punctuation.definition.begin.texinfo" }, "3": { "name": "punctuation.definition.end.texinfo" }, "4": { "name": "entity.name.var.texinfo" }, "5": { "name": "punctuation.definition.begin.texinfo" }, "6": { "name": "punctuation.definition.end.texinfo" } } }, { "include": "#param" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "meta.command.$3.line.texinfo", "begin": "((@)(defmacx|defmac|defunx|defun|defspecx|defspec))(?=\\s|$)", "end": "$", "patterns": [ { "name": "entity.name.function.texinfo", "match": "\\G\\s*(?:({)[^}]*(})|\\S+)", "captures": { "1": { "name": "punctuation.definition.begin.texinfo" }, "2": { "name": "punctuation.definition.end.texinfo" } } }, { "include": "#param" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "meta.command.$3.line.texinfo", "begin": "((@)(deftypecvx|deftypecv|deftypevrx|deftypevr))(?=\\s|$)", "end": "$", "patterns": [ { "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?\n(?: \\s+ (({)[^}]*(})|\\S+))?\n(?: \\s+ (({)[^}]*(})|\\S+))?", "captures": { "1": { "name": "storage.type.var.category.texinfo" }, "10": { "name": "entity.name.var.texinfo" }, "11": { "name": "punctuation.definition.begin.texinfo" }, "12": { "name": "punctuation.definition.end.texinfo" }, "2": { "name": "punctuation.definition.begin.texinfo" }, "3": { "name": "punctuation.definition.end.texinfo" }, "4": { "name": "entity.other.inherited-class.texinfo" }, "5": { "name": "punctuation.definition.begin.texinfo" }, "6": { "name": "punctuation.definition.end.texinfo" }, "7": { "name": "storage.type.var.data-type.texinfo" }, "8": { "name": "punctuation.definition.begin.texinfo" }, "9": { "name": "punctuation.definition.end.texinfo" } } }, { "include": "#param" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "meta.command.$3.line.texinfo", "begin": "((@)(deftypefnx|deftypefn))(?=\\s|$)", "end": "$", "patterns": [ { "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?\n(?: \\s+ (({)[^}]*(})|\\S+))?", "captures": { "1": { "name": "storage.type.var.category.texinfo" }, "2": { "name": "punctuation.definition.begin.texinfo" }, "3": { "name": "punctuation.definition.end.texinfo" }, "4": { "name": "storage.type.var.data-type.texinfo" }, "5": { "name": "punctuation.definition.begin.texinfo" }, "6": { "name": "punctuation.definition.end.texinfo" }, "7": { "name": "entity.name.var.texinfo" }, "8": { "name": "punctuation.definition.begin.texinfo" }, "9": { "name": "punctuation.definition.end.texinfo" } } }, { "include": "#param" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "meta.command.$3.line.texinfo", "begin": "((@)(deftypefunx|deftypefun))(?=\\s|$)", "end": "$", "patterns": [ { "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?", "captures": { "1": { "name": "storage.type.var.data-type.texinfo" }, "2": { "name": "punctuation.definition.begin.texinfo" }, "3": { "name": "punctuation.definition.end.texinfo" }, "4": { "name": "entity.name.var.texinfo" }, "5": { "name": "punctuation.definition.begin.texinfo" }, "6": { "name": "punctuation.definition.end.texinfo" } } }, { "include": "#param" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "meta.command.$3.line.texinfo", "begin": "((@)(deftypemethodx|deftypemethod|deftypeivarx|deftypeivar))(?=\\s|$)", "end": "$", "patterns": [ { "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?\n(?: \\s+ (({)[^}]*(})|\\S+))?", "captures": { "1": { "name": "entity.other.inherited-class.texinfo" }, "2": { "name": "punctuation.definition.begin.texinfo" }, "3": { "name": "punctuation.definition.end.texinfo" }, "4": { "name": "storage.type.var.data-type.texinfo" }, "5": { "name": "punctuation.definition.begin.texinfo" }, "6": { "name": "punctuation.definition.end.texinfo" }, "7": { "name": "entity.name.var.texinfo" }, "8": { "name": "punctuation.definition.begin.texinfo" }, "9": { "name": "punctuation.definition.end.texinfo" } } }, { "include": "#param" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "meta.command.$3.line.texinfo", "begin": "((@)(deftypeopx|deftypeop))(?=\\s|$)", "end": "$", "patterns": [ { "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?\n(?: \\s+ (({)[^}]*(})|\\S+))?\n(?: \\s+ (({)[^}]*(})|\\S+))?", "captures": { "1": { "name": "storage.type.var.category.texinfo" }, "10": { "name": "entity.name.var.texinfo" }, "11": { "name": "punctuation.definition.begin.texinfo" }, "12": { "name": "punctuation.definition.end.texinfo" }, "2": { "name": "punctuation.definition.begin.texinfo" }, "3": { "name": "punctuation.definition.end.texinfo" }, "4": { "name": "entity.other.inherited-class.texinfo" }, "5": { "name": "punctuation.definition.begin.texinfo" }, "6": { "name": "punctuation.definition.end.texinfo" }, "7": { "name": "storage.type.var.data-type.texinfo" }, "8": { "name": "punctuation.definition.begin.texinfo" }, "9": { "name": "punctuation.definition.end.texinfo" } } }, { "include": "#param" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "meta.command.$3.line.texinfo", "begin": "((@)(deftypevarx|deftypevar))(?=\\s|$)", "end": "$", "patterns": [ { "match": "(?x)\n\\G \\s* (({)[^}]*(})|\\S+)\n(?: \\s+ (({)[^}]*(})|\\S+))?", "captures": { "1": { "name": "storage.type.var.data-type.texinfo" }, "2": { "name": "punctuation.definition.begin.texinfo" }, "3": { "name": "punctuation.definition.end.texinfo" }, "4": { "name": "entity.name.var.texinfo" }, "5": { "name": "punctuation.definition.begin.texinfo" }, "6": { "name": "punctuation.definition.end.texinfo" } } }, { "include": "#param" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } } ] }, "ignored": { "patterns": [ { "name": "meta.command.ignore.block.texinfo", "contentName": "comment.block.ignored.texinfo", "begin": "((@)ignore)(?=\\s|$)", "end": "((@)end\\s+ignore)\\b", "patterns": [ { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.ignore.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } }, "endCaptures": { "1": { "name": "keyword.operator.command.end-ignore.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "meta.command.bye.block.texinfo", "contentName": "comment.block.ignored.texinfo", "begin": "^((@)bye)(?=\\s|$)", "end": "(?=A)B", "patterns": [ { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.bye.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } } ] }, "italicText": { "name": "meta.command.$3.braced.texinfo", "contentName": "markup.italic.texinfo", "begin": "((@)(i|emph|sc|slanted))({)", "end": "}", "patterns": [ { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" }, "4": { "name": "punctuation.section.scope.begin.texinfo" } }, "endCaptures": { "0": { "name": "punctuation.section.scope.end.texinfo" } } }, "lineCommands": { "name": "meta.command.$3.line.texinfo", "contentName": "markup.raw.texinfo", "begin": "(?x) ^ ((@)\n(author|centerchap|center|cindex|clear|defcodeindex|defcvx|defcv|deffnx\n|deffn|defindex|definfoenclose|defivarx|defivar|defmacx|defmac|defmethodx\n|defmethod|defoptx|defopt|defopx|defop|defspecx|defspec|deftpx|deftp\n|deftypecvx|deftypecv|deftypefnx|deftypefn|deftypefunx|deftypefun\n|deftypeivarx|deftypeivar|deftypemethodx|deftypemethod|deftypeopx\n|deftypeop|deftypevarx|deftypevar|deftypevrx|deftypevr|defunx|defun\n|defvarx|defvar|defvrx|defvr|dircategory|documentencoding|documentlanguage\n|enumerate|evenfooting|even|everyfooting|everyexampleindent|exdent|findex\n|firstparagraphindent|fonttextsize|footnotestyle|ftable|include|itemize\n|kbdinputstyle|kindex|macro|multitable|need|node|oddfooting|oddpagesizes\n|paragraphindent|part|pindex|printindex|setfilename|settitle|set\n|shorttitlepage|sortas|sp|strong|subtitle|sub|sup|syncodeindex|synindex\n|table|tindex|title|unmacro|urefbreakstyle|verbatiminclude|vindex|vskip|vtable))\n(?=\\s|$)", "end": "$", "patterns": [ { "name": "entity.name.function.macro.texinfo", "match": "\\G(?\u003c=@macro)\\s*(\\S+)" }, { "match": "\\G(?:\\s*[-+]?[0-9]+(?:\\.[0-9]+)?,?)+(?=\\s*$)", "captures": { "0": { "patterns": [ { "name": "constant.numeric.float.texinfo", "match": "[-+]?\\d+(?:\\.\\d+)" }, { "name": "constant.numeric.int.texinfo", "match": "[-+]?\\d+" }, { "include": "#comma" } ] } } }, { "name": "keyword.operator.command.separator.texinfo", "match": "(@)\\|", "captures": { "1": { "name": "punctuation.definition.function.texinfo" } } }, { "include": "#param" }, { "include": "#comma" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, "main": { "patterns": [ { "include": "#comments" }, { "include": "#dashes" }, { "include": "#texLine" }, { "include": "#alias" }, { "include": "#menu" }, { "include": "#booleanCommands" }, { "include": "#symbolCommands" }, { "include": "#set" }, { "include": "#definitions" }, { "include": "#quotation" }, { "include": "#boldText" }, { "include": "#italicText" }, { "include": "#verbatim" }, { "include": "#codeBlocks" }, { "include": "#conditionals" }, { "include": "#blockCommands" }, { "include": "#lineCommands" }, { "include": "#ignored" }, { "include": "#rawTex" }, { "include": "#rawHTML" }, { "include": "#rawXML" }, { "include": "#command" } ] }, "menu": { "name": "meta.command.$3.block.texinfo", "begin": "((@)(detailmenu|direntry|menu))(?=\\s|$)", "end": "((@)end\\s+\\3)\\b", "patterns": [ { "name": "markup.list.texinfo", "begin": "^\\*\\s", "end": "^(?=\\S)", "patterns": [ { "contentName": "entity.name.tag.entry-name.texinfo", "begin": "\\G", "end": "::?|(?=\\s*$)", "patterns": [ { "include": "#main" } ], "endCaptures": { "0": { "name": "punctuation.separator.key-value.menu.texinfo" } } }, { "contentName": "entity.name.node-name.texinfo", "begin": "(?\u003c=[^:]:)\\s*", "end": "(\\.)|(?=\\s*$)", "patterns": [ { "include": "#main" } ], "endCaptures": { "1": { "name": "punctuation.terminator.full-stop.period.texinfo" } } }, { "name": "string.unquoted.description.texinfo", "begin": "(?\u003c=::|\\.)", "end": "^(?=\\S)", "patterns": [ { "include": "#main" } ] } ], "beginCaptures": { "0": { "name": "punctuation.definition.list.menu.texinfo" } } }, { "name": "constant.other.menu-comment.texinfo", "begin": "^(?=[^\\s*])(?!@end\\s)", "end": "$|(?=\\s*@end\\s)", "patterns": [ { "include": "#main" } ] }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } }, "endCaptures": { "1": { "name": "keyword.operator.command.end-$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, "param": { "name": "variable.parameter.texinfo", "match": "[^\\s{}@,]+|(?\u003c=\\s)({)[^\\s{}@,]+(})", "captures": { "1": { "name": "punctuation.definition.begin.texinfo" }, "2": { "name": "punctuation.definition.end.texinfo" } } }, "quotation": { "name": "meta.command.$3.block.texinfo", "contentName": "markup.quote.texinfo", "begin": "((@)(quotation|smallquotation))(?=\\s|$)", "end": "((@)end\\s+\\3)\\b", "patterns": [ { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } }, "endCaptures": { "1": { "name": "keyword.operator.command.end-$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, "rawHTML": { "name": "meta.command.raw-html.block.texinfo", "contentName": "source.embedded.html", "begin": "((@)html)(?=\\s|$)", "end": "((@)end\\s+html)\\b", "patterns": [ { "include": "#main" }, { "include": "text.html.basic" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.html.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } }, "endCaptures": { "1": { "name": "keyword.operator.command.end-html.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, "rawTex": { "name": "meta.command.raw-tex.block.texinfo", "contentName": "source.embedded.tex", "begin": "((@)tex)(?=\\s|$)", "end": "((@)end\\s+tex)\\b", "patterns": [ { "include": "#main" }, { "include": "text.tex.latex" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.tex.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } }, "endCaptures": { "1": { "name": "keyword.operator.command.end-tex.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, "rawXML": { "name": "meta.command.raw-$3.block.texinfo", "contentName": "source.embedded.xml", "begin": "((@)(docbook|xml))(?=\\s|$)", "end": "((@)end\\s+\\3)\\b", "patterns": [ { "include": "#main" }, { "include": "text.xml" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } }, "endCaptures": { "1": { "name": "keyword.operator.command.end-$3.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, "set": { "begin": "((@)set)(?=\\s|$)", "end": "$", "patterns": [ { "match": "\\G\\s*(\\S+)", "captures": { "1": { "name": "entity.name.var.texinfo", "patterns": [ { "include": "#main" } ] } } }, { "include": "#param" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.set.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" } } }, "symbolCommands": { "patterns": [ { "name": "keyword.operator.command.non-alphabetic.texinfo", "match": "(@)[-!\"'\u0026*./:=?@\\\\^`{}~]", "captures": { "1": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "keyword.operator.command.whitespace.texinfo", "match": "(@)(?:( |\\t)|$)", "captures": { "1": { "name": "punctuation.definition.function.texinfo" } } }, { "name": "meta.command.braced.texinfo", "begin": "((@),)({)", "end": "}", "patterns": [ { "name": "constant.character.texinfo", "match": "[^\\s{}@,]+" }, { "include": "#comma" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "keyword.operator.command.cedilla-accent.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" }, "3": { "name": "punctuation.section.scope.begin.texinfo" } }, "endCaptures": { "0": { "name": "punctuation.section.scope.end.texinfo" } } } ] }, "verbatim": { "name": "meta.command.braced.verb.texinfo", "contentName": "string.quoted.other.verbatim.texinfo", "begin": "((@)verb)({)([^}])", "end": "(\\4)(})", "beginCaptures": { "1": { "name": "keyword.operator.command.verb.texinfo" }, "2": { "name": "punctuation.definition.function.texinfo" }, "3": { "name": "punctuation.section.scope.begin.texinfo" }, "4": { "name": "punctuation.arbitrary.delimiter.begin.texinfo" } }, "endCaptures": { "0": { "name": "punctuation.section.scope.end.texinfo" }, "1": { "name": "punctuation.arbitrary.delimiter.end.texinfo" } } } } }