diff --git a/build/generate-latex-grammars.js b/build/generate-latex-grammars.js index 838e8d4..5f2bf13 100644 --- a/build/generate-latex-grammars.js +++ b/build/generate-latex-grammars.js @@ -148,8 +148,8 @@ function generateMintedBlock(envNames, language, source, contentName=undefined) } /** - * Generate the json rules for a minted type block - * @param {string[]} envNames Typically minted + * Generate the json rules for a robust externalize type block + * @param {string[]} envNames Typically CacheMeCode * @param {string[]} language A list of languages used to build an alternation * @param {string} source The source language to include * @param {string} contentName The scope to assign to the content. If undefined, use {@link source} diff --git a/syntaxes/LaTeX.tmLanguage.json b/syntaxes/LaTeX.tmLanguage.json index c3b5619..708ee12 100644 --- a/syntaxes/LaTeX.tmLanguage.json +++ b/syntaxes/LaTeX.tmLanguage.json @@ -1881,6 +1881,64 @@ } ] }, + { + "begin": "((\\\\)cacheMeCode(?=\\[))", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "support.function.verb.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "patterns": [ + { + "begin": "\\G(\\[)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.optional.begin.latex" + } + }, + "end": "(?=\\})", + "patterns": [ + { + "begin": "\\G", + "end": "(\\])(?=\\{)", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.optional.end.latex" + } + }, + "patterns": [ + { + "include": "text.tex#braces" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "(?<=\\])(\\{)", + "end": "(?=\\})", + "beginCaptures": { + "0": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "contentName": "meta.function.embedded.latex", + "name": "meta.embedded.block.generic.latex" + } + ] + } + ] + }, { "begin": "((\\\\)addplot)(?:\\+?)((?:\\[[^\\[]*\\]))*\\s*(gnuplot)\\s*((?:\\[[^\\[]*\\]))*\\s*(\\{)", "captures": { diff --git a/syntaxes/src/LaTeX.tmLanguage.base.yaml b/syntaxes/src/LaTeX.tmLanguage.base.yaml index 2d01021..0e6b87d 100644 --- a/syntaxes/src/LaTeX.tmLanguage.base.yaml +++ b/syntaxes/src/LaTeX.tmLanguage.base.yaml @@ -155,6 +155,69 @@ patterns: contentName: meta.function.embedded.latex end: ^\s*(?=\\end\{terminal\*?\}) name: meta.embedded.block.generic.latex +- begin: ((\\)cacheMeCode(?=\[)) + end: \} + beginCaptures: + '1': + name: support.function.verb.latex + '2': + name: punctuation.definition.function.latex + endCaptures: + '0': + name: punctuation.definition.arguments.end.latex + patterns: + - begin: \G(\[) + beginCaptures: + '1': + name: punctuation.definition.arguments.optional.begin.latex + end: (?=\}) + patterns: + - begin: \G + end: (\])(?=\{) + endCaptures: + '1': + name: punctuation.definition.arguments.optional.end.latex + patterns: + - include: text.tex#braces + - include: $base + - begin: (?<=\])(\{) + end: (?=\}) + beginCaptures: + '0': + name: punctuation.definition.arguments.begin.latex + patterns: + - include: text.tex#braces + contentName: meta.function.embedded.latex + name: meta.embedded.block.generic.latex +# - begin: ((\\)cacheMeCode(?=\[)) +# end: (?<=\}) +# beginCaptures: +# '1': +# name: support.function.verb.latex +# '2': +# name: punctuation.definition.function.latex +# patterns: +# - begin: \[ +# end: \] +# beginCaptures: +# '0': +# name: punctuation.definition.arguments.optional.begin.latex +# endCaptures: +# '0': +# name: punctuation.definition.arguments.optional.end.latex +# patterns: +# - include: text.tex#braces +# - include: $base +# - begin: (?<=\])\{ +# end: \} +# beginCaptures: +# '0': +# name: punctuation.definition.arguments.begin.latex +# endCaptures: +# '0': +# name: punctuation.definition.arguments.end.latex +# contentName: meta.function.embedded.latex +# name: meta.embedded.block.generic.latex - begin: ((\\)addplot)(?:\+?)((?:\[[^\[]*\]))*\s*(gnuplot)\s*((?:\[[^\[]*\]))*\s*(\{) captures: '1':