diff options
63 files changed, 6341 insertions, 14 deletions
diff --git a/context/data/scite/context/lexers/scite-context-lexer-json.lua b/context/data/scite/context/lexers/scite-context-lexer-json.lua index 78e01fd2c..ca7add07d 100644 --- a/context/data/scite/context/lexers/scite-context-lexer-json.lua +++ b/context/data/scite/context/lexers/scite-context-lexer-json.lua @@ -37,9 +37,9 @@ local operator = S(':,{}[]') local fence = openarray + closearray + openhash + closehash local escape_un = P("\\u") * S("09","AF","af") -local escape_bs = P([[\]]) * P(1) -local content = (escape_un + escape_bs + (1-double))^0 -local content = ((1-double))^0 +local escape_bs = P("\\") * P(1) +----- content = (escape_un + escape_bs + (1-double))^0 +local content = (escape_bs + (1-double))^0 local reserved = P("true") + P("false") diff --git a/context/data/textadept/context/lexers/scite-context-lexer-json.lua b/context/data/textadept/context/lexers/scite-context-lexer-json.lua index 78e01fd2c..ca7add07d 100644 --- a/context/data/textadept/context/lexers/scite-context-lexer-json.lua +++ b/context/data/textadept/context/lexers/scite-context-lexer-json.lua @@ -37,9 +37,9 @@ local operator = S(':,{}[]') local fence = openarray + closearray + openhash + closehash local escape_un = P("\\u") * S("09","AF","af") -local escape_bs = P([[\]]) * P(1) -local content = (escape_un + escape_bs + (1-double))^0 -local content = ((1-double))^0 +local escape_bs = P("\\") * P(1) +----- content = (escape_un + escape_bs + (1-double))^0 +local content = (escape_bs + (1-double))^0 local reserved = P("true") + P("false") diff --git a/context/data/vscode/extensions/context/keybindings/context.json b/context/data/vscode/extensions/context/keybindings/context.json new file mode 100644 index 000000000..80bbc099b --- /dev/null +++ b/context/data/vscode/extensions/context/keybindings/context.json @@ -0,0 +1,20 @@ +[ + { + "args" : "process tex file", + "command" : "workbench.action.tasks.runTask", + "key" : "ctrl-F12", + "when" : "editorTextFocus && editorLangId == context.tex" + }, + { + "args" : "check tex file", + "command" : "workbench.action.tasks.runTask", + "key" : "F12", + "when" : "editorTextFocus && editorLangId == context.tex" + }, + { + "args" : "process lua file", + "command" : "workbench.action.tasks.runTask", + "key" : "ctrl-F12", + "when" : "editorTextFocus && editorLangId == context.cld" + } +]
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/package.json b/context/data/vscode/extensions/context/package.json new file mode 100644 index 000000000..fc9fa7607 --- /dev/null +++ b/context/data/vscode/extensions/context/package.json @@ -0,0 +1,170 @@ +{ + "categories" : [ "Lexers", "Syntaxes" ], + "contributes" : { + "grammars" : [ + { + "language" : "context.tex", + "path" : "./syntaxes/context-syntax-tex.json", + "scopeName" : "source.context.tex" + }, + { + "language" : "context.mps", + "path" : "./syntaxes/context-syntax-mps.json", + "scopeName" : "source.context.mps" + }, + { + "language" : "context.lua", + "path" : "./syntaxes/context-syntax-lua.json", + "scopeName" : "source.context.lua" + }, + { + "language" : "context.cld", + "path" : "./syntaxes/context-syntax-cld.json", + "scopeName" : "source.context.cld" + }, + { + "language" : "context.xml", + "path" : "./syntaxes/context-syntax-xml.json", + "scopeName" : "source.context.xml" + }, + { + "language" : "context.bibtex", + "path" : "./syntaxes/context-syntax-bibtex.json", + "scopeName" : "source.context.bibtex" + }, + { + "language" : "context.sql", + "path" : "./syntaxes/context-syntax-sql.json", + "scopeName" : "source.context.sql" + }, + { + "language" : "context.bnf", + "path" : "./syntaxes/context-syntax-bnf.json", + "scopeName" : "source.context.bnf" + }, + { + "language" : "context.cpp", + "path" : "./syntaxes/context-syntax-cpp.json", + "scopeName" : "source.context.cpp" + }, + { + "language" : "context.pdf", + "path" : "./syntaxes/context-syntax-pdf.json", + "scopeName" : "source.context.pdf" + }, + { + "language" : "context.json", + "path" : "./syntaxes/context-syntax-json.json", + "scopeName" : "source.context.json" + } + ], + "keybindings" : [ + { + "args" : "process tex file", + "command" : "workbench.action.tasks.runTask", + "key" : "ctrl-F12", + "when" : "editorTextFocus && editorLangId == context.tex" + }, + { + "args" : "check tex file", + "command" : "workbench.action.tasks.runTask", + "key" : "F12", + "when" : "editorTextFocus && editorLangId == context.tex" + }, + { + "args" : "process lua file", + "command" : "workbench.action.tasks.runTask", + "key" : "ctrl-F12", + "when" : "editorTextFocus && editorLangId == context.cld" + } + ], + "languages" : [ + { + "aliases" : [ "ConTeXt TEX" ], + "configuration" : "./settings/context-settings-tex.json", + "extensions" : [ ".mkii", ".mkil", ".mkiv", ".mkix", ".mkli", ".mkvi", ".mkxi", ".tex" ], + "id" : "context.tex" + }, + { + "aliases" : [ "ConTeXt MetaFun" ], + "configuration" : "./settings/context-settings-mps.json", + "extensions" : [ ".mp", ".mpii", ".mpiv", ".mpvi" ], + "id" : "context.mps" + }, + { + "aliases" : [ "ConTeXt Lua" ], + "configuration" : "./settings/context-settings-lua.json", + "id" : "context.lua" + }, + { + "aliases" : [ "ConTeXt CLD" ], + "configuration" : "./settings/context-settings-cld.json", + "extensions" : [ ".cld", ".lfg", ".lua", ".luc", ".lui", ".luj", ".lum", ".luv", ".tma", ".tuc" ], + "id" : "context.cld" + }, + { + "aliases" : [ "ConTeXt XML" ], + "configuration" : "./settings/context-settings-xml.json", + "extensions" : [ ".ctx", ".dtd", ".exa", ".export", ".fo", ".htm", ".html", ".lmx", ".rlb", ".rlg", ".rlv", ".rng", ".svg", ".xfdf", ".xhtml", ".xml", ".xsd", ".xsl", ".xslt", ".xul" ], + "id" : "context.xml" + }, + { + "aliases" : [ "ConTeXt bibTeX" ], + "configuration" : "./settings/context-settings-bibtex.json", + "extensions" : [ ".bib", ".btx" ], + "id" : "context.bibtex" + }, + { + "aliases" : [ "ConTeXt SQL" ], + "configuration" : "./settings/context-settings-sql.json", + "extensions" : [ ".sql" ], + "id" : "context.sql" + }, + { + "aliases" : [ "ConTeXt BNF" ], + "configuration" : "./settings/context-settings-bnf.json", + "extensions" : [ ".bnf" ], + "id" : "context.bnf" + }, + { + "aliases" : [ "ConTeXt C" ], + "configuration" : "./settings/context-settings-cpp.json", + "extensions" : [ ".c", ".cpp", ".h", ".hpp" ], + "id" : "context.cpp" + }, + { + "aliases" : [ "ConTeXt PDF" ], + "configuration" : "./settings/context-settings-pdf.json", + "extensions" : [ ".pdf" ], + "id" : "context.pdf" + }, + { + "aliases" : [ "ConTeXt JSON" ], + "configuration" : "./settings/context-settings-json.json", + "extensions" : [ ".json" ], + "id" : "context.json" + } + ], + "tasks" : [ + { + "label" : "ConTeXt Tasks", + "path" : "./tasks/context.json" + } + ], + "themes" : [ + { + "label" : "ConTeXt", + "path" : "./themes/context.json", + "uiTheme" : "vs" + } + ] + }, + "description" : "ConTeXt Syntax Highlighting", + "displayName" : "ConTeXt", + "engines" : { + "vscode" : "*" + }, + "name" : "context", + "publisher" : "ConTeXt Development Team", + "version" : "1.0.0" +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/package.nls.json b/context/data/vscode/extensions/context/package.nls.json new file mode 100644 index 000000000..40e00f759 --- /dev/null +++ b/context/data/vscode/extensions/context/package.nls.json @@ -0,0 +1,4 @@ +{ + "description" : "Provides syntax highlighting and bracket matching in ConTeXt files.", + "displayName" : "ConTeXt" +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/settings/context-settings-bibtex.json b/context/data/vscode/extensions/context/settings/context-settings-bibtex.json new file mode 100644 index 000000000..e1927f36b --- /dev/null +++ b/context/data/vscode/extensions/context/settings/context-settings-bibtex.json @@ -0,0 +1,14 @@ +{ + "autoClosingPairs" : [ + [ "{", "}" ] + ], + "brackets" : [ + [ "{", "}" ] + ], + "comments" : { + "lineComment" : "%" + }, + "surroundingPairs" : [ + [ "{", "}" ] + ] +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/settings/context-settings-bnf.json b/context/data/vscode/extensions/context/settings/context-settings-bnf.json new file mode 100644 index 000000000..353182133 --- /dev/null +++ b/context/data/vscode/extensions/context/settings/context-settings-bnf.json @@ -0,0 +1,11 @@ +{ + "autoClosingPairs" : [ + [ "<", ">" ] + ], + "brackets" : [ + [ "<", ">" ] + ],, + "surroundingPairs" : [ + [ "<", ">" ] + ] +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/settings/context-settings-cld.json b/context/data/vscode/extensions/context/settings/context-settings-cld.json new file mode 100644 index 000000000..1f10daa18 --- /dev/null +++ b/context/data/vscode/extensions/context/settings/context-settings-cld.json @@ -0,0 +1,21 @@ +{ + "autoClosingPairs" : [ + [ "(", ")" ], + [ "{", "}" ], + [ "[", "]" ] + ], + "brackets" : [ + [ "(", ")" ], + [ "{", "}" ], + [ "[", "]" ] + ], + "comments" : { + "blockComment" : [ "--[[", "]]" ], + "lineComment" : "--" + }, + "surroundingPairs" : [ + [ "(", ")" ], + [ "{", "}" ], + [ "[", "]" ] + ] +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/settings/context-settings-cpp.json b/context/data/vscode/extensions/context/settings/context-settings-cpp.json new file mode 100644 index 000000000..89af81ea5 --- /dev/null +++ b/context/data/vscode/extensions/context/settings/context-settings-cpp.json @@ -0,0 +1,17 @@ +{ + "autoClosingPairs" : [ + [ "{", "}" ], + [ "[", "]" ], + [ "(", ")" ] + ], + "brackets" : [ + [ "{", "}" ], + [ "[", "]" ], + [ "(", ")" ] + ],, + "surroundingPairs" : [ + [ "{", "}" ], + [ "[", "]" ], + [ "(", ")" ] + ] +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/settings/context-settings-json.json b/context/data/vscode/extensions/context/settings/context-settings-json.json new file mode 100644 index 000000000..73f189132 --- /dev/null +++ b/context/data/vscode/extensions/context/settings/context-settings-json.json @@ -0,0 +1,14 @@ +{ + "autoClosingPairs" : [ + [ "{", "}" ], + [ "[", "]" ] + ], + "brackets" : [ + [ "{", "}" ], + [ "[", "]" ] + ],, + "surroundingPairs" : [ + [ "{", "}" ], + [ "[", "]" ] + ] +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/settings/context-settings-lua.json b/context/data/vscode/extensions/context/settings/context-settings-lua.json new file mode 100644 index 000000000..1f10daa18 --- /dev/null +++ b/context/data/vscode/extensions/context/settings/context-settings-lua.json @@ -0,0 +1,21 @@ +{ + "autoClosingPairs" : [ + [ "(", ")" ], + [ "{", "}" ], + [ "[", "]" ] + ], + "brackets" : [ + [ "(", ")" ], + [ "{", "}" ], + [ "[", "]" ] + ], + "comments" : { + "blockComment" : [ "--[[", "]]" ], + "lineComment" : "--" + }, + "surroundingPairs" : [ + [ "(", ")" ], + [ "{", "}" ], + [ "[", "]" ] + ] +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/settings/context-settings-mps.json b/context/data/vscode/extensions/context/settings/context-settings-mps.json new file mode 100644 index 000000000..693fb54b9 --- /dev/null +++ b/context/data/vscode/extensions/context/settings/context-settings-mps.json @@ -0,0 +1,20 @@ +{ + "autoClosingPairs" : [ + [ "{", "}" ], + [ "[", "]" ], + [ "(", ")" ] + ], + "brackets" : [ + [ "{", "}" ], + [ "[", "]" ], + [ "(", ")" ] + ], + "comments" : { + "lineComment" : "%" + }, + "surroundingPairs" : [ + [ "{", "}" ], + [ "[", "]" ], + [ "(", ")" ] + ] +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/settings/context-settings-pdf.json b/context/data/vscode/extensions/context/settings/context-settings-pdf.json new file mode 100644 index 000000000..05aea0976 --- /dev/null +++ b/context/data/vscode/extensions/context/settings/context-settings-pdf.json @@ -0,0 +1,17 @@ +{ + "autoClosingPairs" : [ + [ "<", ">" ], + [ "[", "]" ], + [ "(", ")" ] + ], + "brackets" : [ + [ "<", ">" ], + [ "[", "]" ], + [ "(", ")" ] + ],, + "surroundingPairs" : [ + [ "<", ">" ], + [ "[", "]" ], + [ "(", ")" ] + ] +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/settings/context-settings-sql.json b/context/data/vscode/extensions/context/settings/context-settings-sql.json new file mode 100644 index 000000000..7a73a41bf --- /dev/null +++ b/context/data/vscode/extensions/context/settings/context-settings-sql.json @@ -0,0 +1,2 @@ +{ +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/settings/context-settings-tex.json b/context/data/vscode/extensions/context/settings/context-settings-tex.json new file mode 100644 index 000000000..693fb54b9 --- /dev/null +++ b/context/data/vscode/extensions/context/settings/context-settings-tex.json @@ -0,0 +1,20 @@ +{ + "autoClosingPairs" : [ + [ "{", "}" ], + [ "[", "]" ], + [ "(", ")" ] + ], + "brackets" : [ + [ "{", "}" ], + [ "[", "]" ], + [ "(", ")" ] + ], + "comments" : { + "lineComment" : "%" + }, + "surroundingPairs" : [ + [ "{", "}" ], + [ "[", "]" ], + [ "(", ")" ] + ] +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/settings/context-settings-xml.json b/context/data/vscode/extensions/context/settings/context-settings-xml.json new file mode 100644 index 000000000..565dda567 --- /dev/null +++ b/context/data/vscode/extensions/context/settings/context-settings-xml.json @@ -0,0 +1,5 @@ +{ + "comments" : { + "blockComment" : [ "<!--", "-->" ] + } +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-bibtex.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-bibtex.json new file mode 100644 index 000000000..e670d9a97 --- /dev/null +++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-bibtex.json @@ -0,0 +1,267 @@ +{ + "name" : "context.bibtex", + "patterns" : [ + { + "include" : "#forget" + }, + { + "include" : "#comment" + }, + { + "include" : "#shortcut" + }, + { + "include" : "#definition" + } + ], + "repository" : { + "comment" : { + "begin" : "\u005Cs*(@(?:comment|Comment|COMMENT))\u005Cs*\u005Cs*({)\u005Cs*", + "beginCaptures" : { + "1" : { + "name" : "context.keyword.comment.name.bibtex" + }, + "2" : { + "name" : "context.grouping.comment.open.bibtex" + } + }, + "end" : "\u005Cs*(})\u005Cs*", + "endCaptures" : { + "1" : { + "name" : "context.grouping.comment.close.bibtex" + } + }, + "name" : "context.comment.comment.comment.content.bibtex" + }, + "concatinator" : { + "match" : "\u005Cs*(#)\u005Cs*", + "name" : "context.operator.definition.concatinator.bibtex" + }, + "definition" : { + "begin" : "\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*\u005Cs*({)\u005Cs*\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*\u005Cs*(,)\u005Cs*", + "beginCaptures" : { + "1" : { + "name" : "context.keyword.definition.category.bibtex" + }, + "2" : { + "name" : "context.grouping.definition.open.bibtex" + }, + "3" : { + "name" : "context.operator.definition.label.separator.bibtex" + } + }, + "end" : "\u005Cs*(})\u005Cs*", + "endCaptures" : { + "1" : { + "name" : "context.grouping.definition.close.bibtex" + } + }, + "name" : "context.warning.definition.error.bibtex", + "patterns" : [ + { + "include" : "#string_double" + }, + { + "include" : "#string_single" + }, + { + "include" : "#string_grouped" + }, + { + "include" : "#string_value" + }, + { + "include" : "#string_concat" + }, + { + "include" : "#separator" + } + ] + }, + "forget" : { + "match" : "%.*$\u005Cn?", + "name" : "context.comment.comment.comment.inline.bibtex" + }, + "separator" : { + "match" : "\u005Cs*(,)\u005Cs*", + "name" : "context.operator.definition.separator.bibtex" + }, + "shortcut" : { + "begin" : "\u005Cs*(@(?:string|String|STRING))\u005Cs*\u005Cs*({)\u005Cs*", + "beginCaptures" : { + "1" : { + "name" : "context.keyword.shortcut.name.bibtex" + }, + "2" : { + "name" : "context.grouping.shortcut.open.bibtex" + } + }, + "end" : "\u005Cs*(})\u005Cs*", + "endCaptures" : { + "1" : { + "name" : "context.grouping.shortcut.close.bibtex" + } + }, + "name" : "context.warning.shortcut.error.bibtex", + "patterns" : [ + { + "include" : "#string_double" + }, + { + "include" : "#string_single" + }, + { + "include" : "#string_grouped" + }, + { + "include" : "#string_value" + }, + { + "include" : "#string_concat" + } + ] + }, + "string_concat" : { + "patterns" : [ + { + "captures" : { + "1" : { + "name" : "context.operator.concat.doublequoted.concatinator.bibtex" + }, + "2" : { + "name" : "context.special.concat.doublequoted.open.bibtex" + }, + "3" : { + "name" : "context.text.concat.doublequoted.text.bibtex" + }, + "4" : { + "name" : "context.special.concat.doublequoted.close.bibtex" + } + }, + "match" : "\u005Cs*(#)\u005Cs*\u005Cs*(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*" + }, + { + "captures" : { + "1" : { + "name" : "context.operator.concat.singlequoted.concatinator.bibtex" + }, + "2" : { + "name" : "context.special.concat.singlequoted.open.bibtex" + }, + "3" : { + "name" : "context.text.concat.singlequoted.text.bibtex" + }, + "4" : { + "name" : "context.special.concat.singlequoted.close.bibtex" + } + }, + "match" : "\u005Cs*(#)\u005Cs*\u005Cs*(')((?:\u005C\u005C'|[^'])*)(')\u005Cs*" + }, + { + "captures" : { + "1" : { + "name" : "context.operator.concat.grouped.concatinator.bibtex" + }, + "2" : { + "name" : "context.operator.concat.grouped.open.bibtex" + }, + "3" : { + "name" : "context.text.concat.grouped.text.bibtex" + }, + "4" : { + "name" : "context.operator.concat.grouped.close.bibtex" + } + }, + "match" : "\u005Cs*(#)\u005Cs*\u005Cs*({)((?:\u005C\u005C{|\u005C\u005C}|[^\u005C{\u005C}])*)(})\u005Cs*" + }, + { + "captured" : { + "1" : { + "name" : "context.operator.concat.value.concatinator.bibtex" + }, + "2" : { + "name" : "context.text.concat.value.text.bibtex" + } + }, + "match" : "\u005Cs*(#)\u005Cs*\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*" + } + ] + }, + "string_double" : { + "captures" : { + "1" : { + "name" : "context.command.doublequoted.key.bibtex" + }, + "2" : { + "name" : "context.operator.doublequoted.equal.bibtex" + }, + "3" : { + "name" : "context.special.doublequoted.open.bibtex" + }, + "4" : { + "name" : "context.text.doublequoted.text.bibtex" + }, + "5" : { + "name" : "context.special.doublequoted.close.bibtex" + } + }, + "match" : "\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*\u005Cs*(=)\u005Cs*\u005Cs*(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*" + }, + "string_grouped" : { + "captures" : { + "1" : { + "name" : "context.command.grouped.key.bibtex" + }, + "2" : { + "name" : "context.operator.grouped.equal.bibtex" + }, + "3" : { + "name" : "context.operator.grouped.open.bibtex" + }, + "4" : { + "name" : "context.text.grouped.text.bibtex" + }, + "5" : { + "name" : "context.operator.grouped.close.bibtex" + } + }, + "match" : "\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*\u005Cs*(=)\u005Cs*\u005Cs*({)((?:\u005C\u005C{|\u005C\u005C}|[^\u005C{\u005C}])*)(})\u005Cs*" + }, + "string_single" : { + "captures" : { + "1" : { + "name" : "context.command.singlequoted.key.bibtex" + }, + "2" : { + "name" : "context.operator.singlequoted.equal.bibtex" + }, + "3" : { + "name" : "context.special.singlequoted.open.bibtex" + }, + "4" : { + "name" : "context.text.singlequoted.text.bibtex" + }, + "5" : { + "name" : "context.special.singlequoted.close.bibtex" + } + }, + "match" : "\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*\u005Cs*(=)\u005Cs*\u005Cs*(')((?:\u005C\u005C'|[^'])*)(')\u005Cs*" + }, + "string_value" : { + "captures" : { + "1" : { + "name" : "context.command.value.key.bibtex" + }, + "2" : { + "name" : "context.operator.value.equal.bibtex" + }, + "3" : { + "name" : "context.text.value.text.bibtex" + } + }, + "match" : "\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*\u005Cs*(=)\u005Cs*\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*" + } + }, + "scopeName" : "source.context.bibtex", + "version" : "1.0.0" +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-bnf.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-bnf.json new file mode 100644 index 000000000..d5251624c --- /dev/null +++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-bnf.json @@ -0,0 +1,74 @@ +{ + "name" : "context.bnf", + "patterns" : [ + { + "include" : "#term" + }, + { + "include" : "#text_single" + }, + { + "include" : "#text_reverse" + }, + { + "include" : "#becomes" + }, + { + "include" : "#extra" + } + ], + "repository" : { + "becomes" : { + "match" : "::=", + "name" : "context.operator.symbol.becomes.bnf" + }, + "extra" : { + "match" : "|", + "name" : "context.extra.symbol.extra.bnf" + }, + "term" : { + "captures" : { + "1" : { + "name" : "context.command.term.open.bnf" + }, + "2" : { + "name" : "context.text.term.text.bnf" + }, + "3" : { + "name" : "context.command.term.close.bnf" + } + }, + "match" : "(<)(([a-zA-Z][a-zA-Z0-9\u005C-]*))(>)" + }, + "text_double" : { + "captures" : { + "1" : { + "name" : "context.special.doublequoted.open.bnf" + }, + "2" : { + "name" : "context.text.doublequoted.text.bnf" + }, + "3" : { + "name" : "context.special.doublequoted.close.bnf" + } + }, + "match" : "(\u0022)([a-zA-Z0-9]|\u005C~|}|\u005C||{|`|_|\u005C^|\u005C]|\u005C\u005C|\u005C[|@|\u005C?|>|=|<|;|:|/|\u005C.|\u005C-|\u005C-|,|\u005C+|\u005C*|\u005C)|\u005C(|\u005C&|\u005C%|\u005C$|#|\u005C!| )(\u0022)" + }, + "text_single" : { + "captures" : { + "1" : { + "name" : "context.special.singlequoted.open.bnf" + }, + "2" : { + "name" : "context.text.singlequoted.text.bnf" + }, + "3" : { + "name" : "context.special.singlequoted.close.bnf" + } + }, + "match" : "(')([a-zA-Z0-9]|\u005C~|}|\u005C||{|`|_|\u005C^|\u005C]|\u005C\u005C|\u005C[|@|\u005C?|>|=|<|;|:|/|\u005C.|\u005C-|\u005C-|,|\u005C+|\u005C*|\u005C)|\u005C(|\u005C&|\u005C%|\u005C$|#|\u005C!| )(')" + } + }, + "scopeName" : "source.context.bnf", + "version" : "1.0.0" +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-cld.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-cld.json new file mode 100644 index 000000000..84bd41236 --- /dev/null +++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-cld.json @@ -0,0 +1,209 @@ +{ + "name" : "context.cld", + "patterns" : [ + { + "include" : "#texstring" + }, + { + "include" : "#texcommand" + }, + { + "include" : "#keyword" + }, + { + "include" : "#buildin" + }, + { + "include" : "#constant" + }, + { + "include" : "#csname" + }, + { + "include" : "#goto" + }, + { + "include" : "#number_hex" + }, + { + "include" : "#number" + }, + { + "include" : "#identifier_keyword" + }, + { + "include" : "#identifier_valid" + }, + { + "include" : "#longcomment" + }, + { + "include" : "#string_long" + }, + { + "include" : "#string_double" + }, + { + "include" : "#string_single" + }, + { + "include" : "#shortcomment" + }, + { + "include" : "#label" + }, + { + "include" : "#operator" + } + ], + "repository" : { + "builtin" : { + "match" : "(xpcall|utf8|unpack|type|tostring|tonumber|table|string|setmetatable|select|require|rawset|rawget|rawequal|print|pcall|pairs|package|os|next|module|math|lpeg|loadfile|load|ipairs|io|getmetatable|file|error|dofile|debug|coroutine|collectgarbage|bit32|assert)(?=[^a-zA-Z])", + "name" : "context.plain.reserved.builtin.lua" + }, + "constant" : { + "match" : "(__unm|__tostring|__sub|__pow|__pairs|__newindex|__mul|__mode|__metatable|__lt|__len|__le|__ipairs|__index|__idiv|__gc|__eq|__div|__concat|__close|__call|__add|_VERSION|_M|_G|_ENV|\u005C.\u005C.\u005C.|NaN|<toclose>|<const>)(?=[^a-zA-Z])", + "name" : "context.data.reserved.constants.lua" + }, + "csname" : { + "begin" : "(metapost|metafun|ctx[A-Za-z_]*|context|commands)(?=[^a-zA-Z])", + "end" : "(?!(\u005Cs*[\u005C.\u005C:]*\u005Cs*[_\u005Cw][_\u005Cw0-9]*))", + "name" : "context.user.csname.lua", + "patterns" : [ + { + "match" : "[\u005C.\u005C:]", + "name" : "context.operator.csname.qualifier.lua" + } + ] + }, + "goto" : { + "captures" : { + "1" : { + "name" : "context.keyword.goto.keyword.lua" + }, + "2" : { + "name" : "context.grouping.goto.target.lua" + } + }, + "match" : "(goto)\u005Cs*([_\u005Cw][_\u005Cw0-9]*)" + }, + "identifier_keyword" : { + "captures" : { + "1" : { + "name" : "context.operator.identifier.keyword.lua" + }, + "2" : { + "name" : "context.warning.identifier.keyword.lua" + } + }, + "match" : "\u005Cs*([\u005C.\u005C:])\u005Cs*(while|until|true|then|return|repeat|or|not|nil|local|in|if|function|for|false|end|elseif|else|do|break|and)(?=[^a-zA-Z])" + }, + "identifier_valid" : { + "match" : "[_\u005Cw][_\u005Cw0-9]*", + "name" : "context.default.identifier.valid.lua" + }, + "keyword" : { + "match" : "(while|until|true|then|return|repeat|or|not|nil|local|in|if|function|for|false|end|elseif|else|do|break|and)(?=[^a-zA-Z])", + "name" : "context.keyword.reserved.keyword.lua" + }, + "label" : { + "captures" : { + "1" : { + "name" : "context.keyword.label.open.lua" + }, + "2" : { + "name" : "context.grouping.label.target.lua" + }, + "3" : { + "name" : "context.keyword.label.close.lua" + } + }, + "match" : "(::)([_\u005Cw][_\u005Cw0-9]*)(::)" + }, + "longcomment" : { + "begin" : "--\u005C[\u005C[", + "end" : "\u005C]\u005C]", + "name" : "context.comment.comment.long.lua" + }, + "number" : { + "match" : "[\u005C-]?[0-9]+(\u005C.[0-9]+)?([eEpP]\u005C-?[0-9]+)?", + "name" : "context.number.decnumber.lua" + }, + "number_hex" : { + "match" : "[\u005C-]?0[xX][A-Fa-f0-9]+(\u005C.[A-Fa-f0-9]+)?([eEpP]\u005C-?[A-Fa-f0-9]+)?", + "name" : "context.number.hexnumber.lua" + }, + "operator" : { + "match" : "\u005C~|}|\u005C||{|\u005C^|\u005C]|\u005C[|>|=|<|;|:|/|\u005C.|\u005C-|,|\u005C+|\u005C*|\u005C)|\u005C(|\u005C'|\u005C%|#", + "name" : "context.special.operator.lua" + }, + "shortcomment" : { + "match" : "--.*$\u005Cn?", + "name" : "context.comment.comment.short.lua" + }, + "string_double" : { + "captures" : { + "1" : { + "name" : "context.special.doublequoted.open.lua" + }, + "2" : { + "name" : "context.string.doublequoted.text.lua" + }, + "3" : { + "name" : "context.special.doublequoted.close.lua" + } + }, + "match" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)" + }, + "string_long" : { + "begin" : "\u005C[(=*)\u005C[", + "beginCaptures" : { + "0" : { + "name" : "context.special.string.long.open.lua" + } + }, + "end" : "\u005C](\u005C2)\u005C]", + "endCaptures" : { + "0" : { + "name" : "context.special.string.long.close.lua" + } + }, + "name" : "context.string.long.text.lua" + }, + "string_single" : { + "captures" : { + "1" : { + "name" : "context.special.singlequoted.open.lua" + }, + "2" : { + "name" : "context.string.singlequoted.text.lua" + }, + "3" : { + "name" : "context.special.singlequoted.close.lua" + } + }, + "match" : "(')((?:\u005C\u005C'|[^'])*)(')" + }, + "texcommand" : { + "match" : "\u005C\u005C[A-Za-z-ÿ@\u005C!\u005C?_]*", + "name" : "context.warning.texcommand.lua" + }, + "texstring" : { + "begin" : "\u005C\u005C!!bs", + "beginCaptures" : { + "0" : { + "name" : "context.special.texstring.open.lua" + } + }, + "end" : "\u005C\u005C!!es", + "endCaptures" : { + "0" : { + "name" : "context.special.texstring.close.lua" + } + }, + "name" : "context.string.texstring.text.lua" + } + }, + "scopeName" : "source.context.cld", + "version" : "1.0.0" +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-cpp.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-cpp.json new file mode 100644 index 000000000..67941c551 --- /dev/null +++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-cpp.json @@ -0,0 +1,143 @@ +{ + "name" : "context.cpp", + "patterns" : [ + { + "include" : "#keyword" + }, + { + "include" : "#datatype" + }, + { + "include" : "#luatex" + }, + { + "include" : "#identifier" + }, + { + "include" : "#macro" + }, + { + "include" : "#string_double" + }, + { + "include" : "#string_single" + }, + { + "include" : "#texcomment" + }, + { + "include" : "#longcomment" + }, + { + "include" : "#shortcomment" + }, + { + "include" : "#hexnumber" + }, + { + "include" : "#decnumber" + }, + { + "include" : "#operator" + } + ], + "repository" : { + "datatype" : { + "match" : "\u005Cb(void|unsigned|union|struct|signed|short|long|int|float|enum|double|char|bool)\u005Cb", + "name" : "context.keyword.datatype.c" + }, + "decnumber" : { + "match" : "[\u005C-]?[0-9]+(\u005C.[0-9]+)?([eEpP]\u005C-?[0-9]+)?", + "name" : "context.number.dec.c" + }, + "hexnumber" : { + "match" : "[\u005C-]?0[xX][A-Fa-f0-9]+(\u005C.[A-Fa-f0-9]+)?([eEpP]\u005C-?[A-Fa-f0-9]+)?", + "name" : "context.number.hex.c" + }, + "identifier" : { + "match" : "[A-Za-z_][A-Za-z_0-9]*", + "name" : "context.default.identifier.c" + }, + "keyword" : { + "match" : "\u005Cb(while|volatile|virtual|using|typename|typeid|typedef|try|true|throw|this|template|switch|static_cast|static_assert|static|slots|sizeof|signals|return|restrict|reinterpret_cast|register|public|protected|private|operator|new|namespace|mutable|inline|if|goto|friend|for|false|extern|export|explicit|else|dynamic_cast|do|delete|default|continue|const_cast|const|class|catch|case|break|auto|asm|_Pragma|_Imaginary|_Complex|_Bool)\u005Cb", + "name" : "context.keyword.c.c" + }, + "longcomment" : { + "begin" : "/\u005C*", + "end" : "\u005C*/", + "name" : "context.comment.long.c" + }, + "luatex" : { + "match" : "\u005Cb(scaled|halfword)\u005Cb", + "name" : "context.command.luatex.c" + }, + "macro" : { + "captures" : { + "1" : { + "name" : "context.data.macro.tag.c" + }, + "2" : { + "name" : "context.data.macro.name.c" + } + }, + "match" : "\u005Cs*(#)\u005Cs*\u005Cb(warning|using|undef|pragma|line|include|import|ifndef|ifdef|if|error|endif|else|elif|define)\u005Cb" + }, + "operator" : { + "match" : "\u005C~|}|\u005C||{|\u005C^|\u005C]|\u005C[|\u005C?|>|=|<|;|:|/|\u005C.|\u005C-|\u005C+|\u005C*|\u005C)|\u005C(|\u005C&|\u005C%|\u005C!", + "name" : "context.operator.any.c" + }, + "shortcomment" : { + "match" : "//.*$\u005Cn?", + "name" : "context.comment.short.c" + }, + "string_double" : { + "captures" : { + "1" : { + "name" : "context.special.doublequoted.open.c" + }, + "2" : { + "name" : "context.string.doublequoted.text.c" + }, + "3" : { + "name" : "context.special.doublequoted.close.c" + } + }, + "match" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)" + }, + "string_single" : { + "captures" : { + "1" : { + "name" : "context.special.singlequoted.open.c" + }, + "2" : { + "name" : "context.string.singlequoted.text.c" + }, + "3" : { + "name" : "context.special.singlequoted.close.c" + } + }, + "match" : "(')((?:\u005C\u005C'|[^'])*)(')" + }, + "texcomment" : { + "begin" : "/\u005C*tex", + "beginCaptures" : { + "0" : { + "name" : "context.comment.tex.open.c" + } + }, + "end" : "\u005C*/", + "endCaptures" : { + "0" : { + "name" : "context.comment.tex.close.c" + } + }, + "patterns" : [ + { + "include" : "source.context.tex" + } + ] + } + }, + "scopeName" : "source.context.cpp", + "version" : "1.0.0" +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-json.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-json.json new file mode 100644 index 000000000..9af4e89e7 --- /dev/null +++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-json.json @@ -0,0 +1,278 @@ +{ + "name" : "context.json", + "patterns" : [ + { + "include" : "#content" + } + ], + "repository" : { + "array" : { + "begin" : "\u005C[", + "beginCaptures" : { + "0" : { + "name" : "context.grouping.array.open.json" + } + }, + "end" : "\u005C]", + "endCaptures" : { + "0" : { + "name" : "context.grouping.array.close.json" + } + }, + "patterns" : [ + { + "include" : "#content" + } + ] + }, + "content" : { + "patterns" : [ + { + "include" : "#string" + }, + { + "include" : "#hexnumber" + }, + { + "include" : "#decnumber" + }, + { + "include" : "#reserved" + }, + { + "include" : "#hash" + }, + { + "include" : "#array" + }, + { + "include" : "#separator" + } + ] + }, + "decnumber" : { + "match" : "\u005Cs*([\u005C-]?[0-9]+(\u005C.[0-9]+)?([eEpP]\u005C-?[0-9]+)?)", + "name" : "context.number.dec.json" + }, + "hash" : { + "begin" : "\u005C{", + "beginCaptures" : { + "0" : { + "name" : "context.grouping.hash.open.json" + } + }, + "end" : "\u005C}", + "endCaptures" : { + "0" : { + "name" : "context.grouping.hash.close.json" + } + }, + "patterns" : [ + { + "include" : "#kv_content" + } + ] + }, + "hexnumber" : { + "match" : "\u005Cs*([\u005C-]?0[xX][A-Fa-f0-9]+(\u005C.[A-Fa-f0-9]+)?([eEpP]\u005C-?[A-Fa-f0-9]+)?)", + "name" : "context.number.hex.json" + }, + "kv_array" : { + "begin" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*(\u005C:)\u005Cs*(\u005C[)", + "beginCaptures" : { + "1" : { + "name" : "context.quote.array.key.open.json" + }, + "2" : { + "name" : "context.text.array.key.text.json" + }, + "3" : { + "name" : "context.quote.array.key.close.json" + }, + "4" : { + "name" : "context.operator.array.becomes.json" + }, + "5" : { + "name" : "context.grouping.array.value.open.json" + } + }, + "end" : "\u005C]", + "endCaptures" : { + "0" : { + "name" : "context.grouping.array.value.close.json" + } + }, + "patterns" : [ + { + "include" : "#content" + } + ] + }, + "kv_content" : { + "patterns" : [ + { + "include" : "#kv_string" + }, + { + "include" : "#kv_hexnumber" + }, + { + "include" : "#kv_decnumber" + }, + { + "include" : "#kv_reserved" + }, + { + "include" : "#kv_hash" + }, + { + "include" : "#kv_array" + }, + { + "include" : "#separator" + } + ] + }, + "kv_decnumber" : { + "captures" : { + "1" : { + "name" : "context.quote.dec.key.open.json" + }, + "2" : { + "name" : "context.text.dec.key.text.json" + }, + "3" : { + "name" : "context.quote.dec.key.close.json" + }, + "4" : { + "name" : "context.operator.dec.becomes.json" + }, + "5" : { + "name" : "context.number.dec.value.json" + } + }, + "match" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*(\u005C:)\u005Cs*([\u005C-]?[0-9]+(\u005C.[0-9]+)?([eEpP]\u005C-?[0-9]+)?)" + }, + "kv_hash" : { + "begin" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*(\u005C:)\u005Cs*(\u005C{)", + "beginCaptures" : { + "1" : { + "name" : "context.quote.hash.key.open.json" + }, + "2" : { + "name" : "context.text.hash.key.text.json" + }, + "3" : { + "name" : "context.quote.hash.key.close.json" + }, + "4" : { + "name" : "context.operator.hash.becomes.json" + }, + "5" : { + "name" : "context.grouping.hash.value.open.json" + } + }, + "end" : "\u005C}", + "endCaptures" : { + "0" : { + "name" : "context.grouping.hash.value.close.json" + } + }, + "patterns" : [ + { + "include" : "#kv_content" + } + ] + }, + "kv_hexnumber" : { + "captures" : { + "1" : { + "name" : "context.quote.hex.key.open.json" + }, + "2" : { + "name" : "context.text.hex.key.text.json" + }, + "3" : { + "name" : "context.quote.hex.key.close.json" + }, + "4" : { + "name" : "context.operator.hex.becomes.json" + }, + "5" : { + "name" : "context.number.hex.value.json" + } + }, + "match" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*(\u005C:)\u005Cs*([\u005C-]?0[xX][A-Fa-f0-9]+(\u005C.[A-Fa-f0-9]+)?([eEpP]\u005C-?[A-Fa-f0-9]+)?)" + }, + "kv_reserved" : { + "captures" : { + "1" : { + "name" : "context.quote.reserved.key.open.json" + }, + "2" : { + "name" : "context.text.reserved.key.text.json" + }, + "3" : { + "name" : "context.quote.reserved.key.close.json" + }, + "4" : { + "name" : "context.operator.reserved.becomes.json" + }, + "5" : { + "name" : "context.primitive.reserved.value.json" + } + }, + "match" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*(\u005C:)\u005Cs*(true|null|false)" + }, + "kv_string" : { + "captures" : { + "1" : { + "name" : "context.quote.string.key.open.json" + }, + "2" : { + "name" : "context.text.string.key.text.json" + }, + "3" : { + "name" : "context.quote.string.key.close.json" + }, + "4" : { + "name" : "context.operator.string.becomes.json" + }, + "5" : { + "name" : "context.quote.string.value.open.json" + }, + "6" : { + "name" : "context.string.string.value.text.json" + }, + "7" : { + "name" : "context.quote.string.value.close.json" + } + }, + "match" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*(\u005C:)\u005Cs*(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)" + }, + "reserved" : { + "match" : "\u005Cs*(true|null|false)", + "name" : "context.primitive.reserved.json" + }, + "separator" : { + "match" : "\u005Cs*(\u005C,)", + "name" : "context.operator.separator.json" + }, + "string" : { + "captures" : { + "1" : { + "name" : "context.quote.string.open.json" + }, + "2" : { + "name" : "context.string.string.text.json" + }, + "3" : { + "name" : "context.quote.string.close.json" + } + }, + "match" : "\u005Cs*(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)" + } + }, + "scopeName" : "source.context.json", + "version" : "1.0.0" +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-lua.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-lua.json new file mode 100644 index 000000000..9cd7a681d --- /dev/null +++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-lua.json @@ -0,0 +1,184 @@ +{ + "name" : "context.lua", + "patterns" : [ + { + "include" : "#keyword" + }, + { + "include" : "#buildin" + }, + { + "include" : "#constant" + }, + { + "include" : "#csname" + }, + { + "include" : "#goto" + }, + { + "include" : "#number_hex" + }, + { + "include" : "#number" + }, + { + "include" : "#identifier_keyword" + }, + { + "include" : "#identifier_valid" + }, + { + "include" : "#longcomment" + }, + { + "include" : "#string_long" + }, + { + "include" : "#string_double" + }, + { + "include" : "#string_single" + }, + { + "include" : "#shortcomment" + }, + { + "include" : "#label" + }, + { + "include" : "#operator" + } + ], + "repository" : { + "builtin" : { + "match" : "(xpcall|utf8|unpack|type|tostring|tonumber|table|string|setmetatable|select|require|rawset|rawget|rawequal|print|pcall|pairs|package|os|next|module|math|lpeg|loadfile|load|ipairs|io|getmetatable|file|error|dofile|debug|coroutine|collectgarbage|bit32|assert)(?=[^a-zA-Z])", + "name" : "context.plain.reserved.builtin.lua" + }, + "constant" : { + "match" : "(__unm|__tostring|__sub|__pow|__pairs|__newindex|__mul|__mode|__metatable|__lt|__len|__le|__ipairs|__index|__idiv|__gc|__eq|__div|__concat|__close|__call|__add|_VERSION|_M|_G|_ENV|\u005C.\u005C.\u005C.|NaN|<toclose>|<const>)(?=[^a-zA-Z])", + "name" : "context.data.reserved.constants.lua" + }, + "csname" : { + "begin" : "(metapost|metafun|ctx[A-Za-z_]*|context|commands)(?=[^a-zA-Z])", + "end" : "(?!(\u005Cs*[\u005C.\u005C:]*\u005Cs*[_\u005Cw][_\u005Cw0-9]*))", + "name" : "context.user.csname.lua", + "patterns" : [ + { + "match" : "[\u005C.\u005C:]", + "name" : "context.operator.csname.qualifier.lua" + } + ] + }, + "goto" : { + "captures" : { + "1" : { + "name" : "context.keyword.goto.keyword.lua" + }, + "2" : { + "name" : "context.grouping.goto.target.lua" + } + }, + "match" : "(goto)\u005Cs*([_\u005Cw][_\u005Cw0-9]*)" + }, + "identifier_keyword" : { + "captures" : { + "1" : { + "name" : "context.operator.identifier.keyword.lua" + }, + "2" : { + "name" : "context.warning.identifier.keyword.lua" + } + }, + "match" : "\u005Cs*([\u005C.\u005C:])\u005Cs*(while|until|true|then|return|repeat|or|not|nil|local|in|if|function|for|false|end|elseif|else|do|break|and)(?=[^a-zA-Z])" + }, + "identifier_valid" : { + "match" : "[_\u005Cw][_\u005Cw0-9]*", + "name" : "context.default.identifier.valid.lua" + }, + "keyword" : { + "match" : "(while|until|true|then|return|repeat|or|not|nil|local|in|if|function|for|false|end|elseif|else|do|break|and)(?=[^a-zA-Z])", + "name" : "context.keyword.reserved.keyword.lua" + }, + "label" : { + "captures" : { + "1" : { + "name" : "context.keyword.label.open.lua" + }, + "2" : { + "name" : "context.grouping.label.target.lua" + }, + "3" : { + "name" : "context.keyword.label.close.lua" + } + }, + "match" : "(::)([_\u005Cw][_\u005Cw0-9]*)(::)" + }, + "longcomment" : { + "begin" : "--\u005C[\u005C[", + "end" : "\u005C]\u005C]", + "name" : "context.comment.comment.long.lua" + }, + "number" : { + "match" : "[\u005C-]?[0-9]+(\u005C.[0-9]+)?([eEpP]\u005C-?[0-9]+)?", + "name" : "context.number.decnumber.lua" + }, + "number_hex" : { + "match" : "[\u005C-]?0[xX][A-Fa-f0-9]+(\u005C.[A-Fa-f0-9]+)?([eEpP]\u005C-?[A-Fa-f0-9]+)?", + "name" : "context.number.hexnumber.lua" + }, + "operator" : { + "match" : "\u005C~|}|\u005C||{|\u005C^|\u005C]|\u005C[|>|=|<|;|:|/|\u005C.|\u005C-|,|\u005C+|\u005C*|\u005C)|\u005C(|\u005C'|\u005C%|#", + "name" : "context.special.operator.lua" + }, + "shortcomment" : { + "match" : "--.*$\u005Cn?", + "name" : "context.comment.comment.short.lua" + }, + "string_double" : { + "captures" : { + "1" : { + "name" : "context.special.doublequoted.open.lua" + }, + "2" : { + "name" : "context.string.doublequoted.text.lua" + }, + "3" : { + "name" : "context.special.doublequoted.close.lua" + } + }, + "match" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)" + }, + "string_long" : { + "begin" : "\u005C[(=*)\u005C[", + "beginCaptures" : { + "0" : { + "name" : "context.special.string.long.open.lua" + } + }, + "end" : "\u005C](\u005C2)\u005C]", + "endCaptures" : { + "0" : { + "name" : "context.special.string.long.close.lua" + } + }, + "name" : "context.string.long.text.lua" + }, + "string_single" : { + "captures" : { + "1" : { + "name" : "context.special.singlequoted.open.lua" + }, + "2" : { + "name" : "context.string.singlequoted.text.lua" + }, + "3" : { + "name" : "context.special.singlequoted.close.lua" + } + }, + "match" : "(')((?:\u005C\u005C'|[^'])*)(')" + } + }, + "scopeName" : "source.context.lua", + "version" : "1.0.0" +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-mps.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-mps.json new file mode 100644 index 000000000..f1644ff58 --- /dev/null +++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-mps.json @@ -0,0 +1,179 @@ +{ + "name" : "context.mps", + "patterns" : [ + { + "include" : "#comment" + }, + { + "include" : "#internal" + }, + { + "include" : "#shortcut" + }, + { + "include" : "#luacall_suffixed" + }, + { + "include" : "#luacall" + }, + { + "include" : "#helper" + }, + { + "include" : "#plain" + }, + { + "include" : "#primitive" + }, + { + "include" : "#texstuff" + }, + { + "include" : "#suffix" + }, + { + "include" : "#identifier" + }, + { + "include" : "#number" + }, + { + "include" : "#quoted" + }, + { + "include" : "#special" + }, + { + "include" : "#texlike" + }, + { + "include" : "#extra" + } + ], + "repository" : { + "comment" : { + "match" : "%.*$\u005Cn?", + "name" : "context.comment.comment.mps" + }, + "extra" : { + "match" : "\u005C~|\u005C||`|_|\u005C^|\u005C\u005C|/|\u005C-|\u005C+\u005C-\u005C+|\u005C+\u005C+|\u005C+|\u005C*|\u005C'|\u005C&|\u005C%", + "name" : "context.extra" + }, + "helper" : { + "match" : "(zmod|ystretched|ysized|xysized|xyscaled|xstretched|xsized|withtransparency|withshadevector|withshadetransform|withshadestep|withshaderadius|withshadeorigin|withshademethod|withshadefraction|withshadefactor|withshadedomain|withshadedirection|withshadecolors|withshadecenter|withshade|withproperties|withmask|withlinearshade|withgrey|withgray|withcircularshade|whitecolor|wdpart|visualizepaths|visualizedfill|visualizeddraw|verbatim|utfsub|utflen|urtriangle|urmoved|urenlarged|urcircle|uptriangle|unspiked|unitvector|unittriangle|unitdiamond|unitcircle|uniquelist|undrawfill|undecorated|undashed|uncolored|ultriangle|ulmoved|ulenlarged|ulcircle|tripled|triangle|transparent|transparency|tostring|topenlarged|topboundary|topath|topair|tolist|tohash|tocycle|thetextext|thetexbox|theoffset|thelabel|texvar|texvar|textextoffset|textext|texstr|texstr|texmode|texbox|tensecircle|tcircle|tanh|tand|tan|systemmode|superellipsed|strut|stretched|straightpath|straightpairs|straightfunction|stoppassingvariable|startpassingvariable|squeezed|squarepath|sqr|spotcolor|space|sortlist|softened|snapped|smoothed|sized|sinh|sin|simplified|shownshadevector|shownshadeorigin|shortened|shapedlist|shadedup|shadedright|shadedleft|shadedinto|shadeddown|shaded|settoks|setmacro|setdimen|setcount|rule|roundedsquare|righttriangle|rightof|rightenlarged|rightboundary|rightarrow|resolvedcolor|resetdrawoptions|resetarrows|report|register|redecorated|readfile|rcircle|rawtextext|rawtexbox|randomshifted|randomizedcontrols|randomized|radian|quote|quotation|pushcurrentpicture|pushboundingbox|punked|property|properties|prefix|prefix|pow|positionxy|positionwhd|positionregion|positionpxy|positionpath|positionpage|positioninregion|positioncurve|positionbox|positionatanchor|positionanchor|popcurrentpicture|popboundingbox|pointof|pi|perpendicular|percent|penpoint|pencilled|peepholed|pathconnectors|passvariable|passarrayvariable|paralleled|paired|outsideof|outlinetexttopath|outlinetext|outerboundingbox|originpath|onlayer|oddly|nothing|notcached|normalfill|normaldraw|nofill|newhash|naturalizepaths|namedcolor|multitonecolor|mp|mirroredabout|mirrored|luacall|lua|lrtriangle|lrmoved|lrenlarged|lrcircle|log|loadmodule|loadimage|loadfile|loadfigure|ln|lltriangle|llmoved|llenlarged|llcircle|listtolines|listtocurves|listsize|listlast|linearpath|lefttriangle|leftof|leftenlarged|leftboundary|leftarrow|lcircle|laddered|label|keepcached|istextext|isobject|isarray|isarray|invtan|invsin|inverted|invcos|inv|intersection_point|intersection_found|interpolated|insideof|inpath|innerboundingbox|inhash|infont|infinite|htpart|greyscale|greyed|grayscale|grayed|graphictext|gettoks|getmacro|getdimen|getcount|function|fulltriangle|fullsquare|fulldiamond|formatted|format|fillup|filloutlinetext|figure|externalfigure|exp|evenly|epsed|eofillup|eofill|eoclip|enlonged|enlarged|drawwholepath|drawpoints|drawpointoptions|drawpointlabels|drawpoint|drawpathoptions|drawpathonly|drawpath|drawoutlinetext|draworiginoptions|draworigin|drawlineoptions|drawlabeloptions|drawfill|drawdoublearrows|drawcontrolpoints|drawcontroloptions|drawcontrollines|drawboundoptions|drawboundingbox|drawboundary|dquote|dppart|downtriangle|disposehash|dispose|dimension|detailpaths|detaileddraw|defineshade|decorated|ddecimal|dddecimal|ddddecimal|cutends|curvedpath|curvedpairs|curvedfunction|curved|crossingunder|crossed|crlf|cotd|cot|cosh|cos|cornered|copylist|constructedpath|constructedpairs|constructedfunction|condition|complemented|complementary|comment|colortype|colorpart|colorlike|colordecimalslist|colordecimals|cmyk|clearxy|circularpath|checkedbounds|checkbounds|centerarrow|center|break|boundingradius|boundingpoint|boundingcircle|boundingbox|bottomenlarged|bottomboundary|blownup|blackcolor|bitmapimage|bcircle|bbwidth|bbheight|basiccolors|autoalign|atan|asinh|asin|asgroup|arrowpath|area|anchored|along|addbackground|acosh|acos|SPACE|PERCENT|MP|DQUOTE|CRLF)(?=[^a-zA-Z\u005C_@!?-ÿ])", + "name" : "context.command.metafun.helper.mps" + }, + "identifier" : { + "match" : "[a-zA-Z\u005C_@!?-ÿ]+", + "name" : "context.default.identifier.mps" + }, + "internal" : { + "match" : "\u005C\u005C|\u005C.\u005C.\u005C.|\u005C.\u005C.|\u005C-\u005C-\u005C-|\u005C-\u005C-|\u005C&", + "name" : "context.reserved.internal.mps" + }, + "luacall" : { + "begin" : "(lua)\u005Cs*(\u005C()\u005Cs*(\u0022)", + "beginCaptures" : { + "1" : { + "name" : "context.embedded.lua.command.mps" + }, + "2" : { + "name" : "context.special.lua.open.mps" + }, + "3" : { + "name" : "context.special.lua.text.open.mps" + } + }, + "end" : "(\u0022)\u005Cs*(\u005C))", + "endCaptures" : { + "1" : { + "name" : "context.special.lua.text.close.mps" + }, + "2" : { + "name" : "context.special.lua.close.mps" + } + }, + "patterns" : [ + { + "include" : "source.context.cld" + } + ] + }, + "luacall_suffixed" : { + "begin" : "(lua)", + "end" : "(?!(\u005Cs*[\u005C.]\u005Cs*[a-zA-Z\u005C_@!?-ÿ]+))", + "name" : "context.embedded.luacall.mps", + "patterns" : [ + { + "match" : "[\u005C.]", + "name" : "context.default.luacall.qualifier.mps" + } + ] + }, + "number" : { + "match" : "[\u005C-]?[0-9]+(\u005C.[0-9]+)?([eE]\u005C-?[0-9]+)?", + "name" : "context.number.number.mps" + }, + "plain" : { + "match" : "(z|z|yellow|withdots|white|whatever|upto|up|unitvector|unitsquare|unfilldraw|unfill|undraw|triplet|tracingnone|tracingall|thru|thelabel|tensepath|takepower|superellipse|stop|softjoin|shipit|savepen|round|rotatedaround|rotatedabout|right|relax|reflectedabout|red|range|quartercircle|quadruplet|pt|pickup|pensquare|penspec|penrazor|penpos|penlabels|pc|origin|nullpen|mod|mm|min|max|makelabel|magenta|loggingall|left|laboff|labels|label|inverse|intersectionpoint|interact|incr|in|in|image|identity|hide|halfcircle|green|gobbled|gobble|fullcircle|font_extra_space|font_coding_scheme|flex|filldraw|fill|extra_setup|extra_endfig|extra_endchar|extra_beginfig|extra_beginchar|exitunless|evenly|endglyph|endfig|endchar|drawoptions|drawdot|drawdblarrow|drawarrow|draw|downto|down|dotprod|dotlabels|dotlabel|div|directionpoint|direction|dir|define_whole_vertical_pixels|define_whole_vertical_blacker_pixels|define_whole_pixels|define_whole_blacker_pixels|define_pixels|define_horizontal_corrected_pixels|define_good_y_pixels|define_good_x_pixels|define_corrected_pixels|define_blacker_pixels|defaultfont|decr|dd|dashpattern|cyan|cuttings|cutdraw|cutbefore|cutafter|currentpicture|currentpen|counterclockwise|cm|clearxy|clearpen|clearpen|clearit|change_width|center|ceiling|cc|capsule_end|bye|buildcycle|bp|blue|blankpicture|blacker|black|beginglyph|beginfig|beginchar|bbox|background|arrowhead|abs)(?=[^a-zA-Z\u005C_@!?-ÿ])", + "name" : "context.plain.plain.mps" + }, + "primitive" : { + "match" : "(zscaled|yypart|yxpart|yscaled|ypart|yoffset|yellowpart|year|xypart|xxpart|xscaled|xpart|xoffset|write|withprescript|withpostscript|withpen|within|withcolor|withcmykcolor|warningcheck|vppp|vardef|urt|urcorner|until|unknown|uniformdeviate|ulft|ulcorner|turningnumber|turningcheck|truecorners|true|troffmode|transformed|transform|tracingtitles|tracingstats|tracingspecs|tracingrestores|tracingpens|tracingoutput|tracingonline|tracingmacros|tracinglostchars|tracingequations|tracingedges|tracingcommands|tracingchoices|tracingcapsules|totalweight|top|to|time|textual|text|tertiarydef|tertiary|tension|suffix|substring|subpath|stroked|string|str|step|sqrt|special|smoothing|slanted|sind|showvariable|showtoken|showstopping|showdependencies|show|shipout|shifted|setbounds|secondarydef|secondary|screen_rows|screen_cols|scantokens|scaled|save|runscript|rt|rotated|rgbcolor|reverse|restoreclipcolor|redpart|readstring|readfrom|randomseed|proofing|prologues|primarydef|primary|prescriptpart|precontrol|postscriptpart|postcontrol|point|pixels_per_inch|picture|penspec|penpart|penoffset|pencircle|pen|pausing|pathpart|path|pair|outputtemplate|outputformat|outer|or|openwindow|openit|on|off|of|odd|oct|numspecial|numeric|nullpicture|notransforms|not|normaldeviate|nodisplays|newinternal|mpxbreak|mpprocset|month|mlog|miterlimit|minute|mexp|message|maketext|makepen|makepath|magentapart|lrt|lrcorner|lowres_fix|llft|llcorner|linejoin|linecap|ligtable|lft|let|length|known|kern|intersectiontimes|interpath|interim|input|inner|infont|imagerules|if|hround|hppp|hour|hex|headerbyte|greypart|greycolor|greenpart|graypart|grayfont|graycolor|granularity|glyph|gfcorners|forsuffixes|forever|for|fontsize|fontsize|fontpart|fontmapline|fontmapfile|fontmaking|fontdimen|floor|fillin|filled|filenametemplate|fi|false|extra_endfig|extra_beginfig|extensible|expr|expandafter|exitif|errmessage|envelope|endinput|endgroup|endfor|enddef|end|elseif|else|doublepath|displaying|display|directiontime|designsize|delimiters|def|decimal|day|dashpart|dashed|cycle|cyanpart|currentwindow|currenttransform|curl|cullit|cull|cosd|controls|contour|colormodel|color|cmykcolor|clipped|clip|charwd|charlist|charic|charht|charext|charexists|chardy|chardx|chardp|charcode|char|bounded|boundarychar|bot|bot|boolean|bluepart|blackpart|begingroup|autorounding|arctime|arclength|angle|and|and|also|addto|ASCII)(?=[^a-zA-Z\u005C_@!?-ÿ])", + "name" : "context.primitive.primitive.mps" + }, + "quoted" : { + "begin" : "\u0022", + "beginCaptures" : { + "0" : { + "name" : "context.special.string.open.mps" + } + }, + "end" : "\u0022", + "endCaptures" : { + "0" : { + "name" : "context.special.string.close.mps" + } + }, + "name" : "context.string.string.text.mps" + }, + "shortcut" : { + "match" : "(textextoffset|textextanchor|squared|sq|softlighttransparent|shadefactor|screentransparent|saturationtransparent|rounded|rgbcolormodel|pen_top|pen_rt|pen_lft|pen_bot|overlaytransparent|normaltransparent|nocolormodel|multiplytransparent|mitered|metapostversion|maxdimensions|luminositytransparent|lightentransparent|labeloffset|join_radius|infinity|huetransparent|hardlighttransparent|greycolormodel|graycolormodel|exclusiontransparent|epsilon|eps|drawoptionsfactor|dq|dotlabeldiam|ditto|differencetransparent|defaultscale|defaultpen|darkentransparent|crossingscale|crossingoption|colortransparent|colordodgetransparent|colorburntransparent|cmykcolormodel|charscale|butt|beveled|bboxmargin|ahvariant|ahscale|ahlength|ahfactor|ahdimple|ahangle|EOF)(?=[^a-zA-Z\u005C_@!?-ÿ])", + "name" : "context.data.shortcut.mps" + }, + "special" : { + "match" : "}|{|\u005C]|\u005C[|@#|>|=|<|:|\u005C)|\u005C(|#@|#|\u005C\u0022", + "name" : "context.special.special.mps" + }, + "suffix" : { + "match" : "@#|#@|#", + "name" : "context.number.suffix.mps" + }, + "texlike" : { + "match" : "\u005C[a-zA-Z\u005C_@!?-ÿ]+", + "name" : "context.warning.unexpected.tex.mps" + }, + "texstuff" : { + "begin" : "((?:b|verbatim)tex)\u005Cs+", + "beginCaptures" : { + "1" : { + "name" : "context.primitive.tex.open.mps" + } + }, + "end" : "\u005Cs+(etex)", + "endCaptures" : { + "1" : { + "name" : "context.primitive.tex.close.mps" + } + }, + "name" : "context.string.tex.mps", + "patterns" : [ + { + "include" : "source.context.tex" + } + ] + } + }, + "scopeName" : "source.context.mps", + "version" : "1.0.0" +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-pdf.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-pdf.json new file mode 100644 index 000000000..a591905e0 --- /dev/null +++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-pdf.json @@ -0,0 +1,271 @@ +{ + "name" : "context.pdf", + "patterns" : [ + { + "include" : "#object" + }, + { + "include" : "#comment" + }, + { + "include" : "#trailer" + }, + { + "include" : "#dictionary" + }, + { + "include" : "#startxref" + }, + { + "include" : "#xref" + } + ], + "repository" : { + "array" : { + "begin" : "(\u005C[)", + "beginCaptures" : { + "1" : { + "name" : "context.grouping.array.open.pdf" + } + }, + "end" : "(\u005C])", + "endCaptures" : { + "1" : { + "name" : "context.grouping.array.close.pdf" + } + }, + "patterns" : [ + { + "include" : "#content" + } + ] + }, + "comment" : { + "match" : "%.*$\u005Cn?", + "name" : "context.comment.comment.pdf" + }, + "content" : { + "patterns" : [ + { + "include" : "#dictionary" + }, + { + "include" : "#stream" + }, + { + "include" : "#array" + }, + { + "match" : "(/[^\u005Cs<>/\u005C[\u005C]\u005C(\u005C)]+)", + "name" : "context.constant.object.content.name.pdf" + }, + { + "captures" : { + "1" : { + "name" : "context.warning.content.reference.1.pdf" + }, + "2" : { + "name" : "context.warning.content.reference.2.pdf" + }, + "3" : { + "name" : "context.command.content.reference.3.pdf" + } + }, + "match" : "([0-9]+)\u005Cs*([0-9]+)\u005Cs*(R)" + }, + { + "match" : "([\u005C-]?[0-9]*[\u005C.]?[0-9]+)", + "name" : "context.number.content.real.pdf" + }, + { + "match" : "([\u005C-]?[0-9]+)", + "name" : "context.number.content.integer.pdf" + }, + { + "captures" : { + "1" : { + "name" : "context.quote.content.string.open.pdf" + }, + "2" : { + "name" : "context.string.content.string.text.pdf" + }, + "3" : { + "name" : "context.quote.content.string.close.pdf" + } + }, + "match" : "(\u005C()((?:\u005C\u005C[\u005C(\u005C)]|[^\u005C(\u005C)])*)(\u005C))" + }, + { + "match" : "(true|null|false)", + "name" : "context.number.content.reserved.pdf" + }, + { + "captures" : { + "1" : { + "name" : "context.quote.content.unicode.open.pdf" + }, + "2" : { + "name" : "context.plain.content.unicode.bomb.pdf" + }, + "3" : { + "name" : "context.string.content.unicode.text.pdf" + }, + "4" : { + "name" : "context.quote.content.unicode.close.pdf" + } + }, + "match" : "(<)(feff)([^>]*)(>)" + }, + { + "captures" : { + "1" : { + "name" : "context.quote.content.whatsit.open.pdf" + }, + "2" : { + "name" : "context.string.content.whatsit.text.pdf" + }, + "3" : { + "name" : "context.quote.content.whatsit.close.pdf" + } + }, + "match" : "(<)([^>]*)(>)" + } + ] + }, + "dictionary" : { + "begin" : "(<<)", + "beginCaptures" : { + "1" : { + "name" : "context.grouping.dictionary.open.pdf" + } + }, + "end" : "(>>)", + "endCaptures" : { + "1" : { + "name" : "context.grouping.dictionary.close.pdf" + } + }, + "patterns" : [ + { + "begin" : "(/[^\u005Cs<>/\u005C[\u005C]\u005C(\u005C)]+)\u005Cs*", + "beginCaptures" : { + "1" : { + "name" : "context.command.dictionary.name.pdf" + } + }, + "end" : "(?=[>])", + "patterns" : [ + { + "include" : "#content" + } + ] + } + ] + }, + "object" : { + "begin" : "([0-9]+)\u005Cs*([0-9]+)\u005Cs*(obj)", + "beginCaptures" : { + "1" : { + "name" : "context.warning.object.1.pdf" + }, + "2" : { + "name" : "context.warning.object.2.pdf" + }, + "3" : { + "name" : "context.keyword.object.open.pdf" + } + }, + "end" : "(endobj)", + "endCaptures" : { + "1" : { + "name" : "context.keyword.object.close.pdf" + } + }, + "patterns" : [ + { + "include" : "#content" + } + ] + }, + "startxref" : { + "begin" : "startxref\u005Cs*", + "captures" : { + "0" : { + "name" : "context.keyword.startxref.1.pdf" + } + }, + "end" : "(?=[^0-9])", + "patterns" : [ + { + "begin" : "([0-9]+)\u005Cs*", + "captures" : { + "1" : { + "name" : "context.number.startxref.2.pdf" + } + }, + "end" : "(?=.)" + } + ] + }, + "stream" : { + "begin" : "^stream$", + "beginCaptures" : { + "0" : { + "name" : "context.keyword.stream.open.pdf" + } + }, + "end" : "^endstream$", + "endCaptures" : { + "0" : { + "name" : "context.keyword.stream.close.pdf" + } + } + }, + "trailer" : { + "match" : "trailer", + "name" : "context.keyword.trailer.pdf" + }, + "xref" : { + "begin" : "xref\u005Cs*", + "captures" : { + "0" : { + "name" : "context.keyword.xref.1.pdf" + } + }, + "end" : "(?=[^0-9])", + "patterns" : [ + { + "begin" : "([0-9]+)\u005Cs*([0-9]+)\u005Cs*", + "captures" : { + "1" : { + "name" : "context.number.xref.2.pdf" + }, + "2" : { + "name" : "context.number.xref.3.pdf" + } + }, + "end" : "(?=[^0-9])", + "patterns" : [ + { + "begin" : "([0-9]+)\u005Cs*([0-9]+)\u005Cs*([fn])\u005Cs*", + "captures" : { + "1" : { + "name" : "context.number.xref.4.pdf" + }, + "2" : { + "name" : "context.number.xref.5.pdf" + }, + "3" : { + "name" : "context.keyword.xref.6.pdf" + } + }, + "end" : "(?=.)" + } + ] + } + ] + } + }, + "scopeName" : "source.context.pdf", + "version" : "1.0.0" +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-sql.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-sql.json new file mode 100644 index 000000000..60ff5e342 --- /dev/null +++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-sql.json @@ -0,0 +1,120 @@ +{ + "name" : "context.sql", + "patterns" : [ + { + "include" : "#keyword_standard" + }, + { + "include" : "#keyword_dialect" + }, + { + "include" : "#identifier" + }, + { + "include" : "#string_double" + }, + { + "include" : "#string_single" + }, + { + "include" : "#string_reverse" + }, + { + "include" : "#comment_long" + }, + { + "include" : "#comment_short" + }, + { + "include" : "#number" + }, + { + "include" : "#operator" + } + ], + "repository" : { + "comment_long" : { + "begin" : "/\u005C*", + "beginCaptures" : { + "0" : { + "name" : "context.command.comment.open.sql" + } + }, + "end" : "\u005C*/", + "endCaptures" : { + "0" : { + "name" : "context.command.comment.close.sql" + } + }, + "name" : "context.comment.comment.text.sql" + }, + "comment_short" : { + "match" : "%.*$\u005Cn?", + "name" : "context.comment.comment.comment.sql" + }, + "identifier" : { + "match" : "[a-zA-Z\u005C_][a-zA-Z0-9\u005C_]*", + "name" : "context.text.identifier.sql" + }, + "keyword_dialect" : { + "match" : "(zerofill|year_month|xor|x509|writetext|width_bucket|waitfor|volatile|verbose|variables|variable|varcharacter|varchar2|varbinary|var_samp|var_pop|validator|validate|valid|vacuum|utc_timestamp|utc_time|utc_date|user_defined_type_schema|user_defined_type_name|user_defined_type_code|user_defined_type_catalog|use|updatetext|unsigned|unnamed|unlock|unlisten|unencrypted|uncommitted|unbounded|uid|uescape|type|tsequal|trusted|truncate|trigger_schema|trigger_name|trigger_catalog|transforms|transform|transactions_rolled_back|transactions_committed|transaction_active|tran|top_level_count|top|toast|tinytext|tinyint|tinyblob|ties|than|textsize|text|terminated|terminate|template|temp|tablespace|tables|table_name|sysid|sysdate|synonym|superuser|successful|sublist|subclass_origin|style|structure|string|strict|straight_join|storage|stdout|stdin|stddev_samp|stddev_pop|status|statistics|statement|starting|stable|ssl|sqrt|sqlca|sql_warnings|sql_small_result|sql_select_limit|sql_low_priority_updates|sql_log_update|sql_log_off|sql_calc_found_rows|sql_big_tables|sql_big_selects|sql_big_result|specific_name|spatial|source|soname|simple|shutdown|show|share|setuser|setof|server_name|serializable|sequence|separator|self|security|second_microsecond|scope_schema|scope_name|scope_catalog|schemas|schema_name|scale|save|rule|rownum|rowid|rowguidcol|rowcount|row_number|row_count|routine_schema|routine_name|routine_catalog|rlike|returned_sqlstate|returned_octet_length|returned_length|returned_cardinality|restore|restart|resource|reset|require|replication|replace|repeatable|rename|reload|reindex|regr_syy|regr_sxy|regr_sxx|regr_slope|regr_r2|regr_intercept|regr_count|regr_avgy|regr_avgx|regexp|reconfigure|recheck|readtext|raw|rank|raiserror|raid0|quote|purge|processlist|process|procedural|proc|print|prepared|preorder|prefix|preceding|power|postfix|pli|plan|placing|percentile_disc|percentile_cont|percent_rank|percent|pctfree|password|pascal|parameters|parameter_specific_schema|parameter_specific_name|parameter_specific_catalog|parameter_ordinal_position|parameter_name|parameter_mode|pack_keys|owner|overriding|overlay|outfile|others|ordering|options|optionally|optimize|operator|operation|openxml|openrowset|openquery|opendatasource|online|oids|offsets|offset|offline|off|octets|number|nulls|nullable|nowait|notnull|notify|nothing|nosuperuser|normalized|normalize|nonclustered|nologin|noinherit|nocreateuser|nocreaterole|nocreatedb|nocompress|nocheck|noaudit|no_write_to_binlog|nesting|name|myisam|mumps|move|more|monthname|modify|mode|mod|mlslabel|minvalue|minute_second|minute_microsecond|minus|min_rows|middleint|message_text|message_octet_length|message_length|mediumtext|mediumint|mediumblob|maxvalue|maxextents|max_rows|matched|m|low_priority|longtext|longblob|long|logs|login|lock|location|load|ln|listen|lines|lineno|limit|less|length|least|last_insert_id|lancompiler|kill|keys|key_type|key_member|k|isnull|isam|invoker|intersection|int8|int4|int3|int2|int1|instead|instantiable|instance|insert_id|initialize|initial|inherits|inherit|infix|infile|index|increment|including|include|implicit|implementation|immutable|ilike|ignore|identitycol|identity_insert|identified|hour_second|hour_minute|hour_microsecond|hosts|host|holdlock|high_priority|hierarchy|heap|header|greatest|grants|granted|generated|g|fusion|fulltext|freeze|freetexttable|freetext|forward|fortran|force|following|flush|floor|float8|float4|final|fillfactor|file|fields|explain|exp|existing|exclusive|excluding|exclude|every|escaped|errlvl|enum|end-exec|encrypted|encoding|enclosed|enable|dynamic_function_code|dynamic_function|dump|dummy|dual|div|distributed|distinctrow|dispatch|disk|disable|dictionary|destructor|destroy|derived|deny|dense_rank|delimiters|delimiter|delayed|delay_key_write|degree|definer|defined|defaults|dbcc|dayofyear|dayofweek|dayofmonth|day_second|day_minute|day_microsecond|day_hour|datetime_interval_precision|datetime_interval_code|datetime|databases|database|cursor_name|cume_dist|csv|createuser|createrole|createdb|covar_samp|covar_pop|corr|copy|conversion|containstable|constraint_schema|constraint_name|constraint_catalog|connection_name|condition_number|compute|compress|completion|committed|comment|command_function_code|command_function|columns|column_name|collect|collation_schema|collation_name|collation_catalog|cobol|clustered|cluster|class_origin|class|checksum|checkpoint|checked|characters|characteristics|character_set_schema|character_set_name|character_set_catalog|change|chain|ceiling|ceil|catalog_name|cardinality|cache|c|bulk|browse|break|bool|bitvar|bernoulli|backward|backup|avg_row_length|auto_increment|audit|attributes|attribute|assignment|analyze|analyse|always|also|alias|aggregate|admin|ada|access|abs|abort|a|ZEROFILL|YEAR_MONTH|XOR|X509|WRITETEXT|WIDTH_BUCKET|WAITFOR|VOLATILE|VERBOSE|VARIABLES|VARIABLE|VARCHARACTER|VARCHAR2|VARBINARY|VAR_SAMP|VAR_POP|VALIDATOR|VALIDATE|VALID|VACUUM|UTC_TIMESTAMP|UTC_TIME|UTC_DATE|USER_DEFINED_TYPE_SCHEMA|USER_DEFINED_TYPE_NAME|USER_DEFINED_TYPE_CODE|USER_DEFINED_TYPE_CATALOG|USE|UPDATETEXT|UNSIGNED|UNNAMED|UNLOCK|UNLISTEN|UNENCRYPTED|UNCOMMITTED|UNBOUNDED|UID|UESCAPE|TYPE|TSEQUAL|TRUSTED|TRUNCATE|TRIGGER_SCHEMA|TRIGGER_NAME|TRIGGER_CATALOG|TRANSFORMS|TRANSFORM|TRANSACTIONS_ROLLED_BACK|TRANSACTIONS_COMMITTED|TRANSACTION_ACTIVE|TRAN|TOP_LEVEL_COUNT|TOP|TOAST|TINYTEXT|TINYINT|TINYBLOB|TIES|THAN|TEXTSIZE|TEXT|TERMINATED|TERMINATE|TEMPLATE|TEMP|TABLESPACE|TABLES|TABLE_NAME|SYSID|SYSDATE|SYNONYM|SUPERUSER|SUCCESSFUL|SUBLIST|SUBCLASS_ORIGIN|STYLE|STRUCTURE|STRING|STRICT|STRAIGHT_JOIN|STORAGE|STDOUT|STDIN|STDDEV_SAMP|STDDEV_POP|STATUS|STATISTICS|STATEMENT|STARTING|STABLE|SSL|SQRT|SQLCA|SQL_WARNINGS|SQL_SMALL_RESULT|SQL_SELECT_LIMIT|SQL_LOW_PRIORITY_UPDATES|SQL_LOG_UPDATE|SQL_LOG_OFF|SQL_CALC_FOUND_ROWS|SQL_BIG_TABLES|SQL_BIG_SELECTS|SQL_BIG_RESULT|SPECIFIC_NAME|SPATIAL|SOURCE|SONAME|SIMPLE|SHUTDOWN|SHOW|SHARE|SETUSER|SETOF|SERVER_NAME|SERIALIZABLE|SEQUENCE|SEPARATOR|SELF|SECURITY|SECOND_MICROSECOND|SCOPE_SCHEMA|SCOPE_NAME|SCOPE_CATALOG|SCHEMAS|SCHEMA_NAME|SCALE|SAVE|RULE|ROWNUM|ROWID|ROWGUIDCOL|ROWCOUNT|ROW_NUMBER|ROW_COUNT|ROUTINE_SCHEMA|ROUTINE_NAME|ROUTINE_CATALOG|RLIKE|RETURNED_SQLSTATE|RETURNED_OCTET_LENGTH|RETURNED_LENGTH|RETURNED_CARDINALITY|RESTORE|RESTART|RESOURCE|RESET|REQUIRE|REPLICATION|REPLACE|REPEATABLE|RENAME|RELOAD|REINDEX|REGR_SYY|REGR_SXY|REGR_SXX|REGR_SLOPE|REGR_R2|REGR_INTERCEPT|REGR_COUNT|REGR_AVGY|REGR_AVGX|REGEXP|RECONFIGURE|RECHECK|READTEXT|RAW|RANK|RAISERROR|RAID0|QUOTE|PURGE|PROCESSLIST|PROCESS|PROCEDURAL|PROC|PRINT|PREPARED|PREORDER|PREFIX|PRECEDING|POWER|POSTFIX|PLI|PLAN|PLACING|PERCENTILE_DISC|PERCENTILE_CONT|PERCENT_RANK|PERCENT|PCTFREE|PASSWORD|PASCAL|PARAMETERS|PARAMETER_SPECIFIC_SCHEMA|PARAMETER_SPECIFIC_NAME|PARAMETER_SPECIFIC_CATALOG|PARAMETER_ORDINAL_POSITION|PARAMETER_NAME|PARAMETER_MODE|PACK_KEYS|OWNER|OVERRIDING|OVERLAY|OUTFILE|OTHERS|ORDERING|OPTIONS|OPTIONALLY|OPTIMIZE|OPERATOR|OPERATION|OPENXML|OPENROWSET|OPENQUERY|OPENDATASOURCE|ONLINE|OIDS|OFFSETS|OFFSET|OFFLINE|OFF|OCTETS|NUMBER|NULLS|NULLABLE|NOWAIT|NOTNULL|NOTIFY|NOTHING|NOSUPERUSER|NORMALIZED|NORMALIZE|NONCLUSTERED|NOLOGIN|NOINHERIT|NOCREATEUSER|NOCREATEROLE|NOCREATEDB|NOCOMPRESS|NOCHECK|NOAUDIT|NO_WRITE_TO_BINLOG|NESTING|NAME|MYISAM|MUMPS|MOVE|MORE|MONTHNAME|MODIFY|MODE|MOD|MLSLABEL|MINVALUE|MINUTE_SECOND|MINUTE_MICROSECOND|MINUS|MIN_ROWS|MIDDLEINT|MESSAGE_TEXT|MESSAGE_OCTET_LENGTH|MESSAGE_LENGTH|MEDIUMTEXT|MEDIUMINT|MEDIUMBLOB|MAXVALUE|MAXEXTENTS|MAX_ROWS|MATCHED|M|LOW_PRIORITY|LONGTEXT|LONGBLOB|LONG|LOGS|LOGIN|LOCK|LOCATION|LOAD|LN|LISTEN|LINES|LINENO|LIMIT|LESS|LENGTH|LEAST|LAST_INSERT_ID|LANCOMPILER|KILL|KEYS|KEY_TYPE|KEY_MEMBER|K|ISNULL|ISAM|INVOKER|INTERSECTION|INT8|INT4|INT3|INT2|INT1|INSTEAD|INSTANTIABLE|INSTANCE|INSERT_ID|INITIALIZE|INITIAL|INHERITS|INHERIT|INFIX|INFILE|INDEX|INCREMENT|INCLUDING|INCLUDE|IMPLICIT|IMPLEMENTATION|IMMUTABLE|ILIKE|IGNORE|IDENTITYCOL|IDENTITY_INSERT|IDENTIFIED|HOUR_SECOND|HOUR_MINUTE|HOUR_MICROSECOND|HOSTS|HOST|HOLDLOCK|HIGH_PRIORITY|HIERARCHY|HEAP|HEADER|GREATEST|GRANTS|GRANTED|GENERATED|G|FUSION|FULLTEXT|FREEZE|FREETEXTTABLE|FREETEXT|FORWARD|FORTRAN|FORCE|FOLLOWING|FLUSH|FLOOR|FLOAT8|FLOAT4|FINAL|FILLFACTOR|FILE|FIELDS|EXPLAIN|EXP|EXISTING|EXCLUSIVE|EXCLUDING|EXCLUDE|EVERY|ESCAPED|ERRLVL|ENUM|END-EXEC|ENCRYPTED|ENCODING|ENCLOSED|ENABLE|DYNAMIC_FUNCTION_CODE|DYNAMIC_FUNCTION|DUMP|DUMMY|DUAL|DIV|DISTRIBUTED|DISTINCTROW|DISPATCH|DISK|DISABLE|DICTIONARY|DESTRUCTOR|DESTROY|DERIVED|DENY|DENSE_RANK|DELIMITERS|DELIMITER|DELAYED|DELAY_KEY_WRITE|DEGREE|DEFINER|DEFINED|DEFAULTS|DBCC|DAYOFYEAR|DAYOFWEEK|DAYOFMONTH|DAY_SECOND|DAY_MINUTE|DAY_MICROSECOND|DAY_HOUR|DATETIME_INTERVAL_PRECISION|DATETIME_INTERVAL_CODE|DATETIME|DATABASES|DATABASE|CURSOR_NAME|CUME_DIST|CSV|CREATEUSER|CREATEROLE|CREATEDB|COVAR_SAMP|COVAR_POP|CORR|COPY|CONVERSION|CONTAINSTABLE|CONSTRAINT_SCHEMA|CONSTRAINT_NAME|CONSTRAINT_CATALOG|CONNECTION_NAME|CONDITION_NUMBER|COMPUTE|COMPRESS|COMPLETION|COMMITTED|COMMENT|COMMAND_FUNCTION_CODE|COMMAND_FUNCTION|COLUMNS|COLUMN_NAME|COLLECT|COLLATION_SCHEMA|COLLATION_NAME|COLLATION_CATALOG|COBOL|CLUSTERED|CLUSTER|CLASS_ORIGIN|CLASS|CHECKSUM|CHECKPOINT|CHECKED|CHARACTERS|CHARACTERISTICS|CHARACTER_SET_SCHEMA|CHARACTER_SET_NAME|CHARACTER_SET_CATALOG|CHANGE|CHAIN|CEILING|CEIL|CATALOG_NAME|CARDINALITY|CACHE|C|BULK|BROWSE|BREAK|BOOL|BITVAR|BERNOULLI|BACKWARD|BACKUP|AVG_ROW_LENGTH|AUTO_INCREMENT|AUDIT|ATTRIBUTES|ATTRIBUTE|ASSIGNMENT|ANALYZE|ANALYSE|ALWAYS|ALSO|ALIAS|AGGREGATE|ADMIN|ADA|ACCESS|ABS|ABORT|A)(?=[^a-zA-Z])", + "name" : "context.keyword.reserved.dialect.sql" + }, + "keyword_standard" : { + "match" : "(zone|year|write|work|without|within|with|window|while|where|whenever|when|view|varying|varchar|values|value|using|user|usage|upper|update|until|unnest|unknown|unique|union|undo|under|true|trim|trigger|treat|translation|translate|transaction|trailing|to|timezone_minute|timezone_hour|timestamp|time|then|temporary|tablesample|table|system_user|system|symmetric|sum|substring|submultiset|static|state|start|sqlwarning|sqlstate|sqlexception|sqlerror|sqlcode|sql|specifictype|specific|space|some|smallint|size|similar|signal|sets|set|session_user|session|sensitive|select|section|second|search|scroll|scope|schema|savepoint|rows|row|routine|rollup|rollback|role|right|revoke|returns|return|result|restrict|resignal|repeat|release|relative|referencing|references|ref|recursive|real|reads|read|range|public|procedure|privileges|prior|primary|preserve|prepare|precision|position|path|partition|partial|parameter|pad|overlaps|over|output|outer|out|ordinality|order|or|option|open|only|on|old|of|octet_length|object|numeric|nullif|null|not|none|no|next|new|nclob|nchar|natural|national|names|multiset|month|module|modifies|minute|min|method|merge|member|max|match|map|lower|loop|locator|localtimestamp|localtime|local|like|level|left|leave|leading|lateral|last|large|language|key|join|iterate|isolation|is|into|interval|intersect|integer|int|insert|insensitive|input|inout|inner|initially|indicator|in|immediate|if|identity|hour|hold|having|handler|grouping|group|grant|goto|go|global|get|general|function|full|from|free|found|foreign|for|float|first|filter|fetch|false|extract|external|exit|exists|execute|exec|exception|except|escape|equals|end|elseif|else|element|each|dynamic|drop|double|domain|do|distinct|disconnect|diagnostics|deterministic|descriptor|describe|desc|deref|depth|delete|deferred|deferrable|default|declare|decimal|dec|deallocate|day|date|data|cycle|cursor|current_user|current_transform_group_for_type|current_timestamp|current_time|current_role|current_path|current_default_transform_group|current_date|current|cube|cross|create|count|corresponding|convert|continue|contains|constructor|constraints|constraint|connection|connect|condition|commit|column|collation|collate|coalesce|close|clob|check|character_length|character|char_length|char|catalog|cast|case|cascaded|cascade|called|call|by|breadth|both|boolean|blob|bit_length|bit|binary|bigint|between|begin|before|avg|authorization|atomic|at|asymmetric|assertion|asensitive|asc|as|array|are|any|and|alter|allocate|all|after|add|action|absolute|ZONE|YEAR|WRITE|WORK|WITHOUT|WITHIN|WITH|WINDOW|WHILE|WHERE|WHENEVER|WHEN|VIEW|VARYING|VARCHAR|VALUES|VALUE|USING|USER|USAGE|UPPER|UPDATE|UNTIL|UNNEST|UNKNOWN|UNIQUE|UNION|UNDO|UNDER|TRUE|TRIM|TRIGGER|TREAT|TRANSLATION|TRANSLATE|TRANSACTION|TRAILING|TO|TIMEZONE_MINUTE|TIMEZONE_HOUR|TIMESTAMP|TIME|THEN|TEMPORARY|TABLESAMPLE|TABLE|SYSTEM_USER|SYSTEM|SYMMETRIC|SUM|SUBSTRING|SUBMULTISET|STATIC|STATE|START|SQLWARNING|SQLSTATE|SQLEXCEPTION|SQLERROR|SQLCODE|SQL|SPECIFICTYPE|SPECIFIC|SPACE|SOME|SMALLINT|SIZE|SIMILAR|SIGNAL|SETS|SET|SESSION_USER|SESSION|SENSITIVE|SELECT|SECTION|SECOND|SEARCH|SCROLL|SCOPE|SCHEMA|SAVEPOINT|ROWS|ROW|ROUTINE|ROLLUP|ROLLBACK|ROLE|RIGHT|REVOKE|RETURNS|RETURN|RESULT|RESTRICT|RESIGNAL|REPEAT|RELEASE|RELATIVE|REFERENCING|REFERENCES|REF|RECURSIVE|REAL|READS|READ|RANGE|PUBLIC|PROCEDURE|PRIVILEGES|PRIOR|PRIMARY|PRESERVE|PREPARE|PRECISION|POSITION|PATH|PARTITION|PARTIAL|PARAMETER|PAD|OVERLAPS|OVER|OUTPUT|OUTER|OUT|ORDINALITY|ORDER|OR|OPTION|OPEN|ONLY|ON|OLD|OF|OCTET_LENGTH|OBJECT|NUMERIC|NULLIF|NULL|NOT|NONE|NO|NEXT|NEW|NCLOB|NCHAR|NATURAL|NATIONAL|NAMES|MULTISET|MONTH|MODULE|MODIFIES|MINUTE|MIN|METHOD|MERGE|MEMBER|MAX|MATCH|MAP|LOWER|LOOP|LOCATOR|LOCALTIMESTAMP|LOCALTIME|LOCAL|LIKE|LEVEL|LEFT|LEAVE|LEADING|LATERAL|LAST|LARGE|LANGUAGE|KEY|JOIN|ITERATE|ISOLATION|IS|INTO|INTERVAL|INTERSECT|INTEGER|INT|INSERT|INSENSITIVE|INPUT|INOUT|INNER|INITIALLY|INDICATOR|IN|IMMEDIATE|IF|IDENTITY|HOUR|HOLD|HAVING|HANDLER|GROUPING|GROUP|GRANT|GOTO|GO|GLOBAL|GET|GENERAL|FUNCTION|FULL|FROM|FREE|FOUND|FOREIGN|FOR|FLOAT|FIRST|FILTER|FETCH|FALSE|EXTRACT|EXTERNAL|EXIT|EXISTS|EXECUTE|EXEC|EXCEPTION|EXCEPT|ESCAPE|EQUALS|END|ELSEIF|ELSE|ELEMENT|EACH|DYNAMIC|DROP|DOUBLE|DOMAIN|DO|DISTINCT|DISCONNECT|DIAGNOSTICS|DETERMINISTIC|DESCRIPTOR|DESCRIBE|DESC|DEREF|DEPTH|DELETE|DEFERRED|DEFERRABLE|DEFAULT|DECLARE|DECIMAL|DEC|DEALLOCATE|DAY|DATE|DATA|CYCLE|CURSOR|CURRENT_USER|CURRENT_TRANSFORM_GROUP_FOR_TYPE|CURRENT_TIMESTAMP|CURRENT_TIME|CURRENT_ROLE|CURRENT_PATH|CURRENT_DEFAULT_TRANSFORM_GROUP|CURRENT_DATE|CURRENT|CUBE|CROSS|CREATE|COUNT|CORRESPONDING|CONVERT|CONTINUE|CONTAINS|CONSTRUCTOR|CONSTRAINTS|CONSTRAINT|CONNECTION|CONNECT|CONDITION|COMMIT|COLUMN|COLLATION|COLLATE|COALESCE|CLOSE|CLOB|CHECK|CHARACTER_LENGTH|CHARACTER|CHAR_LENGTH|CHAR|CATALOG|CAST|CASE|CASCADED|CASCADE|CALLED|CALL|BY|BREADTH|BOTH|BOOLEAN|BLOB|BIT_LENGTH|BIT|BINARY|BIGINT|BETWEEN|BEGIN|BEFORE|AVG|AUTHORIZATION|ATOMIC|AT|ASYMMETRIC|ASSERTION|ASENSITIVE|ASC|AS|ARRAY|ARE|ANY|AND|ALTER|ALLOCATE|ALL|AFTER|ADD|ACTION|ABSOLUTE)(?=[^a-zA-Z])", + "name" : "context.keyword.reserved.standard.sql" + }, + "number" : { + "match" : "[\u005C-]?[0-9]+(\u005C.[0-9]+)?([eEpP]\u005C-?[0-9]+)?", + "name" : "context.number.number.sql" + }, + "operator" : { + "match" : "\u005C~|}|\u005C||{|\u005C^|\u005C]|\u005C[|\u005C?|>|=|<|;|:|/|\u005C.|\u005C-|\u005C+|\u005C*|\u005C)|\u005C(|\u005C&|\u005C%|\u005C!", + "name" : "context.special.operator.sql" + }, + "string_double" : { + "captures" : { + "1" : { + "name" : "context.special.doublequoted.open.sql" + }, + "2" : { + "name" : "context.text.doublequoted.text.sql" + }, + "3" : { + "name" : "context.special.doublequoted.close.sql" + } + }, + "match" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)" + }, + "string_reverse" : { + "captures" : { + "1" : { + "name" : "context.special.reversequoted.open.sql" + }, + "2" : { + "name" : "context.text.reversequoted.text.sql" + }, + "3" : { + "name" : "context.special.reversequoted.close.sql" + } + }, + "match" : "(`)((?:\u005C\u005C`|[^`])*)(`)" + }, + "string_single" : { + "captures" : { + "1" : { + "name" : "context.special.singlequoted.open.sql" + }, + "2" : { + "name" : "context.text.singlequoted.text.sql" + }, + "3" : { + "name" : "context.special.singlequoted.close.sql" + } + }, + "match" : "(')((?:\u005C\u005C'|[^'])*)(')" + } + }, + "scopeName" : "source.context.sql", + "version" : "1.0.0" +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json new file mode 100644 index 000000000..c96ab831a --- /dev/null +++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json @@ -0,0 +1,240 @@ +{ + "name" : "context.tex", + "patterns" : [ + { + "include" : "#comment" + }, + { + "include" : "#constant" + }, + { + "include" : "#lua_environment" + }, + { + "include" : "#lua_command" + }, + { + "include" : "#metafun_environment_o" + }, + { + "include" : "#metafun_environment_a" + }, + { + "include" : "#metafun_command" + }, + { + "include" : "#subsystem_prefix" + }, + { + "include" : "#subsystem_suffix" + }, + { + "include" : "#ifprimitive" + }, + { + "include" : "#helper" + }, + { + "include" : "#command" + }, + { + "include" : "#primitive" + }, + { + "include" : "#reserved" + }, + { + "include" : "#csname" + }, + { + "include" : "#escaped" + }, + { + "include" : "#grouping" + }, + { + "include" : "#special" + }, + { + "include" : "#extra" + } + ], + "repository" : { + "command" : { + "match" : "\u005C\u005C(zwnj|zwj|zstroke|zhook|zeta|zerowidthspace|zerowidthnobreakspace|zdotaccent|zcaron|zacute|ytilde|ymacron|yhook|ygrave|yen|ydotbelow|ydiaeresis|ycircumflex|yacute|xypos|xxfrac|xtwoheadrightarrow|xtwoheadleftarrow|xtriplerel|xsplitstring|xrightoverleftarrow|xrightleftharpoons|xrightharpoonup|xrightharpoondown|xrightarrow|xrel|xmlverbatim|xmlvalue|xmltofile|xmltobufferverbose|xmltobuffer|xmltext|xmltexentity|xmltag|xmlstrippednolines|xmlstripped|xmlstripnolines|xmlstrip|xmlsnippet|xmlshow|xmlsetup|xmlsetsetup|xmlsetparam|xmlsetpar|xmlsetinjectors|xmlsetfunction|xmlsetentity|xmlsetattribute|xmlsetatt|xmlsave|xmlresetsetups|xmlresetinjectors|xmlresetdocumentsetups|xmlremovesetup|xmlremovedocumentsetup|xmlremapnamespace|xmlremapname|xmlregisterns|xmlregisteredsetups|xmlregistereddocumentsetups|xmlrefatt|xmlraw|xmlpure|xmlprocessfile|xmlprocessdata|xmlprocessbuffer|xmlprettyprinttext|xmlprettyprint|xmlprependsetup|xmlprependdocumentsetup|xmlposition|xmlpos|xmlpath|xmlparam|xmlpar|xmlnonspace|xmlnamespace|xmlname|xmlmapvalue|xmlmain|xmlloadonly|xmlloadfile|xmlloaddirectives|xmlloaddata|xmlloadbuffer|xmllastpar|xmllastmatch|xmllastatt|xmllast|xmlinstalldirective|xmlinlineverbatim|xmlinlineprettyprinttext|xmlinlineprettyprint|xmlinjector|xmlinfo|xmlinclusions|xmlinclusion|xmlinclude|xmlflushtext|xmlflushspacewise|xmlflushpure|xmlflushlinewise|xmlflushdocumentsetups|xmlflushcontext|xmlflush|xmlfirst|xmlfilter|xmlelement|xmldoiftext|xmldoifselfempty|xmldoifnottext|xmldoifnotselfempty|xmldoifnotatt|xmldoifnot|xmldoifelsevalue|xmldoifelsetext|xmldoifelseselfempty|xmldoifelseempty|xmldoifelseatt|xmldoifelse|xmldoifatt|xmldoif|xmldisplayverbatim|xmldirectivesbefore|xmldirectivesafter|xmldirectives|xmldefaulttotext|xmlcount|xmlcontext|xmlconcatrange|xmlconcat|xmlcommand|xmlchecknamespace|xmlchainattdef|xmlchainatt|xmlbeforesetup|xmlbeforedocumentsetup|xmlbadinclusions|xmlattributedef|xmlattribute|xmlattdef|xmlatt|xmlapplyselectors|xmlappendsetup|xmlappenddocumentsetup|xmlall|xmlaftersetup|xmlafterdocumentsetup|xmladdindex|xmapsto|xleftrightharpoons|xleftrightarrow|xleftharpoonup|xleftharpoondown|xleftarrow|xi|xhookrightarrow|xhookleftarrow|xfrac|xequal|xdefconvertedargument|xRightarrow|xLeftrightarrow|xLeftarrow|writetolist|writestatus|writedatatolist|writebetweenlist|wr|wp|wordtonumber|words|wordright|word|withoutpt|widthspanningtext|widthofstring|widetilde|widehat|whitearrowupfrombar|weekday|wedgeeq|wedge|wdofstring|wcircumflex|vspacing|vspace|vsmashed|vsmashbox|vsmash|vpos|vphantom|vl|viewerlayer|vglue|veryraggedright|veryraggedleft|veryraggedcenter|verticalpositionbar|verticalgrowingbar|vert|version|verbosenumber|verbatimstring|verbatim|veeeq|veebar|vee|vec|vdots|vdash|vboxreference|vartheta|varsigma|varrho|varpi|varphi|varnothing|varkappa|varepsilon|varTheta|vDash|utilityregisterlength|utilde|utfupper|utflower|utfchar|usezipfile|useurl|usetypescriptfile|usetypescript|usetexmodule|usesymbols|usesubpath|usestaticMPfigure|usesetupsparameter|userpagenumber|usereferenceparameter|useproject|useprofileparameter|useproduct|usemodule|usemathstyleparameter|useluamodule|uselanguageparameter|useinterlinespaceparameter|useindentnextparameter|useindentingparameter|usegridparameter|usefile|usefigurebase|useexternalsoundtrack|useexternalrendering|useexternalfigure|useexternaldocument|useenvironment|usedummystyleparameter|usedummystyleandcolor|usedummycolorparameter|usedirectory|usecomponent|usecolors|usecitation|usebtxdefinitions|usebtxdataset|usebodyfontparameter|usebodyfont|useblocks|useblankparameter|usealignparameter|useURL|useMPvariables|useMPrun|useMPlibrary|useMPgraphic|useMPenvironmentbuffer|useJSscripts|url|uring|urcorner|upwhitearrow|upuparrows|upsilon|upperrightsinglesixquote|upperrightsingleninequote|upperrightdoublesixquote|upperrightdoubleninequote|upperleftsinglesixquote|upperleftsingleninequote|upperleftdoublesixquote|upperleftdoubleninequote|uppercasestring|uppercased|uplus|upharpoonright|upharpoonleft|updownarrows|updownarrowbar|updownarrow|updasharrow|uparrow|upand|uogonek|untexcommand|untexargument|unspacestring|unspaced|unspaceargument|unspaceafter|unregisterhyphenationpattern|unprotected|unknown|unittext|unitslow|unitshigh|unitlanguage|unit|uniqueMPpagegraphic|uniqueMPgraphic|unihex|unhhbox|unframed|unexpandeddocumentvariable|undoassign|understrikes|understrike|underset|underrightarrow|underrandoms|underrandom|underparent|underleftarrow|underdots|underdot|underdashes|underdash|underbracket|underbrace|underbars|underbar|undepthed|undefinevalue|umacron|ulcorner|uinvertedbreve|uhungarumlaut|uhorntilde|uhornhook|uhorngrave|uhorndotbelow|uhornacute|uhorn|uhook|ugrave|uedcatcodecommand|udoublegrave|udots|udotbelow|udiaeresismacron|udiaeresisgrave|udiaeresiscaron|udiaeresisacute|udiaeresis|uconvertnumber|ucircumflex|ucaron|ubreve|uacute|typesetfile|typesetbuffer|typescripttwo|typescriptthree|typescriptprefix|typescriptone|typeinlinebuffer|typefile|typeface|typedefinedbuffer|typebuffer|type|typ|txx|tx|twothirds|twosuperior|twoheaduparrow|twoheadrightarrowtail|twoheadrightarrow|twoheadleftarrow|twoheaddownarrow|twofifths|twodigitrounding|turnediota|ttwoheadrightarrow|ttwoheadleftarrow|ttriplerel|ttraggedright|tstroke|truefontname|truefilename|tripleverticalbar|tripleprime|triplebond|trightoverleftarrow|trightleftharpoons|trightharpoonup|trightharpoondown|trightarrow|triangleright|triangleq|triangleleft|triangledown|triangle|trel|transparent|transparencycomponents|translate|trademark|tracepositions|traceoutputroutines|tracedfontname|tracecatcodetables|topskippedbox|toprightbox|toplinebox|topleftbox|topbox|top|tooltip|tolinenote|tochar|to|tmapsto|tleftrightharpoons|tleftrightarrow|tleftharpoonup|tleftharpoondown|tleftarrow|tlap|title|tinyfont|times|tilde|tightlayer|tibetannumerals|threesuperior|threequarter|threeperemspace|threefifths|threeeighths|threedigitrounding|thorn|thookrightarrow|thookleftarrow|thook|thirdofthreeunexpanded|thirdofthreearguments|thirdofsixarguments|thirdoffourarguments|thirdoffivearguments|thinspace|thinrules|thinrule|thickspace|theta|theremainingcharacters|therefore|thenormalizedbodyfontsize|thefirstcharacter|thainumerals|thai|textyen|textvisiblespace|textunderscore|texttilde|textsterling|textslash|textrule|textring|textreference|textpm|textplus|textperiod|textpercent|textounce|textormathchars|textormathchar|textohm|textogonek|textnumero|textmultiply|textmu|textminus|textmho|textmath|textmacron|textlognot|textkelvin|texthyphen|texthungarumlaut|texthorizontalbar|texthash|textgrave|textfraction|textflowcollector|texteuro|textellipsis|textdotaccent|textdong|textdollar|textdiv|textdiaeresis|textdegree|textddag|textdag|textcurrency|textcontrolspace|textcomma|textcite|textcitation|textcircumflex|textcircledP|textcent|textcelsius|textcedilla|textcaron|textbullet|textbrokenbar|textbreve|textbraceright|textbraceleft|textbottomdot|textbottomcomma|textbar|textbackslash|textat|textasciitilde|textasciicircum|textampersand|textacute|textAngstrom|texsetup|texdefinition|tex|testtokens|testpagesync|testpageonly|testpage|testfeatureonce|testfeature|testcolumn|testandsplitstring|test|tequal|tcurl|tcommaaccent|tcedilla|tcaron|tbox|tbinom|tau|taglabeltext|taglabellanguage|taggedlabeltexts|taggedctxcommand|tabulaterule|tabulateline|tabulateautorule|tabulateautoline|tRightarrow|tLeftrightarrow|tLeftarrow|systemsetups|systemloglast|systemlogfirst|systemlog|synctexsetfilename|synctexresetfilename|synctexblockfilename|synchronizewhitespace|synchronizestrut|synchronizeoutputstreams|synchronizemarking|synchronizeindenting|synchronizeblank|symbolreference|symbol|switchtointerlinespace|switchtocolor|switchtobodyfont|switchstyleonly|swarrow|swaptypeface|swapmacros|swapface|swapdimens|swapcounts|surdradical|surd|supsetneqq|supsetneq|supseteqq|supseteq|supset|sum|suffixtext|suffixlanguage|succsim|succnsim|succneqq|succneq|succnapprox|succeqq|succeq|succcurlyeq|succapprox|succ|subtractfeature|subsubsubsubsubject|subsubsubsubsection|subsubsubsubject|subsubsubsection|subsubsubject|subsubsection|subsubject|substituteincommalist|subsetneqq|subsetneq|subseteqq|subseteq|subset|subsentence|subsection|subpagenumber|subject|styleinstance|style|strutwd|struttedbox|struthtdp|strutht|strutgap|strutdp|strut|structurevariable|structureuservariable|structuretitle|structurenumber|structurelistuservariable|stripspaces|strippedcsname|stripcharacter|strictdoifnextoptionalelse|strictdoifelsenextoptional|stretched|stopxtablenext|stopxtablehead|stopxtablefoot|stopxtablebody|stopxtable|stopxrowgroup|stopxrow|stopxmlsetups|stopxmlraw|stopxmlinlineverbatim|stopxmldisplayverbatim|stopxgroup|stopxcolumn|stopxcellgroup|stopxcell|stopvtopregister|stopvtop|stopviewerlayer|stopvboxtohboxseparator|stopvboxtohbox|stopvboxregister|stopvbox|stopusingbtxspecification|stopuserdata|stopusemathstyleparameter|stopuseMPgraphic|stopusableMPgraphic|stopunpacked|stopunittext|stopuniqueMPpagegraphic|stopuniqueMPgraphic|stoptyping|stoptypescriptcollection|stoptypescript|stoptransparent|stoptokens|stoptokenlist|stoptitle|stoptextrule|stoptextmakeup|stoptextflow|stoptextcolorintent|stoptextcolor|stoptextbackgroundmanual|stoptextbackground|stoptext|stoptexdefinition|stoptexcode|stoptaglabeltext|stoptagged|stoptabulatetail|stoptabulatehead|stoptabulate|stoptabletext|stoptabletail|stoptables|stoptablehead|stoptable|stopsymbolset|stopsuffixtext|stopsubsubsubsubsubject|stopsubsubsubsubsection|stopsubsubsubsubject|stopsubsubsubsection|stopsubsubsubject|stopsubsubsection|stopsubsubject|stopsubstack|stopsubsentence|stopsubsection|stopsubjectlevel|stopsubject|stopsubformulas|stopstyle|stopstrut|stopstructurepageregister|stopstrictinspectnextcharacter|stopstaticMPgraphic|stopstaticMPfigure|stopstandardmakeup|stopspread|stopsplittext|stopsplitformula|stopspformula|stopspeech|stopspecialitem|stopsimplecolumns|stopsidebar|stopshift|stopshapebox|stopsetups|stopsectionlevel|stopsectionblockenvironment|stopsectionblock|stopsection|stopsdformula|stopscript|stopruby|stoprightaligned|stopreusableMPgraphic|stopregister|stopregime|stopreferenceprefix|stopreadingfile|stoprawsetups|stoprandomseed|stoprandomized|stopquote|stopquotation|stoppunctuation|stoppublication|stopprotectedcolors|stopprotect|stopproject|stopproduct|stopprocesscommalist|stopprocesscommacommand|stopprocessassignmentlist|stopprocessassignmentcommand|stopprefixtext|stoppostponingnotes|stoppostponing|stoppositive|stoppositionoverlay|stoppositioning|stopplacetable|stopplacepairedbox|stopplacelegend|stopplaceintermezzo|stopplacegraphic|stopplaceformula|stopplacefloat|stopplacefigure|stopplacechemical|stoppath|stoppart|stopparbuilder|stopparagraphscell|stopparagraphs|stopparagraph|stoppar|stoppagemakeup|stoppagelayout|stoppagefigure|stoppagecomment|stoppagecolumns|stoppacked|stopoverprint|stopoverlay|stopoutputstream|stopopposite|stopoperatortext|stopnotmode|stopnotext|stopnotallmodes|stopnointerference|stopnicelyfilledbox|stopnegative|stopnarrower|stopnarrow|stopnamedsubformulas|stopnamedsection|stopmpformula|stopmoduletestsection|stopmodule|stopmodeset|stopmode|stopmixedcolumns|stopmiddlemakeup|stopmiddlealigned|stopmidaligned|stopmdformula|stopmaxaligned|stopmatrix|stopmatrices|stopmathstyle|stopmathmode|stopmathmatrix|stopmathlabeltext|stopmathcases|stopmathalignment|stopmarkpages|stopmarkedcontent|stopmarginrule|stopmarginblock|stopmakeup|stopluasetups|stopluaparameterset|stopluacode|stoplua|stoplocalsetups|stoplocalnotes|stoplocallinecorrection|stoplocalheadsetup|stoplocalfootnotes|stoplinetablehead|stoplinetablecell|stoplinetablebody|stoplinetable|stoplines|stoplinenumbering|stoplinenote|stoplinefiller|stoplinecorrection|stoplinealignment|stopline|stoplegend|stopleftaligned|stoplayout|stoplanguage|stoplabeltext|stopknockout|stopitemize|stopitemgroupcolumns|stopitemgroup|stopitem|stopintertext|stopintermezzotext|stopinterface|stopinteractionmenu|stopinteraction|stopindentedtext|stopindentation|stopimath|stophyphenation|stophighlight|stophiding|stophelptext|stopheadtext|stophead|stophboxregister|stophboxestohbox|stophbox|stophanging|stopgridsnapping|stopgraphictext|stopgoto|stopfrontmatter|stopframedtext|stopframedtable|stopframedrow|stopframedcontent|stopframedcell|stopframed|stopformulas|stopformula|stopfootnote|stopfontsolution|stopfontclass|stopfont|stopfloatcombination|stopfixed|stopfittingpage|stopfiguretext|stopfigure|stopfact|stopfacingfloat|stopexternalfigurecollection|stopextendedcatcodetable|stopexpandedcollect|stopexpanded|stopexceptions|stopenvironment|stopendofline|stopendnote|stopembeddedxtable|stopelement|stopeffect|stopdocument|stopdmath|stopdisplaymath|stopdelimitedtext|stopdelimited|stopcurrentlistentrywrapper|stopcurrentcolor|stopctxfunctiondefinition|stopctxfunction|stopcontextdefinitioncode|stopcontextcode|stopcomponent|stopcomment|stopcombination|stopcolumnspan|stopcolumnsetspan|stopcolumnset|stopcolumns|stopcolorset|stopcoloronly|stopcolorintent|stopcolor|stopcollecting|stopcollect|stopchemicaltext|stopchemical|stopcheckedfences|stopcharacteralign|stopchapter|stopcenteraligned|stopcatcodetable|stopcases|stopbuffer|stopbtxrenderingdefinitions|stopbtxlabeltext|stopboxedcolumns|stopbordermatrix|stopbodymatter|stopblockquote|stopbitmapimage|stopbbordermatrix|stopbar|stopbackmatter|stopbackground|stopattachment|stopaside|stoparrangedpages|stopappendices|stopallmodes|stopalignment|stopalign|stopXML|stopTY|stopTX|stopTRs|stopTR|stopTN|stopTH|stopTEXpage|stopTEX|stopTDs|stopTD|stopTC|stopTABLEnext|stopTABLEhead|stopTABLEfoot|stopTABLEbody|stopTABLE|stopPARSEDXML|stopMPrun|stopMPpositionmethod|stopMPpositiongraphic|stopMPpage|stopMPinitializations|stopMPinclusions|stopMPextensions|stopMPenvironment|stopMPdrawing|stopMPdefinitions|stopMPcode|stopMPclip|stopMP|stopLUA|stopJSpreamble|stopJScode|stligature|startxtablenext|startxtablehead|startxtablefoot|startxtablebody|startxtable|startxrowgroup|startxrow|startxmlsetups|startxmlraw|startxmlinlineverbatim|startxmldisplayverbatim|startxgroup|startxcolumn|startxcellgroup|startxcell|startvtopregister|startvtop|startviewerlayer|startvboxtohboxseparator|startvboxtohbox|startvboxregister|startvbox|startusingbtxspecification|startuserdata|startusemathstyleparameter|startuseMPgraphic|startusableMPgraphic|startunpacked|startunittext|startuniqueMPpagegraphic|startuniqueMPgraphic|starttyping|starttypescriptcollection|starttypescript|starttransparent|starttokens|starttokenlist|starttitle|starttextrule|starttextmakeup|starttextflow|starttextcolorintent|starttextcolor|starttextbackgroundmanual|starttextbackground|starttext|starttexdefinition|starttexcode|starttaglabeltext|starttagged|starttabulatetail|starttabulatehead|starttabulate|starttabletext|starttabletail|starttables|starttablehead|starttable|startsymbolset|startsuffixtext|startsubsubsubsubsubject|startsubsubsubsubsection|startsubsubsubsubject|startsubsubsubsection|startsubsubsubject|startsubsubsection|startsubsubject|startsubstack|startsubsentence|startsubsection|startsubjectlevel|startsubject|startsubformulas|startstyle|startstrut|startstructurepageregister|startstrictinspectnextcharacter|startstaticMPgraphic|startstaticMPfigure|startstandardmakeup|startspread|startsplittext|startsplitformula|startspformula|startspeech|startspecialitem|startsimplecolumns|startsidebar|startshift|startshapebox|startsetups|startsectionlevel|startsectionblockenvironment|startsectionblock|startsection|startsdformula|startscript|startruby|startrightaligned|startreusableMPgraphic|startregister|startregime|startreferenceprefix|startreadingfile|startrawsetups|startrandomseed|startrandomized|startquote|startquotation|startpunctuation|startpublication|startprotectedcolors|startprotect|startproject|startproduct|startprocesscommalist|startprocesscommacommand|startprocessassignmentlist|startprocessassignmentcommand|startprefixtext|startpostponingnotes|startpostponing|startpositive|startpositionoverlay|startpositioning|startplacetable|startplacepairedbox|startplacelegend|startplaceintermezzo|startplacegraphic|startplaceformula|startplacefloat|startplacefigure|startplacechemical|startpath|startpart|startparbuilder|startparagraphscell|startparagraphs|startparagraph|startpar|startpagemakeup|startpagelayout|startpagefigure|startpagecomment|startpagecolumns|startpacked|startoverprint|startoverlay|startoutputstream|startopposite|startoperatortext|startnotmode|startnotext|startnotallmodes|startnointerference|startnicelyfilledbox|startnegative|startnarrower|startnarrow|startnamedsubformulas|startnamedsection|startmpformula|startmoduletestsection|startmodule|startmodeset|startmode|startmixedcolumns|startmiddlemakeup|startmiddlealigned|startmidaligned|startmdformula|startmaxaligned|startmatrix|startmatrices|startmathstyle|startmathmode|startmathmatrix|startmathlabeltext|startmathcases|startmathalignment|startmarkpages|startmarkedcontent|startmarginrule|startmarginblock|startmakeup|startluasetups|startluaparameterset|startluacode|startlua|startlocalsetups|startlocalnotes|startlocallinecorrection|startlocalheadsetup|startlocalfootnotes|startlinetablehead|startlinetablecell|startlinetablebody|startlinetable|startlines|startlinenumbering|startlinenote|startlinefiller|startlinecorrection|startlinealignment|startline|startlegend|startleftaligned|startlayout|startlanguage|startlabeltext|startknockout|startitemize|startitemgroupcolumns|startitemgroup|startitem|startintertext|startintermezzotext|startinterface|startinteractionmenu|startinteraction|startindentedtext|startindentation|startimath|starthyphenation|starthighlight|starthiding|starthelptext|startheadtext|starthead|starthboxregister|starthboxestohbox|starthbox|starthanging|startgridsnapping|startgraphictext|startgoto|startfrontmatter|startframedtext|startframedtable|startframedrow|startframedcontent|startframedcell|startframed|startformulas|startformula|startfootnote|startfontsolution|startfontclass|startfont|startfloatcombination|startfixed|startfittingpage|startfiguretext|startfigure|startfact|startfacingfloat|startexternalfigurecollection|startextendedcatcodetable|startexpandedcollect|startexpanded|startexceptions|startenvironment|startendofline|startendnote|startembeddedxtable|startelement|starteffect|startdocument|startdmath|startdisplaymath|startdelimitedtext|startdelimited|startcurrentlistentrywrapper|startcurrentcolor|startctxfunctiondefinition|startctxfunction|startcontextdefinitioncode|startcontextcode|startcomponent|startcomment|startcombination|startcolumnspan|startcolumnsetspan|startcolumnset|startcolumns|startcolorset|startcoloronly|startcolorintent|startcolor|startcollecting|startcollect|startchemicaltext|startchemical|startcheckedfences|startcharacteralign|startchapter|startcenteraligned|startcatcodetable|startcases|startbuffer|startbtxrenderingdefinitions|startbtxlabeltext|startboxedcolumns|startbordermatrix|startbodymatter|startblockquote|startbitmapimage|startbbordermatrix|startbar|startbackmatter|startbackground|startattachment|startaside|startarrangedpages|startappendices|startallmodes|startalignment|startalign|startXML|startTY|startTX|startTRs|startTR|startTN|startTH|startTEXpage|startTEX|startTDs|startTD|startTC|startTABLEnext|startTABLEhead|startTABLEfoot|startTABLEbody|startTABLE|startPARSEDXML|startMPrun|startMPpositionmethod|startMPpositiongraphic|startMPpage|startMPinitializations|startMPinclusions|startMPextensions|startMPenvironment|startMPdrawing|startMPdefinitions|startMPcode|startMPclip|startMP|startLUA|startJSpreamble|startJScode|stareq|star|stackrel|ssharp|squaredots|square|sqsupsetneq|sqsupseteq|sqsupset|sqsubsetneq|sqsubseteq|sqsubset|sqrt|sqcup|sqcap|spreadhbox|splitstring|splitofftype|splitofftokens|splitoffroot|splitoffpath|splitoffname|splitoffkind|splitofffull|splitoffbase|splitfrac|splitfloat|splitfilename|splitdfrac|splitatperiod|splitatcomma|splitatcolons|splitatcolon|splitatasterisk|sphericalangle|speech|spanishnumerals|spanishNumerals|spadesuit|spaceddigitssymbol|spaceddigitsseparator|spaceddigitsmethod|spaceddigits|space|somewhere|someplace|somenamedheadnumber|somelocalfloat|someline|somekindoftab|someheadnumber|solidus|softhyphen|snaptogrid|smile|smashedvbox|smashedhbox|smashboxed|smashbox|smash|smalltype|smallslantedbold|smallslanted|smallskip|smallnormal|smallitalicbold|smaller|smallcappedromannumerals|smallcappedcharacters|smallboldslanted|smallbolditalic|smallbold|smallbodyfont|small|sloveniannumerals|slovenianNumerals|slong|slicepages|slash|slantedface|slantedbold|slanted|sixthofsixarguments|sixperemspace|singleverticalbar|singlebond|singalcharacteralign|simplereversealignedboxplus|simplereversealignedbox|simplegroupedcommand|simplealignedspreadbox|simplealignedboxplus|simplealignedbox|simeq|sim|signalrightpage|sigma|showwarning|showvariable|showvalue|showtrackers|showtokens|showtimer|showsymbolset|showstruts|showsetupsdefinition|showsetups|showprint|showparentchain|showpalet|showotfcomposition|shownextbox|showminimalbaseline|showmessage|showmargins|showmakeup|showlogcategories|showligatures|showligature|showlayoutcomponents|showlayout|showkerning|showjustification|showinjector|showhyphens|showhyphenationtrace|showhelp|showgridsnapping|showgrid|showglyphs|showglyphdata|showframe|showfontstyle|showfontstrip|showfontparameters|showfontkerns|showfontitalics|showfontexpansion|showfontdata|showfont|showexperiments|showedebuginfo|showdirsinmargin|showdirectives|showcounter|showcolorstruts|showcolorset|showcolorgroup|showcolorcomponents|showcolorbar|showcolor|showcharratio|showchardata|showbtxtables|showbtxhashedauthors|showbtxfields|showbtxdatasetfields|showbtxdatasetcompleteness|showbtxdatasetauthors|showboxes|showbodyfontenvironment|showbodyfont|showattributes|showallmakeup|shiftup|shiftdown|shiftbox|sharp|shapedhbox|sfrac|seveneighths|setxvariables|setxvariable|setxvalue|setxmeasure|setwidthof|setvtopregister|setvisualizerfont|setvboxregister|setvariables|setvariable|setvalue|setuxvalue|setuvalue|setupxtable|setupxml|setupwithargumentswapped|setupwithargument|setupwhitespace|setupvspacing|setupviewerlayer|setupversion|setupuserpagenumber|setupuserdataalternative|setupuserdata|setupurl|setupunittext|setupunit|setuptyping|setuptype|setuptoptexts|setuptop|setuptooltip|setuptolerance|setupthinrules|setuptexttexts|setuptextrules|setuptextflow|setuptextbackground|setuptext|setuptaglabeltext|setuptagging|setuptabulation|setuptabulate|setuptables|setupsynonyms|setupsynctex|setupsymbolset|setupsuffixtext|setupsubpagenumber|setupsubformulas|setupsubformula|setupstyle|setupstruts|setupstretched|setupstartstop|setupspellchecking|setupspacing|setupsorting|setupsidebar|setupshift|setupselector|setupsectionblock|setupscripts|setupscript|setupscale|setups|setupruby|setuprotate|setuprenderingwindow|setupregisters|setupregister|setupreferencing|setupreferencestructureprefix|setupreferenceprefix|setupreferenceformat|setuprealpagenumber|setupquote|setupquotation|setupprograms|setupprofile|setupprocessor|setupprefixtext|setuppositioning|setuppositionbar|setupplacement|setupperiods|setupperiodkerning|setupparallel|setupparagraphs|setupparagraphnumbering|setupparagraphintro|setupparagraph|setuppapersize|setuppaper|setuppalet|setuppairedbox|setuppagetransitions|setuppagestate|setuppageshift|setuppagenumbering|setuppagenumber|setuppageinjectionalternative|setuppageinjection|setuppagecomment|setuppagecolumns|setuppagechecker|setupoutputroutine|setupoppositeplacing|setupoperatortext|setupoffsetbox|setupoffset|setupnotes|setupnote|setupnotations|setupnotation|setupnarrower|setupmodule|setupmixedcolumns|setupmathstyle|setupmathstackers|setupmathradical|setupmathornament|setupmathmatrix|setupmathlabeltext|setupmathframed|setupmathfractions|setupmathfraction|setupmathfence|setupmathematics|setupmathcases|setupmathalignment|setupmarking|setupmarginrules|setupmarginrule|setupmarginframed|setupmargindata|setupmarginblock|setupmakeup|setuplowmidhigh|setuplowhigh|setuplow|setuplocalinterlinespace|setuplocalfloats|setuplistextra|setuplistalternative|setuplist|setuplinewidth|setuplinetable|setuplines|setuplinenumbering|setuplinenote|setuplinefillers|setuplinefiller|setuplegend|setuplayouttext|setuplayout|setuplayeredtext|setuplayer|setuplanguage|setuplabeltext|setuplabel|setupitems|setupitemize|setupitemizations|setupitemgroup|setupitaliccorrection|setupinterlinespace|setupinteractionscreen|setupinteractionmenu|setupinteractionbar|setupinteraction|setupinsertion|setupinitial|setupindex|setupindenting|setupindentedtext|setuphyphenmark|setuphyphenation|setuphighlight|setuphigh|setuphelp|setupheadtext|setupheads|setupheadnumber|setupheadertexts|setupheader|setupheadalternative|setuphead|setupglobalreferenceprefix|setupframedtexts|setupframedtext|setupframedtablerow|setupframedtablecolumn|setupframedtable|setupframedcontent|setupframed|setupformulaframed|setupformulae|setupformula|setupforms|setupfootertexts|setupfooter|setupfontsolution|setupfonts|setupfontprotrusion|setupfontexpansion|setupfloatsplitting|setupfloats|setupfloatframed|setupfloat|setupfittingpage|setupfirstline|setupfillinrules|setupfillinlines|setupfiller|setupfieldtotalframed|setupfields|setupfieldlabelframed|setupfieldcontentframed|setupfieldcategory|setupfieldbody|setupfield|setupfacingfloat|setupexternalsoundtracks|setupexternalfigure|setupexport|setupenv|setupenumerations|setupenumeration|setupeffect|setupdocument|setupdirections|setupdescription|setupdelimitedtext|setupdataset|setupcounter|setupcontent|setupcomment|setupcombinedlist|setupcombination|setupcolumnspan|setupcolumnsetstart|setupcolumnsetspan|setupcolumnsetlines|setupcolumnsetareatext|setupcolumnsetarea|setupcolumnset|setupcolumns|setupcolors|setupcolor|setupcollector|setupclipping|setupchemicalframed|setupchemical|setupcharacterspacing|setupcharacterkerning|setupcharacteralign|setupcaptions|setupcaption|setupcapitals|setupbutton|setupbuffer|setupbtxrendering|setupbtxregister|setupbtxlist|setupbtxlabeltext|setupbtxdataset|setupbtx|setupbottomtexts|setupbottom|setupbookmark|setupbodyfont|setupblock|setupbleeding|setupblank|setupblackrules|setupbars|setupbar|setupbackgrounds|setupbackground|setupbackend|setupattachments|setupattachment|setuparranging|setupalternativestyles|setupalign|setupTEXpage|setupTABLE|setupMPvariables|setupMPpage|setupMPinstance|setupMPgraphics|setup|setunreferencedobject|setugvalue|setuevalue|settrialtypesetting|settokenlist|settightunreferencedobject|settightstrut|settightreferencedobject|settightobject|settextcontent|settaggedmetadata|settabular|setsystemmode|setsuperiors|setstrut|setstructurepageregister|setstackbox|setsmallcaps|setsmallbodyfont|setsimplecolumnhsize|setsectionblock|setsecondpasscharacteralign|setscript|setrigidcolumnhsize|setrigidcolumnbalance|setreplacement|setregisterentry|setreferencedobject|setreference|setrandomseed|setprofile|setpositionstrut|setpositionplus|setpositiononly|setpositiondataplus|setpositiondata|setpositionbox|setposition|setperiodkerning|setpercentdimen|setpenalties|setpagestaterealpageno|setpagestate|setpagereference|setoldstyle|setobject|setnotetext|setnote|setnostrut|setmode|setminus|setmessagetext|setmeasure|setmathstyle|setmarking|setmarker|setmainparbuilder|setmainbodyfont|setlocalscript|setlocalhsize|setlinefiller|setlayertext|setlayerframed|setlayer|setitaliccorrection|setinternalrendering|setinterfacevariable|setinterfacemessage|setinterfaceelement|setinterfaceconstant|setinterfacecommand|setinteraction|setinjector|setinitial|sethyphenationfeatures|sethyphenatedurlnormal|sethyphenatedurlbefore|sethyphenatedurlafter|sethboxregister|setgvariables|setgvariable|setgvalue|setgmeasure|setglobalscript|setfontstrut|setfontsolution|setfontfeature|setfontcolorsheme|setfont|setflag|setfirstpasscharacteralign|setfirstline|setevariables|setevariable|setevalue|setemeasure|setelementexporttag|setdummyparameter|setdocumentfilename|setdocumentargumentdefault|setdocumentargument|setdirection|setdigitsmanipulation|setdefaultpenalties|setdataset|setcurrentfontclass|setcounterown|setcounter|setcolormodell|setcollector|setcharstrut|setcharacterstripping|setcharacterspacing|setcharacterkerning|setcharactercleaning|setcharactercasing|setcharacteraligndetail|setcharacteralign|setcatcodetable|setcapstrut|setbreakpoints|setboxlly|setboxllx|setbigbodyfont|setbar|setautopagestaterealpageno|setMPvariables|setMPvariable|setMPtext|setMPpositiongraphicrange|setMPpositiongraphic|setMPlayer|setJSpreamble|serifnormal|serifbold|serif|serializedcommalist|serializecommalist|selectblocks|select|seeindex|sectionmark|section|secondoftwounexpanded|secondoftwoarguments|secondofthreeunexpanded|secondofthreearguments|secondofsixarguments|secondoffourarguments|secondoffivearguments|searrow|screen|scommaaccent|scircumflex|schwahook|schwa|scedilla|scaron|scale|sbox|savetwopassdata|savetaggedtwopassdata|savenormalmeaning|savecurrentattributes|savecounter|savebuffer|savebtxdataset|savebox|sansserif|sansnormal|sansbold|sans|samplefile|safechar|sacute|rvert|runninghbox|runMPbuffer|ruledvtop|ruledvpack|ruledvbox|ruledtpack|ruledtopv|ruledmbox|ruledhpack|ruledhbox|ruby|rtop|rtimes|rrointerval|rrbracket|rrangle|rparent|rotate|rootradical|romanxii|romanxi|romanx|romanviii|romanvii|romanvi|romanv|romannumerals|romanm|romanl|romanix|romaniv|romaniii|romanii|romani|romand|romanc|romanXII|romanXI|romanX|romanVIII|romanVII|romanVI|romanV|romanM|romanL|romanIX|romanIV|romanIII|romanII|romanI|romanD|romanC|roman|rollbutton|rointerval|robustpretocommalist|robustdoifinsetelse|robustdoifelseinset|robustaddtocommalist|rneq|rmoustache|rlointerval|rlap|risingdotseq|rinvertedbreve|rinterval|ring|rightwhitearrow|rightwavearrow|righttopbox|righttoleftvtop|righttoleftvbox|righttolefthbox|righttoleft|rightthreetimes|rightthreearrows|rightsubguillemot|rightsquigarrow|rightskipadaption|rightrightarrows|rightpageorder|rightorleftpageaction|rightmathlabeltext|rightline|rightleftharpoons|rightleftarrows|rightlabeltext|rightheadtext|righthbox|rightharpoonup|rightharpoondown|rightguillemot|rightdasharrow|rightbox|rightbottombox|rightarrowtriangle|rightarrowtail|rightarrowbar|rightarrow|rightangle|rightaligned|right|rhookswarrow|rhooknearrow|rho|rhbox|rgroup|rfloor|rfence|revivefeature|reversedtripleprime|reversedprime|reverseddoubleprime|reuserandomseed|reuseMPgraphic|reusableMPgraphic|restriction|restoreglobalbodyfont|restoreendofline|restorecurrentattributes|restorecounter|restorecatcodes|restorebox|restartcounter|resolvedglyphstyled|resolvedglyphdirect|reshapebox|resetvisualizers|resetvalue|resetuserpagenumber|resetusedsynonyms|resetusedsortings|resettrialtypesetting|resettrackers|resettokenlist|resettimer|resetsystemmode|resetsymbolset|resetsubpagenumber|resetshownsynonyms|resetsetups|resetscript|resetreplacement|resetreference|resetrecurselevel|resetprofile|resetperiodkerning|resetpenalties|resetpath|resetparallel|resetpagenumber|resetmode|resetmarking|resetmarker|resetlocalfloats|resetlayer|resetitaliccorrection|resetinteractionmenu|resetinjector|resethyphenationfeatures|resetfontsolution|resetfontfallback|resetfontcolorsheme|resetflag|resetfeature|resetdirection|resetdigitsmanipulation|resetcounter|resetcollector|resetcharacterstripping|resetcharacterspacing|resetcharacterkerning|resetcharacteralign|resetbuffer|resetbreakpoints|resetboxesincache|resetbar|resetandaddfeature|resetallattributes|resetMPinstance|resetMPenvironment|resetMPdrawing|rescanwithsetup|rescan|replaceword|replaceincommalist|replacefeature|removeunwantedspaces|removetoks|removesubstring|removepunctuation|removemarkedcontent|removelastspace|removelastskip|removefromcommalist|removedepth|removebottomthings|remark|remainingcharacters|relbar|relaxvalueifundefined|relateparameterhandlers|relatemarking|regular|registerunit|registersynonym|registersort|registermenubuttons|registerhyphenationpattern|registerhyphenationexception|registerfontclass|registerexternalfigure|registered|registerctxluafile|registerattachment|referring|referenceprefix|reference|ref|redoconvertfont|recursestring|recurselevel|recursedepth|realsmallcapped|reals|realpagenumber|realSmallcapped|realSmallCapped|readxmlfile|readtexfile|readsysfile|readsetfile|readlocfile|readjobfile|readfixfile|readfile|rdoublegrave|rcommaaccent|rceil|rcaron|rbracket|rbrace|rbox|rawsubcountervalue|rawstructurelistuservariable|rawprocesscommalist|rawprocesscommacommand|rawprocessaction|rawgetparameters|rawdoifinsetelse|rawdoifinset|rawdoifelseinset|rawdate|rawcountervalue|rawcounter|rationals|rangle|randomnumber|randomizetext|raisebox|raggedwidecenter|raggedright|raggedleft|raggedcenter|raggedbottom|racute|rVert|quotesinglebase|quotesingle|quoteright|quoteleft|quotedblright|quotedblleft|quotedblbase|quotedbl|quote|quotation|quittypescriptscanning|quitprevcommalist|quitcommalist|questionedeq|questiondown|quarterstrut|quads|quadrupleprime|quad|qquad|putnextboxincache|putboxincache|pushsystemmode|pushoutputstream|pushmode|pushmacro|pushbutton|pushattribute|purenumber|punctuationspace|psi|pseudosmallcapped|pseudoSmallcapped|pseudoSmallCapped|pseudoMixedCapped|propto|project|program|profilegivenbox|profiledbox|product|prod|processyear|processxtablebuffer|processuntil|processtokens|processtexbuffer|processseparatedlist|processranges|processmonth|processlist|processlinetablefile|processlinetablebuffer|processisolatedwords|processisolatedchars|processfirstactioninset|processfileonce|processfilenone|processfilemany|processfile|processcontent|processcommalistwithparameters|processcommalist|processcommacommand|processcolorcomponents|processbodyfontenvironmentlist|processblocks|processbetween|processassignmentlist|processassignmentcommand|processassignlist|processallactionsinset|processaction|processMPfigurefile|processMPbuffer|procent|primes|prime|prevuserpagenumber|prevuserpage|prevsubpagenumber|prevsubpage|prevsubcountervalue|prevrealpagenumber|prevrealpage|preventmode|prevcountervalue|prevcounter|prettyprintbuffer|pretocommalist|presetunittext|presettaglabeltext|presetsuffixtext|presetprefixtext|presetoperatortext|presetmathlabeltext|presetlabeltext|presetheadtext|presetfieldsymbols|presetdocument|presetbtxlabeltext|prerollblank|prependvalue|prependtoksonce|prependtoks|prependtocommalist|prependgvalue|prependetoks|prefixtext|prefixlanguage|prefixedpagenumber|predefinesymbol|predefinefont|predefinedfont|precsim|precnsim|precneqq|precneq|precnapprox|preceqq|preceq|preccurlyeq|precapprox|prec|postponenotes|positivesign|positionregionoverlay|positionoverlay|position|popsystemmode|popmode|popmacro|popattribute|pm|placetable|placesubformula|placesidebyside|placerenderingwindow|placeregister|placerawlist|placeparallel|placepairedbox|placepagenumber|placeontopofeachother|placeongrid|placenotes|placenamedformula|placenamedfloat|placement|placelocalnotes|placelocalfootnotes|placelistoftables|placelistofsynonyms|placelistofsorts|placelistofpublications|placelistoflogos|placelistofintermezzi|placelistofgraphics|placelistoffigures|placelistofchemicals|placelistofabbreviations|placelist|placelegend|placelayeredtext|placelayer|placeintermezzo|placeinitial|placeindex|placehelp|placeheadtext|placeheadnumber|placegraphic|placeframed|placeformula|placefootnotes|placefloatwithsetups|placefloat|placefigure|placedbox|placecurrentformulanumber|placecontent|placecomments|placecombinedlist|placecitation|placechemical|placebtxrendering|placebookmarks|placeattachments|pitchfork|pickupgroupedcommand|pi|phook|phi|phantombox|phantom|perthousand|persianthousandsseparator|persiannumerals|persiandecimalseparator|persiandecimals|perp|permitspacesbetweengroups|permitcircumflexescape|permitcaretescape|periods|periodcentered|percentdimen|percent|pdfeTeX|pdfcolor|pdfbackendsetshade|pdfbackendsetpattern|pdfbackendsetpagesattribute|pdfbackendsetpageresource|pdfbackendsetpageattribute|pdfbackendsetname|pdfbackendsetinfo|pdfbackendsetextgstate|pdfbackendsetcolorspace|pdfbackendsetcatalog|pdfbackendcurrentresources|pdfbackendactualtext|pdfactualtext|pdfTeX|partial|part|parallel|paragraphmark|paletsize|pagestaterealpageorder|pagestaterealpage|pagereference|pagenumber|pageinjection|pagefigure|pagebreak|pagearea|page|owns|overstrikes|overstrike|overset|overrightarrow|overparentunderparent|overparent|overloaderror|overleftarrow|overlaywidth|overlayrollbutton|overlayoffset|overlaylinewidth|overlaylinecolor|overlayimage|overlayheight|overlayfigure|overlaydepth|overlaycolor|overlaybutton|overbracketunderbracket|overbracket|overbraceunderbrace|overbrace|overbarunderbar|overbars|overbar|over|outputstreamunvcopy|outputstreamunvbox|outputstreamcopy|outputstreambox|outputfilename|otimes|otildemacron|otilde|ostrokeacute|ostroke|oslash|ornamenttext|ordmasculine|ordinalstr|ordinaldaynumber|ordfeminine|oplus|operatortext|operatorlanguage|oogonekmacron|oogonek|onethird|onesuperior|onesixth|onequarter|onehalf|onefifth|oneeighth|onedigitrounding|ominus|omicron|omega|omacron|oinvertedbreve|ointctrclockwise|ointclockwise|oint|oiint|oiiint|ohungarumlaut|ohorntilde|ohornhook|ohorngrave|ohorndotbelow|ohornacute|ohorn|ohook|ohm|ograve|offsetbox|offset|oeligature|odoublegrave|odotbelow|odotaccentmacron|odotaccent|odot|odiaeresismacron|odiaeresis|ocircumflextilde|ocircumflexhook|ocircumflexgrave|ocircumflexdotbelow|ocircumflexacute|ocircumflex|ocaron|obreve|obox|objectwidth|objectmargin|objectheight|objectdepth|obeydepth|oacute|nwsearrow|nwarrow|nvrightarrow|nvleftrightarrow|nvleftarrow|nvdash|nvDash|numbers|numberofpoints|nu|ntrianglerighteq|ntriangleright|ntrianglelefteq|ntriangleleft|ntimes|ntilde|nsupseteq|nsupset|nsucccurlyeq|nsucc|nsubseteq|nsubset|nsqsupseteq|nsqsubseteq|nsimeq|nsim|nrightarrow|npreccurlyeq|nprec|nparallel|nowns|notragged|notopandbottomlines|notin|notesymbol|note|not|nospace|normaltypeface|normalslantedface|normalizetextwidth|normalizetextline|normalizetextheight|normalizetextdepth|normalizefontwidth|normalizefontline|normalizefontheight|normalizefontdepth|normalizedfontsize|normalizebodyfontsize|normalitalicface|normalframedwithsettings|normalboldface|normal|nonmathematics|nonfrenchspacing|noitem|noindentation|noheightstrut|noheaderandfooterlines|noflocalfloats|noflines|noffigurepages|nodetostring|nocite|nocitation|nocharacteralign|nocap|nobreakspace|nobar|nni|nmid|nlesssim|nlessgtr|nless|nleq|nleftrightarrow|nleftarrow|njligature|nin|nihongo|ni|ngtrsim|ngtrless|ngtr|ngrave|ngeq|nextuserpagenumber|nextuserpage|nextsubpagenumber|nextsubpage|nextsubcountervalue|nextrealpagenumber|nextrealpage|nextparagraphs|nextdepth|nextcountervalue|nextcounter|nextboxwd|nextboxhtdp|nextboxht|nextboxdp|nextbox|nexists|newsystemmode|newsignal|newmode|newfrenchspacing|newevery|newcounter|newcatcodetable|newattribute|neswarrow|nequiv|neq|neng|negthinspace|negenspace|negemspace|negativesign|negated|negatecolorbox|neg|nearrow|ne|ndivides|ncurl|ncong|ncommaaccent|ncaron|naturalwd|naturalvtop|naturalvpack|naturalvcenter|naturalvbox|naturalnumbers|naturalhpack|naturalhbox|natural|nasymp|narrownobreakspace|napproxEq|napprox|napostrophe|namedtaggedlabeltexts|namedstructurevariable|namedstructureuservariable|namedstructureheadlocation|namedheadnumber|nacute|nabla|nVrightarrow|nVleftrightarrow|nVleftarrow|nVdash|nVDash|nRightarrow|nLeftrightarrow|nLeftarrow|nHuparrow|nHdownarrow|multimap|mu|mtwoheadrightarrow|mtwoheadleftarrow|mtriplerel|mtext|mrightoverleftarrow|mrightleftharpoons|mrightharpoonup|mrightharpoondown|mrightarrow|mrel|mprandomnumber|mp|monthshort|monthlong|month|mononormal|monobold|mono|molecule|moduleparameter|models|mmapsto|mleftrightharpoons|mleftrightarrow|mleftharpoonup|mleftharpoondown|mleftarrow|mkvibuffer|mixedcaps|mirror|minuscolon|minus|minimalhbox|midsubsentence|midhbox|middlebox|middlealigned|middle|midaligned|mid|mhookrightarrow|mhookleftarrow|mho|mhbox|mfunctionlabeltext|mfunction|mframed|mfence|message|mequal|menubutton|medspace|medskip|measuredeq|measuredangle|measured|measure|mcframed|mbox|maxaligned|mathwordtf|mathwordsl|mathwordit|mathwordbs|mathwordbi|mathwordbf|mathword|mathupright|mathunder|mathtt|mathtriplet|mathtf|mathtexttf|mathtextsl|mathtextit|mathtextbs|mathtextbi|mathtextbf|mathtext|mathss|mathsl|mathscript|mathrm|mathpercent|mathover|mathop|mathlabeltexts|mathlabeltext|mathlabellanguage|mathitalic|mathit|mathhyphen|mathhash|mathfunction|mathfraktur|mathematics|mathdouble|mathdollar|mathdefault|mathbs|mathblackboard|mathbi|mathbf|mathampersand|math|mat|markpage|markinjector|marking|markedpages|markcontent|margintext|margindata|mapsup|mapsto|mapsfrom|mapsdown|mapfontsize|maltese|makestrutofbox|makerawcommalist|makecharacteractive|mainlanguage|mRightarrow|mLeftrightarrow|mLeftarrow|m|lvert|luaversion|luasetup|luaparameterset|luaminorversion|luametaTeX|luamajorversion|luajitTeX|luafunction|luaexpr|luaexpanded|luaenvironment|luaconditional|luacode|luaTeX|ltop|ltimes|lt|lstroke|lrtbbox|lrointerval|lrcorner|lparent|lozenge|lowerrightsingleninequote|lowerrightdoubleninequote|lowerleftsingleninequote|lowerleftdoubleninequote|lowercasestring|lowercased|lowerbox|low|lor|looparrowright|looparrowleft|longrightsquigarrow|longrightarrow|longmapsto|longmapsfrom|longleftrightarrow|longleftarrow|lomihi|lointerval|lohi|logo|locfilename|locatefilepath|locatedfilepath|localundefine|localpushmacro|localpushbox|localpopmacro|localpopbox|localhsize|localframedwithsettings|localframed|loadtypescriptfile|loadtexfileonce|loadtexfile|loadspellchecklist|loadluafileonce|loadluafile|loadfontgoodies|loadcldfileonce|loadcldfile|loadbtxreplacementfile|loadbtxdefinitionfile|loadanyfileonce|loadanyfile|lnsim|lnot|lneqq|lneq|lnapprox|lmoustache|llless|lll|llcorner|llbracket|llap|llangle|ll|ljligature|listnamespaces|listlength|listcite|listcitation|linterval|linethickness|linespanningtext|linenote|linefeed|linebox|line|limitatetext|limitatelines|limitatefirstline|lhooksearrow|lhooknwarrow|lhbox|lgroup|lfloor|lfence|letvaluerelax|letvalueempty|letvalue|letterunderscore|lettertilde|letterspacing|letterslash|lettersinglequote|letterrightparenthesis|letterrightbracket|letterrightbrace|letterquestionmark|letterpercent|letteropenbrace|lettermore|letterless|letterleftparenthesis|letterleftbracket|letterleftbrace|letterhat|letterhash|letterexclamationmark|letterescape|letteregroup|letterdoublequote|letterdollar|lettercolon|letterclosebrace|letterbgroup|letterbar|letterbackslash|letterat|letterampersand|letgvalurelax|letgvalueempty|letgvalue|letempty|letdummyparameter|letcsnamecsname|letcsnamecs|letcscsname|letcatcodecommand|letbeundefined|lesssim|lessgtr|lesseqqgtr|lesseqgtr|lessdot|lessapprox|leqslant|leqq|leq|leftwhitearrow|leftwavearrow|lefttorightvtop|lefttorightvbox|lefttorighthbox|lefttoright|lefttopbox|leftthreetimes|leftsubguillemot|leftsquigarrow|leftskipadaption|leftrightsquigarrow|leftrightharpoons|leftrightarrowtriangle|leftrightarrows|leftrightarrow|leftorrightvtop|leftorrightvbox|leftorrighthbox|leftmathlabeltext|leftline|leftleftarrows|leftlabeltext|leftheadtext|lefthbox|leftharpoonup|leftharpoondown|leftguillemot|leftdasharrow|leftbox|leftbottombox|leftarrowtriangle|leftarrowtail|leftarrow|leftaligned|left|leadsto|le|ldots|ldotp|ldotmiddle|lcurl|lcommaaccent|lceil|lcaron|lbracket|lbrace|lbox|lbar|lazysavetwopassdata|lazysavetaggedtwopassdata|layerwidth|layerheight|layeredtext|latin|lateluacode|lastuserpagenumber|lastuserpage|lasttwodigits|lastsubpagenumber|lastsubpage|lastsubcountervalue|lastrealpagenumber|lastrealpage|lastpredefinedsymbol|lastnaturalboxwd|lastnaturalboxht|lastnaturalboxdp|lastlinewidth|lastdigit|lastcountervalue|lastcounter|languagecharwidth|languagecharacters|languageCharacters|language|langle|land|lambdabar|lambda|lacute|labeltexts|labeltext|labellanguage|lVert|koreanparentnumerals|koreannumeralsp|koreannumeralsc|koreannumerals|koreancirclenumerals|kkra|khook|kerncharacters|keepunwantedspaces|keeplinestogether|keepblocks|kcommaaccent|kcaron|kappa|kap|jobfilesuffix|jobfilename|jmath|jcircumflex|jcaron|itilde|itemtag|items|item|italicface|italiccorrection|italicbold|italic|istrtdir|istltdir|iota|iogonek|invokepageheandler|invisibletimes|intop|intertext|intercal|interactionmenu|interactionbuttons|interactionbar|integers|integerrounding|intclockwise|int|installversioninfo|installunitsspace|installunitsseparator|installtopframerenderer|installtextracker|installtexdirective|installswitchsetuphandler|installswitchcommandhandler|installstyleandcolorhandler|installsimpleframedcommandhandler|installsimplecommandhandler|installshipoutmethod|installsetuponlycommandhandler|installsetuphandler|installrootparameterhandler|installrightframerenderer|installparentinjector|installparametersethandler|installparameterhashhandler|installparameterhandler|installpagearrangement|installoutputroutine|installnamespace|installmacrostack|installleftframerenderer|installlanguage|installglobalmacrostack|installframedcommandhandler|installframedautocommandhandler|installdirectstyleandcolorhandler|installdirectsetuphandler|installdirectparametersethandler|installdirectparameterhandler|installdirectcommandhandler|installdefinitionsetmember|installdefinitionset|installdefinehandler|installcorenamespace|installcommandhandler|installbottomframerenderer|installbasicparameterhandler|installbasicautosetuphandler|installautosetuphandler|installautocommandhandler|installattributestack|installanddefineactivecharacter|installactivecharacter|installactionhandler|insertpages|inrightmargin|inrightedge|inright|inputgivenfile|inputfilesuffix|inputfilerealsuffix|inputfilename|inputfilebarename|input|inoutermargin|inouteredge|inouter|inother|innerflushshapebox|inmframed|inmargin|inlinerange|inlineprettyprintbuffer|inlineordisplaymath|inlinemessage|inlinemathematics|inlinemath|inlinedbox|inlinebuffer|inline|inleftmargin|inleftedge|inleft|initializeboxstack|ininnermargin|ininneredge|ininner|inhibitblank|inheritparameter|infull|infty|inframed|infofontbold|infofont|index|indentation|incrementvalue|incrementsubpagenumber|incrementpagenumber|incrementedcounter|incrementcounter|increment|includeversioninfo|includemenu|in|imply|implies|impliedby|immediatesavetwopassdata|imath|imaginaryj|imaginaryi|imacron|ijligature|iinvertedbreve|iintop|iint|iiintop|iiint|iiiintop|iiiint|ihook|igrave|ignorevalue|ignoretagsinexport|ignoreimplicitspaces|iftrialtypesetting|ifparameters|ifinoutputstream|ifinobject|iff|ifassignment|idoublegrave|idotbelow|idotaccent|idiaeresis|ideographicspace|ideographichalffillspace|icircumflex|icaron|ibreve|ibox|iacute|hyphenatedword|hyphenatedurl|hyphenatedpar|hyphenatedhbox|hyphenatedfilename|hyphenatedfile|hyphenatedcoloredword|hyphen|htofstring|htdpofstring|hstroke|hspace|hsmashed|hsmashbox|hsmash|hslash|hsizefraction|hpos|hphantom|horizontalpositionbar|horizontalgrowingbar|hookrightarrow|hookleftarrow|hl|himilo|hilo|highordinalstr|highlight|high|hideblocks|hiddencite|hiddencitation|hiddenbar|hglue|helptext|heightspanningtext|heightofstring|heightanddepthofstring|hebrewZayin|hebrewYod|hebrewVav|hebrewTsadifinal|hebrewTsadi|hebrewTet|hebrewTav|hebrewShin|hebrewSamekh|hebrewResh|hebrewQof|hebrewPefinal|hebrewPe|hebrewNunfinal|hebrewNun|hebrewMemfinal|hebrewMem|hebrewLamed|hebrewKaffinal|hebrewKaf|hebrewHet|hebrewHe|hebrewGimel|hebrewDalet|hebrewBet|hebrewAyin|hebrewAlef|heartsuit|headwidth|headvbox|headtextwidth|headtexts|headtextdistance|headtextcontent|headtext|headsetupspacing|headreferenceattributes|headnumberwidth|headnumberdistance|headnumbercontent|headnumber|headlanguage|headhbox|hdofstring|hcircumflex|hcaron|hboxreference|hboxofvbox|hbar|hat|hash|hanzi|hangul|handwritten|handletokens|halfwaybox|halfstrut|halflinestrut|hairspace|hairline|gurmurkhinumerals|gujaratinumerals|guilsingleright|guilsingleleft|gtrsim|gtrless|gtreqqless|gtreqless|gtrdot|gtrapprox|gt|gstroke|gsetboxlly|gsetboxllx|groupedcommand|grid|greekzeta|greekxi|greekvaria|greekupsilonvrachy|greekupsilonvaria|greekupsilontonos|greekupsilonpsilivaria|greekupsilonpsilitonos|greekupsilonpsiliperispomeni|greekupsilonpsili|greekupsilonperispomeni|greekupsilonoxia|greekupsilonmacron|greekupsilondialytikavaria|greekupsilondialytikatonos|greekupsilondialytikaperispomeni|greekupsilondiaeresis|greekupsilondasiavaria|greekupsilondasiatonos|greekupsilondasiaperispomeni|greekupsilondasia|greekupsilon|greektonos|greekthetaalt|greektheta|greektau|greekstigma|greeksigmalunate|greeksigma|greeksampi|greekrhopsili|greekrhodasia|greekrhoalt|greekrho|greekpsilivaria|greekpsilitonos|greekpsiliperispomeni|greekpsili|greekpsi|greekprosgegrammeni|greekpialt|greekpi|greekphialt|greekphi|greekperispomeni|greekoxia|greekomicronvaria|greekomicrontonos|greekomicronpsilivaria|greekomicronpsilitonos|greekomicronpsili|greekomicronoxia|greekomicrondasiavaria|greekomicrondasiatonos|greekomicrondasia|greekomicron|greekomegavaria|greekomegatonos|greekomegapsilivaria|greekomegapsilitonos|greekomegapsiliperispomeni|greekomegapsili|greekomegaperispomeni|greekomegaoxia|greekomegaiotasubvaria|greekomegaiotasubtonos|greekomegaiotasubpsilivaria|greekomegaiotasubpsilitonos|greekomegaiotasubpsiliperispomeni|greekomegaiotasubpsili|greekomegaiotasubperispomeni|greekomegaiotasubdasiavaria|greekomegaiotasubdasiatonos|greekomegaiotasubdasiaperispomeni|greekomegaiotasubdasia|greekomegaiotasub|greekomegadasiavaria|greekomegadasiatonos|greekomegadasiaperispomeni|greekomegadasia|greekomega|greeknumkoppa|greeknumerals|greeknu|greekmu|greeklambda|greekkoppa|greekkappa|greekiotavrachy|greekiotavaria|greekiotatonos|greekiotapsilivaria|greekiotapsilitonos|greekiotapsiliperispomeni|greekiotapsili|greekiotaperispomeni|greekiotaoxia|greekiotamacron|greekiotadialytikavaria|greekiotadialytikatonos|greekiotadialytikaperispomeni|greekiotadialytika|greekiotadasiavaria|greekiotadasiatonos|greekiotadasiaperispomeni|greekiotadasia|greekiota|greekgamma|greekfinalsigma|greeketavaria|greeketatonos|greeketapsilivaria|greeketapsilitonos|greeketapsiliperispomeni|greeketapsili|greeketaperispomeni|greeketaoxia|greeketaiotasubvaria|greeketaiotasubtonos|greeketaiotasubpsilivaria|greeketaiotasubpsilitonos|greeketaiotasubpsiliperispomeni|greeketaiotasubpsili|greeketaiotasubperispomeni|greeketaiotasubdasiavaria|greeketaiotasubdasiatonos|greeketaiotasubdasiaperispomeni|greeketaiotasubdasia|greeketaiotasub|greeketadasiavaria|greeketadasiatonos|greeketadasiaperispomeni|greeketadasia|greeketa|greekepsilonvaria|greekepsilontonos|greekepsilonpsilivaria|greekepsilonpsilitonos|greekepsilonpsili|greekepsilonoxia|greekepsilondasiavaria|greekepsilondasiatonos|greekepsilondasia|greekepsilonalt|greekepsilon|greekdigamma|greekdialytikavaria|greekdialytikatonos|greekdialytikaperispomeni|greekdelta|greekdasiavaria|greekdasiatonos|greekdasiaperispomeni|greekdasia|greekchi|greekbetaalt|greekbeta|greekalphavrachy|greekalphavaria|greekalphatonos|greekalphapsilivaria|greekalphapsilitonos|greekalphapsiliperispomeni|greekalphapsili|greekalphaperispomeni|greekalphaoxia|greekalphamacron|greekalphaiotasubvaria|greekalphaiotasubtonos|greekalphaiotasubpsilivaria|greekalphaiotasubpsilitonos|greekalphaiotasubpsiliperispomeni|greekalphaiotasubpsili|greekalphaiotasubperispomeni|greekalphaiotasubdasiavaria|greekalphaiotasubdasiatonos|greekalphaiotasubdasiaperispomeni|greekalphaiotasubdasia|greekalphaiotasub|greekalphadasiavaria|greekalphadasiatonos|greekalphadasiaperispomeni|greekalphadasia|greekalpha|greekZeta|greekXi|greekUpsilonvrachy|greekUpsilonvaria|greekUpsilontonos|greekUpsilonmacron|greekUpsilondialytika|greekUpsilondasiavaria|greekUpsilondasiatonos|greekUpsilondasiaperispomeni|greekUpsilondasia|greekUpsilon|greekTheta|greekTau|greekSigmalunate|greekSigma|greekRhodasia|greekRho|greekPsi|greekPi|greekPhi|greekOmicronvaria|greekOmicrontonos|greekOmicronpsilivaria|greekOmicronpsilitonos|greekOmicronpsili|greekOmicrondasiavaria|greekOmicrondasiatonos|greekOmicrondasia|greekOmicron|greekOmegavaria|greekOmegatonos|greekOmegapsilivaria|greekOmegapsilitonos|greekOmegapsiliperispomeni|greekOmegapsili|greekOmegaiotasubpsilivaria|greekOmegaiotasubpsilitonos|greekOmegaiotasubpsiliperispomeni|greekOmegaiotasubpsili|greekOmegaiotasubdasiavaria|greekOmegaiotasubdasiatonos|greekOmegaiotasubdasiaperispomeni|greekOmegaiotasubdasia|greekOmegaiotasub|greekOmegadasiavaria|greekOmegadasiatonos|greekOmegadasiaperispomeni|greekOmegadasia|greekOmega|greekNu|greekMu|greekLambda|greekKappa|greekIotavrachy|greekIotavaria|greekIotatonos|greekIotapsilivaria|greekIotapsilitonos|greekIotapsiliperispomeni|greekIotapsili|greekIotamacron|greekIotadialytika|greekIotadasiavaria|greekIotadasiatonos|greekIotadasiaperispomeni|greekIotadasia|greekIota|greekGamma|greekEtavaria|greekEtatonos|greekEtapsilivaria|greekEtapsilitonos|greekEtapsiliperispomeni|greekEtapsili|greekEtaiotasubpsilivaria|greekEtaiotasubpsilitonos|greekEtaiotasubpsiliperispomeni|greekEtaiotasubpsili|greekEtaiotasubdasiavaria|greekEtaiotasubdasiatonos|greekEtaiotasubdasiaperispomeni|greekEtaiotasubdasia|greekEtaiotasub|greekEtadasiavaria|greekEtadasiatonos|greekEtadasiaperispomeni|greekEtadasia|greekEta|greekEpsilonvaria|greekEpsilontonos|greekEpsilonpsilivaria|greekEpsilonpsilitonos|greekEpsilonpsili|greekEpsilondasiavaria|greekEpsilondasiatonos|greekEpsilondasia|greekEpsilon|greekDelta|greekCoronis|greekChi|greekBeta|greekAlphavrachy|greekAlphavaria|greekAlphatonos|greekAlphapsilivaria|greekAlphapsilitonos|greekAlphapsiliperispomeni|greekAlphapsili|greekAlphamacron|greekAlphaiotasubpsilivaria|greekAlphaiotasubpsilitonos|greekAlphaiotasubpsiliperispomeni|greekAlphaiotasubpsili|greekAlphaiotasubdasiavaria|greekAlphaiotasubdasiatonos|greekAlphaiotasubdasiaperispomeni|greekAlphaiotasubdasia|greekAlphaiotasub|greekAlphadasiavaria|greekAlphadasiatonos|greekAlphadasiaperispomeni|greekAlphadasia|greekAlpha|greedysplitstring|grayvalue|graycolor|grave|grabuntil|grabbufferdatadirect|grabbufferdata|gotopage|gotobox|goto|godown|gobbleuntilrelax|gobbleuntil|gobbletwooptionals|gobbletwoarguments|gobblethreeoptionals|gobblethreearguments|gobbletenarguments|gobblespacetokens|gobblesixarguments|gobblesingleempty|gobblesevenarguments|gobbleoneoptional|gobbleoneargument|gobbleninearguments|gobblefouroptionals|gobblefourarguments|gobblefiveoptionals|gobblefivearguments|gobbleeightarguments|gobbledoubleempty|gnsim|gneqq|gnapprox|glyphfontfile|globalundefine|globalswapmacros|globalswapdimens|globalswapcounts|globalpushmacro|globalpushbox|globalprocesscommalist|globalpreventmode|globalpopmacro|globalpopbox|globalletempty|globalenablemode|globaldisablemode|gimel|gggtr|ggg|gg|getxparameters|getvariabledefault|getvariable|getvalue|getuvalue|getuserdata|gettwopassdatalist|gettwopassdata|gettokenlist|getsubstring|gets|getroundednoflines|getreferenceentry|getreference|getrawxparameters|getrawparameters|getrawnoflines|getrawgparameters|getraweparameters|getrandomseed|getrandomnumber|getrandomfloat|getrandomdimen|getrandomcount|getprivateslot|getprivatechar|getparameters|getpaletsize|getobjectdimensions|getobject|getnoflines|getnaturaldimensions|getnamedtwopassdatalist|getnamedglyphstyled|getnamedglyphdirect|getmessage|getmarking|getlocalfloats|getlocalfloat|getlasttwopassdata|getinlineuserdata|getgparameters|getglyphstyled|getglyphdirect|getfromtwopassdata|getfromcommalist|getfromcommacommand|getfirsttwopassdata|getfirstcharacter|getfiguredimensions|getexpandedparameters|geteparameters|getemptyparameters|getdummyparameters|getdocumentfilename|getdocumentargumentdefault|getdocumentargument|getdefinedbuffer|getdayspermonth|getdayoftheweek|getcommalistsize|getcommacommandsize|getbufferdata|getbuffer|getboxlly|getboxllx|getboxfromcache|getMPlayer|getMPdrawing|geqslant|geqq|geq|ge|gdotaccent|gdefconvertedcommand|gdefconvertedargument|gcommaaccent|gcircumflex|gcaron|gbreve|gamma|gacute|frule|frozenhbox|frown|fromlinenote|from|frenchspacing|freezemeasure|freezedimenmacro|framedtext|framedparameter|frameddimension|framed|frac|fourthofsixarguments|fourthoffourarguments|fourthoffivearguments|fourperemspace|fourfifths|foundbox|formulanumber|formula|forgetragged|forgetparskip|forgetparameters|forgeteverypar|forcelocalfloats|forcecharacterstripping|forall|footnotetext|footnote|fontstyle|fontsize|fontfeaturelist|fontface|fontclassname|fontclass|fontcharbyindex|fontchar|fontbody|fontalternative|flushtoks|flushtokens|flushtextflow|flushshapebox|flushoutputstream|flushnotes|flushnextbox|flushlocalfloats|flushlayer|flushedrightlastline|flushcollector|flushboxregister|flushbox|floatuserdataparameter|flligature|flat|flag|fixedspaces|fixedspace|fivesixths|fiveeighths|fittopbaselinegrid|fitfieldframed|fitfield|firstuserpagenumber|firstuserpage|firstsubpagenumber|firstsubpage|firstsubcountervalue|firstrealpagenumber|firstrealpage|firstoftwounexpanded|firstoftwoarguments|firstofthreeunexpanded|firstofthreearguments|firstofsixarguments|firstofoneunexpanded|firstofoneargument|firstoffourarguments|firstoffivearguments|firstinlist|firstcountervalue|firstcounter|firstcharacter|finishregisterentry|findtwopassdata|filterreference|filterpages|filterfromvalue|filterfromnext|fillupto|fillintext|fillinrules|fillinline|filler|filledhboxy|filledhboxr|filledhboxm|filledhboxk|filledhboxg|filledhboxc|filledhboxb|filigature|filename|figurewidth|figuresymbol|figurespace|figurenaturalwidth|figurenaturalheight|figureheight|figurefullname|figurefiletype|figurefilepath|figurefilename|fifthofsixarguments|fifthoffivearguments|fieldstack|fieldbody|field|fhook|fflligature|ffligature|ffiligature|fetchtwomarks|fetchtwomarkings|fetchruntinecommand|fetchonemarking|fetchonemark|fetchmarking|fetchmark|fetchallmarks|fetchallmarkings|fenced|fence|feature|fastsxsy|fastswitchtobodyfont|fastsetupwithargumentswapped|fastsetupwithargument|fastsetup|fastscale|fastloopindex|fastloopfinal|fastlocalframed|fastincrement|fastdecrement|fallingdotseq|fakebox|externalfigurecollectionparameter|externalfigurecollectionminwidth|externalfigurecollectionminheight|externalfigurecollectionmaxwidth|externalfigurecollectionmaxheight|externalfigure|exponentiale|expdoifnot|expdoifinsetelse|expdoifelseinset|expdoifelsecommon|expdoifelse|expdoifcommonelse|expdoif|expandfontsynonym|expandeddoifnot|expandeddoifelse|expandeddoif|expanded|expandcheckedcsname|exitloopnow|exitloop|exists|executeifdefined|exclamdown|eunderparentfill|eunderbracketfill|eunderbracefill|eunderbarfill|etwoheadrightarrowfill|etilde|ethiopic|eth|eta|erightharpoonupfill|erightharpoondownfill|erightarrowfill|equiv|equalscolon|equaldigits|eqslantless|eqslantgtr|eqsim|eqless|eqgtr|eqeqeq|eqeq|eqcirc|eq|epsilon|epos|eoverparentfill|eoverbracketfill|eoverbracefill|eoverbarfill|eogonek|envvar|environment|env|enspace|enskip|enquad|endnote|endash|enabletrackers|enableregime|enableparpositions|enableoutputstream|enablemode|enableexperiments|enabledirectives|emspace|emquad|emptyset|emptylines|emphasistypeface|emphasisboldface|emdash|emacron|em|ell|eleftrightarrowfill|eleftharpoonupfill|eleftharpoondownfill|eleftarrowfill|elapsedtime|elapsedseconds|einvertedbreve|ehook|egrave|effect|efcparameter|efcminwidth|efcminheight|efcmaxwidth|efcmaxheight|edoublegrave|edotbelow|edotaccent|ediaeresis|edefconvertedargument|ecircumflextilde|ecircumflexhook|ecircumflexgrave|ecircumflexdotbelow|ecircumflexacute|ecircumflex|ecedilla|ecaron|ebreve|eacute|eTeX|dzligature|dzcaronligature|dummyparameter|dummydigit|dtail|dstroke|dpofstring|downzigzagarrow|downwhitearrow|downuparrows|downharpoonright|downharpoonleft|downdownarrows|downdasharrow|downarrow|dowithwargument|dowithrange|dowithpargument|dowithnextboxcs|dowithnextboxcontentcs|dowithnextboxcontent|dowithnextbox|dowith|doubleverticalbar|doubleprime|doubleparent|doublecup|doublecap|doublebracket|doublebrace|doublebond|doublebar|dottedrightarrow|dottedcircle|dots|dotriplegroupempty|dotripleemptywithset|dotripleempty|dotripleargumentwithset|dotripleargument|dotplus|dotoks|dotminus|dotlessjstroke|dotlessj|dotlessi|dotlessJ|dotlessI|dotfskip|doteqdot|doteq|dot|dosubtractfeature|dostepwiserecurse|dosixtupleempty|dosixtupleargument|dosinglegroupempty|dosingleempty|dosingleargument|doseventupleempty|doseventupleargument|dosetupcheckedinterlinespace|dosetrightskipadaption|dosetleftskipadaption|dosetattribute|dorotatebox|doresetattribute|doresetandafffeature|doreplacefeature|dorepeatwithcommand|dorecurse|dorechecknextindentation|doquintuplegroupempty|doquintupleempty|doquintupleargument|doquadruplegroupempty|doquadrupleempty|doquadrupleargument|doprocesslocalsetups|dopositionaction|dontpermitspacesbetweengroups|dontleavehmode|dontconvertfont|donothing|doloopoverlist|doloop|dollar|doindentation|doifvariableelse|doifvariable|doifvaluesomething|doifvaluenothingelse|doifvaluenothing|doifvalueelse|doifvalue|doifurldefinedelse|doifunknownfontfeature|doifundefinedelse|doifundefinedcounter|doifundefined|doiftypingfileelse|doiftopofpageelse|doiftextflowelse|doiftextflowcollectorelse|doiftextelse|doiftext|doifsymbolsetelse|doifsymboldefinedelse|doifstructurelisthaspageelse|doifstructurelisthasnumberelse|doifstringinstringelse|doifsometokselse|doifsometoks|doifsomethingelse|doifsomething|doifsomespaceelse|doifsomebackgroundelse|doifsomebackground|doifsetupselse|doifsetups|doifsamestringelse|doifsamestring|doifsamelinereferenceelse|doifrighttoleftinboxelse|doifrightpagefloatelse|doifreferencefoundelse|doifpositionsusedelse|doifpositionsonthispageelse|doifpositionsonsamepageelse|doifpositiononpageelse|doifpositionelse|doifpositionactionelse|doifpositionaction|doifposition|doifpatternselse|doifpathexistselse|doifpathelse|doifparentfileelse|doifparallelelse|doifoverlayelse|doifoverlappingelse|doifolderversionelse|doifoldercontextelse|doifoddpagefloatelse|doifoddpageelse|doifobjectreferencefoundelse|doifobjectfoundelse|doifnumberelse|doifnumber|doifnotvariable|doifnotvalue|doifnotsetups|doifnotsamestring|doifnotnumber|doifnotmode|doifnotinstring|doifnotinsidesplitfloat|doifnotinset|doifnothingelse|doifnothing|doifnotflagged|doifnotfile|doifnotescollected|doifnoteonsamepageelse|doifnotenv|doifnotemptyvariable|doifnotemptyvalue|doifnotempty|doifnotdocumentvariable|doifnotdocumentfilename|doifnotdocumentargument|doifnotcounter|doifnotcommon|doifnotcommandhandler|doifnotallmodes|doifnotallcommon|doifnot|doifnonzeropositiveelse|doifnextparenthesiselse|doifnextoptionalelse|doifnextoptionalcselse|doifnextcharelse|doifnextbgroupelse|doifnextbgroupcselse|doifmodeelse|doifmode|doifmessageelse|doifmeaningelse|doifmarkingelse|doifmainfloatbodyelse|doiflocfileelse|doiflocationelse|doiflistelse|doifleapyearelse|doiflayouttextlineelse|doiflayoutsomelineelse|doiflayoutdefinedelse|doiflayerdataelse|doiflanguageelse|doifitalicelse|doifintwopassdataelse|doifintokselse|doifinsymbolsetelse|doifinsymbolset|doifinstringelse|doifinstring|doifinsetelse|doifinset|doifinsertionelse|doifinputfileelse|doifinelementelse|doifincsnameelse|doifhelpelse|doifhasspaceelse|doiffontsynonymelse|doiffontpresentelse|doiffontfeatureelse|doiffontcharelse|doifflaggedelse|doiffirstcharelse|doiffileexistselse|doiffileelse|doiffiledefinedelse|doiffile|doiffigureelse|doiffieldcategoryelse|doiffieldbodyelse|doiffastoptionalcheckelse|doiffastoptionalcheckcselse|doifenvelse|doifenv|doifemptyvariableelse|doifemptyvariable|doifemptyvalueelse|doifemptyvalue|doifemptytoks|doifemptyelse|doifempty|doifelsevariable|doifelsevaluenothing|doifelsevalue|doifelseurldefined|doifelseundefined|doifelsetypingfile|doifelsetopofpage|doifelsetextflowcollector|doifelsetextflow|doifelsetext|doifelsesymbolset|doifelsesymboldefined|doifelsestructurelisthaspage|doifelsestructurelisthasnumber|doifelsestringinstring|doifelsesometoks|doifelsesomething|doifelsesomespace|doifelsesomebackground|doifelsesetups|doifelsesamestring|doifelsesamelinereference|doifelserighttoleftinbox|doifelserightpagefloat|doifelserightpage|doifelsereferencefound|doifelsepositionsused|doifelsepositionsonthispage|doifelsepositionsonsamepage|doifelsepositiononpage|doifelsepositionaction|doifelseposition|doifelsepatterns|doifelsepathexists|doifelsepath|doifelseparentfile|doifelseparallel|doifelseoverlay|doifelseoverlapping|doifelseolderversion|doifelseoldercontext|doifelseoddpagefloat|doifelseoddpage|doifelseobjectreferencefound|doifelseobjectfound|doifelsenumber|doifelsenothing|doifelsenoteonsamepage|doifelsenonzeropositive|doifelsenextparenthesis|doifelsenextoptionalcs|doifelsenextoptional|doifelsenextchar|doifelsenextbgroupcs|doifelsenextbgroup|doifelsemode|doifelsemessage|doifelsemeaning|doifelsemarking|doifelsemarkedpage|doifelsemainfloatbody|doifelselocfile|doifelselocation|doifelselist|doifelseleapyear|doifelselayouttextline|doifelselayoutsomeline|doifelselayoutdefined|doifelselayerdata|doifelselanguage|doifelseitalic|doifelseintwopassdata|doifelseintoks|doifelseinsymbolset|doifelseinstring|doifelseinset|doifelseinsertion|doifelseinputfile|doifelseinelement|doifelseincsname|doifelsehelp|doifelsehasspace|doifelseframed|doifelsefontsynonym|doifelsefontpresent|doifelsefontfeature|doifelsefontchar|doifelseflagged|doifelsefirstchar|doifelsefileexists|doifelsefiledefined|doifelsefile|doifelsefigure|doifelsefieldcategory|doifelsefieldbody|doifelsefastoptionalcheckcs|doifelsefastoptionalcheck|doifelseenv|doifelseemptyvariable|doifelseemptyvalue|doifelseempty|doifelsedrawingblack|doifelsedocumentvariable|doifelsedocumentfilename|doifelsedocumentargument|doifelsedimenstring|doifelsedimension|doifelsedefinedcounter|doifelsedefined|doifelsecurrentsynonymused|doifelsecurrentsynonymshown|doifelsecurrentsortingused|doifelsecurrentfonthasfeature|doifelsecounter|doifelseconversionnumber|doifelseconversiondefined|doifelsecommon|doifelsecommandhandler|doifelsecolor|doifelsebuffer|doifelseboxincache|doifelsebox|doifelseblack|doifelseassignmentcs|doifelseassignment|doifelseallmodes|doifelsealldefined|doifelseallcommon|doifelseMPgraphic|doifelse|doifdrawingblackelse|doifdocumentvariableelse|doifdocumentvariable|doifdocumentfilenameelse|doifdocumentfilename|doifdocumentargumentelse|doifdocumentargument|doifdimenstringelse|doifdimensionelse|doifdefinedelse|doifdefinedcounterelse|doifdefinedcounter|doifdefined|doifcurrentfonthasfeatureelse|doifcounterelse|doifcounter|doifconversionnumberelse|doifconversiondefinedelse|doifcontent|doifcommonelse|doifcommon|doifcommandhandlerelse|doifcommandhandler|doifcolorelse|doifcolor|doifbufferelse|doifboxelse|doifbothsidesoverruled|doifbothsides|doifblackelse|doifassignmentelsecs|doifassignmentelse|doifallmodeselse|doifallmodes|doifalldefinedelse|doifallcommonelse|doifallcommon|doifMPgraphicelse|doif|dogobblesingleempty|dogobbledoubleempty|dogetcommacommandelement|dogetattributeid|dogetattribute|dofastloopcs|doexpandedrecurse|doeassign|dodoublegroupempty|dodoubleemptywithset|dodoubleempty|dodoubleargumentwithset|dodoubleargument|documentvariable|docheckedpair|docheckedpagestate|docheckassignment|doboundtext|doassignempty|doassign|doaddfeature|doadaptrightskip|doadaptleftskip|divides|divideontimes|dividedsize|div|distributedhsize|displaymessage|displaymathematics|displaymath|disabletrackers|disableregime|disableparpositions|disableoutputstream|disablemode|disableexperiments|disabledirectives|dis|directvspacing|directsymbol|directsetup|directsetbar|directselect|directluacode|directlocalframed|directhighlight|directgetboxlly|directgetboxllx|directdummyparameter|directcopyboxfromcache|directconvertedcounter|directcolored|directcolor|directboxfromcache|dimensiontocount|digits|digamma|differentiald|differentialD|diamondsuit|diamond|diameter|dhook|dfrac|devanagarinumerals|determineregistercharacteristics|determinenoflines|determinelistcharacteristics|determineheadnumber|depthstrut|depthspanningtext|depthonlybox|depthofstring|delta|delimitedtext|delimited|definextable|definevspacingamount|definevspacing|definevspace|defineviewerlayer|defineuserdataalternative|defineuserdata|defineunit|definetyping|definetypesetting|definetypescriptsynonym|definetypescriptprefix|definetypeface|definetype|definetwopasslist|definetransparency|definetooltip|definetokenlist|definetextflow|definetextbackground|definetext|definetabulation|definetabulate|definetabletemplate|definesystemvariable|definesystemconstant|definesystemattribute|definesynonyms|definesynonym|definesymbol|definesubformula|definesubfield|definestyleinstance|definestyle|definestartstop|definespotcolor|definesorting|definesort|definesidebar|defineshift|defineseparatorset|defineselector|definesectionlevels|definesectionblock|definesection|definescript|definescale|defineruby|defineresetset|definerenderingwindow|defineregister|definereferenceformat|definereference|definepushsymbol|definepushbutton|defineprogram|defineprofile|defineprocessor|defineprocesscolor|defineprefixset|definepositioning|defineplacement|defineperiodkerning|defineparbuilder|defineparallel|defineparagraphs|defineparagraph|definepapersize|definepalet|definepairedbox|definepagestate|definepageshift|definepageinjectionalternative|definepageinjection|definepagecolumns|definepagechecker|definepagebreak|definepage|defineoverlay|defineoutputroutinecommand|defineoutputroutine|defineornament|definenote|definenarrower|definenamespace|definenamedcolor|definemultitonecolor|definemode|definemixedcolumns|definemessageconstant|definemeasure|definemathunstacked|definemathundertextextensible|definemathunderextensible|definemathunder|definemathtriplet|definemathstyle|definemathstackers|definemathradical|definemathovertextextensible|definemathoverextensible|definemathover|definemathornament|definemathmatrix|definemathframed|definemathfraction|definemathfence|definemathextensible|definemathematics|definemathdoubleextensible|definemathdouble|definemathcommand|definemathcases|definemathalignment|definemathaccent|definemarking|definemarker|definemargindata|definemarginblock|definemakeup|definelowmidhigh|definelowhigh|definelow|definelistextra|definelistalternative|definelist|definelines|definelinenumbering|definelinenote|definelinefiller|definelayout|definelayerpreset|definelayer|definelabelclass|definelabel|defineitems|defineitemgroup|defineintermediatecolor|defineinterlinespace|defineinterfacevariable|defineinterfaceelement|defineinterfaceconstant|defineinteractionmenu|defineinteractionbar|defineinteraction|defineinsertion|defineinitial|defineindenting|defineindentedtext|definehypenationfeatures|definehspace|definehighlight|definehigh|definehelp|defineheadalternative|definehead|definehbox|definegridsnapping|definegraphictypesynonym|defineglobalcolor|definefrozenfont|defineframedtext|defineframedtable|defineframedcontent|defineframed|defineformulaframed|defineformulaalternative|defineformula|definefontsynonym|definefontstyle|definefontsolution|definefontsize|definefontfile|definefontfeature|definefontfamilypreset|definefontfamily|definefontfallback|definefontalternative|definefont|definefloat|definefittingpage|definefirstline|definefiller|definefilesynonym|definefilefallback|definefileconstant|definefiguresymbol|definefieldstack|definefieldcategory|definefieldbodyset|definefieldbody|definefield|definefallbackfamily|definefacingfloat|defineexternalfigure|defineexpandable|defineenumeration|defineeffect|definedfont|definedescription|definedeq|definedelimitedtext|definedataset|definecounter|defineconversionset|defineconversion|definecomplexorsimpleempty|definecomplexorsimple|definecomment|definecommand|definecombinedlist|definecombination|definecolumnsetspan|definecolumnsetarea|definecolumnset|definecolumnbreak|definecolorgroup|definecolor|definecollector|definechemicalsymbol|definechemicals|definechemical|definecharacterspacing|definecharacterkerning|definecharacter|definecapitals|definebutton|definebuffer|definebtxrendering|definebtxregister|definebtxdataset|definebtx|definebreakpoints|definebreakpoint|definebodyfontswitch|definebodyfontenvironment|definebodyfont|defineblock|definebar|definebackground|defineattribute|defineattachment|defineanchor|definealternativestyle|defineactivecharacter|defineaccent|defineTABLEsetup|defineMPinstance|define|defconvertedvalue|defconvertedcommand|defconvertedargument|defcatcodecommand|defaultobjectreference|defaultobjectpage|defaultinterface|decrementvalue|decrementsubpagenumber|decrementpagenumber|decrementedcounter|decrementcounter|decrement|ddots|ddot|dddot|ddagger|ddag|dcurl|dcaron|dbinom|dayspermonth|dayoftheweek|date|datasetvariable|dashv|dashedrightarrow|dashedleftarrow|dasharrow|daleth|dagger|dag|d|cyrilliczhediaeresis|cyrilliczhedescender|cyrilliczhebreve|cyrilliczh|cyrilliczediaeresis|cyrilliczdsc|cyrillicz|cyrillicyu|cyrillicystrstroke|cyrillicystr|cyrillicyo|cyrillicyi|cyrillicyerudiaeresis|cyrillicyat|cyrillicya|cyrillicv|cyrillicushrt|cyrillicumacron|cyrillicuk|cyrillicudoubleacute|cyrillicudiaeresis|cyrillicu|cyrillictshe|cyrillictetse|cyrillictedc|cyrillict|cyrillicshha|cyrillicshch|cyrillicsh|cyrillicsftsn|cyrillicsemisoft|cyrillicsdsc|cyrillicschwadiaeresis|cyrillicschwa|cyrillics|cyrillicr|cyrillicpsi|cyrillicpemidhook|cyrillicp|cyrillicot|cyrillicomegatitlo|cyrillicomegaround|cyrillicomega|cyrillicodiaeresis|cyrillicobarreddiaeresis|cyrillicobarred|cyrillico|cyrillicnje|cyrillicn|cyrillicm|cyrilliclje|cyrilliclittleyusiotified|cyrilliclittleyus|cyrillicl|cyrillicksi|cyrillickoppa|cyrillickje|cyrillickavertstroke|cyrillickastroke|cyrillickahook|cyrillickadc|cyrillickabashkir|cyrillick|cyrillicje|cyrillicizhitsadoublegrave|cyrillicizhitsa|cyrillicishrttail|cyrillicishrt|cyrillicimacron|cyrillicii|cyrillicigrave|cyrillicie|cyrillicidiaeresis|cyrillici|cyrillichrdsn|cyrillichadc|cyrillicha|cyrillich|cyrillicgje|cyrillicgheupturn|cyrillicghestroke|cyrillicghemidhook|cyrillicg|cyrillicfita|cyrillicf|cyrillicery|cyrillicertick|cyrillicerev|cyrillicentail|cyrillicenhook|cyrillicenghe|cyrillicendc|cyrillicemtail|cyrilliceltail|cyrilliceiotified|cyrillicegrave|cyrillicediaeresis|cyrillicebreve|cyrillice|cyrillicdzhe|cyrillicdzeabkhasian|cyrillicdze|cyrillicdje|cyrillicd|cyrillicchevertstroke|cyrillicchekhakassian|cyrillicchediaeresis|cyrillicchedcabkhasian|cyrillicchedc|cyrilliccheabkhasian|cyrillicch|cyrillicc|cyrillicbigyusiotified|cyrillicbigyus|cyrillicb|cyrillicae|cyrillicadiaeresis|cyrillicabreve|cyrillica|cyrillicZHEdiaeresis|cyrillicZHEdescender|cyrillicZHEbreve|cyrillicZH|cyrillicZEdiaeresis|cyrillicZDSC|cyrillicZ|cyrillicYstrstroke|cyrillicYstr|cyrillicYU|cyrillicYO|cyrillicYI|cyrillicYERUdiaeresis|cyrillicYAT|cyrillicYA|cyrillicV|cyrillicUmacron|cyrillicUdoubleacute|cyrillicUdiaeresis|cyrillicUSHRT|cyrillicUK|cyrillicU|cyrillicTSHE|cyrillicTITLO|cyrillicTETSE|cyrillicTEDC|cyrillicT|cyrillicSHHA|cyrillicSHCH|cyrillicSH|cyrillicSFTSN|cyrillicSEMISOFT|cyrillicSDSC|cyrillicSCHWAdiaeresis|cyrillicSCHWA|cyrillicS|cyrillicR|cyrillicPSILIPNEUMATA|cyrillicPSI|cyrillicPEmidhook|cyrillicPALOCHKA|cyrillicPALATALIZATION|cyrillicP|cyrillicOdiaeresis|cyrillicObarreddiaeresis|cyrillicObarred|cyrillicOT|cyrillicOMEGAtitlo|cyrillicOMEGAround|cyrillicOMEGA|cyrillicO|cyrillicNJE|cyrillicN|cyrillicM|cyrillicLJE|cyrillicLITTLEYUSiotified|cyrillicLITTLEYUS|cyrillicL|cyrillicKSI|cyrillicKOPPA|cyrillicKJE|cyrillicKAvertstroke|cyrillicKAstroke|cyrillicKAhook|cyrillicKAbashkir|cyrillicKADC|cyrillicK|cyrillicJE|cyrillicImacron|cyrillicIgrave|cyrillicIdiaeresis|cyrillicIZHITSAdoublegrave|cyrillicIZHITSA|cyrillicISHRTtail|cyrillicISHRT|cyrillicII|cyrillicIE|cyrillicI|cyrillicHRDSN|cyrillicHADC|cyrillicHA|cyrillicH|cyrillicGJE|cyrillicGHEupturn|cyrillicGHEstroke|cyrillicGHEmidhook|cyrillicG|cyrillicFITA|cyrillicF|cyrillicEiotified|cyrillicEgrave|cyrillicEdiaeresis|cyrillicEbreve|cyrillicERtick|cyrillicERY|cyrillicEREV|cyrillicENtail|cyrillicENhook|cyrillicENGHE|cyrillicENDC|cyrillicEMtail|cyrillicELtail|cyrillicE|cyrillicDZHE|cyrillicDZEabkhasian|cyrillicDZE|cyrillicDJE|cyrillicDASIAPNEUMATA|cyrillicD|cyrillicCHEvertstroke|cyrillicCHEkhakassian|cyrillicCHEdiaeresis|cyrillicCHEabkhasian|cyrillicCHEDCabkhasian|cyrillicCHEDC|cyrillicCH|cyrillicC|cyrillicBIGYUSiotified|cyrillicBIGYUS|cyrillicB|cyrillicAdiaeresis|cyrillicAbreve|cyrillicAE|cyrillicA|cwopencirclearrow|curvearrowright|curvearrowleft|currentxtablerow|currentxtablecolumn|currentvalue|currenttime|currentresponses|currentregisterpageuserdata|currentregime|currentproject|currentproduct|currentoutputstream|currentmoduleparameter|currentmessagetext|currentmainlanguage|currentlistsymbol|currentlistentrytitlerendered|currentlistentrytitle|currentlistentryreferenceattribute|currentlistentrypagenumber|currentlistentrynumber|currentlistentrylimitedtext|currentlistentrydestinationattribute|currentlanguage|currentinterface|currentheadnumber|currentfeaturetest|currentenvironment|currentdate|currentcomponent|currentcommalistitem|currentbtxuservariable|currentassignmentlistvalue|currentassignmentlistkey|curlywedge|curlyvee|curlyeqsucc|curlyeqprec|cup|ctxsprint|ctxreport|ctxluacode|ctxluabuffer|ctxlua|ctxloadluafile|ctxlatelua|ctxlatecommand|ctxfunction|ctxdirectlua|ctxdirectcommand|ctxcommand|ctop|cstroke|crightoverleftarrow|crightarrow|crampedrlap|crampedllap|crampedclap|cramped|counttokens|counttoken|countersubs|correctwhitespace|copyunittext|copytaglabeltext|copysuffixtext|copysetups|copyright|copyprefixtext|copyposition|copyparameters|copypages|copyoperatortext|copymathlabeltext|copylabeltext|copyheadtext|copyfield|copybtxlabeltext|copyboxfromcache|coprod|convertvboxtohbox|convertvalue|convertnumber|convertmonth|convertedsubcounter|converteddimen|convertedcounter|convertcommand|convertargument|continueifinputfile|continuednumber|contentreference|constantnumberargument|constantnumber|constantemptyargument|constantdimenargument|constantdimen|cong|compresult|composedlayer|composedcollector|component|complexorsimpleempty|complexorsimple|complexes|completeregister|completepagenumber|completelistoftables|completelistofsynonyms|completelistofsorts|completelistofpublications|completelistoflogos|completelistofintermezzi|completelistofgraphics|completelistoffigures|completelistofchemicals|completelistofabbreviations|completelist|completeindex|completecontent|completebtxrendering|complement|comparepalet|comparedimensioneps|comparedimension|comparecolorgroup|comment|commalistsize|commalistsentence|commalistelement|combinepages|columnsetspanwidth|columnbreak|column|colorvalue|coloronly|colored|colorcomponents|colorbar|color|colonequals|coloncolonequals|colon|collectexpanded|collectedtext|collect|clubsuit|clonefield|clippedoverlayimage|clip|cleftarrow|cldprocessfile|cldloadfile|cldcontext|cldcommand|classfont|clap|cite|citation|circleonrightarrow|circledequals|circleddash|circledcirc|circledast|circledS|circledR|circlearrowright|circlearrowleft|circeq|circ|chook|chinesenumerals|chinesecapnumerals|chineseallnumerals|chi|chemicaltoptext|chemicaltext|chemicalsymbol|chemicalmidtext|chemicalbottext|chemical|chem|checkvariables|checktwopassdata|checksoundtrack|checkpreviousinjector|checkparameters|checkpage|checknextinjector|checknextindentation|checkmark|checkinjector|checkedstrippedcsname|checkedfiller|checkedchar|checkedblank|checkcharacteralign|check|charwidthlanguage|chardescription|characters|character|chapter|cfrac|centerline|centerednextbox|centeredlastline|centeredbox|centerdot|centerbox|centeraligned|cdots|cdotp|cdotaccent|cdot|ccurl|ccircumflex|ccedilla|ccaron|cbox|catcodetablename|carriagereturn|cap|camel|calligraphic|cacute|button|bullet|buildtextognek|buildtextmacron|buildtextgrave|buildtextcedilla|buildtextbottomdot|buildtextbottomcomma|buildtextaccent|buildmathaccent|btxtextcitation|btxsingularplural|btxsingularorplural|btxsetup|btxsavejournalist|btxremapauthor|btxoneorrange|btxloadjournalist|btxlistcitation|btxlabeltext|btxlabellanguage|btxhybridcite|btxhiddencitation|btxfoundtype|btxfoundname|btxflushsuffix|btxflushauthornormalshort|btxflushauthornormal|btxflushauthorname|btxflushauthorinvertedshort|btxflushauthorinverted|btxflushauthor|btxflush|btxfirstofrange|btxfieldtype|btxfieldname|btxfield|btxexpandedjournal|btxdoifuservariableelse|btxdoifsameaspreviouselse|btxdoifsameaspreviouscheckedelse|btxdoifnot|btxdoifelseuservariable|btxdoifelsesameaspreviouschecked|btxdoifelsesameasprevious|btxdoifelsecombiinlist|btxdoifelse|btxdoifcombiinlistelse|btxdoif|btxdirect|btxdetail|btxauthorfield|btxalwayscitation|btxaddjournal|btxabbreviatedjournal|bstroke|breve|breakhere|breakablethinspace|bpos|boxtimes|boxreference|boxplus|boxofsize|boxminus|boxmarker|boxdot|boxcursor|bowtie|bottomrightbox|bottomleftbox|bottombox|bot|bordermatrix|booleanmodevalue|bookmark|boldslanted|bolditalic|boldface|bold|bodyfontsize|bodyfontenvironmentlist|blockuservariable|blocksynctexfile|blockquote|blockligatures|bleedwidth|bleedheight|bleed|blap|blank|blacktriangleright|blacktriangleleft|blacktriangledown|blacktriangle|blacksquare|blackrules|blackrule|blacklozenge|bitmapimage|binom|bigwedge|bigvee|biguplus|bigudot|bigtriangleup|bigtriangledown|bigtimes|bigstar|bigsquare|bigsqcup|bigsqcap|bigskip|bigr|bigotimes|bigoplus|bigodot|bigm|bigl|biggr|biggm|biggl|bigger|bigg|bigdiamond|bigcup|bigcircle|bigcirc|bigcap|bigbodyfont|big|bhook|between|beth|beta|beforetestandsplitstring|beforesplitstring|because|bbox|bbordermatrix|baselinerightbox|baselinemiddlebox|baselineleftbox|baselinebottom|basegrid|barwedge|barovernorthwestarrow|barleftarrowrightarrowbar|barleftarrow|bar|backslash|backsim|backprime|backgroundline|backgroundimagefill|backgroundimage|background|backepsilon|averagecharwidth|availablehsize|autosetups|autopagestaterealpageorder|autopagestaterealpage|automathematics|autointegral|autoinsertnextspace|autodirvtop|autodirvbox|autodirhbox|autocap|attachment|atrightmargin|atpage|atleftmargin|atilde|at|asymp|astype|ast|assumelongusagecs|assignwidth|assignvalue|assigntranslation|assignifempty|assigndimension|assigndimen|assignalfadimension|aside|asciistr|arrowvert|aringacute|aring|arg|arabicwasallam|arabicvowelyeh|arabicvowelwaw|arabictripledot|arabicstartofrubc|arabicslcm|arabicshighthreedots|arabicsemicolon|arabicsanah|arabicsamvat|arabicsalla|arabicsajdah|arabicsafha|arabicrialsign|arabicray|arabicrasoul|arabicquestion|arabicqala|arabicpoeticverse|arabicpertenthousand|arabicpermille|arabicperiod|arabicpercent|arabicparenright|arabicparenleft|arabicnumerals|arabicnumberabove|arabicnumber|arabicmuhammad|arabicmisra|arabiclowseen|arabiclownoonkasra|arabiclowmeemlong|arabiclettermark|arabicjallajalalouhou|arabichighzain|arabichighyeh|arabichighwaqf|arabichighthalatha|arabichightakhallus|arabichightah|arabichighsmallsafha|arabichighseen|arabichighsallallahou|arabichighsakta|arabichighsajda|arabichighsad|arabichighrubc|arabichighrahmatullahalayhe|arabichighradiallahouanhu|arabichighqif|arabichighqaf|arabichighnoonkasra|arabichighnoon|arabichighnisf|arabichighmeemshort|arabichighmeemlong|arabichighmadda|arabichighlamalef|arabichighjeem|arabichighfootnotemarker|arabichighesala|arabichigheqala|arabichighalayheassallam|arabichighain|arabicfourthroot|arabicfootnotemarker|arabicexnumerals|arabicendofayah|arabicdisputedendofayah|arabicdecimals|arabicdateseparator|arabiccuberoot|arabiccomma|arabicbasmalah|arabicasterisk|arabicallallahou|arabicallah|arabicalayhe|arabicakbar|approxnEq|approxeq|approxEq|approx|applytowords|applytosplitstringwordspaced|applytosplitstringword|applytosplitstringlinespaced|applytosplitstringline|applytosplitstringcharspaced|applytosplitstringchar|applytofirstcharacter|applytocharacters|applyprocessor|applyalternativestyle|apply|appendvalue|appendtoksonce|appendtoks|appendtocommalist|appendgvalue|appendetoks|aogonek|angle|anchor|ampersand|amalg|amacron|alwayscite|alwayscitation|alphabeticnumerals|alpha|allinputpaths|alignmentcharacter|alignhere|alignedline|alignedbox|aligned|alignbottom|aleph|ainvertedbreve|ahook|agrave|aftertestandsplitstring|aftersplitstring|afghanicurrency|aemacron|aeligature|aeacute|adoublegrave|adotbelow|adotaccentmacron|adotaccent|adiaeresismacron|adiaeresis|addvalue|addtocommalist|addtoJSpreamble|addfontpath|addfeature|adaptpapersize|adaptlayout|adaptfontfeature|adaptcollector|acwopencirclearrow|acute|actuarial|activatespacehandler|acircumflextilde|acircumflexhook|acircumflexgrave|acircumflexdotbelow|acircumflexacute|acircumflex|acaron|abrevetilde|abrevehook|abrevegrave|abrevedotbelow|abreveacute|abreve|about|abjadnumerals|abjadnodotnumerals|abjadnaivenumerals|abbreviation|aacute|Zstroke|Zhook|Zeta|Zdotaccent|Zcaron|Zacute|Ytilde|Ymacron|Yhook|Ygrave|Ydotbelow|Ydiaeresis|Ycircumflex|Yacute|Xi|XeTeX|XETEX|Words|Word|WidthSpanningText|Wcircumflex|WORDS|WORD|WEEKDAY|Vvdash|Vert|VerboseNumber|Vdash|VDash|Uuparrow|Utilde|Uring|Upsilon|Updownarrow|Uparrow|Uogonek|Umacron|Uinvertedbreve|Uhungarumlaut|Uhorntilde|Uhornhook|Uhorngrave|Uhorndotbelow|Uhornacute|Uhorn|Uhook|Ugrave|Udoublegrave|Udotbelow|Udiaeresismacron|Udiaeresisgrave|Udiaeresiscaron|Udiaeresisacute|Udiaeresis|Ucircumflex|Ucaron|Ubreve|Uacute|Tstroke|TransparencyHack|Thorn|Thook|Theta|TheNormalizedFontSize|TeX|Tcommaaccent|Tcedilla|Tcaron|Tau|TaBlE|TEX|TABLE|Swarrow|Supset|Subset|Smallcapped|Sigma|Searrow|Scommaaccent|Scircumflex|Schwa|Scedilla|Scaron|ScaledPointsToWholeBigPoints|ScaledPointsToBigPoints|Sacute|S|Rsh|Rrightarrow|Romannumerals|Rinvertedbreve|Rightarrow|Rho|Relbar|ReadFile|Re|Rdsh|Rdoublegrave|Rcommaaccent|Rcaron|Racute|PtToCm|Psi|PropertyLine|PointsToWholeBigPoints|PointsToReal|PointsToBigPoints|Plankconst|PiCTeX|Pi|Phook|Phi|PRAGMA|PPCHTeX|PPCHTEX|PICTEX|PDFcolor|PDFTEX|PDFETEX|P|Otildemacron|Otilde|Ostrokeacute|Ostroke|Oogonekmacron|Oogonek|Omicron|Omega|Omacron|Oinvertedbreve|Ohungarumlaut|Ohorntilde|Ohornhook|Ohorngrave|Ohorndotbelow|Ohornacute|Ohorn|Ohook|Ograve|Odoublegrave|Odotbelow|Odotaccentmacron|Odotaccent|Odiaeresismacron|Odiaeresis|Ocircumflextilde|Ocircumflexhook|Ocircumflexgrave|Ocircumflexdotbelow|Ocircumflexacute|Ocircumflex|Ocaron|Obreve|Oacute|OEligature|Nwarrow|Numbers|Nu|Ntilde|NormalizeTextWidth|NormalizeTextHeight|NormalizeFontWidth|NormalizeFontHeight|Njligature|Ngrave|Neng|Nearrow|Ncommaaccent|Ncaron|Nacute|NJligature|Mu|MetaPost|MetaFun|MetaFont|Mapsto|Mapsfrom|MPy|MPxywhd|MPxy|MPx|MPwhd|MPw|MPvv|MPvariable|MPvar|MPv|MPur|MPul|MPtransparency|MPtext|MPstring|MPrs|MPrightskip|MPrest|MPregion|MPrawvar|MPr|MPposset|MPpositiongraphic|MPpos|MPplus|MPpardata|MPpage|MPp|MPoverlayanchor|MPoptions|MPn|MPmenubuttons|MPls|MPlr|MPll|MPleftskip|MPinclusions|MPh|MPgetposboxes|MPgetmultishape|MPgetmultipars|MPfontsizehskip|MPdrawing|MPd|MPcolumn|MPcoloronly|MPcolor|MPcode|MPc|MPbetex|MPanchor|MPVI|MPIV|MPII|MONTHSHORT|MONTHLONG|MONTH|MKXI|MKVI|MKIX|MKIV|MKII|METAPOST|METAFUN|METAFONT|LuajitTeX|LuaTeX|LuaMetaTeX|Lua|Lstroke|Lsh|Longrightarrow|Longmapsto|Longmapsfrom|Longleftrightarrow|Longleftarrow|Lleftarrow|Ljligature|Leftrightarrow|Leftarrow|Ldsh|Ldotmiddle|Lcommaaccent|Lcaron|Lbar|Lambda|LamSTeX|Lacute|LaTeX|LUATEX|LUAMETATEX|LUAJITTEX|LJligature|LATEX|LAMSTEX|Khook|Kcommaaccent|Kcaron|Kappa|Join|Jcircumflex|Itilde|Istroke|Iota|Iogonek|Imacron|Im|Iinvertedbreve|Ihook|Igrave|Idoublegrave|Idotbelow|Idotaccent|Idiaeresis|Icircumflex|Icaron|Ibreve|Iacute|INRSTEX|IJligature|Hstroke|Hcircumflex|Hcaron|Hat|Gstroke|Greeknumerals|GotoPar|Ghook|GetPar|Gdotaccent|Gcommaaccent|Gcircumflex|Gcaron|Gbreve|Gamma|Game|Gacute|Finv|Fhook|EveryPar|EveryLine|Eulerconst|Etilde|Eth|Eta|Epsilon|Eogonek|Emacron|Einvertedbreve|Ehook|Egrave|Edoublegrave|Edotbelow|Edotaccent|Ediaeresis|Ecircumflextilde|Ecircumflexhook|Ecircumflexgrave|Ecircumflexdotbelow|Ecircumflexacute|Ecircumflex|Ecedilla|Ecaron|Ebreve|Eacute|ETEX|Dzligature|Dzcaronligature|Dstroke|Downarrow|Doteq|Dhook|Delta|Ddownarrow|Dcaron|Dafrican|DZligature|DZcaronligature|Cup|Cstroke|ConvertToConstant|ConvertConstantAfter|Context|ConTeXt|Chook|Chi|Characters|Character|Cdotaccent|Ccircumflex|Ccedilla|Ccaron|Caps|Cap|Cacute|CONTEXT|Bumpeq|Box|Bigr|Bigm|Bigl|Biggr|Biggm|Biggl|Bigg|Big|Bhook|Beta|BeforePar|Atilde|Astroke|Arrowvert|Aringacute|Aring|Aogonek|Angstrom|And|Amacron|AmSTeX|Alphabeticnumerals|Alpha|Ainvertedbreve|Ahook|Agrave|AfterPar|Adoublegrave|Adotbelow|Adotaccentmacron|Adotaccent|Adiaeresismacron|Adiaeresis|Acircumflextilde|Acircumflexhook|Acircumflexgrave|Acircumflexdotbelow|Acircumflexacute|Acircumflex|Acaron|Abrevetilde|Abrevehook|Abrevegrave|Abrevedotbelow|Abreveacute|Abreve|Aacute|AMSTEX|AEmacron|AEligature|AEacute)(?=[^a-zA-Z])", + "name" : "context.command.commands.context.tex" + }, + "comment" : { + "name" : "context.comment.comment.tex" + }, + "constant" : { + "match" : "\u005C\u005C(zwnj|zwj|zerowidthspace|zerowidthnonjoiner|zerowidthnobreakspace|zerowidthjoiner|zeroskip|zeropoint|zeromuskip|zerocount|xmlcatcodes|xifcode|xetexengine|wildcardsymbol|whatsitnodecode|vtopgroupcode|vrbcatcodes|voidifcode|voidbox|vmodeifcode|vlistnodecode|vcentergroupcode|vboxifcode|vboxgroupcode|vadjustgroupcode|usetexmodule|usemodule|useluamodule|uprotationangle|unsetnodecode|unknownengine|unexpandeddocumentvariable|underscoreasciicode|undefined|typescripttwo|typescriptthree|typescriptone|txtcatcodes|twoperemspace|trueifcode|tpbcatcodes|tpacatcodes|tildeasciicode|threeperemspace|thousandpoint|texengineversion|texenginename|texenginefunctionality|texengine|texcatcodes|tabasciicode|superscriptcatcode|subscriptcatcode|stoptext|stopproject|stopproduct|stopnotmode|stopnotext|stopnotallmodes|stopmodule|stopmodeset|stopmodeset|stopmode|stopmkivmode|stoplmtxmode|stopenvironment|stopdocument|stopcomponent|stopallmodes|stopTEXpage|starttext|startproject|startproduct|startnotmode|startnotext|startnotallmodes|startmodule|startmodeset|startmodeset|startmode|startmkivmode|startlmtxmode|startenvironment|startdocument|startcomponent|startallmodes|startTEXpage|spacecatcode|spaceasciicode|softhyphen|smallskipamount|slantperpoint|sixperemspace|singlequoteasciicode|simplegroupcode|setupmodule|setupdocument|semisimplegroupcode|scrollmodecode|scaledpoint|rulenodecode|rlm|righttoleftmark|rightrotationangle|rightparentasciicode|rightbraceasciicode|questionmarkasciicode|pushmode|punctuationspace|prtcatcodes|project|product|primeasciicode|preventmode|presetdocument|popmode|points|plustwohundred|plustwo|plustwentythousand|plusthree|plusthousand|plustenthousand|plusten|plussixteen|plussix|plusseven|plusonehundred|plusone|plusnine|plushundred|plusfour|plusfivehundred|plusfive|plusfifty|pluseight|pluscxxviii|pluscxxvii|pluscclvi|pluscclv|penaltynodecode|pdftexengine|parfillrightskip|parfillleftskip|parametercatcode|outputnewlinechar|outputgroupcode|othercatcode|optionalspace|onepoint|onemuskip|onebasepoint|oddifcode|numifcode|notcatcodes|normalpagebox|nonstopmodecode|nonbreakablespace|nobreakspace|noaligngroupcode|nilcatcodes|newlineasciicode|narrownobreakspace|muquad|morethanasciicode|moduleparameter|mmodeifcode|mksuffix|minustwo|minusone|medskipamount|medcard|maxdimen|maxcount|maxcardminusone|maxcard|mathsupnormal|mathsupdisplay|mathsupcramped|mathsubnormal|mathsubcombined|mathsnodecode|mathsizesuffix|mathshiftgroupcode|mathshiftcatcode|mathrelcode|mathradicalcode|mathpunctcode|mathordcode|mathopencode|mathopcode|mathnothingcode|mathnolopcode|mathnodecode|mathlimopcode|mathleftgroupcode|mathinnercode|mathgroupcode|mathexheight|mathemwidth|mathclosecode|mathchoicegroupcode|mathchoicecode|mathboxcode|mathbincode|mathaxisheight|mathalphacode|mathaccentcode|marknodecode|luatexengine|luastringsep|luacatcodes|lrm|ligaturenodecode|lettercatcode|lessthanasciicode|lefttorightmark|leftrotationangle|leftparentasciicode|leftbraceasciicode|kernnodecode|invalidcatcode|interwordstretch|interwordspace|interwordshrink|insertnodecode|insertgroupcode|innerifcode|inicatcodes|ignorecatcode|ideographicspace|ideographichalffillspace|hyphenasciicode|hmodeifcode|hlistnodecode|hboxifcode|hboxgroupcode|hashasciicode|halfpoint|halfapoint|hairspace|gluenodecode|globalpreventmode|globalenablemode|globaldisablemode|fourperemspace|forwardslashasciicode|formfeedasciicode|fontslantperpoint|fontinterwordstretch|fontinterwordspace|fontinterwordshrink|fontextraspace|fontexheight|fontemwidth|fontcharifcode|fmtversion|fmtname|fiveperemspace|figurespace|falseifcode|extraspace|exheight|exclamationmarkasciicode|everystoptext|everystarttext|escapecatcode|errorstopmodecode|eofifcode|environment|enquad|endoflinetoken|endoflinecatcode|endoflineasciicode|endoffileasciicode|endline|endgroupcatcode|enablemode|emwidth|emquad|emptyvbox|emptytoks|emptyhbox|emptybox|empty|egroup|eUx|downrotationangle|doublequoteasciicode|doublecommentsignal|dollarasciicode|doifnotmode|doifnotdocumentvariable|doifnotallmodes|doifmodeelse|doifmode|doifelsemode|doifelsedocumentvariable|doifelseallmodes|doifdocumentvariableelse|doifdocumentvariable|doifallmodeselse|doifallmodes|documentvariable|discretionarynodecode|discretionarygroupcode|disablemode|directionrighttoleft|directionlefttoright|dimifcode|delasciicode|definemode|definedifcode|currentmoduleparameter|ctxcatcodes|ctdcatcodes|csnameifcode|continueifinputfile|contextversion|contextmark|contextlmtxmode|contextkind|contextformat|constantnumberargument|constantnumber|constantemptyargument|constantdimenargument|constantdimen|conditionaltrue|conditionalfalse|component|commentcatcode|commentasciicode|colonasciicode|circumflexasciicode|charnodecode|charifcode|catifcode|caseifcode|breakablethinspace|bottomlevelgroupcode|bigskipamount|bidirlo|bidirle|bidipop|bidilro|bidilre|bgroup|begingroupcatcode|batchmodecode|barasciicode|backslashasciicode|attributeunsetvalue|atsignasciicode|asciispacechar|ampersandasciicode|alignmentcatcode|aligngroupcode|adjustnodecode|adjustedhboxgroupcode|activetabtoken|activemathcharcode|activeformfeedtoken|activeendoflinetoken|activecatcode|activecatcode|Ux|Umathaccents|!!es|!!bs)(?=[^a-zA-Z])", + "name" : "context.constant.commands.constant.tex" + }, + "csname" : { + "match" : "\u005C\u005C[a-zA-Z\u005C_@!?-ÿ]+", + "name" : "context.user.commands.user.tex" + }, + "escaped" : { + "match" : "\u005C\u005C.", + "name" : "context.command.commands.escaped.tex" + }, + "extra" : { + "match" : "\u005C~|\u005C||`|_|\u005C^|\u005C\u005C|/|\u005C-|\u005C+|\u005C'|\u005C&|\u005C%", + "name" : "context.extra.symbols.extras.tex" + }, + "grouping" : { + "match" : "}|{|\u005C$", + "name" : "context.grouping.symbols.groups.tex" + }, + "helper" : { + "match" : "\u005C\u005C(xmlsetup|writestatus|wait|vkern|vglue|vfillneg|vfilllneg|vfilll|validassignment|uxdef|usedummystyleparameter|usedummystyleandcolor|usedummycolorparameter|unvoidbox|unsupportedcs|unprotect|unique|unexpanded|undefinevalue|uncramped|ugdef|uedef|uedcatcodecommand|udef|twodigits|tripleexpandafter|triggeruncrampedstyle|triggeruncrampedsmallstyle|triggeruncrampedbigstyle|triggertextstyle|triggersmallstyle|triggerscriptstyle|triggerscriptscriptstyle|triggermathstyle|triggergroupedcommandcs|triggergroupedcommand|triggerdisplaystyle|triggercrampedstyle|triggercrampedsmallstyle|triggercrampedbigstyle|triggerbigstyle|tracingnone|tracingall|to|threedigits|thirdofthreeunexpanded|thirdofthreearguments|thirdofsixarguments|thirdoffourarguments|thirdoffivearguments|thirdargumenttrue|thirdargumentfalse|then|texsetup|texdefinition|synchronizelayoutdirection|synchronizeinlinedirection|synchronizedisplaydirection|superscript|subscript|strutwd|struthtdp|strutht|strutgap|strutdp|strutbox|strut|strippedcsname|stopxmlsetups|stoptexsetups|stoptexdefinition|stoptexcode|stopsetups|stoprawsetups|stoppickupmath|stopnointerference|stopluasetups|stopluaparameterset|stopluacode|stoplua|stoplocalsetups|stopimath|stopforceddisplaymath|stopextendcatcodetable|stopexpanded|stopdmath|stopctxfunctiondefinition|stopctxfunction|stopcontextdefinitioncode|stopcontextcode|stopcatcodetable|stop|startxmlsetups|starttexsetups|starttexdefinition|starttexcode|startsetups|startrawsetups|startpickupmath|startnointerference|startluasetups|startluaparameterset|startluacode|startlua|startlocalsetups|startimath|startforceddisplaymath|startextendcatcodetable|startexpanded|startdmath|startctxfunctiondefinition|startctxfunction|startcontextdefinitioncode|startcontextcode|startcatcodetable|start|space|sixthofsixarguments|sixthargumenttrue|sixthargumentfalse|singleexpandafter|simplegroupedcommand|signalcharacter|seventhargumenttrue|seventhargumentfalse|setxvalue|setxmeasure|setvalue|setuxvalue|setuvalue|setups|setup|setugvalue|setuevalue|settruevalue|settrue|setsystemmode|setstrut|setnewmacro|setnewconstant|setmode|setmeasure|setmathtextbox|setmathsmalltextbox|setlocalhsize|setgvalue|setgmeasure|setfalsevalue|setfalse|setexpandeddummyparameter|setevalue|setemeasure|setdummyparameter|setconstantvalue|setconstant|setcatcodetable|secondoftwounexpanded|secondoftwoarguments|secondofthreeunexpanded|secondofthreearguments|secondofsixarguments|secondoffourarguments|secondoffivearguments|secondargumenttrue|secondargumentfalse|scratchyposition|scratchyoffset|scratchxposition|scratchxoffset|scratchwidth|scratchvsize|scratchvoffset|scratchunicode|scratchtopskip|scratchtopoffset|scratchtokstwo|scratchtoksthree|scratchtokssix|scratchtoksone|scratchtoksfour|scratchtoksfive|scratchtoks|scratchskiptwo|scratchskipthree|scratchskipsix|scratchskipone|scratchskipfour|scratchskipfive|scratchskip|scratchrightskip|scratchrightoffset|scratchoffset|scratchny|scratchnx|scratchmy|scratchmx|scratchmuskiptwo|scratchmuskipthree|scratchmuskipsix|scratchmuskipone|scratchmuskipfour|scratchmuskipfive|scratchmuskip|scratchmin|scratchmax|scratchleftskip|scratchleftoffset|scratchhsize|scratchhoffset|scratchheight|scratchdistance|scratchdimentwo|scratchdimenthree|scratchdimensix|scratchdimenone|scratchdimenfour|scratchdimenfive|scratchdimen|scratchdepth|scratchcountertwo|scratchcounterthree|scratchcountersix|scratchcounterone|scratchcounterfour|scratchcounterfive|scratchcounter|scratchboxtwo|scratchboxthree|scratchboxsix|scratchboxone|scratchboxfour|scratchboxfive|scratchbox|scratchbottomskip|scratchbottomoffset|ruledvtop|ruledvss|ruledvskip|ruledvpack|ruledvglue|ruledvfilneg|ruledvfillneg|ruledvfilll|ruledvfill|ruledvfil|ruledvcenter|ruledvbox|ruledtpack|ruledpenalty|ruledmskip|ruledmkern|ruledmbox|ruledkern|ruledhss|ruledhskip|ruledhpack|ruledhglue|ruledhfilneg|ruledhfillneg|ruledhfilll|ruledhfill|ruledhfil|ruledhbox|rtlvtop|rtlvbox|rtlhbox|righttoleftvtop|righttoleftvbox|righttolefthbox|righttoleft|rightboundary|reversevtop|reversevpack|reversevbox|reversetpack|reversehpack|reversehbox|restorecatcodes|resetvalue|resetsystemmode|resetsetups|resetmode|resetglobal|reseteverypar|resetctxscanner|reqno|removeunwantedspaces|removetoks|removepunctuation|removelastspace|relrelspacing|relpunctspacing|relordspacing|relopspacing|relopenspacing|relinnerspacing|relclosespacing|relbinspacing|registerctxluafile|redoglobal|redefine|recurselevel|recursedepth|quitprevcommalist|quitcommalist|quarterstrut|quad|pushsystemmode|pushmathstyle|pushcatcodetable|punctrelspacing|punctpunctspacing|punctordspacing|punctopspacing|punctopenspacing|punctinnerspacing|punctclosespacing|punctbinspacing|protected|protect|processfirstactioninset|processcommalist|processcommacommand|processallactionsinset|processallactions|processaction|privatescratchtoks|privatescratchskip|privatescratchmuskip|privatescratchdimen|privatescratchcounter|privatescratchbox|prependtotoks|prependtoks|popsystemmode|popmathstyle|popcatcodetable|pickupgroupedcommand|permitspacesbetweengroups|ordrelspacing|ordpunctspacing|ordordspacing|ordopspacing|ordopenspacing|ordinnerspacing|ordclosespacing|ordbinspacing|oprelspacing|oppunctspacing|opordspacing|opopspacing|opopenspacing|opinnerspacing|openrelspacing|openpunctspacing|openordspacing|openopspacing|openopenspacing|openinnerspacing|openclosespacing|openbinspacing|opclosespacing|opbinspacing|onlypdfobjectcompression|onlynonbreakablespace|oninterlineskip|offinterlineskip|obeyspaces|obeyluatokens|obeylualines|obeylines|obeyedtab|obeyedspace|obeyedpage|obeyedline|null|novalidassignment|nosuperscript|nosubscript|nospacing|nospace|normalvglue|normalvfillneg|normalvfilllneg|normalsuperscript|normalsubscript|normalstopimath|normalstopdmath|normalstartimath|normalstartdmath|normalspace|normalreqno|normalpdfcompression|normalnosuperscript|normalnosubscript|normallineskiplimit|normallineskip|normalhglue|normalhfillneg|normalhfilllneg|normalbaselineskip|nopdfobjectcompression|nopdfcompression|nointerlineskip|nohyphens|noheightstrut|nobreak|nexttoken|nextbox|next|newwrite|newtoks|newsystemmode|newskip|newsignal|newread|newmuskip|newmode|newmarks|newmacro|newlanguage|newinsert|newif|newhelp|newfraction|newfamily|newfam|newdimen|newcount|newconstant|newconditional|newcatcodetable|newbox|newattribute|nbsp|naturalvtop|naturalvpack|naturalvbox|naturaltpack|naturalhpack|naturalhbox|morehyphens|modulonumber|measured|measure|maximumpdfcompression|mathtext|mathstylevcenteredvbox|mathstylevcenteredhbox|mathstylevcenter|mathstylevbox|mathstylehbox|mathstylefont|mathstyleface|mathstylecommand|mathsmallstylefont|mathsmallstyleface|mathpalette|mathortext|mathnothing|mathnolop|mathlimop|mathbox|mathalpha|luaversion|luasetup|luaparameterset|luaminorversion|luamajorversion|luaexpr|luaexpanded|luaconditional|luacode|ltrvtop|ltrvbox|ltrhbox|loggingall|localhsize|lineheight|letvalue|letgvalue|letdummyparameter|letcatcodecommand|lesshyphens|lefttorightvtop|lefttorightvbox|lefttorighthbox|lefttoright|leftorrightvtop|leftorrightvbox|leftorrighthbox|leftorright|leftboundary|lateluacode|lastlinewidth|keepunwantedspaces|installprotectedctxscanner|installprotectedctxfunction|installctxscanner|installctxfunction|installcorenamespace|innerrelspacing|innerpunctspacing|innerordspacing|inneropspacing|inneropenspacing|innerinnerspacing|innerclosespacing|innerbinspacing|inlineordisplaymath|indisplaymath|ignorevalue|ignoreparskip|htdp|hsizefraction|hkern|hglue|hfillneg|hfilllneg|hfilll|halfstrut|halflinestrut|groupedcommandcs|groupedcommand|goodbreak|gobbletwooptionals|gobbletwoarguments|gobblethreeoptionals|gobblethreearguments|gobbletenarguments|gobblesixarguments|gobblesevenarguments|gobbleoneoptional|gobbleoneargument|gobbleninearguments|gobblefouroptionals|gobblefourarguments|gobblefiveoptionals|gobblefivearguments|gobbleeightarguments|globalsetsystemmode|globalsetmode|globalscratchtoks|globalscratchskip|globalscratchmuskip|globalscratchdimen|globalscratchcountertwo|globalscratchcounterthree|globalscratchcounterone|globalscratchcounter|globalscratchbox|globalresetsystemmode|globalresetmode|globallet|glet|getxparameters|getvalue|getuvalue|getparameters|getgparameters|getfirstcharacter|geteparameters|getdummyparameters|frule|freezemeasure|fourthofsixarguments|fourthoffourarguments|fourthoffivearguments|fourthargumenttrue|fourthargumentfalse|foundtrue|foundfalse|forgetparameters|forgetall|forcestrutdepth|forcedisplaymath|flushnextbox|firstoftwounexpanded|firstoftwoarguments|firstofthreeunexpanded|firstofthreearguments|firstofsixarguments|firstofoneunexpanded|firstofoneargument|firstoffourarguments|firstoffivearguments|firstinset|firstargumenttrue|firstargumentfalse|finishpar|filledhboxy|filledhboxr|filledhboxm|filledhboxk|filledhboxg|filledhboxc|filledhboxb|fifthofsixarguments|fifthoffivearguments|fifthargumenttrue|fifthargumentfalse|fastsetup|fastloopindex|fastloopfinal|expelsedoif|expdoifnot|expdoifinsetelse|expdoifelseinset|expdoifelsecommon|expdoifcommonelse|expdoif|expanded|exitloop|executeifdefined|everyendpar|enspace|endstrut|endpar|endgraf|emspace|empty|dummyparameter|dowithnextboxcs|dowithnextboxcontentcs|dowithnextboxcontent|dowithnextbox|dowith|doubleexpandafter|dotriplegroupempty|dotripleempty|dotripleargument|dostepwiserecurse|dospacing|dosixtupleempty|dosixtupleargument|dosinglegroupempty|dosingleempty|dosingleargument|doseventupleempty|doseventupleargument|dorecurse|doquintuplegroupempty|doquintupleempty|doquintupleargument|doquadruplegroupempty|doquadrupleempty|doquadrupleargument|dontpermitspacesbetweengroups|dontleavehmode|dontcomplain|donothing|donetrue|donefalse|doloop|doifvaluesomething|doifvaluenothingelse|doifvaluenothing|doifvalue|doifundefinedelse|doifundefined|doiftextelse|doiftext|doifsomethingelse|doifsomething|doifsetupselse|doifsetups|doifnumberelse|doifnumber|doifnotvalue|doifnottext|doifnotsetups|doifnotnumber|doifnotinstring|doifnotinset|doifnothingelse|doifnothing|doifnotcommon|doifnotcommandhandler|doifnot|doifnextparenthesiselse|doifnextoptionalelse|doifnextoptionalcselse|doifnextcharelse|doifnextcharcselse|doifnextbgroupelse|doifnextbgroupcselse|doifinstringelse|doifinstring|doifinsetelse|doifinset|doiffirstcharelse|doiffastoptionalcheckelse|doiffastoptionalcheckcselse|doifelsevaluenothing|doifelsevalue|doifelseundefined|doifelsetext|doifelsesomething|doifelsesetups|doifelsenumber|doifelsenothing|doifelsenextparenthesis|doifelsenextoptionalcs|doifelsenextoptional|doifelsenextcharcs|doifelsenextchar|doifelsenextbgroupcs|doifelsenextbgroup|doifelseinstring|doifelseinset|doifelsefirstchar|doifelsefastoptionalcheckcs|doifelsefastoptionalcheck|doifelsedimension|doifelsedefined|doifelsecommon|doifelsecommandhandler|doifelseassignmentcs|doifelseassignment|doifelse|doifdimensionelse|doifdefinedelse|doifdefined|doifcommonelse|doifcommon|doifcommandhandlerelse|doifcommandhandler|doifassignmentelsecs|doifassignmentelse|doif|dohyphens|doglobal|dofastloopcs|dodoublegroupempty|dodoubleempty|dodoubleargument|dodoglobal|docheckassignment|dividenumber|distributedhsize|dirrlo|dirrle|dirlro|dirlre|directsetup|directluacode|directdummyparameter|depthstrut|definenamedlua|definemeasure|defineexpandable|define|defcatcodecommand|defaultcatcodetable|currentcatcodetable|ctxwrite|ctxsprint|ctxreport|ctxluacode|ctxlua|ctxloadluafile|ctxlatelua|ctxlatecommand|ctxfunction|ctxdirectlua|ctxdirectcommand|ctxcommand|crlf|cramped|copysetups|copyparameters|compoundhyphenpenalty|closerelspacing|closepunctspacing|closeordspacing|closeopspacing|closeopenspacing|closeinnerspacing|closeclosespacing|closebinspacing|cldprocessfile|cldloadviafile|cldloadfile|cldcontext|cldcommand|checkedstrippedcsname|checkedrighttoleft|checkedlefttoright|checked|charspace|catcodetablename|carryoverpar|break|boxisempty|booleanmodevalue|binrelspacing|binpunctspacing|binordspacing|binopspacing|binopenspacing|bininnerspacing|binclosespacing|binbinspacing|begstrut|begcsname|availablehsize|autorule|autodirvtop|autodirvbox|autodirhbox|assumelongusagecs|appendtotoks|appendtoks|allowbreak|Umathbotaccent|Ucheckedstopdisplaymath|Ucheckedstartdisplaymath)(?=[^a-zA-Z])", + "name" : "context.plain.commands.plain.tex" + }, + "ifprimitive" : { + "match" : "\u005C\u005Cif[a-zA-Z\u005C_@!?-ÿ]*", + "name" : "context.primitive.commands.if.tex" + }, + "lua_command" : { + "begin" : "(\u005C\u005Cstart(?:luathread|luascript|luaexpr|latelua|directlua|ctxlua|ctxlatelua|ctxlatecommand|ctxfunction|ctxcommand|cldcontext|cldcommand))", + "beginCaptures" : { + "1" : { + "name" : "context.embedded.lua.command.open.tex" + }, + "2" : { + "name" : "context.grouping.lua.command.open.tex" + } + }, + "end" : "(\u005C\u005Cstop(?:luathread|luascript|luaexpr|latelua|directlua|ctxlua|ctxlatelua|ctxlatecommand|ctxfunction|ctxcommand|cldcontext|cldcommand))", + "endCaptures" : { + "1" : { + "name" : "context.grouping.lua.command.close.tex" + } + }, + "patterns" : [ + { + "include" : "source.context.cld" + } + ] + }, + "lua_environment" : { + "begin" : "(\u005C\u005Cstart(?:luasetups|luaparameterset|luacode|ctxfunctiondefinition|ctxfunction))", + "beginCaptures" : { + "0" : { + "name" : "context.embedded.lua.environment.open.tex" + } + }, + "end" : "(\u005C\u005Cstop(?:luasetups|luaparameterset|luacode|ctxfunctiondefinition|ctxfunction))", + "endCaptures" : { + "0" : { + "name" : "context.embedded.lua.environment.close.tex" + } + }, + "patterns" : [ + { + "include" : "source.context.cld" + } + ] + }, + "metafun_command" : { + "match" : "\u005C\u005C(useMPgraphic|usableMPgraphic|uniqueMPpagegraphic|uniqueMPgraphic|reuseMPgraphic|reusableMPgraphic|MPpositiongraphic)(?=[^a-zA-Z])", + "name" : "context.embedded.metafun.command.tex" + }, + "metafun_environment_a" : { + "begin" : "(\u005C\u005Cstart(?:useMPgraphic|reuseMPgraphic|MPinitializations|MPinclusions|MPgraphic|MPextensions|MPdefinitions|MPcode|MPcalculation))\u005Cs*(?:(\u005C{)([^\u005C}]*)(\u005C}))?\u005Cs*(?:(\u005C{)([^\u005C}]*)(\u005C}))?", + "beginCaptures" : { + "1" : { + "name" : "context.embedded.metafun.environment.start.a.tex" + }, + "2" : { + "name" : "context.embedded.metafun.environment.open.a.1.tex" + }, + "3" : { + "name" : "context.warning.metafun.environment.content.a.1.tex" + }, + "4" : { + "name" : "context.embedded.metafun.environment.close.a.1.tex" + }, + "5" : { + "name" : "context.embedded.metafun.environment.open.a.2.tex" + }, + "6" : { + "name" : "context.warning.metafun.environment.content.a.2.tex" + }, + "7" : { + "name" : "context.embedded.metafun.environment.close.a.2.tex" + } + }, + "end" : "(\u005C\u005Cstop(?:useMPgraphic|reuseMPgraphic|MPinitializations|MPinclusions|MPgraphic|MPextensions|MPdefinitions|MPcode|MPcalculation))", + "endCaptures" : { + "0" : { + "name" : "context.embedded.metafun.environment.stop.a.tex" + } + }, + "patterns" : [ + { + "include" : "source.context.mps" + } + ] + }, + "metafun_environment_o" : { + "begin" : "(\u005C\u005CstartMPpage)\u005Cs*(?:(\u005C[)([^\u005C]]*)(\u005C]))?\u005Cs*(?:(\u005C[)([^\u005C]]*)(\u005C]))?", + "beginCaptures" : { + "1" : { + "name" : "context.embedded.metafun.environment.start.o.tex" + }, + "2" : { + "name" : "context.embedded.metafun.environment.open.o.1.tex" + }, + "3" : { + "name" : "context.warning.metafun.environment.content.o.1.tex" + }, + "4" : { + "name" : "context.embedded.metafun.environment.close.o.1.tex" + }, + "5" : { + "name" : "context.embedded.metafun.environment.open.o.2.tex" + }, + "6" : { + "name" : "context.warning.metafun.environment.content.o.2.tex" + }, + "7" : { + "name" : "context.embedded.metafun.environment.close.o.2.tex" + } + }, + "end" : "(\u005C\u005CstopMPpage)", + "endCaptures" : { + "0" : { + "name" : "context.embedded.metafun.environment.stop.o.tex" + } + }, + "patterns" : [ + { + "include" : "source.context.mps" + } + ] + }, + "primitive" : { + "match" : "\u005C\u005C(year|xtokspre|xtoksapp|xspaceskip|xleaders|xdef|write|wordboundary|widowpenalty|widowpenalties|wd|vtop|vss|vsplit|vskip|vsize|vrule|vpack|voffset|vfuzz|vfilneg|vfill|vfil|vcenter|vbox|vbadness|valign|vadjust|useimageresource|useboxresource|uppercase|unvcopy|unvbox|unskip|unpenalty|unless|unkern|uniformdeviate|unhcopy|unhbox|underline|uchyph|uccode|tracingstats|tracingscantokens|tracingrestores|tracingparagraphs|tracingpages|tracingoutput|tracingonline|tracingnesting|tracingmacros|tracinglostchars|tracingifs|tracinggroups|tracingfonts|tracingcommands|tracingassigns|tpack|topskip|topmarks|topmark|tolerance|tokspre|toksdef|toksapp|toks|time|thinmuskip|thickmuskip|the|textstyle|textfont|textdirection|textdir|tagcode|tabskip|synctex|suppressprimitiveerror|suppressoutererror|suppressmathparerror|suppresslongerror|suppressifcsnameerror|suppressfontnotfounderror|string|splittopskip|splitmaxdepth|splitfirstmarks|splitfirstmark|splitdiscards|splitbotmarks|splitbotmark|special|span|spaceskip|spacefactor|skipdef|skip|skewchar|showtokens|showthe|showlists|showifs|showgroups|showboxdepth|showboxbreadth|showbox|show|shipout|shapemode|sfcode|setrandomseed|setlanguage|setfontid|setbox|scrollmode|scriptstyle|scriptspace|scriptscriptstyle|scriptscriptfont|scriptfont|scantokens|scantextokens|savingvdiscards|savinghyphcodes|savepos|saveimageresource|savecatcodetable|saveboxresource|rpcode|romannumeral|rightskip|rightmarginkern|righthyphenmin|rightghost|right|relpenalty|relax|readline|read|randomseed|raise|radical|quitvmode|pxdimen|protrusionboundary|protrudechars|primitive|prevgraf|prevdepth|pretolerance|prerelpenalty|prehyphenchar|preexhyphenchar|predisplaysize|predisplaypenalty|predisplaygapfactor|predisplaydirection|prebinoppenalty|posthyphenchar|postexhyphenchar|postdisplaypenalty|penalty|pdfximage|pdfxformresources|pdfxformname|pdfxformmargin|pdfxformattr|pdfxform|pdfvorigin|pdfvariable|pdfuniqueresname|pdfuniformdeviate|pdftrailerid|pdftrailer|pdftracingfonts|pdfthreadmargin|pdfthread|pdftexversion|pdftexrevision|pdftexbanner|pdfsuppressptexinfo|pdfsuppressoptionalinfo|pdfstartthread|pdfstartlink|pdfsetrandomseed|pdfsetmatrix|pdfsavepos|pdfsave|pdfretval|pdfrestore|pdfreplacefont|pdfrefximage|pdfrefxform|pdfrefobj|pdfrecompress|pdfrandomseed|pdfpxdimen|pdfprotrudechars|pdfprimitive|pdfpkresolution|pdfpkmode|pdfpkfixeddpi|pdfpagewidth|pdfpagesattr|pdfpageresources|pdfpageref|pdfpageheight|pdfpagebox|pdfpageattr|pdfoutput|pdfoutline|pdfomitcidset|pdfomitcharset|pdfobjcompresslevel|pdfobj|pdfnormaldeviate|pdfnoligatures|pdfnames|pdfminorversion|pdfmapline|pdfmapfile|pdfmajorversion|pdfliteral|pdflinkmargin|pdflastypos|pdflastxpos|pdflastximagepages|pdflastximage|pdflastxform|pdflastobj|pdflastlink|pdflastlinedepth|pdflastannot|pdfinsertht|pdfinfoomitdate|pdfinfo|pdfinclusionerrorlevel|pdfinclusioncopyfonts|pdfincludechars|pdfimageresolution|pdfimagehicolor|pdfimagegamma|pdfimageapplygamma|pdfimageaddfilename|pdfignoreunknownimages|pdfignoreddimen|pdfhorigin|pdfglyphtounicode|pdfgentounicode|pdfgamma|pdffontsize|pdffontobjnum|pdffontname|pdffontexpand|pdffontattr|pdffirstlineheight|pdffeedback|pdfextension|pdfendthread|pdfendlink|pdfeachlineheight|pdfeachlinedepth|pdfdraftmode|pdfdestmargin|pdfdest|pdfdecimaldigits|pdfcreationdate|pdfcopyfont|pdfcompresslevel|pdfcolorstackinit|pdfcolorstack|pdfcatalog|pdfannot|pdfadjustspacing|pausing|patterns|parskip|parshapelength|parshapeindent|parshapedimen|parshape|parindent|parfillskip|pardirection|pardir|par|pagewidth|pagetotal|pagetopoffset|pagestretch|pageshrink|pagerightoffset|pageleftoffset|pageheight|pagegoal|pagefilstretch|pagefillstretch|pagefilllstretch|pagediscards|pagedirection|pagedir|pagedepth|pagebottomoffset|overwithdelims|overline|overfullrule|over|outputpenalty|outputmode|outputbox|output|outer|or|openout|openin|omit|numexpr|number|nullfont|nulldelimiterspace|novrule|nospaces|normalyear|normalxtokspre|normalxtoksapp|normalxspaceskip|normalxleaders|normalxdef|normalwrite|normalwordboundary|normalwidowpenalty|normalwidowpenalties|normalwd|normalvtop|normalvss|normalvsplit|normalvskip|normalvsize|normalvrule|normalvpack|normalvoffset|normalvfuzz|normalvfilneg|normalvfill|normalvfil|normalvcenter|normalvbox|normalvbadness|normalvalign|normalvadjust|normaluseimageresource|normaluseboxresource|normaluppercase|normalunvcopy|normalunvbox|normalunskip|normalunpenalty|normalunless|normalunkern|normaluniformdeviate|normalunhcopy|normalunhbox|normalunexpanded|normalunderline|normaluchyph|normaluccode|normaltracingstats|normaltracingscantokens|normaltracingrestores|normaltracingparagraphs|normaltracingpages|normaltracingoutput|normaltracingonline|normaltracingnesting|normaltracingmacros|normaltracinglostchars|normaltracingifs|normaltracinggroups|normaltracingfonts|normaltracingcommands|normaltracingassigns|normaltpack|normaltopskip|normaltopmarks|normaltopmark|normaltolerance|normaltokspre|normaltoksdef|normaltoksapp|normaltoks|normaltime|normalthinmuskip|normalthickmuskip|normalthe|normaltextstyle|normaltextfont|normaltextdirection|normaltextdir|normaltagcode|normaltabskip|normalsynctex|normalsuppressprimitiveerror|normalsuppressoutererror|normalsuppressmathparerror|normalsuppresslongerror|normalsuppressifcsnameerror|normalsuppressfontnotfounderror|normalstring|normalsplittopskip|normalsplitmaxdepth|normalsplitfirstmarks|normalsplitfirstmark|normalsplitdiscards|normalsplitbotmarks|normalsplitbotmark|normalspecial|normalspan|normalspaceskip|normalspacefactor|normalskipdef|normalskip|normalskewchar|normalshowtokens|normalshowthe|normalshowlists|normalshowifs|normalshowgroups|normalshowboxdepth|normalshowboxbreadth|normalshowbox|normalshow|normalshipout|normalshapemode|normalsfcode|normalsetrandomseed|normalsetlanguage|normalsetfontid|normalsetbox|normalscrollmode|normalscriptstyle|normalscriptspace|normalscriptscriptstyle|normalscriptscriptfont|normalscriptfont|normalscantokens|normalscantextokens|normalsavingvdiscards|normalsavinghyphcodes|normalsavepos|normalsaveimageresource|normalsavecatcodetable|normalsaveboxresource|normalrpcode|normalromannumeral|normalrightskip|normalrightmarginkern|normalrighthyphenmin|normalrightghost|normalright|normalrelpenalty|normalrelax|normalreadline|normalread|normalrandomseed|normalraise|normalradical|normalquitvmode|normalpxdimen|normalprotrusionboundary|normalprotrudechars|normalprotected|normalprimitive|normalprevgraf|normalprevdepth|normalpretolerance|normalprerelpenalty|normalprehyphenchar|normalpreexhyphenchar|normalpredisplaysize|normalpredisplaypenalty|normalpredisplaygapfactor|normalpredisplaydirection|normalprebinoppenalty|normalposthyphenchar|normalpostexhyphenchar|normalpostdisplaypenalty|normalpenalty|normalpdfximage|normalpdfxformresources|normalpdfxformname|normalpdfxformmargin|normalpdfxformattr|normalpdfxform|normalpdfvorigin|normalpdfvariable|normalpdfuniqueresname|normalpdfuniformdeviate|normalpdftrailerid|normalpdftrailer|normalpdftracingfonts|normalpdfthreadmargin|normalpdfthread|normalpdftexversion|normalpdftexrevision|normalpdftexbanner|normalpdfsuppressptexinfo|normalpdfsuppressoptionalinfo|normalpdfstartthread|normalpdfstartlink|normalpdfsetrandomseed|normalpdfsetmatrix|normalpdfsavepos|normalpdfsave|normalpdfretval|normalpdfrestore|normalpdfreplacefont|normalpdfrefximage|normalpdfrefxform|normalpdfrefobj|normalpdfrecompress|normalpdfrandomseed|normalpdfpxdimen|normalpdfprotrudechars|normalpdfprimitive|normalpdfpkresolution|normalpdfpkmode|normalpdfpkfixeddpi|normalpdfpagewidth|normalpdfpagesattr|normalpdfpageresources|normalpdfpageref|normalpdfpageheight|normalpdfpagebox|normalpdfpageattr|normalpdfoutput|normalpdfoutline|normalpdfomitcidset|normalpdfomitcharset|normalpdfobjcompresslevel|normalpdfobj|normalpdfnormaldeviate|normalpdfnoligatures|normalpdfnames|normalpdfminorversion|normalpdfmapline|normalpdfmapfile|normalpdfmajorversion|normalpdfliteral|normalpdflinkmargin|normalpdflastypos|normalpdflastxpos|normalpdflastximagepages|normalpdflastximage|normalpdflastxform|normalpdflastobj|normalpdflastlink|normalpdflastlinedepth|normalpdflastannot|normalpdfinsertht|normalpdfinfoomitdate|normalpdfinfo|normalpdfinclusionerrorlevel|normalpdfinclusioncopyfonts|normalpdfincludechars|normalpdfimageresolution|normalpdfimagehicolor|normalpdfimagegamma|normalpdfimageapplygamma|normalpdfimageaddfilename|normalpdfignoreunknownimages|normalpdfignoreddimen|normalpdfhorigin|normalpdfglyphtounicode|normalpdfgentounicode|normalpdfgamma|normalpdffontsize|normalpdffontobjnum|normalpdffontname|normalpdffontexpand|normalpdffontattr|normalpdffirstlineheight|normalpdffeedback|normalpdfextension|normalpdfendthread|normalpdfendlink|normalpdfeachlineheight|normalpdfeachlinedepth|normalpdfdraftmode|normalpdfdestmargin|normalpdfdest|normalpdfdecimaldigits|normalpdfcreationdate|normalpdfcopyfont|normalpdfcompresslevel|normalpdfcolorstackinit|normalpdfcolorstack|normalpdfcatalog|normalpdfannot|normalpdfadjustspacing|normalpausing|normalpatterns|normalparskip|normalparshapelength|normalparshapeindent|normalparshapedimen|normalparshape|normalparindent|normalparfillskip|normalpardirection|normalpardir|normalpar|normalpagewidth|normalpagetotal|normalpagetopoffset|normalpagestretch|normalpageshrink|normalpagerightoffset|normalpageleftoffset|normalpageheight|normalpagegoal|normalpagefilstretch|normalpagefillstretch|normalpagefilllstretch|normalpagediscards|normalpagedirection|normalpagedir|normalpagedepth|normalpagebottomoffset|normaloverwithdelims|normaloverline|normaloverfullrule|normalover|normaloutputpenalty|normaloutputmode|normaloutputbox|normaloutput|normalouter|normalor|normalopenout|normalopenin|normalomit|normalnumexpr|normalnumber|normalnullfont|normalnulldelimiterspace|normalnovrule|normalnospaces|normalnormaldeviate|normalnonstopmode|normalnonscript|normalnolimits|normalnoligs|normalnokerns|normalnoindent|normalnohrule|normalnoexpand|normalnoboundary|normalnoalign|normalnewlinechar|normalmutoglue|normalmuskipdef|normalmuskip|normalmultiply|normalmuexpr|normalmskip|normalmoveright|normalmoveleft|normalmonth|normalmkern|normalmiddle|normalmessage|normalmedmuskip|normalmeaning|normalmaxdepth|normalmaxdeadcycles|normalmathsurroundskip|normalmathsurroundmode|normalmathsurround|normalmathstyle|normalmathscriptsmode|normalmathscriptcharmode|normalmathscriptboxmode|normalmathrulethicknessmode|normalmathrulesmode|normalmathrulesfam|normalmathrel|normalmathpunct|normalmathpenaltiesmode|normalmathord|normalmathoption|normalmathopen|normalmathop|normalmathnolimitsmode|normalmathitalicsmode|normalmathinner|normalmathflattenmode|normalmatheqnogapstep|normalmathdisplayskipmode|normalmathdirection|normalmathdir|normalmathdelimitersmode|normalmathcode|normalmathclose|normalmathchoice|normalmathchardef|normalmathchar|normalmathbin|normalmathaccent|normalmarks|normalmark|normalmag|normalluatexversion|normalluatexrevision|normalluatexbanner|normalluafunctioncall|normalluafunction|normalluaescapestring|normalluadef|normalluacopyinputnodes|normalluabytecodecall|normalluabytecode|normallpcode|normallowercase|normallower|normallooseness|normallong|normallocalrightbox|normallocalleftbox|normallocalinterlinepenalty|normallocalbrokenpenalty|normallinepenalty|normallinedirection|normallinedir|normallimits|normalletterspacefont|normalletcharcode|normallet|normalleqno|normalleftskip|normalleftmarginkern|normallefthyphenmin|normalleftghost|normalleft|normalleaders|normallccode|normallateluafunction|normallatelua|normallastypos|normallastxpos|normallastskip|normallastsavedimageresourcepages|normallastsavedimageresourceindex|normallastsavedboxresourceindex|normallastpenalty|normallastnodetype|normallastnamedcs|normallastlinefit|normallastkern|normallastbox|normallanguage|normalkern|normaljobname|normalinterlinepenalty|normalinterlinepenalties|normalinteractionmode|normalinsertpenalties|normalinsertht|normalinsert|normalinputlineno|normalinput|normalinitcatcodetable|normalindent|normalimmediateassignment|normalimmediateassigned|normalimmediate|normalignorespaces|normalignoreligaturesinfont|normalifx|normalifvoid|normalifvmode|normalifvbox|normaliftrue|normalifprimitive|normalifpdfprimitive|normalifpdfabsnum|normalifpdfabsdim|normalifodd|normalifnum|normalifmmode|normalifinner|normalifincsname|normalifhmode|normalifhbox|normaliffontchar|normaliffalse|normalifeof|normalifdim|normalifdefined|normalifcsname|normalifcondition|normalifcat|normalifcase|normalifabsnum|normalifabsdim|normalif|normalhyphenpenaltymode|normalhyphenpenalty|normalhyphenchar|normalhyphenationmin|normalhyphenationbounds|normalhyphenation|normalht|normalhss|normalhskip|normalhsize|normalhrule|normalhpack|normalholdinginserts|normalhoffset|normalhjcode|normalhfuzz|normalhfilneg|normalhfill|normalhfil|normalhbox|normalhbadness|normalhangindent|normalhangafter|normalhalign|normalgtokspre|normalgtoksapp|normalgluetomu|normalgluestretchorder|normalgluestretch|normalglueshrinkorder|normalglueshrink|normalglueexpr|normalglobaldefs|normalglobal|normalglet|normalgleaders|normalgdef|normalfuturelet|normalfutureexpandis|normalfutureexpand|normalformatname|normalfontname|normalfontid|normalfontdimen|normalfontcharwd|normalfontcharic|normalfontcharht|normalfontchardp|normalfont|normalfloatingpenalty|normalfixupboxesmode|normalfirstvalidlanguage|normalfirstmarks|normalfirstmark|normalfinalhyphendemerits|normalfi|normalfam|normalexplicithyphenpenalty|normalexplicitdiscretionary|normalexpandglyphsinfont|normalexpanded|normalexpandafter|normalexhyphenpenalty|normalexhyphenchar|normalexceptionpenalty|normaleveryvbox|normaleverypar|normaleverymath|normaleveryjob|normaleveryhbox|normaleveryeof|normaleverydisplay|normaleverycr|normaletokspre|normaletoksapp|normalescapechar|normalerrorstopmode|normalerrorcontextlines|normalerrmessage|normalerrhelp|normaleqno|normalendlocalcontrol|normalendlinechar|normalendinput|normalendgroup|normalendcsname|normalend|normalemergencystretch|normalelse|normalefcode|normaledef|normaleTeXversion|normaleTeXrevision|normaleTeXminorversion|normaleTeXVersion|normaldvivariable|normaldvifeedback|normaldviextension|normaldump|normaldraftmode|normaldp|normaldoublehyphendemerits|normaldivide|normaldisplaywidth|normaldisplaywidowpenalty|normaldisplaywidowpenalties|normaldisplaystyle|normaldisplaylimits|normaldisplayindent|normaldiscretionary|normaldirectlua|normaldimexpr|normaldimendef|normaldimen|normaldeviate|normaldetokenize|normaldelimitershortfall|normaldelimiterfactor|normaldelimiter|normaldelcode|normaldefaultskewchar|normaldefaulthyphenchar|normaldef|normaldeadcycles|normalday|normalcurrentiftype|normalcurrentiflevel|normalcurrentifbranch|normalcurrentgrouptype|normalcurrentgrouplevel|normalcsstring|normalcsname|normalcrcr|normalcrampedtextstyle|normalcrampedscriptstyle|normalcrampedscriptscriptstyle|normalcrampeddisplaystyle|normalcr|normalcountdef|normalcount|normalcopyfont|normalcopy|normalcompoundhyphenmode|normalclubpenalty|normalclubpenalties|normalcloseout|normalclosein|normalclearmarks|normalcleaders|normalchardef|normalchar|normalcatcodetable|normalcatcode|normalbrokenpenalty|normalbreakafterdirmode|normalboxmaxdepth|normalboxdirection|normalboxdir|normalbox|normalboundary|normalbotmarks|normalbotmark|normalbodydirection|normalbodydir|normalbinoppenalty|normalbelowdisplayskip|normalbelowdisplayshortskip|normalbegingroup|normalbegincsname|normalbatchmode|normalbadness|normalautomatichyphenpenalty|normalautomatichyphenmode|normalautomaticdiscretionary|normalattributedef|normalattribute|normalatopwithdelims|normalatop|normalaligntab|normalalignmark|normalaftergroup|normalafterassignment|normaladvance|normaladjustspacing|normaladjdemerits|normalaccent|normalabovewithdelims|normalabovedisplayskip|normalabovedisplayshortskip|normalabove|normalXeTeXversion|normalUvextensible|normalUunderdelimiter|normalUsuperscript|normalUsubscript|normalUstopmath|normalUstopdisplaymath|normalUstartmath|normalUstartdisplaymath|normalUstack|normalUskewedwithdelims|normalUskewed|normalUroot|normalUright|normalUradical|normalUoverdelimiter|normalUnosuperscript|normalUnosubscript|normalUmiddle|normalUmathunderdelimitervgap|normalUmathunderdelimiterbgap|normalUmathunderbarvgap|normalUmathunderbarrule|normalUmathunderbarkern|normalUmathsupsubbottommax|normalUmathsupshiftup|normalUmathsupshiftdrop|normalUmathsupbottommin|normalUmathsubtopmax|normalUmathsubsupvgap|normalUmathsubsupshiftdown|normalUmathsubshiftdrop|normalUmathsubshiftdown|normalUmathstackvgap|normalUmathstacknumup|normalUmathstackdenomdown|normalUmathspaceafterscript|normalUmathskewedfractionvgap|normalUmathskewedfractionhgap|normalUmathrelrelspacing|normalUmathrelpunctspacing|normalUmathrelordspacing|normalUmathrelopspacing|normalUmathrelopenspacing|normalUmathrelinnerspacing|normalUmathrelclosespacing|normalUmathrelbinspacing|normalUmathradicalvgap|normalUmathradicalrule|normalUmathradicalkern|normalUmathradicaldegreeraise|normalUmathradicaldegreebefore|normalUmathradicaldegreeafter|normalUmathquad|normalUmathpunctrelspacing|normalUmathpunctpunctspacing|normalUmathpunctordspacing|normalUmathpunctopspacing|normalUmathpunctopenspacing|normalUmathpunctinnerspacing|normalUmathpunctclosespacing|normalUmathpunctbinspacing|normalUmathoverdelimitervgap|normalUmathoverdelimiterbgap|normalUmathoverbarvgap|normalUmathoverbarrule|normalUmathoverbarkern|normalUmathordrelspacing|normalUmathordpunctspacing|normalUmathordordspacing|normalUmathordopspacing|normalUmathordopenspacing|normalUmathordinnerspacing|normalUmathordclosespacing|normalUmathordbinspacing|normalUmathoprelspacing|normalUmathoppunctspacing|normalUmathopordspacing|normalUmathopopspacing|normalUmathopopenspacing|normalUmathopinnerspacing|normalUmathoperatorsize|normalUmathopenrelspacing|normalUmathopenpunctspacing|normalUmathopenordspacing|normalUmathopenopspacing|normalUmathopenopenspacing|normalUmathopeninnerspacing|normalUmathopenclosespacing|normalUmathopenbinspacing|normalUmathopclosespacing|normalUmathopbinspacing|normalUmathnolimitsupfactor|normalUmathnolimitsubfactor|normalUmathlimitbelowvgap|normalUmathlimitbelowkern|normalUmathlimitbelowbgap|normalUmathlimitabovevgap|normalUmathlimitabovekern|normalUmathlimitabovebgap|normalUmathinnerrelspacing|normalUmathinnerpunctspacing|normalUmathinnerordspacing|normalUmathinneropspacing|normalUmathinneropenspacing|normalUmathinnerinnerspacing|normalUmathinnerclosespacing|normalUmathinnerbinspacing|normalUmathfractionrule|normalUmathfractionnumvgap|normalUmathfractionnumup|normalUmathfractiondenomvgap|normalUmathfractiondenomdown|normalUmathfractiondelsize|normalUmathconnectoroverlapmin|normalUmathcodenum|normalUmathcode|normalUmathcloserelspacing|normalUmathclosepunctspacing|normalUmathcloseordspacing|normalUmathcloseopspacing|normalUmathcloseopenspacing|normalUmathcloseinnerspacing|normalUmathcloseclosespacing|normalUmathclosebinspacing|normalUmathcharslot|normalUmathcharnumdef|normalUmathcharnum|normalUmathcharfam|normalUmathchardef|normalUmathcharclass|normalUmathchar|normalUmathbinrelspacing|normalUmathbinpunctspacing|normalUmathbinordspacing|normalUmathbinopspacing|normalUmathbinopenspacing|normalUmathbininnerspacing|normalUmathbinclosespacing|normalUmathbinbinspacing|normalUmathaxis|normalUmathaccent|normalUleft|normalUhextensible|normalUdelimiterunder|normalUdelimiterover|normalUdelimiter|normalUdelcodenum|normalUdelcode|normalUchar|normalOmegaversion|normalOmegarevision|normalOmegaminorversion|normalAlephversion|normalAlephrevision|normalAlephminorversion|normal |nonstopmode|nonscript|nolimits|noligs|nokerns|noindent|nohrule|noexpand|noboundary|noalign|newlinechar|mutoglue|muskipdef|muskip|multiply|muexpr|mskip|moveright|moveleft|month|mkern|middle|message|medmuskip|meaning|maxdepth|maxdeadcycles|mathsurroundskip|mathsurroundmode|mathsurround|mathstyle|mathscriptsmode|mathscriptcharmode|mathscriptboxmode|mathrulethicknessmode|mathrulesmode|mathrulesfam|mathrel|mathpunct|mathpenaltiesmode|mathord|mathoption|mathopen|mathop|mathnolimitsmode|mathitalicsmode|mathinner|mathflattenmode|matheqnogapstep|mathdisplayskipmode|mathdirection|mathdir|mathdelimitersmode|mathcode|mathclose|mathchoice|mathchardef|mathchar|mathbin|mathaccent|marks|mark|mag|luatexversion|luatexrevision|luatexbanner|luafunctioncall|luafunction|luaescapestring|luadef|luacopyinputnodes|luabytecodecall|luabytecode|lpcode|lowercase|lower|looseness|long|localrightbox|localleftbox|localinterlinepenalty|localbrokenpenalty|lineskiplimit|lineskip|linepenalty|linedirection|linedir|limits|letterspacefont|letcharcode|let|leqno|leftskip|leftmarginkern|lefthyphenmin|leftghost|left|leaders|lccode|lateluafunction|latelua|lastypos|lastxpos|lastskip|lastsavedimageresourcepages|lastsavedimageresourceindex|lastsavedboxresourceindex|lastpenalty|lastnodetype|lastnamedcs|lastlinefit|lastkern|lastbox|language|kern|jobname|interlinepenalty|interlinepenalties|interactionmode|insertpenalties|insertht|insert|inputlineno|input|initcatcodetable|indent|immediateassignment|immediateassigned|immediate|ignorespaces|ignoreligaturesinfont|ifx|ifvoid|ifvmode|ifvbox|iftrue|ifprimitive|ifpdfprimitive|ifpdfabsnum|ifpdfabsdim|ifodd|ifnum|ifmmode|ifinner|ifincsname|ifhmode|ifhbox|iffontchar|iffalse|ifeof|ifdim|ifdefined|ifcsname|ifcondition|ifcat|ifcase|ifabsnum|ifabsdim|if|hyphenpenaltymode|hyphenpenalty|hyphenchar|hyphenationmin|hyphenationbounds|hyphenation|ht|hss|hskip|hsize|hrule|hpack|holdinginserts|hoffset|hjcode|hfuzz|hfilneg|hfill|hfil|hbox|hbadness|hangindent|hangafter|halign|gtokspre|gtoksapp|gluetomu|gluestretchorder|gluestretch|glueshrinkorder|glueshrink|glueexpr|globaldefs|global|gleaders|gdef|futurelet|futureexpandis|futureexpand|formatname|fontname|fontid|fontdimen|fontcharwd|fontcharic|fontcharht|fontchardp|font|floatingpenalty|fixupboxesmode|firstvalidlanguage|firstmarks|firstmark|finalhyphendemerits|fi|fam|explicithyphenpenalty|explicitdiscretionary|expandglyphsinfont|expandafter|exhyphenpenalty|exhyphenchar|exceptionpenalty|everyvbox|everypar|everymath|everyjob|everyhbox|everyeof|everydisplay|everycr|etokspre|etoksapp|escapechar|errorstopmode|errorcontextlines|errmessage|errhelp|eqno|endlocalcontrol|endlinechar|endinput|endgroup|endcsname|end|emergencystretch|else|efcode|edef|eTeXversion|eTeXrevision|eTeXminorversion|eTeXVersion|dvivariable|dvifeedback|dviextension|dump|draftmode|dp|doublehyphendemerits|divide|displaywidth|displaywidowpenalty|displaywidowpenalties|displaystyle|displaylimits|displayindent|discretionary|directlua|dimexpr|dimendef|dimen|detokenize|delimitershortfall|delimiterfactor|delimiter|delcode|defaultskewchar|defaulthyphenchar|def|deadcycles|day|currentiftype|currentiflevel|currentifbranch|currentgrouptype|currentgrouplevel|csstring|csname|crcr|crampedtextstyle|crampedscriptstyle|crampedscriptscriptstyle|crampeddisplaystyle|cr|countdef|count|copyfont|copy|compoundhyphenmode|clubpenalty|clubpenalties|closeout|closein|clearmarks|cleaders|chardef|char|catcodetable|catcode|brokenpenalty|breakafterdirmode|boxmaxdepth|boxdirection|boxdir|box|boundary|botmarks|botmark|bodydirection|bodydir|binoppenalty|belowdisplayskip|belowdisplayshortskip|begingroup|begincsname|batchmode|baselineskip|badness|automatichyphenpenalty|automatichyphenmode|automaticdiscretionary|attributedef|attribute|atopwithdelims|atop|aligntab|alignmark|aftergroup|afterassignment|advance|adjustspacing|adjdemerits|accent|abovewithdelims|abovedisplayskip|abovedisplayshortskip|above|XeTeXversion|Uvextensible|Uunderdelimiter|Usuperscript|Usubscript|Ustopmath|Ustopdisplaymath|Ustartmath|Ustartdisplaymath|Ustack|Uskewedwithdelims|Uskewed|Uroot|Uright|Uradical|Uoverdelimiter|Unosuperscript|Unosubscript|Umiddle|Umathunderdelimitervgap|Umathunderdelimiterbgap|Umathunderbarvgap|Umathunderbarrule|Umathunderbarkern|Umathsupsubbottommax|Umathsupshiftup|Umathsupshiftdrop|Umathsupbottommin|Umathsubtopmax|Umathsubsupvgap|Umathsubsupshiftdown|Umathsubshiftdrop|Umathsubshiftdown|Umathstackvgap|Umathstacknumup|Umathstackdenomdown|Umathspaceafterscript|Umathskewedfractionvgap|Umathskewedfractionhgap|Umathrelrelspacing|Umathrelpunctspacing|Umathrelordspacing|Umathrelopspacing|Umathrelopenspacing|Umathrelinnerspacing|Umathrelclosespacing|Umathrelbinspacing|Umathradicalvgap|Umathradicalrule|Umathradicalkern|Umathradicaldegreeraise|Umathradicaldegreebefore|Umathradicaldegreeafter|Umathquad|Umathpunctrelspacing|Umathpunctpunctspacing|Umathpunctordspacing|Umathpunctopspacing|Umathpunctopenspacing|Umathpunctinnerspacing|Umathpunctclosespacing|Umathpunctbinspacing|Umathoverdelimitervgap|Umathoverdelimiterbgap|Umathoverbarvgap|Umathoverbarrule|Umathoverbarkern|Umathordrelspacing|Umathordpunctspacing|Umathordordspacing|Umathordopspacing|Umathordopenspacing|Umathordinnerspacing|Umathordclosespacing|Umathordbinspacing|Umathoprelspacing|Umathoppunctspacing|Umathopordspacing|Umathopopspacing|Umathopopenspacing|Umathopinnerspacing|Umathoperatorsize|Umathopenrelspacing|Umathopenpunctspacing|Umathopenordspacing|Umathopenopspacing|Umathopenopenspacing|Umathopeninnerspacing|Umathopenclosespacing|Umathopenbinspacing|Umathopclosespacing|Umathopbinspacing|Umathnolimitsupfactor|Umathnolimitsubfactor|Umathlimitbelowvgap|Umathlimitbelowkern|Umathlimitbelowbgap|Umathlimitabovevgap|Umathlimitabovekern|Umathlimitabovebgap|Umathinnerrelspacing|Umathinnerpunctspacing|Umathinnerordspacing|Umathinneropspacing|Umathinneropenspacing|Umathinnerinnerspacing|Umathinnerclosespacing|Umathinnerbinspacing|Umathfractionrule|Umathfractionnumvgap|Umathfractionnumup|Umathfractiondenomvgap|Umathfractiondenomdown|Umathfractiondelsize|Umathconnectoroverlapmin|Umathcodenum|Umathcode|Umathcloserelspacing|Umathclosepunctspacing|Umathcloseordspacing|Umathcloseopspacing|Umathcloseopenspacing|Umathcloseinnerspacing|Umathcloseclosespacing|Umathclosebinspacing|Umathcharslot|Umathcharnumdef|Umathcharnum|Umathcharfam|Umathchardef|Umathcharclass|Umathchar|Umathbinrelspacing|Umathbinpunctspacing|Umathbinordspacing|Umathbinopspacing|Umathbinopenspacing|Umathbininnerspacing|Umathbinclosespacing|Umathbinbinspacing|Umathaxis|Umathaccent|Uleft|Uhextensible|Udelimiterunder|Udelimiterover|Udelimiter|Udelcodenum|Udelcode|Uchar|Omegaversion|Omegarevision|Omegaminorversion|Alephversion|Alephrevision|Alephminorversion| )(?=[^a-zA-Z])", + "name" : "context.primitive.commands.primitive.tex" + }, + "reserved" : { + "match" : "\u005C\u005C(\u005C?\u005C?|[a-z]\u005C!)[a-zA-Z\u005C_@!?-ÿ]+", + "name" : "context.reserved.commands.reserved.tex" + }, + "special" : { + "match" : "\u005C]|\u005C[|>|=|<|\u005C)|\u005C(|#|\u005C\u0022", + "name" : "context.special.symbols.special.tex" + }, + "subsystem_prefix" : { + "match" : "\u005C\u005C(btx|xml)[a-z]+", + "name" : "context.embedded.subsystem.prefix.tex" + }, + "subsystem_suffix" : { + "match" : "\u005C\u005C[a-z]+(btx|xml)[a-z]*", + "name" : "context.embedded.subsystem.suffix.tex" + } + }, + "scopeName" : "source.context.tex", + "version" : "1.0.0" +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-xml.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-xml.json new file mode 100644 index 000000000..945647169 --- /dev/null +++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-xml.json @@ -0,0 +1,222 @@ +{ + "name" : "context.xml", + "patterns" : [ + { + "include" : "#comment" + }, + { + "include" : "#cdata" + }, + { + "include" : "#instruction_xml" + }, + { + "include" : "#instruction_lua" + }, + { + "include" : "#instruction" + }, + { + "include" : "#close" + }, + { + "include" : "#open" + }, + { + "include" : "#element_error" + }, + { + "include" : "#entity" + } + ], + "repository" : { + "attribute_double" : { + "captures" : { + "1" : { + "name" : "context.plain.attribute.double.namespace.xml" + }, + "2" : { + "name" : "context.constant.attribute.double.name.xml" + }, + "3" : { + "name" : "context.special.attribute.double.open.xml" + }, + "4" : { + "name" : "context.string.attribute.double.text.xml" + }, + "5" : { + "name" : "context.special.attribute.double.close.xml" + } + }, + "match" : "((?:[-\u005Cw.]+:)?)([-\u005Cw.:]+)\u005Cs*=\u005Cs*(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)" + }, + "attribute_single" : { + "captures" : { + "1" : { + "name" : "context.plain.attribute.single.namespace.xml" + }, + "2" : { + "name" : "context.constant.attribute.single.name.xml" + }, + "3" : { + "name" : "context.special.attribute.single.open.xml" + }, + "4" : { + "name" : "context.string.attribute.single.text.xml" + }, + "5" : { + "name" : "context.special.attribute.single.close.xml" + } + }, + "match" : "((?:[-\u005Cw.]+:)?)([-\u005Cw.:]+)\u005Cs*=\u005Cs*(')((?:\u005C\u005C'|[^'])*)(')" + }, + "attributes" : { + "patterns" : [ + { + "include" : "#attribute_double" + }, + { + "include" : "#attribute_single" + } + ] + }, + "cdata" : { + "begin" : "<!\u005C[CDATA\u005C[", + "beginCaptures" : { + "0" : { + "name" : "context.command.cdata.open.xml" + } + }, + "end" : "]]>", + "endCaptures" : { + "0" : { + "name" : "context.command.cdata.close.xml" + } + }, + "name" : "context.default.cdata.text.xml" + }, + "close" : { + "captures" : { + "1" : { + "name" : "context.keyword.close.open.xml" + }, + "2" : { + "name" : "context.plain.close.namespace.xml" + }, + "3" : { + "name" : "context.keyword.close.name.xml" + }, + "4" : { + "name" : "context.keyword.close.close.xml" + } + }, + "match" : "(</)((?:[-\u005Cw.]+:)?)([-\u005Cw.:]+)\u005Cs*(>)" + }, + "comment" : { + "begin" : "<!--", + "beginCaptures" : { + "0" : { + "name" : "context.command.comment.open.xml" + } + }, + "end" : "-->", + "endCaptures" : { + "0" : { + "name" : "context.command.comment.close.xml" + } + }, + "name" : "context.comment.comment.text.xml" + }, + "element_error" : { + "match" : "<?:([^>]*)>", + "name" : "context.error.error.xml" + }, + "entity" : { + "match" : "&.*?;", + "name" : "context.constant.entity.xml" + }, + "instruction" : { + "begin" : "<\u005C?[-\u005Cw.:]+", + "beginCaptures" : { + "0" : { + "name" : "context.command.instruction.open.xml" + } + }, + "end" : "\u005C?>", + "endCaptures" : { + "0" : { + "name" : "context.command.instruction.close.xml" + } + }, + "name" : "context.default.instruction.text.xml" + }, + "instruction_lua" : { + "begin" : "<\u005C?lua", + "beginCaptures" : { + "0" : { + "name" : "context.command.instruction.lua.open.xml" + } + }, + "end" : "\u005C?>", + "endCaptures" : { + "0" : { + "name" : "context.command.instruction.lua.close.xml" + } + }, + "patterns" : [ + { + "include" : "source.context.cld" + } + ] + }, + "instruction_xml" : { + "begin" : "<\u005C?xml", + "beginCaptures" : { + "0" : { + "name" : "context.command.instruction.xml.open.xml" + } + }, + "end" : "\u005C?>", + "endCaptures" : { + "0" : { + "name" : "context.command.instruction.xml.close.xml" + } + }, + "patterns" : [ + { + "include" : "#attributes" + } + ] + }, + "open" : { + "begin" : "(<)((?:[-\u005Cw.]+:)?)([-\u005Cw.:]+)", + "beginCaptures" : { + "1" : { + "name" : "context.keyword.open.open.xml" + }, + "2" : { + "name" : "context.plain.open.namespace.xml" + }, + "3" : { + "name" : "context.keyword.open.name.xml" + } + }, + "end" : "(/?)(>)", + "endCaptures" : { + "1" : { + "name" : "context.keyword.open.empty.xml" + }, + "2" : { + "name" : "context.keyword.open.close.xml" + } + }, + "patterns" : [ + { + "include" : "#attributes" + } + ] + } + }, + "scopeName" : "source.context.xml", + "version" : "1.0.0" +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/tasks/context.json b/context/data/vscode/extensions/context/tasks/context.json new file mode 100644 index 000000000..13f75c188 --- /dev/null +++ b/context/data/vscode/extensions/context/tasks/context.json @@ -0,0 +1,73 @@ +{ + "name" : "context", + "tasks" : [ + { + "command" : "context --autogenerate --autopdf ${file}", + "group" : "build", + "label" : "process tex file", + "presentation" : { + "clear" : true, + "echo" : true, + "focus" : false, + "panel" : "shared", + "reveal" : "always", + "showReuseMessage" : false + }, + "type" : "shell", + "windows" : { + "command" : "chcp 65001 ; context.exe --autogenerate --autopdf ${file}" + } + }, + { + "command" : "mtxrun --autogenerate --script check ${file}", + "group" : "build", + "label" : "check tex file", + "presentation" : { + "clear" : true, + "echo" : true, + "focus" : false, + "panel" : "shared", + "reveal" : "always", + "showReuseMessage" : false + }, + "type" : "shell", + "windows" : { + "command" : "chcp 65001 ; mtxrun.exe --autogenerate --script check ${file}" + } + }, + { + "command" : "mtxrun --script fonts --reload --force", + "group" : "build", + "label" : "identify fonts", + "presentation" : { + "clear" : true, + "echo" : true, + "focus" : false, + "panel" : "shared", + "reveal" : "always", + "showReuseMessage" : false + }, + "type" : "shell", + "windows" : { + "command" : "chcp 65001 ; mtxrun.exe --script fonts --reload --force" + } + }, + { + "command" : "mtxrun --script ${file}", + "group" : "build", + "label" : "process lua file", + "presentation" : { + "clear" : true, + "echo" : true, + "focus" : false, + "panel" : "shared", + "reveal" : "always", + "showReuseMessage" : false + }, + "type" : "shell", + "windows" : { + "command" : "chcp 65001 ; mtxrun.exe --script ${file}" + } + } + ] +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/themes/context.json b/context/data/vscode/extensions/context/themes/context.json new file mode 100644 index 000000000..3bdd52fe6 --- /dev/null +++ b/context/data/vscode/extensions/context/themes/context.json @@ -0,0 +1,356 @@ +{ + "$schema" : "vscode://schemas/color-theme", + "colors" : { + "activityBar.background" : "#000000", + "editor.background" : "#CFCFCF", + "editor.foreground" : "#000000", + "editor.lineHighlightBackground" : "#CFCFCF", + "editorBracketMatch.background" : "#CFCFCF", + "editorBracketMatch.border" : "#B07F00", + "editorIndentGuide.background" : "#CFCFCF", + "editorLineNumber.foreground" : "#000000", + "focusBorder" : "#000000", + "notification.background" : "#000000", + "sideBar.background" : "#A7A7A7", + "sideBar.border" : "#FFFFFF", + "sideBar.foreground" : "#000000", + "sideBarSectionHeader.background" : "#A7A7A7", + "sideBarSectionHeader.foreground" : "#000000", + "sideBarTitle.foreground" : "#000000", + "statusBar.background" : "#A7A7A7", + "statusBar.border" : "#FFFFFF", + "statusBar.debuggingBackground" : "#A7A7A7", + "statusBar.debuggingForeground" : "#000000", + "statusBar.foreground" : "#000000", + "statusBar.noFolderBackground" : "#A7A7A7", + "statusBar.noFolderForeground" : "#000000" + }, + "name" : "context", + "tokenColors" : [ + { + "scope" : "context.whitespace", + }, + { + "scope" : "context.default", + "settings" : { + "foreground" : "#000000" + } + }, + { + "scope" : "context.number", + "settings" : { + "foreground" : "#007F7F" + } + }, + { + "scope" : "context.comment", + "settings" : { + "foreground" : "#7F7F00" + } + }, + { + "scope" : "context.keyword", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#00007F" + } + }, + { + "scope" : "context.string", + "settings" : { + "foreground" : "#7F007F" + } + }, + { + "scope" : "context.error", + "settings" : { + "foreground" : "#7F0000" + } + }, + { + "scope" : "context.label", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#7F0000" + } + }, + { + "scope" : "context.nothing", + }, + { + "scope" : "context.class", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#000000" + } + }, + { + "scope" : "context.function", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#000000" + } + }, + { + "scope" : "context.constant", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#007F7F" + } + }, + { + "scope" : "context.operator", + "settings" : { + "foreground" : "#00007F" + } + }, + { + "scope" : "context.regex", + "settings" : { + "foreground" : "#7F007F" + } + }, + { + "scope" : "context.preprocessor", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#7F7F00" + } + }, + { + "scope" : "context.tag", + "settings" : { + "foreground" : "#007F7F" + } + }, + { + "scope" : "context.type", + "settings" : { + "foreground" : "#00007F" + } + }, + { + "scope" : "context.variable", + "settings" : { + "foreground" : "#000000" + } + }, + { + "scope" : "context.identifier", + }, + { + "scope" : "context.linenumber", + "settings" : { + "background" : "#A7A7A7" + } + }, + { + "scope" : "context.bracelight", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#B07F00" + } + }, + { + "scope" : "context.bracebad", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#B07F00" + } + }, + { + "scope" : "context.controlchar", + }, + { + "scope" : "context.indentguide", + "settings" : { + "foreground" : "#A7A7A7" + } + }, + { + "scope" : "context.calltip", + "settings" : { + "foreground" : "#FFFFFF" + } + }, + { + "scope" : "context.invisible", + "settings" : { + "background" : "#B07F00" + } + }, + { + "scope" : "context.quote", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#00007F" + } + }, + { + "scope" : "context.special", + "settings" : { + "foreground" : "#00007F" + } + }, + { + "scope" : "context.extra", + "settings" : { + "foreground" : "#7F7F00" + } + }, + { + "scope" : "context.embedded", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#000000" + } + }, + { + "scope" : "context.char", + "settings" : { + "foreground" : "#7F007F" + } + }, + { + "scope" : "context.reserved", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#7F007F" + } + }, + { + "scope" : "context.definition", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#000000" + } + }, + { + "scope" : "context.okay", + "settings" : { + "foreground" : "#4F4F4F" + } + }, + { + "scope" : "context.warning", + "settings" : { + "foreground" : "#B07F00" + } + }, + { + "scope" : "context.standout", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#B07F00" + } + }, + { + "scope" : "context.command", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#007F00" + } + }, + { + "scope" : "context.internal", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#B07F00" + } + }, + { + "scope" : "context.preamble", + "settings" : { + "foreground" : "#7F7F00" + } + }, + { + "scope" : "context.grouping", + "settings" : { + "foreground" : "#7F0000" + } + }, + { + "scope" : "context.primitive", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#00007F" + } + }, + { + "scope" : "context.plain", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#4F4F4F" + } + }, + { + "scope" : "context.user", + "settings" : { + "foreground" : "#007F00" + } + }, + { + "scope" : "context.data", + "settings" : { + "fontStyle" : "bold", + "foreground" : "#007F7F" + } + }, + { + "scope" : "context.text", + "settings" : { + "foreground" : "#000000" + } + }, + { + "scope" : [ "emphasis" ], + "settings" : { + "fontStyle" : "italic" + } + }, + { + "scope" : [ "strong" ], + "settings" : { + "fontStyle" : "bold" + } + }, + { + "scope" : [ "comment" ], + "settings" : { + "foreground" : "#000000" + } + }, + { + "scope" : [ "string" ], + "settings" : { + "foreground" : "#7F007F" + } + }, + { + "scope" : [ "constant.numeric", "constant.language.null", "variable.language.this", "support.type.primitive", "support.function", "support.variable.dom", "support.variable.property", "support.variable.property", "meta.property-name", "meta.property-value", "support.constant.handlebars" ], + "settings" : { + "foreground" : "#007F7F" + } + }, + { + "scope" : [ "keyword", "storage.modifier", "storage.type", "variable.parameter" ], + "settings" : { + "fontStyle" : "bold", + "foreground" : "#00007F" + } + }, + { + "scope" : [ "entity.name.type", "entity.other.inherited-class", "meta.function-call", "entity.other.attribute-name", "entity.name.function.shell" ], + "settings" : { + "foreground" : "#000000" + } + }, + { + "scope" : [ "entity.name.tag" ], + "settings" : { + "foreground" : "#000000" + } + } + ] +}
\ No newline at end of file diff --git a/context/data/vscode/extensions/context/vscode-context.readme b/context/data/vscode/extensions/context/vscode-context.readme new file mode 100644 index 000000000..dd7d37c87 --- /dev/null +++ b/context/data/vscode/extensions/context/vscode-context.readme @@ -0,0 +1,5 @@ +These files are generated. You can use these extensions with for instance: + + code.exe --extensions-dir <someplace>/tex/texmf-context/context/data/vscode/extensions --install-extension context + +There are examples of scripts and keybindings too. diff --git a/context/data/vscode/settings.json b/context/data/vscode/settings.json new file mode 100644 index 000000000..f2c9ddf32 --- /dev/null +++ b/context/data/vscode/settings.json @@ -0,0 +1,45 @@ +{ + "window.zoomLevel": 2, + "editor.renderWhitespace": "all", + "telemetry.enableCrashReporter": false, + "telemetry.enableTelemetry": false, + "editor.fontFamily": "Dejavu Sans Mono, Consolas, 'Courier New', monospace", + "window.autoDetectHighContrast": false, + "zenMode.hideLineNumbers": false, + "zenMode.centerLayout": false, + "zenMode.fullScreen": false, + "zenMode.hideTabs": false, + "workbench.editor.showIcons": false, + "workbench.settings.enableNaturalLanguageSearch": false, + "window.enableMenuBarMnemonics": false, + "search.location": "panel", + "breadcrumbs.enabled": false, + "workbench.activityBar.visible": false, + "editor.minimap.enabled": false, + "workbench.iconTheme": null, + "extensions.ignoreRecommendations": true, + "editor.renderControlCharacters": true, + "terminal.integrated.scrollback": 5000, + "workbench.colorTheme": "ConTeXt", + // "[context.pdf]": { "files.encoding": "cp1252"}, + "terminal.integrated.fontSize": 10, + "terminal.integrated.rendererType": "dom", + "workbench.colorCustomizations": { + "terminal.ansiBlack": "#000000", + "terminal.ansiWhite": "#FFFFFF", + "terminal.ansiRed": "#7F0000", + "terminal.ansiGreen": "#007F00", + "terminal.ansiBlue": "#00007F", + "terminal.ansiMagenta": "#7F007F", + "terminal.ansiCyan": "#007F7F", + "terminal.ansiYellow": "#7F7F00", + "terminal.ansiBrightBlack": "#000000", + "terminal.ansiBrightWhite": "#FFFFFF", + "terminal.ansiBrightRed": "#7F0000", + "terminal.ansiBrightGreen": "#007F00", + "terminal.ansiBrightBlue": "#00007F", + "terminal.ansiBrightMagenta": "#7F007F", + "terminal.ansiBrightCyan": "#007F7F", + "terminal.ansiBrightYellow": "#7F7F00", + } +} diff --git a/context/data/vscode/vscode-context.cmd b/context/data/vscode/vscode-context.cmd new file mode 100644 index 000000000..205d98af6 --- /dev/null +++ b/context/data/vscode/vscode-context.cmd @@ -0,0 +1,7 @@ +@echo off + +rem chcp 65001 + +rem I need to figure ou thow to detach the instance + +start "vs code context" code --ignore-gpu-blacklist --reuse-window --extensions-dir %~dp0\extensions --install-extension context %* 2>&1 nul diff --git a/doc/context/documents/general/qrcs/setup-cs.pdf b/doc/context/documents/general/qrcs/setup-cs.pdf Binary files differindex e9b94bb43..61e0cf7b5 100644 --- a/doc/context/documents/general/qrcs/setup-cs.pdf +++ b/doc/context/documents/general/qrcs/setup-cs.pdf diff --git a/doc/context/documents/general/qrcs/setup-de.pdf b/doc/context/documents/general/qrcs/setup-de.pdf Binary files differindex 4ba3b0a32..0edc934d1 100644 --- a/doc/context/documents/general/qrcs/setup-de.pdf +++ b/doc/context/documents/general/qrcs/setup-de.pdf diff --git a/doc/context/documents/general/qrcs/setup-en.pdf b/doc/context/documents/general/qrcs/setup-en.pdf Binary files differindex 04e0e44ae..ef4f960e6 100644 --- a/doc/context/documents/general/qrcs/setup-en.pdf +++ b/doc/context/documents/general/qrcs/setup-en.pdf diff --git a/doc/context/documents/general/qrcs/setup-fr.pdf b/doc/context/documents/general/qrcs/setup-fr.pdf Binary files differindex d46684a10..edb05cdfa 100644 --- a/doc/context/documents/general/qrcs/setup-fr.pdf +++ b/doc/context/documents/general/qrcs/setup-fr.pdf diff --git a/doc/context/documents/general/qrcs/setup-it.pdf b/doc/context/documents/general/qrcs/setup-it.pdf Binary files differindex 375e8d01f..739c973f3 100644 --- a/doc/context/documents/general/qrcs/setup-it.pdf +++ b/doc/context/documents/general/qrcs/setup-it.pdf diff --git a/doc/context/documents/general/qrcs/setup-mapping-cs.pdf b/doc/context/documents/general/qrcs/setup-mapping-cs.pdf Binary files differindex eb8fa505c..1d52df51f 100644 --- a/doc/context/documents/general/qrcs/setup-mapping-cs.pdf +++ b/doc/context/documents/general/qrcs/setup-mapping-cs.pdf diff --git a/doc/context/documents/general/qrcs/setup-mapping-de.pdf b/doc/context/documents/general/qrcs/setup-mapping-de.pdf Binary files differindex bf501cd33..efe344462 100644 --- a/doc/context/documents/general/qrcs/setup-mapping-de.pdf +++ b/doc/context/documents/general/qrcs/setup-mapping-de.pdf diff --git a/doc/context/documents/general/qrcs/setup-mapping-en.pdf b/doc/context/documents/general/qrcs/setup-mapping-en.pdf Binary files differindex 09d3f9f31..75474f431 100644 --- a/doc/context/documents/general/qrcs/setup-mapping-en.pdf +++ b/doc/context/documents/general/qrcs/setup-mapping-en.pdf diff --git a/doc/context/documents/general/qrcs/setup-mapping-fr.pdf b/doc/context/documents/general/qrcs/setup-mapping-fr.pdf Binary files differindex aee4ba76e..10ccf5725 100644 --- a/doc/context/documents/general/qrcs/setup-mapping-fr.pdf +++ b/doc/context/documents/general/qrcs/setup-mapping-fr.pdf diff --git a/doc/context/documents/general/qrcs/setup-mapping-it.pdf b/doc/context/documents/general/qrcs/setup-mapping-it.pdf Binary files differindex 79b873b1d..8a59b1476 100644 --- a/doc/context/documents/general/qrcs/setup-mapping-it.pdf +++ b/doc/context/documents/general/qrcs/setup-mapping-it.pdf diff --git a/doc/context/documents/general/qrcs/setup-mapping-nl.pdf b/doc/context/documents/general/qrcs/setup-mapping-nl.pdf Binary files differindex 0c7ee821e..ba41f79c7 100644 --- a/doc/context/documents/general/qrcs/setup-mapping-nl.pdf +++ b/doc/context/documents/general/qrcs/setup-mapping-nl.pdf diff --git a/doc/context/documents/general/qrcs/setup-mapping-ro.pdf b/doc/context/documents/general/qrcs/setup-mapping-ro.pdf Binary files differindex 618bb2025..213394b22 100644 --- a/doc/context/documents/general/qrcs/setup-mapping-ro.pdf +++ b/doc/context/documents/general/qrcs/setup-mapping-ro.pdf diff --git a/doc/context/documents/general/qrcs/setup-nl.pdf b/doc/context/documents/general/qrcs/setup-nl.pdf Binary files differindex d5d371ec8..06fc8f12e 100644 --- a/doc/context/documents/general/qrcs/setup-nl.pdf +++ b/doc/context/documents/general/qrcs/setup-nl.pdf diff --git a/doc/context/documents/general/qrcs/setup-ro.pdf b/doc/context/documents/general/qrcs/setup-ro.pdf Binary files differindex 25a54cbfb..4d7712f17 100644 --- a/doc/context/documents/general/qrcs/setup-ro.pdf +++ b/doc/context/documents/general/qrcs/setup-ro.pdf diff --git a/doc/context/scripts/mkiv/mtx-vscode.html b/doc/context/scripts/mkiv/mtx-vscode.html new file mode 100644 index 000000000..32a6d5e74 --- /dev/null +++ b/doc/context/scripts/mkiv/mtx-vscode.html @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + +<!-- compare with lmx framework variant --> + +<!-- + filename : context-base.xml + comment : companion to mtx-server-ctx-startup.tex + author : Hans Hagen, PRAGMA-ADE, Hasselt NL + copyright: PRAGMA ADE / ConTeXt Development Team + license : see context related readme files +--> + +<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> + <head> + <title>vscode extension generator</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> + <style type="text/css"> + body { color: #FFFFFF; background-color: #808080; font-family: optima, verdana, futura, "lucida sans", arial, geneva, helvetica, sans; font-size: 12px; line-height: 18px; } a:link, a:active, a:visited { color: #FFFFFF; } a.dir-view:link, a.dir-view:active, a.dir-view:visited { color: #FFFFFF; text-decoration: underline; } .valid { color: #00FF00; } .invalid { color: #FF0000; } .invisible { visibility: hidden; } button, .commonlink, .smallbutton { font-weight: bold; font-size: 12px; text-decoration: none; color: #000000; border-color: #7F7F7F; border-style: solid; border-width: .125ex; background-color: #FFFFFF; padding: .5ex; } .smallbutton { width: 1em; } a.commonlink:link, a.commonlink:active, a.commonlink:visited, a.smalllink:link, a.smalllink:active, a.smalllink:visited { font-weight: bold; font-size: 12px; text-decoration: none; color: #000000; } h1, .title { font-style: normal; font-weight: normal; font-size: 18px; line-height: 18px; margin-bottom: 20px; } h2, .subtitle { font-style: normal; font-weight: normal; font-size: 12px; margin-top: 18px; margin-bottom: 18px; } table { line-height: 18px; font-size: 12px; margin: 0; } th { font-weight: bold; text-align: left; padding-bottom: 6px; } .tc { font-weight: bold; text-align: left; } p, li { max-width: 60em; } .empty-line { margin-top: 4px; } .more-room { margin-right: 1.5em; } .much-more-room { margin-right: 3em; } #main { position: absolute; left: 10%; top: 10%; right: 10%; bottom: 10%; z-index: 2; width: 80%; height: 80%; padding: 0%; margin: 0%; overflow: auto; border-style: none; border-width: 0; background-color: #3F3F3F; } #main-settings { margin: 12px; x_max-width: 60em; line-height: 18px; font-size: 12px; } #left { position: absolute; top : 10%; left: 0%; bottom: 0%; right: 90%; z-index: 1; width: 10%; height: 90%; padding: 0%; margin: 0%; font-size: 16px; border-style: none; border-width: 0; background-color: #4F6F6F; } #right { position: absolute; top : 0%; left: 90%; bottom: 10%; right: 0%; z-index: 1; width: 10%; height: 90%; padding: 0%; margin: 0%; font-size: 16px; border-style: none; border-width: 0; background-color: #4F6F6F; _margin-left: -15px; } #bottom { position: absolute; left: 10%; right: 0%; top: 90%; bottom: 0%; z-index: 1; width: 90%; height: 10%; padding: 0%; margin: 0%; font-size: 16px; border-style: none; border-width: 0; background-color: #6F6F8F; } #top { position: absolute; left: 0%; right: 10%; top: 0%; bottom: 90%; z-index: 1; width: 90%; height: 10%; padding: 0%; margin: 0%; font-size: 16px; border-style: none; border-width: 0; background-color: #6F6F8F; } #top-one { position: absolute; bottom: 50%; width: 100%; buggedheight: 100%; } #top-two { position: relative; margin-bottom: -9px; margin-left: 12px; margin-right: 12px; line-height: 18px; text-align: right; vertical-align: middle; } #bottom-one { position: absolute; bottom: 50%; width: 100%; buggedheight: 100%; } #bottom-two { position: relative; margin-bottom: -9px; margin-left: 12px; margin-right: 12px; line-height: 18px; text-align: left; vertical-align: middle; } #left-one { position: absolute; width: 100%; buggedheight: 100%; } #left-two { position: relative; margin-top: 12px; line-height: 18px; text-align: center; vertical-align: top; } #right-one { display: table; height: 100%; width: 100%; } #right-two { display: table-row; height: 100%; width: 100%; } #right-three { display: table-cell; width: 100%; vertical-align: bottom; _position: absolute; _top: 100%; } #right-four { text-align: center; margin-bottom: 2ex; _position: relative; _top: -100%; } #more-top { position: absolute; top: 0%; left: 90%; bottom: 90%; right: 0%; z-index: 3; width: 10%; height: 10%; padding: 0%; margin: 0%; border-style: none; border-width: 0; } #more-top-settings { text-align: center; } #more-right-settings { margin-right: 12px; margin-left: 12px; line-height: 18px; font-size: 10px; text-align: center; } #right-safari { _display: table; width: 100%; height: 100%; } + </style> + <style type="text/css"> + </style> + </head> + <body> + <div id="top"> <div id="top-one"> + <div id="top-two">vscode extension generator </div> + </div> + </div> + <div id="bottom"> <div id="bottom-one"> + <div id="bottom-two">wiki: http://contextgarden.net | mail: ntg-context@ntg.nl | website: http://www.pragma-ade.nl</div> + </div> + </div> + <div id="left"></div> + <div id="right"></div> + <div id="main"> + <div id='main-settings'> + <h1>Command line options</h1> +<table> + <tr><th style="width: 10em">flag</th><th style="width: 8em">value</th><th>description</th></tr> + <tr><th/><td/><td/></tr> + <tr><th>--generate</th><td></td><td>generate extension in sync with current version</td></tr> + <tr><th>--start</th><td></td><td>start vscode with extension context</td></tr> + </table> +<br/> +<h1>Example</h1> +<tt>mtxrun --script vscode --generate e:/vscode/extensions</tt> +<br/><tt>mtxrun --script vscode --generate</tt> +<br/><tt>mtxrun --script vscode --start</tt> +<br/><br/> </div> + </div> + </body> +</html> diff --git a/doc/context/scripts/mkiv/mtx-vscode.man b/doc/context/scripts/mkiv/mtx-vscode.man new file mode 100644 index 000000000..6c1a0cd11 --- /dev/null +++ b/doc/context/scripts/mkiv/mtx-vscode.man @@ -0,0 +1,30 @@ +.TH "mtx-vscode" "1" "01-01-2019" "version 1.00" "vscode extension generator" +.SH NAME + mtx-vscode - vscode extension generator +.SH SYNOPSIS +.B mtxrun --script vscode [ +.I OPTIONS ... +.B ] [ +.I FILENAMES +.B ] +.SH DESCRIPTION +.B vscode extension generator +.SH OPTIONS +.TP +.B --generate +generate extension in sync with current version +.TP +.B --start +start vscode with extension context +.SH AUTHOR +More information about ConTeXt and the tools that come with it can be found at: + + +.B "maillist:" +ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context + +.B "webpage:" +http://www.pragma-ade.nl / http://tex.aanhet.net + +.B "wiki:" +http://contextgarden.net diff --git a/doc/context/scripts/mkiv/mtx-vscode.xml b/doc/context/scripts/mkiv/mtx-vscode.xml new file mode 100644 index 000000000..c4cf3167e --- /dev/null +++ b/doc/context/scripts/mkiv/mtx-vscode.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<application> + <metadata> + <entry name="name">mtx-vscode</entry> + <entry name="detail">vscode extension generator</entry> + <entry name="version">1.00</entry> + </metadata> + <flags> + <category name="basic"> + <subcategory> + <flag name="generate"><short>generate extension in sync with current version</short></flag> + <flag name="start"><short>start vscode with extension context</short></flag> + </subcategory> + </category> + </flags> + <examples> + <category> + <title>Example</title> + <subcategory> + <example><command>mtxrun --script vscode --generate e:/vscode/extensions</command></example> + <example><command>mtxrun --script vscode --generate</command></example> + <example><command>mtxrun --script vscode --start</command></example> + </subcategory> + </category> + </examples> +</application> diff --git a/scripts/context/lua/mtx-vscode.lua b/scripts/context/lua/mtx-vscode.lua new file mode 100644 index 000000000..22a821dec --- /dev/null +++ b/scripts/context/lua/mtx-vscode.lua @@ -0,0 +1,3181 @@ +if not modules then modules = { } end modules ['mtx-vscode'] = { + version = 1.000, + comment = "this script is experimental", + author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", + copyright = "PRAGMA ADE", + license = "see context related readme files" +} + +-- todo: folding and comments +-- todo: runners (awaiting global script setup) +-- todo: dark theme + +-- Already for quite a while lexing in ConTeXt is kind of standardized and the way +-- the format evolved also relates to how I see the source. We started with lexing +-- beginning of 1990 with texedit/wdt in Modula2 and went via perltk (texwork), +-- Scite (native), Scite (lpeg) as well as different stages in verbatim. So, as +-- github uses VSCODE I decided to convert the couple of base lexers to the format +-- that this editor likes. It's all about habits and consistency, not about tons of +-- fancy features that I don't need and would not use anyway. +-- +-- I use a lua script to generate the lexer definitions simply because that way the +-- update will be in sync with the updates in the context distribution. +-- +-- code.exe --extensions-dir e:\vscode\extensions --install-extension context +-- +-- In the end all these systems look alike so again we we have these token onto +-- styling mappings. We even have embedded lexers. Actually, when reading the +-- explanations it has become internally more close to what scintilla does with +-- tokens and numbers related to it but then mapped back onto css. +-- +-- Multiline lexing is a pain here, so I just assume that stuff belonging together is +-- on one line (like keys to simple values). I'm not in the mood for ugly multistep +-- parsing now. Here the lpeg lexers win. +-- +-- We can optimize these expressions if needed but it all looks fast enough. Anyway, +-- we do start from the already old lexers that we use in SciTe. The lexing as well +-- as use of colors is kind of consistent and standardized in context and I don't +-- want to change it. The number of colors is not that large and (at least to me) it +-- looks less extreme. We also use a gray background because over time we figured +-- out that this works best (1) for long sessions, and (2) for colors. We have quite +-- some embedding so that is another reason for consistency. +-- +-- I do remember generating plist files many years ago but stopped doing that +-- because I never could check them in practice. We're now kind of back to that. The +-- reason for using a lua script to generate the json file is that it is easier to +-- keep in sync with context and also because then a user can just generate the +-- extension her/himself. +-- +-- There are nice examples of lexer definitions in the vc extensions path. My regexp +-- experiences are somewhat rusted and I don't really have intentions to spend too +-- much time on them. Compared to the lpeg lexers the regexp based ones are often +-- more compact. It's just a different concept. Anyway, I might improve things after +-- I've read more of the specs (it seems like the regexp engine is the one from ruby). + +-- We normally use a light gray background with rather dark colors which at least +-- for us is less tiresome. The problem with dark backgrounds is that one needs to +-- use light colors from pastel palettes. I need to figure out a mapping that works +-- for a dark background so that optionally one can install without color theme. + +-- It is possible to define tasks and even relate them to languages but for some reason +-- it can not be done global but per workspace which makes using vscode no option for +-- me (too many different folders with source code, documentation etc). It's kind of +-- strange because simple runners are provided by many editors. I don't want to program +-- a lot to get such simple things done so, awaiting global tasks I stick to using the +-- terminal. But we're prepared. + +-- Another showstopper is the fact that we cannot disable utf8 for languages (like pdf, +-- which is just bytes). I couldn't figure out how to set it in the extension. + +-- { +-- "window.zoomLevel": 2, +-- "editor.renderWhitespace": "all", +-- "telemetry.enableCrashReporter": false, +-- "telemetry.enableTelemetry": false, +-- "editor.fontFamily": "Dejavu Sans Mono, Consolas, 'Courier New', monospace", +-- "window.autoDetectHighContrast": false, +-- "zenMode.hideLineNumbers": false, +-- "zenMode.centerLayout": false, +-- "zenMode.fullScreen": false, +-- "zenMode.hideTabs": false, +-- "workbench.editor.showIcons": false, +-- "workbench.settings.enableNaturalLanguageSearch": false, +-- "window.enableMenuBarMnemonics": false, +-- "search.location": "panel", +-- "breadcrumbs.enabled": false, +-- "workbench.activityBar.visible": false, +-- "editor.minimap.enabled": false, +-- "workbench.iconTheme": null, +-- "extensions.ignoreRecommendations": true, +-- "editor.renderControlCharacters": true, +-- "terminal.integrated.scrollback": 5000, +-- "workbench.colorTheme": "ConTeXt", +-- "[context.cld]": {}, +-- "terminal.integrated.fontSize": 10, +-- "terminal.integrated.rendererType": "dom", +-- "workbench.colorCustomizations": { +-- "terminal.ansiBlack": "#000000", +-- "terminal.ansiWhite": "#FFFFFF", +-- "terminal.ansiRed": "#7F0000", +-- "terminal.ansiGreen": "#007F00", +-- "terminal.ansiBlue": "#00007F", +-- "terminal.ansiMagenta": "#7F007F", +-- "terminal.ansiCyan": "#007F7F", +-- "terminal.ansiYellow": "#7F7F00", +-- "terminal.ansiBrightBlack": "#000000", +-- "terminal.ansiBrightWhite": "#FFFFFF", +-- "terminal.ansiBrightRed": "#7F0000", +-- "terminal.ansiBrightGreen": "#007F00", +-- "terminal.ansiBrightBlue": "#00007F", +-- "terminal.ansiBrightMagenta": "#7F007F", +-- "terminal.ansiBrightCyan": "#007F7F", +-- "terminal.ansiBrightYellow": "#7F7F00", +-- } +-- } + +-- kind of done: +-- +-- tex mps lua cld bibtex sql bnf(untested) pdf xml json c(pp)(simplified) +-- +-- unlikely to be done (ok, i'm not interested in all this ide stuff anyway): +-- +-- cpp-web tex-web web web-snippets txt +-- +-- still todo: +-- +-- xml: preamble and dtd +-- pdf: nested string (..(..)..) + +local helpinfo = [[ +<?xml version="1.0"?> +<application> + <metadata> + <entry name="name">mtx-vscode</entry> + <entry name="detail">vscode extension generator</entry> + <entry name="version">1.00</entry> + </metadata> + <flags> + <category name="basic"> + <subcategory> + <flag name="generate"><short>generate extension in sync with current version</short></flag> + <flag name="start"><short>start vscode with extension context</short></flag> + </subcategory> + </category> + </flags> + <examples> + <category> + <title>Example</title> + <subcategory> + <example><command>mtxrun --script vscode --generate e:/vscode/extensions</command></example> + <example><command>mtxrun --script vscode --generate</command></example> + <example><command>mtxrun --script vscode --start</command></example> + </subcategory> + </category> + </examples> +</application> +]] + +local application = logs.application { + name = "mtx-vscode", + banner = "vscode extension generator", + helpinfo = helpinfo, +} + +local report = application.report + +require("util-jsn") + +scripts = scripts or { } +scripts.vscode = scripts.vscode or { } + +local readmedata = [[ +These files are generated. You can use these extensions with for instance: + + code.exe --extensions-dir <someplace>/tex/texmf-context/context/data/vscode/extensions --install-extension context + +There are examples of scripts and keybindings too. +]] + +local function locate() + local name = resolvers.findfile("vscode-context.readme") + if name and name ~= "" then + local path = file.dirname(file.dirname(name)) + if lfs.isdir(path) then + return path + end + end +end + +function scripts.vscode.generate(targetpath) + + local targetpath = targetpath or environment.files[1] or locate() + + if not targetpath or targetpath == "" or not lfs.isdir(targetpath) then + report("invalid targetpath %a",targetpath) + return + end + + local contextpath = string.gsub(targetpath,"\\","/") .. "/context" + + dir.makedirs(contextpath) + + if not lfs.chdir(contextpath) then + return + end + + local syntaxpath = contextpath .. "/syntaxes" + local themepath = contextpath .. "/themes" + local taskpath = contextpath .. "/tasks" + local keybindingpath = contextpath .. "/keybindings" + local settingspath = contextpath .. "/settings" + + dir.makedirs(syntaxpath) + dir.makedirs(themepath) + dir.makedirs(taskpath) + dir.makedirs(keybindingpath) + dir.makedirs(settingspath) + + if not lfs.isdir(syntaxpath) then return end + if not lfs.isdir(themepath) then return end + if not lfs.isdir(taskpath) then return end + if not lfs.isdir(keybindingpath) then return end + if not lfs.isdir(settingspath) then return end + + -- The package. + + local languages = { } + local grammars = { } + local themes = { } + local tasks = { } + local keybindings = { } + + local function registerlexer(lexer) + + local category = lexer.category + local contextid = "context." .. category + local scope = "source." .. contextid + + local setupfile = "./settings/context-settings-" .. category .. ".json" + local grammarfile = "./syntaxes/context-syntax-" .. category .. ".json" + + local grammar = utilities.json.tojson { + name = contextid, + scopeName = scope, + version = lexer.version, + repository = lexer.repository, + patterns = lexer.patterns, + } + + local setup = utilities.json.tojson(lexer.setup) + + local suffixes = lexer.suffixes or { } + local extensions = { } + + for i=1,#suffixes do + extensions[i] = "." .. string.gsub(suffixes[i],"%.","") + end + + table.sort(extensions) + + languages[#languages+1] = { + id = contextid, + extensions = #extensions > 0 and extensions or nil, + aliases = { lexer.description }, + configuration = setupfile, + } + + grammars[#grammars+1] = { + language = contextid, + scopeName = "source." .. contextid, + path = grammarfile, + } + + report("saving grammar for %a in %a",category,grammarfile) + report("saving setup for %a in %a",category,setupfile) + + io.savedata(grammarfile, grammar) + io.savedata(setupfile, setup) + + end + + local function registertheme(theme) + + local category = theme.category + local filename = "./themes/" .. category .. ".json" + + themes[#themes+1] = { + label = theme.description, + uiTheme = "vs", + path = filename, + } + + local data = utilities.json.tojson { + ["$schema"] = "vscode://schemas/color-theme", + ["name"] = category, + ["colors"] = theme.colors, + ["tokenColors"] = theme.styles, + } + + report("saving theme %a in %a",category,filename) + + io.savedata(filename,data) + + end + + local function registertask(task) + + local category = task.category + local filename = "./tasks/" .. category .. ".json" + + tasks[#tasks+1] = { + label = task.description, + path = filename, + } + + local data = utilities.json.tojson { + ["name"] = category, + ["tasks"] = task.tasks, + } + + report("saving task %a in %a",category,filename) + + io.savedata(filename,data) + + end + + local function registerkeybinding(keybinding) + + local bindings = keybinding.keybindings + + if bindings then + + local category = keybinding.category + local filename = "./keybindings/" .. category .. ".json" + + report("saving keybinding %a in %a",category,filename) + + io.savedata(filename,utilities.json.tojson(bindings)) + + for i=1,#bindings do + keybindings[#keybindings+1] = bindings[i] + end + + end + end + + local function savepackage() + + local packagefile = "package.json" + local whateverfile = "package.nls.json" + local readmefile = "vscode-context.readme" + + local specification = utilities.json.tojson { + name = "context", + displayName = "ConTeXt", + description = "ConTeXt Syntax Highlighting", + publisher = "ConTeXt Development Team", + version = "1.0.0", + engines = { + vscode = "*" + }, + categories = { + "Lexers", + "Syntaxes" + }, + contributes = { + languages = languages, + grammars = grammars, + themes = themes, + tasks = tasks, + keybindings = keybindings, + }, + + } + + report("saving package in %a",packagefile) + + io.savedata(packagefile,specification) + + local whatever = utilities.json.tojson { + displayName = "ConTeXt", + description = "Provides syntax highlighting and bracket matching in ConTeXt files.", + } + + report("saving whatever in %a",whateverfile) + + io.savedata(whateverfile,whatever) + + report("saving readme in %a",readmefile) + + io.savedata(readmefile,readmedata) + + end + + -- themes + + do + + local mycolors = { + red = "#7F0000", + green = "#007F00", + blue = "#00007F", + cyan = "#007F7F", + magenta = "#7F007F", + yellow = "#7F7F00", + orange = "#B07F00", + white = "#FFFFFF", + light = "#CFCFCF", + grey = "#808080", + dark = "#4F4F4F", + black = "#000000", + selection = "#F7F7F7", + logpanel = "#E7E7E7", + textpanel = "#CFCFCF", + linepanel = "#A7A7A7", + tippanel = "#444444", + right = "#0000FF", + wrong = "#FF0000", + } + + local colors = { + ["editor.background"] = mycolors.textpanel, + ["editor.foreground"] = mycolors.black, + ["editorLineNumber.foreground"] = mycolors.black, + ["editorIndentGuide.background"] = mycolors.textpanel, + ["editorBracketMatch.background"] = mycolors.textpanel, + ["editorBracketMatch.border"] = mycolors.orange, + ["editor.lineHighlightBackground"] = mycolors.textpanel, + ["focusBorder"] = mycolors.black, + + ["activityBar.background"] = mycolors.black, + + ["sideBar.background"] = mycolors.linepanel, + ["sideBar.foreground"] = mycolors.black, + ["sideBar.border"] = mycolors.white, + ["sideBarTitle.foreground"] = mycolors.black, + ["sideBarSectionHeader.background"] = mycolors.linepanel, + ["sideBarSectionHeader.foreground"] = mycolors.black, + + ["statusBar.foreground"] = mycolors.black, + ["statusBar.background"] = mycolors.linepanel, + ["statusBar.border"] = mycolors.white, + ["statusBar.noFolderForeground"] = mycolors.black, + ["statusBar.noFolderBackground"] = mycolors.linepanel, + ["statusBar.debuggingForeground"] = mycolors.black, + ["statusBar.debuggingBackground"] = mycolors.linepanel, + + ["notification.background"] = mycolors.black, + } + + local styles = { + + { scope = "context.whitespace", settings = { } }, + { scope = "context.default", settings = { foreground = mycolors.black } }, + { scope = "context.number", settings = { foreground = mycolors.cyan } }, + { scope = "context.comment", settings = { foreground = mycolors.yellow } }, + { scope = "context.keyword", settings = { foreground = mycolors.blue, fontStyle = "bold" } }, + { scope = "context.string", settings = { foreground = mycolors.magenta } }, + { scope = "context.error", settings = { foreground = mycolors.red } }, + { scope = "context.label", settings = { foreground = mycolors.red, fontStyle = "bold" } }, + { scope = "context.nothing", settings = { } }, + { scope = "context.class", settings = { foreground = mycolors.black, fontStyle = "bold" } }, + { scope = "context.function", settings = { foreground = mycolors.black, fontStyle = "bold" } }, + { scope = "context.constant", settings = { foreground = mycolors.cyan, fontStyle = "bold" } }, + { scope = "context.operator", settings = { foreground = mycolors.blue } }, + { scope = "context.regex", settings = { foreground = mycolors.magenta } }, + { scope = "context.preprocessor", settings = { foreground = mycolors.yellow, fontStyle = "bold" } }, + { scope = "context.tag", settings = { foreground = mycolors.cyan } }, + { scope = "context.type", settings = { foreground = mycolors.blue } }, + { scope = "context.variable", settings = { foreground = mycolors.black } }, + { scope = "context.identifier", settings = { } }, + { scope = "context.linenumber", settings = { background = mycolors.linepanel } }, + { scope = "context.bracelight", settings = { foreground = mycolors.orange, fontStyle = "bold" } }, + { scope = "context.bracebad", settings = { foreground = mycolors.orange, fontStyle = "bold" } }, + { scope = "context.controlchar", settings = { } }, + { scope = "context.indentguide", settings = { foreground = mycolors.linepanel, back = colors.white } }, + { scope = "context.calltip", settings = { foreground = mycolors.white, back = colors.tippanel } }, + { scope = "context.invisible", settings = { background = mycolors.orange } }, + { scope = "context.quote", settings = { foreground = mycolors.blue, fontStyle = "bold" } }, + { scope = "context.special", settings = { foreground = mycolors.blue } }, + { scope = "context.extra", settings = { foreground = mycolors.yellow } }, + { scope = "context.embedded", settings = { foreground = mycolors.black, fontStyle = "bold" } }, + { scope = "context.char", settings = { foreground = mycolors.magenta } }, + { scope = "context.reserved", settings = { foreground = mycolors.magenta, fontStyle = "bold" } }, + { scope = "context.definition", settings = { foreground = mycolors.black, fontStyle = "bold" } }, + { scope = "context.okay", settings = { foreground = mycolors.dark } }, + { scope = "context.warning", settings = { foreground = mycolors.orange } }, + { scope = "context.standout", settings = { foreground = mycolors.orange, fontStyle = "bold" } }, + { scope = "context.command", settings = { foreground = mycolors.green, fontStyle = "bold" } }, + { scope = "context.internal", settings = { foreground = mycolors.orange, fontStyle = "bold" } }, + { scope = "context.preamble", settings = { foreground = mycolors.yellow } }, + { scope = "context.grouping", settings = { foreground = mycolors.red } }, + { scope = "context.primitive", settings = { foreground = mycolors.blue, fontStyle = "bold" } }, + { scope = "context.plain", settings = { foreground = mycolors.dark, fontStyle = "bold" } }, + { scope = "context.user", settings = { foreground = mycolors.green } }, + { scope = "context.data", settings = { foreground = mycolors.cyan, fontStyle = "bold" } }, + { scope = "context.text", settings = { foreground = mycolors.black } }, + + { scope = { "emphasis" }, settings = { fontStyle = "italic" } }, + { scope = { "strong" }, settings = { fontStyle = "bold" } }, + + { scope = { "comment" }, settings = { foreground = mycolors.black } }, + { scope = { "string" }, settings = { foreground = mycolors.magenta } }, + + { + scope = { + "constant.numeric", + "constant.language.null", + "variable.language.this", + "support.type.primitive", + "support.function", + "support.variable.dom", + "support.variable.property", + "support.variable.property", + "meta.property-name", + "meta.property-value", + "support.constant.handlebars" + }, + settings = { + foreground = mycolors.cyan, + } + }, + + { + scope = { + "keyword", + "storage.modifier", + "storage.type", + "variable.parameter" + }, + settings = { + foreground = mycolors.blue, + fontStyle = "bold", + } + }, + + { + scope = { + "entity.name.type", + "entity.other.inherited-class", + "meta.function-call", + "entity.other.attribute-name", + "entity.name.function.shell" + }, + settings = { + foreground = mycolors.black, + } + }, + + { + scope = { + "entity.name.tag", + }, + settings = { + foreground = mycolors.black, + } + }, + + } + + registertheme { + category = "context", + description = "ConTeXt", + colors = colors, + styles = styles, + } + + end + + do + + local presentation = { + echo = true, + reveal = "always", + focus = false, + panel = "shared", + showReuseMessage = false, + clear = true, + } + + local tasks = { + { + group = "build", + label = "process tex file", + type = "shell", + command = "context --autogenerate --autopdf ${file}", + windows = { command = "chcp 65001 ; context.exe --autogenerate --autopdf ${file}" }, + }, + { + group = "build", + label = "check tex file", + type = "shell", + command = "mtxrun --autogenerate --script check ${file}", + windows = { command = "chcp 65001 ; mtxrun.exe --autogenerate --script check ${file}" }, + }, + { + group = "build", + label = "identify fonts", + type = "shell", + command = "mtxrun --script fonts --reload --force", + windows = { command = "chcp 65001 ; mtxrun.exe --script fonts --reload --force" }, + }, + { + group = "build", + label = "process lua file", + type = "shell", + command = "mtxrun --script ${file}", + windows = { command = "chcp 65001 ; mtxrun.exe --script ${file}" }, + }, + } + + for i=1,#tasks do + local task = tasks[i] + if not task.windows then + task.windows = { command = "chcp 65001 ; " .. task.command } + end + if not task.presentation then + task.presentation = presentation + end + end + + registertask { + category = "context", + description = "ConTeXt Tasks", + tasks = tasks, + } + + end + + do + + local keybindings = { + { + -- runner = "context --autogenerate --autopdf ${file}", + key = "ctrl-F12", + command = "workbench.action.tasks.runTask", + args = "process tex file", + when = "editorTextFocus && editorLangId == context.tex", + }, + { + -- runner = "mtxrun --autogenerate --script check ${file}", + key = "F12", + command = "workbench.action.tasks.runTask", + args = "check tex file", + when = "editorTextFocus && editorLangId == context.tex", + }, + { + -- runner = "mtxrun --script ${file}", + key = "ctrl-F12", + command = "workbench.action.tasks.runTask", + args = "process lua file", + when = "editorTextFocus && editorLangId == context.cld", + } + } + + registerkeybinding { + category = "context", + description = "ConTeXt Keybindings", + keybindings = keybindings, + } + + end + + -- helpers + + local function loaddefinitions(name) + return table.load(resolvers.findfile(name)) + end + + local escapes = { + ["."] = "\\.", + ["-"] = "\\-", + ["+"] = "\\+", + ["*"] = "\\*", + ['"'] = '\\"', + ["'"] = "\\'", + ['^'] = '\\^', + ['$'] = '\\$', + ["|"] = "\\|", + ["\\"] = "\\\\", + ["["] = "\\[", + ["]"] = "\\]", + ["("] = "\\(", + [")"] = "\\)", + ["%"] = "\\%", + ["!"] = "\\!", + ["&"] = "\\&", + ["?"] = "\\?", + ["~"] = "\\~", + } + + local function sorter(a,b) + return a > b + end + + local function oneof(t) + local result = { } + table.sort(t,sorter) + for i=1,#t do + result[i] = string.gsub(t[i],".",escapes) + end + return table.concat(result,"|") + end + + local function capture(str) + return "(" .. str .. ")" + end + + local function captures(str) + return "\\*(" .. str .. ")\\*" + end + + local function include(str) + return { include = str } + end + + local function configuration(s) + if s then + local pairs = s.pairs + local comments = s.comments + return { + brackets = pairs, + autoClosingPairs = pairs, + surroundingPairs = pairs, + comments = { + lineComment = comments and comments.inline or nil, + blockComment = comments and comments.display or nil, + }, + } + else + return { } + end + end + + -- I need to figure out a decent mapping for dark as the defaults are just + -- not to my taste and we also have a different categorization. + + local mapping = { + ["context.default"] = "text source", + ["context.number"] = "constant.numeric", + ["context.comment"] = "comment", + ["context.keyword"] = "keyword", + ["context.string"] = "string source", + ["context.label"] = "meta.tag", + ["context.constant"] = "support.constant", + ["context.operator"] = "keyword.operator.js", + ["context.identifier"] = "support.variable", + ["context.quote"] = "string", + ["context.special"] = "unset", + ["context.extra"] = "unset", + ["context.embedded"] = "meta.embedded", + ["context.reserved"] = "unset", + ["context.definition"] = "keyword", + ["context.warning"] = "invalid", + ["context.command"] = "unset", + ["context.grouping"] = "unset", + ["context.primitive"] = "keyword", + ["context.plain"] = "unset", + ["context.user"] = "unset", + ["context.data"] = "text source", + ["context.text"] = "text source", + } + + local function styler(namespace) + local done = { } + local style = function(what,where) + if not what or not where then + report() + report("? %-5s %-20s %s",namespace,what or "?",where or "?") + report() + os.exit() + end +-- if mapping then +-- what = mapping[what] or what +-- end + local hash = what .. "." .. where + if done[hash] then + report("- %-5s %-20s %s",namespace,what,where) + else + -- report("+ %-5s %-20s %s",namespace,what,where) + done[hash] = true + end + return hash .. "." .. namespace + end + return style, function(what,where) return { name = style(what, where) } end + end + + local function embedded(name) + return { { include = "source.context." .. name } } + end + + -- The tex lexer. + + do + + local interface_lowlevel = loaddefinitions("scite-context-data-context.lua") + local interface_interfaces = loaddefinitions("scite-context-data-interfaces.lua") + local interface_tex = loaddefinitions("scite-context-data-tex.lua") + + local constants = interface_lowlevel.constants + local helpers = interface_lowlevel.helpers + local interfaces = interface_interfaces.common + local primitives = { } + local overloaded = { } + + for i=1,#helpers do + overloaded[helpers[i]] = true + end + for i=1,#constants do + overloaded[constants[i]] = true + end + + local function add(data) + for k, v in next, data do + if v ~= "/" and v ~= "-" then + if not overloaded[v] then + primitives[#primitives+1] = v + end + v = "normal" .. v + if not overloaded[v] then + primitives[#primitives+1] = v + end + end + end + end + + add(interface_tex.tex) + add(interface_tex.etex) + add(interface_tex.pdftex) + add(interface_tex.aleph) + add(interface_tex.omega) + add(interface_tex.luatex) + add(interface_tex.xetex) + + local luacommands = { + "ctxlua", "ctxcommand", "ctxfunction", + "ctxlatelua", "ctxlatecommand", + "cldcommand", "cldcontext", + "luaexpr", "luascript", "luathread", + "directlua", "latelua", + } + + local luaenvironments = { + "luacode", + "luasetups", "luaparameterset", + "ctxfunction", "ctxfunctiondefinition", + } + + local mpscommands = { + "reusableMPgraphic", "usableMPgraphic", + "uniqueMPgraphic", "uniqueMPpagegraphic", + "useMPgraphic", "reuseMPgraphic", + "MPpositiongraphic", + } + + local mpsenvironments_o = { + "MPpage" + } + + local mpsenvironments_a = { + "MPcode", "useMPgraphic", "reuseMPgraphic", + "MPinclusions", "MPinitializations", "MPdefinitions", "MPextensions", + "MPgraphic", "MPcalculation", + } + + -- clf_a-zA-z_ + + -- btx|xml a-z + -- a-z btx|xml a-z + + -- mp argument {...text} + local function words(list) + table.sort(list,sorter) + return "\\\\(" .. table.concat(list,"|") .. ")" .. "(?=[^a-zA-Z])" + end + + local function bwords(list) + table.sort(list,sorter) + return "(\\\\(" .. table.concat(list,"|") .. "))\\s*(\\{)" + end + + local function ewords() + return "(\\})" + end + + local function environments(list) + table.sort(list,sorter) + last = table.concat(list,"|") + if #list > 1 then + last = "(?:" .. last .. ")" + end + return capture("\\\\start" .. last), capture("\\\\stop" .. last) + end + + local capturedconstants = words(constants) + local capturedprimitives = words(primitives) + local capturedhelpers = words(helpers) + local capturedcommands = words(interfaces) + local capturedmpscommands = words(mpscommands) + + local spaces = "\\s*" + local identifier = "[a-zA-Z\\_@!?\127-\255]+" + + local comment = "%.*$\\n?" + local ifprimitive = "\\\\if[a-zA-Z\\_@!?\127-\255]*" + local csname = "\\\\[a-zA-Z\\_@!?\127-\255]+" + local csprefix = "\\\\(btx|xml)[a-z]+" + local cssuffix = "\\\\[a-z]+(btx|xml)[a-z]*" + local csreserved = "\\\\(\\?\\?|[a-z]\\!)[a-zA-Z\\_@!?\127-\255]+" + + local luaenvironmentopen, + luaenvironmentclose = environments(luaenvironments) + local luacommandopen, + luacommandclose = environments(luacommands) + + local mpsenvironmentopen_o, + mpsenvironmentclose_o = environments(mpsenvironments_o) + local mpsenvironmentopen_a, + mpsenvironmentclose_a = environments(mpsenvironments_a) + + local argumentopen = capture("\\{") + local argumentclose = capture("\\}") + local argumentcontent = capture("[^\\}]*") + + local optionopen = capture("\\[") + local optionclose = capture("\\]") + local optioncontent = capture("[^\\]]*") + + -- not ok yet, todo: equal in settings .. but it would become quite ugly, lpeg wins here + -- so instead we color differently + + local option = "(?:" .. optionopen .. optioncontent .. optionclose .. ")?" + local argument = "(?:" .. argumentopen .. argumentcontent .. argumentclose .. ")?" + + local mpsenvironmentopen_o = mpsenvironmentopen_o .. spaces .. option .. spaces .. option + local mpsenvironmentopen_a = mpsenvironmentopen_a .. spaces .. argument .. spaces .. argument + + local style, styled = styler("tex") + + local capturedgroupings = oneof { + "{", "}", "$" + } + + local capturedextras = oneof { + "~", "%", "^", "&", "_", + "-", "+", "/", + "'", "`", + "\\", "|", + } + + local capturedspecials = oneof { + "(", ")", "[", "]", "<", ">", + "#", "=", '"', + } + + local capturedescaped = "\\\\." + + registerlexer { + + category = "tex", + description = "ConTeXt TEX", + suffixes = { "tex", "mkiv", "mkvi", "mkix", "mkxi", "mkil", "mkli", "mkii" }, + version = "1.0.0", + + setup = configuration { + pairs = { + { "{", "}" }, + { "[", "]" }, + { "(", ")" }, + }, + comments = { + inline = "%", + }, + }, + + repository = { + + comment = { + name = style("context.comment", "comment"), + match = texcomment, + }, + + constant = { + name = style("context.constant", "commands.constant"), + match = capturedconstants, + }, + + ifprimitive = { + name = style("context.primitive", "commands.if"), + match = ifprimitive, + }, + + primitive = { + name = style("context.primitive", "commands.primitive"), + match = capturedprimitives, + }, + + helper = { + name = style("context.plain", "commands.plain"), + match = capturedhelpers, + }, + + command = { + name = style("context.command", "commands.context"), + match = capturedcommands, + }, + + csname = { + name = style("context.user", "commands.user"), + match = csname, + }, + + escaped = { + name = style("context.command", "commands.escaped"), + match = capturedescaped, + }, + + subsystem_prefix = { + name = style("context.embedded", "subsystem.prefix"), + match = csprefix, + }, + + subsystem_suffix = { + name = style("context.embedded", "subsystem.suffix"), + match = cssuffix, + }, + + grouping = { + name = style("context.grouping", "symbols.groups"), + match = capturedgroupings, + }, + + extra = { + name = style("context.extra", "symbols.extras"), + match = capturedextras, + }, + + special = { + name = style("context.special", "symbols.special"), + match = capturedspecials, + }, + + reserved = { + name = style("context.reserved", "commands.reserved"), + match = csreserved, + }, + + lua_environment = { + ["begin"] = luaenvironmentopen, + ["end"] = luaenvironmentclose, + patterns = embedded("cld"), + beginCaptures = { ["0"] = styled("context.embedded", "lua.environment.open") }, + endCaptures = { ["0"] = styled("context.embedded", "lua.environment.close") }, + }, + + lua_command = { + ["begin"] = luacommandopen, + ["end"] = luacommandclose, + patterns = embedded("cld"), + beginCaptures = { + ["1"] = styled("context.embedded", "lua.command.open"), + ["2"] = styled("context.grouping", "lua.command.open"), + }, + endCaptures = { + ["1"] = styled("context.grouping", "lua.command.close"), + }, + + }, + + metafun_environment_o = { + ["begin"] = mpsenvironmentopen_o, + ["end"] = mpsenvironmentclose_o, + patterns = embedded("mps"), + beginCaptures = { + ["1"] = styled("context.embedded", "metafun.environment.start.o"), + ["2"] = styled("context.embedded", "metafun.environment.open.o.1"), + ["3"] = styled("context.warning", "metafun.environment.content.o.1"), + ["4"] = styled("context.embedded", "metafun.environment.close.o.1"), + ["5"] = styled("context.embedded", "metafun.environment.open.o.2"), + ["6"] = styled("context.warning", "metafun.environment.content.o.2"), + ["7"] = styled("context.embedded", "metafun.environment.close.o.2"), + }, + endCaptures = { + ["0"] = styled("context.embedded", "metafun.environment.stop.o") + }, + }, + + metafun_environment_a = { + ["begin"] = mpsenvironmentopen_a, + ["end"] = mpsenvironmentclose_a, + patterns = embedded("mps"), + beginCaptures = { + ["1"] = styled("context.embedded", "metafun.environment.start.a"), + ["2"] = styled("context.embedded", "metafun.environment.open.a.1"), + ["3"] = styled("context.warning", "metafun.environment.content.a.1"), + ["4"] = styled("context.embedded", "metafun.environment.close.a.1"), + ["5"] = styled("context.embedded", "metafun.environment.open.a.2"), + ["6"] = styled("context.warning", "metafun.environment.content.a.2"), + ["7"] = styled("context.embedded", "metafun.environment.close.a.2"), + }, + endCaptures = { + ["0"] = styled("context.embedded", "metafun.environment.stop.a") + }, + }, + + metafun_command = { + name = style("context.embedded", "metafun.command"), + match = capturedmpscommands, + }, + + }, + + patterns = { + include("#comment"), + include("#constant"), + include("#lua_environment"), + include("#lua_command"), + include("#metafun_environment_o"), + include("#metafun_environment_a"), + include("#metafun_command"), + include("#subsystem_prefix"), + include("#subsystem_suffix"), + include("#ifprimitive"), + include("#helper"), + include("#command"), + include("#primitive"), + include("#reserved"), + include("#csname"), + include("#escaped"), + include("#grouping"), + include("#special"), + include("#extra"), + }, + + } + + end + + -- The metafun lexer. + + do + + local metapostprimitives = { } + local metapostinternals = { } + local metapostshortcuts = { } + local metapostcommands = { } + + local metafuninternals = { } + local metafunshortcuts = { } + local metafuncommands = { } + + local mergedshortcuts = { } + local mergedinternals = { } + + do + + local definitions = loaddefinitions("scite-context-data-metapost.lua") + + if definitions then + metapostprimitives = definitions.primitives or { } + metapostinternals = definitions.internals or { } + metapostshortcuts = definitions.shortcuts or { } + metapostcommands = definitions.commands or { } + end + + local definitions = loaddefinitions("scite-context-data-metafun.lua") + + if definitions then + metafuninternals = definitions.internals or { } + metafunshortcuts = definitions.shortcuts or { } + metafuncommands = definitions.commands or { } + end + + for i=1,#metapostshortcuts do + mergedshortcuts[#mergedshortcuts+1] = metapostshortcuts[i] + end + for i=1,#metafunshortcuts do + mergedshortcuts[#mergedshortcuts+1] = metafunshortcuts[i] + end + + for i=1,#metapostinternals do + mergedinternals[#mergedinternals+1] = metapostinternals[i] + end + for i=1,#metafuninternals do + mergedinternals[#mergedinternals+1] = metafuninternals[i] + end + + + end + + local function words(list) + table.sort(list,sorter) + return "(" .. table.concat(list,"|") .. ")" .. "(?=[^a-zA-Z\\_@!?\127-\255])" + end + + local capturedshortcuts = oneof(mergedshortcuts) + local capturedinternals = words(mergedinternals) + local capturedmetapostcommands = words(metapostcommands) + local capturedmetafuncommands = words(metafuncommands) + local capturedmetapostprimitives = words(metapostprimitives) + + local capturedsuffixes = oneof { + "#@", "@#", "#" + } + local capturedspecials = oneof { + "#@", "@#", "#", + "(", ")", "[", "]", "{", "}", + "<", ">", "=", ":", + '"', + } + local capturedexatras = oneof { + "+-+", "++", + "~", "%", "^", "&", + "_", "-", "+", "*", "/", + "`", "'", "|", "\\", + } + + local spaces = "\\s*" + local mandatespaces = "\\s+" + + local identifier = "[a-zA-Z\\_@!?\127-\255]+" + + local decnumber = "[\\-]?[0-9]+(\\.[0-9]+)?([eE]\\-?[0-9]+)?" + + local comment = "%.*$\\n?" + + local stringopen = "\"" + local stringclose = stringopen + + local qualifier = "[\\.]" + local optionalqualifier = spaces .. qualifier .. spaces + + local capturedstringopen = capture(stringopen) + local capturedstringclose = capture(stringclose) + + local capturedlua = capture("lua") + + local capturedopen = capture("\\(") + local capturedclose = capture("\\)") + + local capturedtexopen = capture("(?:b|verbatim)tex") .. mandatespaces + local capturedtexclose = mandatespaces .. capture("etex") + + local texcommand = "\\[a-zA-Z\\_@!?\127-\255]+" + + local style, styled = styler("mps") + + registerlexer { + + category = "mps", + description = "ConTeXt MetaFun", + suffixes = { "mp", "mpii", "mpiv", "mpvi" }, + version = "1.0.0", + + setup = configuration { + pairs = { + { "{", "}" }, + { "[", "]" }, + { "(", ")" }, + }, + comments = { + inline = "%", + }, + }, + + repository = { + + comment = { + name = style("context.comment", "comment"), + match = comment, + }, + + internal = { + name = style("context.reserved", "internal"), + match = capturedshortcuts, + }, + + shortcut = { + name = style("context.data", "shortcut"), + match = capturedinternals, + }, + + helper = { + name = style("context.command.metafun", "helper"), + match = capturedmetafuncommands, + }, + + plain = { + name = style("context.plain", "plain"), + match = capturedmetapostcommands, + }, + + primitive = { + name = style("context.primitive", "primitive"), + match = capturedmetapostprimitives, + }, + + quoted = { + name = style("context.string", "string.text"), + ["begin"] = stringopen, + ["end"] = stringclose, + beginCaptures = { ["0"] = styled("context.special", "string.open") }, + endCaptures = { ["0"] = styled("context.special", "string.close") }, + }, + + identifier = { + name = style("context.default", "identifier"), + match = identifier, + }, + + suffix = { + name = style("context.number", "suffix"), + match = capturedsuffixes, + }, + + special = { + name = style("context.special", "special"), + match = capturedspecials, + }, + + number = { + name = style("context.number", "number"), + match = decnumber, + }, + + extra = { + name = "context.extra", + match = capturedexatras, + }, + + luacall = { + ["begin"] = capturedlua .. spaces .. capturedopen .. spaces .. capturedstringopen, + ["end"] = capturedstringclose .. spaces .. capturedclose, + patterns = embedded("cld"), + beginCaptures = { + ["1"] = styled("context.embedded", "lua.command"), + ["2"] = styled("context.special", "lua.open"), + ["3"] = styled("context.special", "lua.text.open"), + }, + endCaptures = { + ["1"] = styled("context.special", "lua.text.close"), + ["2"] = styled("context.special", "lua.close"), + }, + }, + + -- default and embedded have the same color but differ in boldness + + luacall_suffixed = { + name = style("context.embedded", "luacall"), + ["begin"] = capturedlua, + ["end"] = "(?!(" .. optionalqualifier .. identifier .. "))", + patterns = { + { + match = qualifier, + -- name = style("context.operator", "luacall.qualifier"), + name = style("context.default", "luacall.qualifier"), + }, + } + }, + + texlike = { -- simplified variant + name = style("context.warning","unexpected.tex"), + match = texcommand, + }, + + texstuff = { + name = style("context.string", "tex"), + ["begin"] = capturedtexopen, + ["end"] = capturedtexclose, + patterns = embedded("tex"), + beginCaptures = { ["1"] = styled("context.primitive", "tex.open") }, + endCaptures = { ["1"] = styled("context.primitive", "tex.close") }, + }, + + }, + + patterns = { + include("#comment"), + include("#internal"), + include("#shortcut"), + include("#luacall_suffixed"), + include("#luacall"), + include("#helper"), + include("#plain"), + include("#primitive"), + include("#texstuff"), + include("#suffix"), + include("#identifier"), + include("#number"), + include("#quoted"), + include("#special"), + include("#texlike"), + include("#extra"), + }, + + } + + end + + -- The lua lexer. + + do + + local function words(list) + table.sort(list,sorter) + return "(" .. table.concat(list,"|") .. ")" .. "(?=[^a-zA-Z])" + end + + local capturedkeywords = words { + "and", "break", "do", "else", "elseif", "end", "false", "for", "function", -- "goto", + "if", "in", "local", "nil", "not", "or", "repeat", "return", "then", "true", + "until", "while", + } + + local capturedbuiltin = words { + "assert", "collectgarbage", "dofile", "error", "getmetatable", + "ipairs", "load", "loadfile", "module", "next", "pairs", + "pcall", "print", "rawequal", "rawget", "rawset", "require", + "setmetatable", "tonumber", "tostring", "type", "unpack", "xpcall", "select", + "string", "table", "coroutine", "debug", "file", "io", "lpeg", "math", "os", "package", "bit32", "utf8", + -- todo: also extra luametatex ones + } + + local capturedconstants = words { + "_G", "_VERSION", "_M", "\\.\\.\\.", "_ENV", + "__add", "__call", "__concat", "__div", "__idiv", "__eq", "__gc", "__index", + "__le", "__lt", "__metatable", "__mode", "__mul", "__newindex", + "__pow", "__sub", "__tostring", "__unm", "__len", + "__pairs", "__ipairs", + "__close", + "NaN", + "<const>", "<toclose>", + } + + local capturedcsnames = words { -- todo: option + "commands", + "context", + -- "ctxcmd", + -- "ctx", + "metafun", + "metapost", + "ctx[A-Za-z_]*", + } + + local capturedoperators = oneof { + "+", "-", "*", "/", "%", "^", + "#", "=", "<", ">", + ";", ":", ",", ".", + "{", "}", "[", "]", "(", ")", + "|", "~", "'" + } + + local spaces = "\\s*" + + local identifier = "[_\\w][_\\w0-9]*" + local qualifier = "[\\.\\:]" + local optionalqualifier = spaces .. "[\\.\\:]*" .. spaces + + local doublequote = "\"" + local singlequote = "\'" + + local doublecontent = "(?:\\\\\"|[^\"])*" + local singlecontent = "(?:\\\\\'|[^\'])*" + + local captureddouble = capture(doublequote) .. capture(doublecontent) .. capture(doublequote) + local capturedsingle = capture(singlequote) .. capture(singlecontent) .. capture(singlequote) + + local longcommentopen = "--\\[\\[" + local longcommentclose = "\\]\\]" + + local longstringopen = "\\[(=*)\\[" + local longstringclose = "\\](\\2)\\]" + + local shortcomment = "--.*$\\n?" + + local hexnumber = "[\\-]?0[xX][A-Fa-f0-9]+(\\.[A-Fa-f0-9]+)?([eEpP]\\-?[A-Fa-f0-9]+)?" + local decnumber = "[\\-]?[0-9]+(\\.[0-9]+)?([eEpP]\\-?[0-9]+)?" + + local capturedidentifier = capture(identifier) + local capturedgotodelimiter = capture("::") + local capturedqualifier = capture(qualifier) + local capturedgoto = capture("goto") + + local style, styled = styler("lua") + + local lualexer = { + + category = "lua", + description = "ConTeXt Lua", + -- suffixes = { "lua", "luc", "cld", "tuc", "luj", "lum", "tma", "lfg", "luv", "lui" }, + version = "1.0.0", + + setup = configuration { + pairs = { + { "(", ")" }, + { "{", "}" }, + { "[", "]" }, + }, + comments = { + inline = "--", + display = { "--[[", "]]" }, + }, + }, + + repository = { + + shortcomment = { + name = style("context.comment", "comment.short"), + match = shortcomment, + }, + + longcomment = { + name = style("context.comment", "comment.long"), + ["begin"] = longcommentopen, + ["end"] = longcommentclose, + }, + + keyword = { + name = style("context.keyword", "reserved.keyword"), + match = capturedkeywords, + }, + + builtin = { + name = style("context.plain", "reserved.builtin"), + match = capturedbuiltin, + }, + + constant = { + name = style("context.data", "reserved.constants"), + match = capturedconstants, + }, + + csname = { + name = style("context.user", "csname"), + ["begin"] = capturedcsnames, + ["end"] = "(?!(" .. optionalqualifier .. identifier .. "))", + patterns = { + { + match = qualifier, + name = style("context.operator", "csname.qualifier") + }, + } + }, + + identifier_keyword = { + match = spaces .. capturedqualifier .. spaces .. capturedkeywords, + captures = { + ["1"] = styled("context.operator", "identifier.keyword"), + ["2"] = styled("context.warning", "identifier.keyword"), + }, + }, + + identifier_valid = { + name = style("context.default", "identifier.valid"), + match = identifier, + }, + + ["goto"] = { + match = capturedgoto .. spaces .. capturedidentifier, + captures = { + ["1"] = styled("context.keyword", "goto.keyword"), + ["2"] = styled("context.grouping", "goto.target"), + } + }, + + label = { + match = capturedgotodelimiter .. capturedidentifier .. capturedgotodelimiter, + captures = { + ["1"] = styled("context.keyword", "label.open"), + ["2"] = styled("context.grouping", "label.target"), + ["3"] = styled("context.keyword", "label.close"), + } + }, + + operator = { + name = style("context.special", "operator"), + match = capturedoperators, + }, + + string_double = { + match = captureddouble, + captures = { + ["1"] = styled("context.special", "doublequoted.open"), + ["2"] = styled("context.string", "doublequoted.text"), + ["3"] = styled("context.special", "doublequoted.close"), + }, + }, + + string_single = { + match = capturedsingle, + captures = { + ["1"] = styled("context.special", "singlequoted.open"), + ["2"] = styled("context.string", "singlequoted.text"), + ["3"] = styled("context.special", "singlequoted.close"), + }, + }, + + string_long = { + name = style("context.string", "long.text"), + ["begin"] = longstringopen, + ["end"] = longstringclose, + beginCaptures = { ["0"] = styled("context.special", "string.long.open") }, + endCaptures = { ["0"] = styled("context.special", "string.long.close") }, + }, + + number_hex = { + name = style("context.number", "hexnumber"), + match = hexnumber, + }, + + number = { + name = style("context.number", "decnumber"), + match = decnumber, + }, + + }, + + patterns = { + include("#keyword"), + include("#buildin"), + include("#constant"), + include("#csname"), + include("#goto"), + include("#number_hex"), + include("#number"), + include("#identifier_keyword"), + include("#identifier_valid"), + include("#longcomment"), + include("#string_long"), + include("#string_double"), + include("#string_single"), + include("#shortcomment"), + include("#label"), + include("#operator"), + }, + + } + + local texstringopen = "\\\\!!bs" + local texstringclose = "\\\\!!es" + local texcommand = "\\\\[A-Za-z\127-\255@\\!\\?_]*" + + local cldlexer = { + + category = "cld", + description = "ConTeXt CLD", + suffixes = { "lua", "luc", "cld", "tuc", "luj", "lum", "tma", "lfg", "luv", "lui" }, + version = lualexer.version, + setup = lualexer.setup, + + repository = { + + texstring = { + name = style("context.string", "texstring.text"), + ["begin"] = texstringopen, + ["end"] = texstringclose, + beginCaptures = { ["0"] = styled("context.special", "texstring.open") }, + endCaptures = { ["0"] = styled("context.special", "texstring.close") }, + }, + + -- texcomment = { + -- -- maybe some day + -- }, + + texcommand = { + name = style("context.warning", "texcommand"), + match = texcommand + }, + + }, + + patterns = { + include("#texstring"), + -- include("#texcomment"), + include("#texcommand"), + }, + + } + + table.merge (cldlexer.repository,lualexer.repository) + table.imerge(cldlexer.patterns, lualexer.patterns) + + registerlexer(lualexer) + registerlexer(cldlexer) + + end + + -- The xml lexer. + + local xmllexer, xmlconfiguration do + + local spaces = "\\s*" + + local namespace = "(?:[-\\w.]+:)?" + local name = "[-\\w.:]+" + + local equal = "=" + + local elementopen = "<" + local elementclose = ">" + local elementopenend = "</" + local elementempty = "/?" + local elementnoclose = "?:([^>]*)" + + local entity = "&.*?;" + + local doublequote = "\"" + local singlequote = "\'" + + local doublecontent = "(?:\\\\\"|[^\"])*" + local singlecontent = "(?:\\\\\'|[^\'])*" + + local captureddouble = capture(doublequote) .. capture(doublecontent) .. capture(doublequote) + local capturedsingle = capture(singlequote) .. capture(singlecontent) .. capture(singlequote) + + local capturednamespace = capture(namespace) + local capturedname = capture(name) + local capturedopen = capture(elementopen) + local capturedclose = capture(elementclose) + local capturedempty = capture(elementempty) + local capturedopenend = capture(elementopenend) + + local cdataopen = "<!\\[CDATA\\[" + local cdataclose = "]]>" + + local commentopen = "<!--" + local commentclose = "-->" + + local processingopen = "<\\?" + local processingclose = "\\?>" + + local instructionopen = processingopen .. name + local instructionclose = processingclose + + local xmlopen = processingopen .. "xml" + local xmlclose = processingclose + + local luaopen = processingopen .. "lua" + local luaclose = processingclose + + local style, styled = styler("xml") + + registerlexer { + + category = "xml", + description = "ConTeXt XML", + suffixes = { + "xml", "xsl", "xsd", "fo", "exa", "rlb", "rlg", "rlv", "rng", + "xfdf", "xslt", "dtd", "lmx", "htm", "html", "xhtml", "ctx", + "export", "svg", "xul", + }, + version = "1.0.0", + + setup = configuration { + comments = { + display = { "<!--", "-->" }, + }, + }, + + repository = { + + attribute_double = { + match = capturednamespace .. capturedname .. spaces .. equal .. spaces .. captureddouble, + captures = { + ["1"] = styled("context.plain", "attribute.double.namespace"), + ["2"] = styled("context.constant", "attribute.double.name"), + ["3"] = styled("context.special", "attribute.double.open"), + ["4"] = styled("context.string", "attribute.double.text"), + ["5"] = styled("context.special", "attribute.double.close"), + }, + }, + + attribute_single = { + match = capturednamespace .. capturedname .. spaces .. equal .. spaces .. capturedsingle, + captures = { + ["1"] = styled("context.plain", "attribute.single.namespace"), + ["2"] = styled("context.constant", "attribute.single.name"), + ["3"] = styled("context.special", "attribute.single.open"), + ["4"] = styled("context.string", "attribute.single.text"), + ["5"] = styled("context.special", "attribute.single.close"), + }, + }, + + attributes = { + patterns = { + include("#attribute_double"), + include("#attribute_single"), + } + }, + + entity = { + name = style("context.constant", "entity"), + match = entity, + }, + + instruction = { + name = style("context.default", "instruction.text"), + ["begin"] = instructionopen, + ["end"] = instructionclose, + beginCaptures = { ["0"] = styled("context.command", "instruction.open") }, + endCaptures = { ["0"] = styled("context.command", "instruction.close") }, + }, + + instruction_xml = { + ["begin"] = xmlopen, + ["end"] = xmlclose, + beginCaptures = { ["0"] = styled("context.command", "instruction.xml.open") }, + endCaptures = { ["0"] = styled("context.command", "instruction.xml.close") }, + patterns = { include("#attributes") } + }, + + instruction_lua = { + ["begin"] = luaopen, + ["end"] = luaclose, + patterns = embedded("cld"), + beginCaptures = { ["0"] = styled("context.command", "instruction.lua.open") }, + endCaptures = { ["0"] = styled("context.command", "instruction.lua.close") }, + }, + + cdata = { + name = style("context.default", "cdata.text"), + ["begin"] = cdataopen, + ["end"] = cdataclose, + beginCaptures = { ["0"] = styled("context.command", "cdata.open") }, + endCaptures = { ["0"] = styled("context.command", "cdata.close") }, + }, + + comment = { + name = style("context.comment", "comment.text"), + ["begin"] = commentopen, + ["end"] = commentclose, + beginCaptures = { ["0"] = styled("context.command", "comment.open") }, + endCaptures = { ["0"] = styled("context.command", "comment.close") }, + }, + + open = { + ["begin"] = capturedopen .. capturednamespace .. capturedname, + ["end"] = capturedempty .. capturedclose, + patterns = { include("#attributes") }, + beginCaptures = { + ["1"] = styled("context.keyword", "open.open"), + ["2"] = styled("context.plain", "open.namespace"), + ["3"] = styled("context.keyword", "open.name"), + }, + endCaptures = { + ["1"] = styled("context.keyword", "open.empty"), + ["2"] = styled("context.keyword", "open.close"), + }, + }, + + close = { + match = capturedopenend .. capturednamespace .. capturedname .. spaces .. capturedclose, + captures = { + ["1"] = styled("context.keyword", "close.open"), + ["2"] = styled("context.plain", "close.namespace"), + ["3"] = styled("context.keyword", "close.name"), + ["4"] = styled("context.keyword", "close.close"), + }, + }, + + element_error = { + name = style("context.error","error"), + match = elementopen .. elementnoclose .. elementclose, + }, + + }, + + patterns = { + -- include("#preamble"), + include("#comment"), + include("#cdata"), + -- include("#doctype"), + include("#instruction_xml"), + include("#instruction_lua"), + include("#instruction"), + include("#close"), + include("#open"), + include("#element_error"), + include("#entity"), + }, + + } + + end + + -- The bibtex lexer. Again we assume the keys to be on the same line as the + -- first snippet of the value. + + do + + local spaces = "\\s*" + local open = "{" + local close = "}" + local hash = "#" + local equal = "=" + local comma = "," + + local doublequote = "\"" + local doublecontent = "(?:\\\\\"|[^\"])*" + + local singlequote = "\'" + local singlecontent = "(?:\\\\\'|[^\'])*" + + local groupopen = "{" + local groupclose = "}" + local groupcontent = "(?:\\\\{|\\\\}|[^\\{\\}])*" + + local shortcut = "@(?:string|String|STRING)" -- enforce consistency + local comment = "@(?:comment|Comment|COMMENT)" -- enforce consistency + + local keyword = "[a-zA-Z0-9\\_@:\\-]+" + + local capturedcomment = spaces .. capture(comment) .. spaces + local capturedshortcut = spaces .. capture(shortcut) .. spaces + local capturedkeyword = spaces .. capture(keyword) .. spaces + local capturedopen = spaces .. capture(open) .. spaces + local capturedclose = spaces .. capture(close) .. spaces + local capturedequal = spaces .. capture(equal) .. spaces + local capturedcomma = spaces .. capture(comma) .. spaces + local capturedhash = spaces .. capture(hash) .. spaces + + local captureddouble = spaces .. capture(doublequote) .. capture(doublecontent) .. capture(doublequote) .. spaces + local capturedsingle = spaces .. capture(singlequote) .. capture(singlecontent) .. capture(singlequote) .. spaces + local capturedgroup = spaces .. capture(groupopen) .. capture(groupcontent) .. capture(groupclose) .. spaces + + local forget = "%.*$\\n?" + + local style, styled = styler("bibtex") + + registerlexer { + + category = "bibtex", + description = "ConTeXt bibTeX", + suffixes = { "bib", "btx" }, + version = "1.0.0", + + setup = configuration { + pairs = { + { "{", "}" }, + }, + comments = { + inline = "%", + }, + }, + + repository = { + + forget = { + name = style("context.comment", "comment.comment.inline"), + match = forget, + }, + + comment = { + name = style("context.comment", "comment.comment.content"), + ["begin"] = capturedcomment .. capturedopen, + ["end"] = capturedclose, + beginCaptures = { + ["1"] = styled("context.keyword", "comment.name"), + ["2"] = styled("context.grouping", "comment.open"), + }, + endCaptures = { + ["1"] = styled("context.grouping", "comment.close"), + }, + }, + + -- a bit inefficient but good enough + + string_double = { + match = capturedkeyword .. capturedequal .. captureddouble, + captures = { + ["1"] = styled("context.command","doublequoted.key"), + ["2"] = styled("context.operator","doublequoted.equal"), + ["3"] = styled("context.special", "doublequoted.open"), + ["4"] = styled("context.text", "doublequoted.text"), + ["5"] = styled("context.special", "doublequoted.close"), + }, + }, + + string_single = { + match = capturedkeyword .. capturedequal .. capturedsingle, + captures = { + ["1"] = styled("context.command","singlequoted.key"), + ["2"] = styled("context.operator","singlequoted.equal"), + ["3"] = styled("context.special", "singlequoted.open"), + ["4"] = styled("context.text", "singlequoted.text"), + ["5"] = styled("context.special", "singlequoted.close"), + }, + }, + + string_grouped = { + match = capturedkeyword .. capturedequal .. capturedgroup, + captures = { + ["1"] = styled("context.command","grouped.key"), + ["2"] = styled("context.operator","grouped.equal"), + ["3"] = styled("context.operator", "grouped.open"), + ["4"] = styled("context.text", "grouped.text"), + ["5"] = styled("context.operator", "grouped.close"), + }, + }, + + string_value = { + match = capturedkeyword .. capturedequal .. capturedkeyword, + captures = { + ["1"] = styled("context.command", "value.key"), + ["2"] = styled("context.operator", "value.equal"), + ["3"] = styled("context.text", "value.text"), + }, + }, + + string_concat = { + patterns = { + { + match = capturedhash .. captureddouble, + captures = { + ["1"] = styled("context.operator","concat.doublequoted.concatinator"), + ["2"] = styled("context.special", "concat.doublequoted.open"), + ["3"] = styled("context.text", "concat.doublequoted.text"), + ["4"] = styled("context.special", "concat.doublequoted.close"), + } + }, + { + match = capturedhash .. capturedsingle, + captures = { + ["1"] = styled("context.operator","concat.singlequoted.concatinator"), + ["2"] = styled("context.special", "concat.singlequoted.open"), + ["3"] = styled("context.text", "concat.singlequoted.text"), + ["4"] = styled("context.special", "concat.singlequoted.close"), + }, + }, + { + match = capturedhash .. capturedgroup, + captures = { + ["1"] = styled("context.operator","concat.grouped.concatinator"), + ["2"] = styled("context.operator", "concat.grouped.open"), + ["3"] = styled("context.text", "concat.grouped.text"), + ["4"] = styled("context.operator", "concat.grouped.close"), + }, + }, + { + match = capturedhash .. capturedkeyword, + captured = { + ["1"] = styled("context.operator","concat.value.concatinator"), + ["2"] = styled("context.text", "concat.value.text"), + }, + }, + }, + }, + + separator = { + match = capturedcomma, + name = style("context.operator","definition.separator"), + }, + + definition = { + name = style("context.warning","definition.error"), + ["begin"] = capturedkeyword .. capturedopen .. capturedkeyword .. capturedcomma, + ["end"] = capturedclose, + beginCaptures = { + ["1"] = styled("context.keyword", "definition.category"), + ["2"] = styled("context.grouping", "definition.open"), + ["3"] = styled("context.warning", "definition.label.text"), + ["3"] = styled("context.operator", "definition.label.separator"), + }, + endCaptures = { + ["1"] = styled("context.grouping", "definition.close"), + }, + patterns = { + include("#string_double"), + include("#string_single"), + include("#string_grouped"), + include("#string_value"), + include("#string_concat"), + include("#separator"), + }, + }, + + concatinator = { + match = capturedhash, + name = style("context.operator","definition.concatinator"), + }, + + shortcut = { + name = style("context.warning","shortcut.error"), + ["begin"] = capturedshortcut .. capturedopen, + ["end"] = capturedclose, + beginCaptures = { + ["1"] = styled("context.keyword", "shortcut.name"), + ["2"] = styled("context.grouping", "shortcut.open"), + }, + endCaptures = { + ["1"] = styled("context.grouping", "shortcut.close"), + }, + patterns = { + include("#string_double"), + include("#string_single"), + include("#string_grouped"), + include("#string_value"), + include("#string_concat"), + }, + }, + + }, + + patterns = { + include("#forget"), + include("#comment"), + include("#shortcut"), + include("#definition"), + }, + + } + + end + + -- The sql lexer (only needed occasionally in documentation and so). + + do + + -- ANSI SQL 92 | 99 | 2003 + + local function words(list) + table.sort(list,sorter) + local str = table.concat(list,"|") + return "(" .. str .. "|" .. string.upper(str) .. ")" .. "(?=[^a-zA-Z])" + end + + local capturedkeywords = words { + "absolute", "action", "add", "after", "all", "allocate", "alter", "and", "any", + "are", "array", "as", "asc", "asensitive", "assertion", "asymmetric", "at", + "atomic", "authorization", "avg", "before", "begin", "between", "bigint", + "binary", "bit", "bit_length", "blob", "boolean", "both", "breadth", "by", + "call", "called", "cascade", "cascaded", "case", "cast", "catalog", "char", + "char_length", "character", "character_length", "check", "clob", "close", + "coalesce", "collate", "collation", "column", "commit", "condition", "connect", + "connection", "constraint", "constraints", "constructor", "contains", "continue", + "convert", "corresponding", "count", "create", "cross", "cube", "current", + "current_date", "current_default_transform_group", "current_path", + "current_role", "current_time", "current_timestamp", + "current_transform_group_for_type", "current_user", "cursor", "cycle", "data", + "date", "day", "deallocate", "dec", "decimal", "declare", "default", + "deferrable", "deferred", "delete", "depth", "deref", "desc", "describe", + "descriptor", "deterministic", "diagnostics", "disconnect", "distinct", "do", + "domain", "double", "drop", "dynamic", "each", "element", "else", "elseif", + "end", "equals", "escape", "except", "exception", "exec", "execute", "exists", + "exit", "external", "extract", "false", "fetch", "filter", "first", "float", + "for", "foreign", "found", "free", "from", "full", "function", "general", "get", + "global", "go", "goto", "grant", "group", "grouping", "handler", "having", + "hold", "hour", "identity", "if", "immediate", "in", "indicator", "initially", + "inner", "inout", "input", "insensitive", "insert", "int", "integer", + "intersect", "interval", "into", "is", "isolation", "iterate", "join", "key", + "language", "large", "last", "lateral", "leading", "leave", "left", "level", + "like", "local", "localtime", "localtimestamp", "locator", "loop", "lower", + "map", "match", "max", "member", "merge", "method", "min", "minute", "modifies", + "module", "month", "multiset", "names", "national", "natural", "nchar", "nclob", + "new", "next", "no", "none", "not", "null", "nullif", "numeric", "object", + "octet_length", "of", "old", "on", "only", "open", "option", "or", "order", + "ordinality", "out", "outer", "output", "over", "overlaps", "pad", "parameter", + "partial", "partition", "path", "position", "precision", "prepare", "preserve", + "primary", "prior", "privileges", "procedure", "public", "range", "read", + "reads", "real", "recursive", "ref", "references", "referencing", "relative", + "release", "repeat", "resignal", "restrict", "result", "return", "returns", + "revoke", "right", "role", "rollback", "rollup", "routine", "row", "rows", + "savepoint", "schema", "scope", "scroll", "search", "second", "section", + "select", "sensitive", "session", "session_user", "set", "sets", "signal", + "similar", "size", "smallint", "some", "space", "specific", "specifictype", + "sql", "sqlcode", "sqlerror", "sqlexception", "sqlstate", "sqlwarning", "start", + "state", "static", "submultiset", "substring", "sum", "symmetric", "system", + "system_user", "table", "tablesample", "temporary", "then", "time", "timestamp", + "timezone_hour", "timezone_minute", "to", "trailing", "transaction", "translate", + "translation", "treat", "trigger", "trim", "true", "under", "undo", "union", + "unique", "unknown", "unnest", "until", "update", "upper", "usage", "user", + "using", "value", "values", "varchar", "varying", "view", "when", "whenever", + "where", "while", "window", "with", "within", "without", "work", "write", "year", + "zone", + } + + -- The dialects list is taken from drupal.org with standard subtracted. + -- + -- MySQL 3.23.x | 4.x | 5.x + -- PostGreSQL 8.1 + -- MS SQL Server 2000 + -- MS ODBC + -- Oracle 10.2 + + local captureddialects = words { + "a", "abort", "abs", "access", "ada", "admin", "aggregate", "alias", "also", + "always", "analyse", "analyze", "assignment", "attribute", "attributes", "audit", + "auto_increment", "avg_row_length", "backup", "backward", "bernoulli", "bitvar", + "bool", "break", "browse", "bulk", "c", "cache", "cardinality", "catalog_name", + "ceil", "ceiling", "chain", "change", "character_set_catalog", + "character_set_name", "character_set_schema", "characteristics", "characters", + "checked", "checkpoint", "checksum", "class", "class_origin", "cluster", + "clustered", "cobol", "collation_catalog", "collation_name", "collation_schema", + "collect", "column_name", "columns", "command_function", "command_function_code", + "comment", "committed", "completion", "compress", "compute", "condition_number", + "connection_name", "constraint_catalog", "constraint_name", "constraint_schema", + "containstable", "conversion", "copy", "corr", "covar_pop", "covar_samp", + "createdb", "createrole", "createuser", "csv", "cume_dist", "cursor_name", + "database", "databases", "datetime", "datetime_interval_code", + "datetime_interval_precision", "day_hour", "day_microsecond", "day_minute", + "day_second", "dayofmonth", "dayofweek", "dayofyear", "dbcc", "defaults", + "defined", "definer", "degree", "delay_key_write", "delayed", "delimiter", + "delimiters", "dense_rank", "deny", "derived", "destroy", "destructor", + "dictionary", "disable", "disk", "dispatch", "distinctrow", "distributed", "div", + "dual", "dummy", "dump", "dynamic_function", "dynamic_function_code", "enable", + "enclosed", "encoding", "encrypted", "end-exec", "enum", "errlvl", "escaped", + "every", "exclude", "excluding", "exclusive", "existing", "exp", "explain", + "fields", "file", "fillfactor", "final", "float4", "float8", "floor", "flush", + "following", "force", "fortran", "forward", "freetext", "freetexttable", + "freeze", "fulltext", "fusion", "g", "generated", "granted", "grants", + "greatest", "header", "heap", "hierarchy", "high_priority", "holdlock", "host", + "hosts", "hour_microsecond", "hour_minute", "hour_second", "identified", + "identity_insert", "identitycol", "ignore", "ilike", "immutable", + "implementation", "implicit", "include", "including", "increment", "index", + "infile", "infix", "inherit", "inherits", "initial", "initialize", "insert_id", + "instance", "instantiable", "instead", "int1", "int2", "int3", "int4", "int8", + "intersection", "invoker", "isam", "isnull", "k", "key_member", "key_type", + "keys", "kill", "lancompiler", "last_insert_id", "least", "length", "less", + "limit", "lineno", "lines", "listen", "ln", "load", "location", "lock", "login", + "logs", "long", "longblob", "longtext", "low_priority", "m", "matched", + "max_rows", "maxextents", "maxvalue", "mediumblob", "mediumint", "mediumtext", + "message_length", "message_octet_length", "message_text", "middleint", + "min_rows", "minus", "minute_microsecond", "minute_second", "minvalue", + "mlslabel", "mod", "mode", "modify", "monthname", "more", "move", "mumps", + "myisam", "name", "nesting", "no_write_to_binlog", "noaudit", "nocheck", + "nocompress", "nocreatedb", "nocreaterole", "nocreateuser", "noinherit", + "nologin", "nonclustered", "normalize", "normalized", "nosuperuser", "nothing", + "notify", "notnull", "nowait", "nullable", "nulls", "number", "octets", "off", + "offline", "offset", "offsets", "oids", "online", "opendatasource", "openquery", + "openrowset", "openxml", "operation", "operator", "optimize", "optionally", + "options", "ordering", "others", "outfile", "overlay", "overriding", "owner", + "pack_keys", "parameter_mode", "parameter_name", "parameter_ordinal_position", + "parameter_specific_catalog", "parameter_specific_name", + "parameter_specific_schema", "parameters", "pascal", "password", "pctfree", + "percent", "percent_rank", "percentile_cont", "percentile_disc", "placing", + "plan", "pli", "postfix", "power", "preceding", "prefix", "preorder", "prepared", + "print", "proc", "procedural", "process", "processlist", "purge", "quote", + "raid0", "raiserror", "rank", "raw", "readtext", "recheck", "reconfigure", + "regexp", "regr_avgx", "regr_avgy", "regr_count", "regr_intercept", "regr_r2", + "regr_slope", "regr_sxx", "regr_sxy", "regr_syy", "reindex", "reload", "rename", + "repeatable", "replace", "replication", "require", "reset", "resource", + "restart", "restore", "returned_cardinality", "returned_length", + "returned_octet_length", "returned_sqlstate", "rlike", "routine_catalog", + "routine_name", "routine_schema", "row_count", "row_number", "rowcount", + "rowguidcol", "rowid", "rownum", "rule", "save", "scale", "schema_name", + "schemas", "scope_catalog", "scope_name", "scope_schema", "second_microsecond", + "security", "self", "separator", "sequence", "serializable", "server_name", + "setof", "setuser", "share", "show", "shutdown", "simple", "soname", "source", + "spatial", "specific_name", "sql_big_result", "sql_big_selects", + "sql_big_tables", "sql_calc_found_rows", "sql_log_off", "sql_log_update", + "sql_low_priority_updates", "sql_select_limit", "sql_small_result", + "sql_warnings", "sqlca", "sqrt", "ssl", "stable", "starting", "statement", + "statistics", "status", "stddev_pop", "stddev_samp", "stdin", "stdout", + "storage", "straight_join", "strict", "string", "structure", "style", + "subclass_origin", "sublist", "successful", "superuser", "synonym", "sysdate", + "sysid", "table_name", "tables", "tablespace", "temp", "template", "terminate", + "terminated", "text", "textsize", "than", "ties", "tinyblob", "tinyint", + "tinytext", "toast", "top", "top_level_count", "tran", "transaction_active", + "transactions_committed", "transactions_rolled_back", "transform", "transforms", + "trigger_catalog", "trigger_name", "trigger_schema", "truncate", "trusted", + "tsequal", "type", "uescape", "uid", "unbounded", "uncommitted", "unencrypted", + "unlisten", "unlock", "unnamed", "unsigned", "updatetext", "use", + "user_defined_type_catalog", "user_defined_type_code", "user_defined_type_name", + "user_defined_type_schema", "utc_date", "utc_time", "utc_timestamp", "vacuum", + "valid", "validate", "validator", "var_pop", "var_samp", "varbinary", "varchar2", + "varcharacter", "variable", "variables", "verbose", "volatile", "waitfor", + "width_bucket", "writetext", "x509", "xor", "year_month", "zerofill", + } + + local capturedoperators = oneof { + "+", "-", "*", "/", + "%", "^", "!", "&", "|", "?", "~", + "=", "<", ">", + ";", ":", ".", + "{", "}", "[", "]", "(", ")", + } + + local spaces = "\\s*" + local identifier = "[a-zA-Z\\_][a-zA-Z0-9\\_]*" + + local comment = "%.*$\\n?" + local commentopen = "/\\*" + local commentclose = "\\*/" + + local doublequote = "\"" + local singlequote = "\'" + local reversequote = "`" + + local doublecontent = "(?:\\\\\"|[^\"])*" + local singlecontent = "(?:\\\\\'|[^\'])*" + local reversecontent = "(?:\\\\`|[^`])*" + + local decnumber = "[\\-]?[0-9]+(\\.[0-9]+)?([eEpP]\\-?[0-9]+)?" + + local captureddouble = capture(doublequote) .. capture(doublecontent) .. capture(doublequote) + local capturedsingle = capture(singlequote) .. capture(singlecontent) .. capture(singlequote) + local capturedreverse = capture(reversequote) .. capture(reversecontent) .. capture(reversequote) + + local style, styled = styler("sql") + + registerlexer { + + category = "sql", + description = "ConTeXt SQL", + suffixes = { "sql" }, + version = "1.0.0", + + setup = configuration { +-- comments = { +-- inline = "...", +-- display = { "...", "..." }, +-- }, + }, + + repository = { + + comment_short = { + name = style("context.comment", "comment.comment"), + match = comment, + }, + + comment_long = { + name = style("context.comment", "comment.text"), + ["begin"] = commentopen, + ["end"] = commentclose, + beginCaptures = { ["0"] = styled("context.command", "comment.open") }, + endCaptures = { ["0"] = styled("context.command", "comment.close") }, + }, + + keyword_standard = { + name = style("context.keyword", "reserved.standard"), + match = capturedkeywords, + }, + + keyword_dialect = { + name = style("context.keyword", "reserved.dialect"), + match = captureddialects, + }, + + operator = { + name = style("context.special", "operator"), + match = capturedoperators, + + }, + + identifier = { + name = style("context.text", "identifier"), + match = identifier, + }, + + string_double = { + match = captureddouble, + captures = { + ["1"] = styled("context.special", "doublequoted.open"), + ["2"] = styled("context.text", "doublequoted.text"), + ["3"] = styled("context.special", "doublequoted.close"), + }, + }, + + string_single = { + match = capturedsingle, + captures = { + ["1"] = styled("context.special", "singlequoted.open"), + ["2"] = styled("context.text", "singlequoted.text"), + ["3"] = styled("context.special", "singlequoted.close"), + }, + }, + + string_reverse = { + match = capturedreverse, + captures = { + ["1"] = styled("context.special", "reversequoted.open"), + ["2"] = styled("context.text", "reversequoted.text"), + ["3"] = styled("context.special", "reversequoted.close"), + }, + }, + + number = { + name = style("context.number", "number"), + match = decnumber, + }, + + }, + + patterns = { + include("#keyword_standard"), + include("#keyword_dialect"), + include("#identifier"), + include("#string_double"), + include("#string_single"), + include("#string_reverse"), + include("#comment_long"), + include("#comment_short"), + include("#number"), + include("#operator"), + }, + + } + + end + + -- The bnf lexer (only used for documentation, untested). + + do + + local operators = oneof { + "*", "+", "-", "/", + ",", ".", ":", ";", + "(", ")", "<", ">", "{", "}", "[", "]", + "#", "=", "?", "@", "|", " ", "!","$", "%", "&", "\\", "^", "-", "_", "`", "~", + } + + local spaces = "\\s*" + + local text = "[a-zA-Z0-9]|" .. operators + + local doublequote = "\"" + local singlequote = "\'" + + local termopen = "<" + local termclose = ">" + local termcontent = "([a-zA-Z][a-zA-Z0-9\\-]*)" + + local becomes = "::=" + local extra = "|" + + local captureddouble = capture(doublequote) .. capture(text) .. capture(doublequote) + local capturedsingle = capture(singlequote) .. capture(text) .. capture(singlequote) + local capturedterm = capture(termopen) .. capture(termcontent) .. capture(termclose) + + local style, styled = styler("bnf") + + registerlexer { + + category = "bnf", + description = "ConTeXt BNF", + suffixes = { "bnf" }, + version = "1.0.0", + + setup = configuration { + pairs = { + { "<", ">" }, + }, + }, + + repository = { + + term = { + match = capturedterm, + captures = { + ["1"] = styled("context.command", "term.open"), + ["2"] = styled("context.text", "term.text"), + ["3"] = styled("context.command", "term.close"), + }, + }, + + text_single = { + match = capturedsingle, + captures = { + ["1"] = styled("context.special", "singlequoted.open"), + ["2"] = styled("context.text", "singlequoted.text"), + ["3"] = styled("context.special", "singlequoted.close"), + }, + }, + + text_double = { + match = captureddouble, + captures = { + ["1"] = styled("context.special", "doublequoted.open"), + ["2"] = styled("context.text", "doublequoted.text"), + ["3"] = styled("context.special", "doublequoted.close"), + }, + }, + + becomes = { + name = style("context.operator", "symbol.becomes"), + match = becomes, + }, + + extra = { + name = style("context.extra", "symbol.extra"), + match = extra, + }, + + }, + + patterns = { + include("#term"), + include("#text_single"), + include("#text_reverse"), + include("#becomes"), + include("#extra"), + }, + + } + + end + + do + + -- A rather simple one, but consistent with the rest. I don't use an IDE or fancy + -- features. No tricks for me. + + local function words(list) + table.sort(list,sorter) + return "\\b(" .. table.concat(list,"|") .. ")\\b" + end + + local capturedkeywords = words { -- copied from cpp.lua + -- c + "asm", "auto", "break", "case", "const", "continue", "default", "do", "else", + "extern", "false", "for", "goto", "if", "inline", "register", "return", + "sizeof", "static", "switch", "true", "typedef", "volatile", "while", + "restrict", + -- hm + "_Bool", "_Complex", "_Pragma", "_Imaginary", + -- c++. + "catch", "class", "const_cast", "delete", "dynamic_cast", "explicit", + "export", "friend", "mutable", "namespace", "new", "operator", "private", + "protected", "public", "signals", "slots", "reinterpret_cast", + "static_assert", "static_cast", "template", "this", "throw", "try", "typeid", + "typename", "using", "virtual" + } + + local captureddatatypes = words { -- copied from cpp.lua + "bool", "char", "double", "enum", "float", "int", "long", "short", "signed", + "struct", "union", "unsigned", "void" + } + + local capturedluatex = words { -- new + "halfword", "scaled", "pointer", + } + + local capturedmacros = words { -- copied from cpp.lua + "define", "elif", "else", "endif", "error", "if", "ifdef", "ifndef", "import", + "include", "line", "pragma", "undef", "using", "warning" + } + + local operators = oneof { + "*", "+", "-", "/", + "%", "^", "!", "&", "?", "~", "|", + "=", "<", ">", + ";", ":", ".", + "{", "}", "[", "]", "(", ")", + } + + local spaces = "\\s*" + + local identifier = "[A-Za-z_][A-Za-z_0-9]*" + + local comment = "//.*$\\n?" + local commentopen = "/\\*" + local commentclose = "\\*/" + + local doublequote = "\"" + local singlequote = "\'" + local reversequote = "`" + + local doublecontent = "(?:\\\\\"|[^\"])*" + local singlecontent = "(?:\\\\\'|[^\'])*" + + local captureddouble = capture(doublequote) .. capture(doublecontent) .. capture(doublequote) + local capturedsingle = capture(singlequote) .. capture(singlecontent) .. capture(singlequote) + + local texopen = "/\\*tex" + local texclose = "\\*/" + + local hexnumber = "[\\-]?0[xX][A-Fa-f0-9]+(\\.[A-Fa-f0-9]+)?([eEpP]\\-?[A-Fa-f0-9]+)?" + local decnumber = "[\\-]?[0-9]+(\\.[0-9]+)?([eEpP]\\-?[0-9]+)?" + + local capturedmacros = spaces .. capture("#") .. spaces .. capturedmacros + + local style, styled = styler("c") + + registerlexer { + + category = "cpp", + description = "ConTeXt C", + suffixes = { "c", "h", "cpp", "hpp" }, + version = "1.0.0", + + setup = configuration { + pairs = { + { "{", "}" }, + { "[", "]" }, + { "(", ")" }, + }, + }, + + repository = { + + keyword = { + match = capturedkeywords, + name = style("context.keyword","c"), + }, + + datatype = { + match = captureddatatypes, + name = style("context.keyword","datatype"), + }, + + luatex = { + match = capturedluatex, + name = style("context.command","luatex"), + }, + + macro = { + match = capturedmacros, + captures = { + ["1"] = styled("context.data","macro.tag"), + ["2"] = styled("context.data","macro.name"), + } + }, + + texcomment = { + ["begin"] = texopen, + ["end"] = texclose, + patterns = embedded("tex"), + beginCaptures = { ["0"] = styled("context.comment", "tex.open") }, + endCaptures = { ["0"] = styled("context.comment", "tex.close") }, + }, + + longcomment = { + name = style("context.comment","long"), + ["begin"] = commentopen, + ["end"] = commentclose, + }, + + shortcomment = { + name = style("context.comment","short"), + match = comment, + }, + + identifier = { + name = style("context.default","identifier"), + match = identifier, + }, + + operator = { + name = style("context.operator","any"), + match = operators, + }, + + string_double = { + match = captureddouble, + captures = { + ["1"] = styled("context.special", "doublequoted.open"), + ["2"] = styled("context.string", "doublequoted.text"), + ["3"] = styled("context.special", "doublequoted.close"), + }, + }, + + string_single = { + match = capturedsingle, + captures = { + ["1"] = styled("context.special", "singlequoted.open"), + ["2"] = styled("context.string", "singlequoted.text"), + ["3"] = styled("context.special", "singlequoted.close"), + }, + }, + + hexnumber = { + name = style("context.number","hex"), + match = hexnumber, + }, + + decnumber = { + name = style("context.number","dec"), + match = decnumber, + }, + + }, + + patterns = { + include("#keyword"), + include("#datatype"), + include("#luatex"), + include("#identifier"), + include("#macro"), + include("#string_double"), + include("#string_single"), + include("#texcomment"), + include("#longcomment"), + include("#shortcomment"), + include("#hexnumber"), + include("#decnumber"), + include("#operator"), + }, + + } + + end + + -- The pdf lexer. + + do + + -- we can assume no errors in the syntax + + local spaces = "\\s*" + + local reserved = oneof { "true" ,"false" , "null" } + local reference = "R" + + local dictionaryopen = "<<" + local dictionaryclose = ">>" + + local arrayopen = "\\[" + local arrayclose = "\\]" + + local stringopen = "\\(" + local stringcontent = "(?:\\\\[\\(\\)]|[^\\(\\)])*" + local stringclose = "\\)" + + local hexstringopen = "<" + local hexstringcontent = "[^>]*" + local hexstringclose = ">" + + local unicodebomb = "feff" + + local objectopen = "obj" -- maybe also ^ $ + local objectclose = "endobj" -- maybe also ^ $ + + local streamopen = "^stream$" + local streamclose = "^endstream$" + + local name = "/[^\\s<>/\\[\\]\\(\\)]+" -- no need to be more clever than this + local integer = "[\\-]?[0-9]+" -- no need to be more clever than this + local real = "[\\-]?[0-9]*[\\.]?[0-9]+" -- no need to be more clever than this + + local capturedcardinal = "([0-9]+)" + + local captureddictionaryopen = capture(dictionaryopen) + local captureddictionaryclose = capture(dictionaryclose) + + local capturedarrayopen = capture(arrayopen) + local capturedarrayclose = capture(arrayclose) + + local capturedobjectopen = capture(objectopen) + local capturedobjectclose = capture(objectclose) + + local capturedname = capture(name) + local capturedinteger = capture(integer) + local capturedreal = capture(real) + local capturedreserved = capture(reserved) + local capturedreference = capture(reference) + + local capturedunicode = capture(hexstringopen) .. capture(unicodebomb) .. capture(hexstringcontent) .. capture(hexstringclose) + local capturedunicode = capture(hexstringopen) .. capture(unicodebomb) .. capture(hexstringcontent) .. capture(hexstringclose) + local capturedwhatsit = capture(hexstringopen) .. capture(hexstringcontent) .. capture(hexstringclose) + local capturedstring = capture(stringopen) .. capture(stringcontent) .. capture(stringclose) + + local style, styled = styler("pdf") + + -- strings are not ok yet: there can be nested unescaped () but not critical now + + registerlexer { + + category = "pdf", + description = "ConTeXt PDF", + suffixes = { "pdf" }, + version = "1.0.0", + + setup = configuration { + pairs = { + { "<", ">" }, + { "[", "]" }, + { "(", ")" }, + }, + }, + + repository = { + + comment = { + name = style("context.comment","comment"), + match = "%.*$\\n?", + }, + + content = { + patterns = { + { include = "#dictionary" }, + { include = "#stream" }, + { include = "#array" }, + { + name = style("context.constant","object.content.name"), + match = capturedname, + }, + { + match = capturedcardinal .. spaces .. capturedcardinal .. spaces .. capturedreference, + captures = { + ["1"] = styled("context.warning","content.reference.1"), + ["2"] = styled("context.warning","content.reference.2"), + ["3"] = styled("context.command","content.reference.3"), + } + }, + { + name = style("context.number","content.real"), + match = capturedreal, + }, + { + name = style("context.number","content.integer"), + match = capturedinteger, + }, + { + match = capturedstring, + captures = { + ["1"] = styled("context.quote","content.string.open"), + ["2"] = styled("context.string","content.string.text"), + ["3"] = styled("context.quote","content.string.close"), + } + }, + { + name = style("context.number","content.reserved"), + match = capturedreserved, + }, + { + match = capturedunicode, + captures = { + ["1"] = styled("context.quote","content.unicode.open"), + ["2"] = styled("context.plain","content.unicode.bomb"), + ["3"] = styled("context.string","content.unicode.text"), + ["4"] = styled("context.quote","content.unicode.close"), + } + }, + { + match = capturedwhatsit, + captures = { + ["1"] = styled("context.quote","content.whatsit.open"), + ["2"] = styled("context.string","content.whatsit.text"), + ["3"] = styled("context.quote","content.whatsit.close"), + } + }, + }, + }, + + object = { + ["begin"] = capturedcardinal .. spaces .. capturedcardinal .. spaces .. capturedobjectopen, + ["end"] = capturedobjectclose, + patterns = { { include = "#content" } }, + beginCaptures = { + ["1"] = styled("context.warning","object.1"), + ["2"] = styled("context.warning","object.2"), + ["3"] = styled("context.keyword", "object.open") + }, + endCaptures = { + ["1"] = styled("context.keyword", "object.close") + }, + }, + + array = { + ["begin"] = capturedarrayopen, + ["end"] = capturedarrayclose, + patterns = { { include = "#content" } }, + beginCaptures = { ["1"] = styled("context.grouping", "array.open") }, + endCaptures = { ["1"] = styled("context.grouping", "array.close") }, + }, + + dictionary = { + ["begin"] = captureddictionaryopen, + ["end"] = captureddictionaryclose, + beginCaptures = { ["1"] = styled("context.grouping", "dictionary.open") }, + endCaptures = { ["1"] = styled("context.grouping", "dictionary.close") }, + patterns = { + { + ["begin"] = capturedname .. spaces, + ["end"] = "(?=[>])", + beginCaptures = { ["1"] = styled("context.command", "dictionary.name") }, + patterns = { { include = "#content" } }, + }, + }, + }, + + xref = { + ["begin"] = "xref" .. spaces, + ["end"] = "(?=[^0-9])", + captures = { + ["0"] = styled("context.keyword", "xref.1"), + }, + patterns = { + { + ["begin"] = capturedcardinal .. spaces .. capturedcardinal .. spaces, + ["end"] = "(?=[^0-9])", + captures = { + ["1"] = styled("context.number", "xref.2"), + ["2"] = styled("context.number", "xref.3"), + }, + patterns = { + { + ["begin"] = capturedcardinal .. spaces .. capturedcardinal .. spaces .. "([fn])" .. spaces, + ["end"] = "(?=.)", + captures = { + ["1"] = styled("context.number", "xref.4"), + ["2"] = styled("context.number", "xref.5"), + ["3"] = styled("context.keyword", "xref.6"), + }, + }, + }, + }, + }, + }, + + startxref = { + ["begin"] = "startxref" .. spaces, + ["end"] = "(?=[^0-9])", + captures = { + ["0"] = styled("context.keyword", "startxref.1"), + }, + patterns = { + { + ["begin"] = capturedcardinal .. spaces, + ["end"] = "(?=.)", + captures = { + ["1"] = styled("context.number", "startxref.2"), + }, + }, + }, + }, + + trailer = { + name = style("context.keyword", "trailer"), + match = "trailer", + }, + + stream = { + ["begin"] = streamopen, + ["end"] = streamclose, + beginCaptures = { ["0"] = styled("context.keyword", "stream.open") }, + endCaptures = { ["0"] = styled("context.keyword", "stream.close") }, + }, + + }, + + patterns = { + include("#object"), + include("#comment"), + include("#trailer"), + include("#dictionary"), -- cheat: trailer dict + include("#startxref"), + include("#xref"), + }, + + } + + end + + -- The JSON lexer. I don't want to spend time on (and mess up the lexer) with + -- some ugly multistage key/value parser so we just assume that the key is on + -- the same line as the colon and the value. It looks bad otherwise anyway. + + do + + local spaces = "\\s*" + local separator = "\\," + local becomes = "\\:" + + local arrayopen = "\\[" + local arrayclose = "\\]" + + local hashopen = "\\{" + local hashclose = "\\}" + + local stringopen = "\"" + local stringcontent = "(?:\\\\\"|[^\"])*" + local stringclose = stringopen + + local reserved = oneof { "true", "false", "null" } + + local hexnumber = "[\\-]?0[xX][A-Fa-f0-9]+(\\.[A-Fa-f0-9]+)?([eEpP]\\-?[A-Fa-f0-9]+)?" + local decnumber = "[\\-]?[0-9]+(\\.[0-9]+)?([eEpP]\\-?[0-9]+)?" + + local capturedarrayopen = capture(arrayopen) + local capturedarrayclose = capture(arrayclose) + local capturedhashopen = capture(hashopen) + local capturedhashclose = capture(hashclose) + + local capturedreserved = capture(reserved) + local capturedbecomes = capture(becomes) + local capturedseparator = capture(separator) + local capturedstring = capture(stringopen) .. capture(stringcontent) .. capture(stringclose) + local capturedhexnumber = capture(hexnumber) + local captureddecnumber = capture(decnumber) + + local style, styled = styler("json") + + registerlexer { + + category = "json", + description = "ConTeXt JSON", + suffixes = { "json" }, + version = "1.0.0", + + setup = configuration { + pairs = { + { "{", "}" }, + { "[", "]" }, + }, + }, + + repository = { + + separator = { + name = style("context.operator","separator"), + match = spaces .. capturedseparator, + }, + + reserved = { + name = style("context.primitive","reserved"), + match = spaces .. capturedreserved, + }, + + hexnumber = { + name = style("context.number","hex"), + match = spaces .. capturedhexnumber, + }, + + decnumber = { + name = style("context.number","dec"), + match = spaces .. captureddecnumber, + }, + + string = { + match = spaces .. capturedstring, + captures = { + ["1"] = styled("context.quote","string.open"), + ["2"] = styled("context.string","string.text"), + ["3"] = styled("context.quote","string.close"), + }, + }, + + kv_reserved = { + match = capturedstring .. spaces .. capturedbecomes .. spaces .. capturedreserved, + captures = { + ["1"] = styled("context.quote", "reserved.key.open"), + ["2"] = styled("context.text", "reserved.key.text"), + ["3"] = styled("context.quote", "reserved.key.close"), + ["4"] = styled("context.operator", "reserved.becomes"), + ["5"] = styled("context.primitive","reserved.value"), + } + }, + + kv_hexnumber = { + match = capturedstring .. spaces .. capturedbecomes .. spaces .. capturedhexnumber, + captures = { + ["1"] = styled("context.quote", "hex.key.open"), + ["2"] = styled("context.text", "hex.key.text"), + ["3"] = styled("context.quote", "hex.key.close"), + ["4"] = styled("context.operator","hex.becomes"), + ["5"] = styled("context.number", "hex.value"), + } + }, + + kv_decnumber = { + match = capturedstring .. spaces .. capturedbecomes .. spaces .. captureddecnumber, + captures = { + ["1"] = styled("context.quote", "dec.key.open"), + ["2"] = styled("context.text", "dec.key.text"), + ["3"] = styled("context.quote", "dec.key.close"), + ["4"] = styled("context.operator","dec.becomes"), + ["5"] = styled("context.number", "dec.value"), + } + }, + + kv_string = { + match = capturedstring .. spaces .. capturedbecomes .. spaces .. capturedstring, + captures = { + ["1"] = styled("context.quote", "string.key.open"), + ["2"] = styled("context.text", "string.key.text"), + ["3"] = styled("context.quote", "string.key.close"), + ["4"] = styled("context.operator","string.becomes"), + ["5"] = styled("context.quote", "string.value.open"), + ["6"] = styled("context.string", "string.value.text"), + ["7"] = styled("context.quote", "string.value.close"), + }, + }, + + kv_array = { + ["begin"] = capturedstring .. spaces .. capturedbecomes .. spaces .. capturedarrayopen, + ["end"] = arrayclose, + beginCaptures = { + ["1"] = styled("context.quote", "array.key.open"), + ["2"] = styled("context.text", "array.key.text"), + ["3"] = styled("context.quote", "array.key.close"), + ["4"] = styled("context.operator","array.becomes"), + ["5"] = styled("context.grouping","array.value.open") + }, + endCaptures = { + ["0"] = styled("context.grouping","array.value.close") + }, + patterns = { include("#content") }, + }, + + kv_hash = { + ["begin"] = capturedstring .. spaces .. capturedbecomes .. spaces .. capturedhashopen, + ["end"] = hashclose, + beginCaptures = { + ["1"] = styled("context.quote", "hash.key.open"), + ["2"] = styled("context.text", "hash.key.text"), + ["3"] = styled("context.quote", "hash.key.close"), + ["4"] = styled("context.operator","hash.becomes"), + ["5"] = styled("context.grouping","hash.value.open") + }, + endCaptures = { + ["0"] = styled("context.grouping","hash.value.close") + }, + patterns = { include("#kv_content") }, + }, + + content = { + patterns = { + include("#string"), + include("#hexnumber"), + include("#decnumber"), + include("#reserved"), + include("#hash"), + include("#array"), + include("#separator"), + }, + }, + + kv_content = { + patterns = { + include("#kv_string"), + include("#kv_hexnumber"), + include("#kv_decnumber"), + include("#kv_reserved"), + include("#kv_hash"), + include("#kv_array"), + include("#separator"), + }, + }, + + array = { + ["begin"] = arrayopen, + ["end"] = arrayclose, + beginCaptures = { ["0"] = styled("context.grouping","array.open") }, + endCaptures = { ["0"] = styled("context.grouping","array.close") }, + patterns = { include("#content") }, + }, + + hash = { + ["begin"] = hashopen, + ["end"] = hashclose, + beginCaptures = { ["0"] = styled("context.grouping","hash.open") }, + endCaptures = { ["0"] = styled("context.grouping","hash.close") }, + patterns = { include("#kv_content") }, + }, + + }, + + patterns = { + include("#content"), + }, + + } + + end + + savepackage() + +end + +function scripts.vscode.start() + local path = locate() + if path then + local command = 'start "vs code context" code --reuse-window --ignore-gpu-blacklist --extensions-dir "' .. path .. '" --install-extension context' + report("running command: %s",command) + os.execute(command) + end +end + +if environment.arguments.generate then + scripts.vscode.generate() +elseif environment.arguments.start then + scripts.vscode.start() +elseif environment.arguments.exporthelp then + application.export(environment.arguments.exporthelp,environment.files[1]) +else + application.help() +end + +-- scripts.vscode.generate([[t:/vscode/data/extensions]]) +-- scripts.vscode.generate([[e:\tex-context\tex\texmf-context\context\data\vscode\extensions]]) diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index d908f260a..4651ed0e7 100644 --- a/tex/context/base/mkii/cont-new.mkii +++ b/tex/context/base/mkii/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2019.06.11 19:20} +\newcontextversion{2019.06.14 17:49} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii index ada3588ea..ea6f7becb 100644 --- a/tex/context/base/mkii/context.mkii +++ b/tex/context/base/mkii/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2019.06.11 19:20} +\edef\contextversion{2019.06.14 17:49} %D For those who want to use this: diff --git a/tex/context/base/mkii/mult-cs.mkii b/tex/context/base/mkii/mult-cs.mkii index 708c296cb..902bd5445 100644 --- a/tex/context/base/mkii/mult-cs.mkii +++ b/tex/context/base/mkii/mult-cs.mkii @@ -570,6 +570,7 @@ \setinterfacevariable{temporary}{docasne} \setinterfacevariable{test}{test} \setinterfacevariable{text}{text} +\setinterfacevariable{textnote}{textnote} \setinterfacevariable{three}{tri} \setinterfacevariable{thursday}{ctvrtek} \setinterfacevariable{tight}{tight} diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index a4c86506c..4fa009727 100644 --- a/tex/context/base/mkiv/cont-new.mkiv +++ b/tex/context/base/mkiv/cont-new.mkiv @@ -13,7 +13,7 @@ % \normalend % uncomment this to get the real base runtime -\newcontextversion{2019.06.11 19:20} +\newcontextversion{2019.06.14 17:49} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index d9fa164d7..8c501d4d5 100644 --- a/tex/context/base/mkiv/context.mkiv +++ b/tex/context/base/mkiv/context.mkiv @@ -45,7 +45,7 @@ %D {YYYY.MM.DD HH:MM} format. \edef\contextformat {\jobname} -\edef\contextversion{2019.06.11 19:20} +\edef\contextversion{2019.06.14 17:49} \edef\contextkind {beta} %D Kind of special: diff --git a/tex/context/base/mkiv/math-tag.lua b/tex/context/base/mkiv/math-tag.lua index 03f9e70bb..ee59e5f75 100644 --- a/tex/context/base/mkiv/math-tag.lua +++ b/tex/context/base/mkiv/math-tag.lua @@ -204,7 +204,8 @@ process = function(start) -- we cannot use the processor as we have no finalizer local mtexttag = nil while start do local id = getid(start) - -- showtag(start,id,true) +-- print("!!!!!!!!!!",nodecodes[id]) +-- showtag(start,id,true) if id == glyph_code or id == disc_code then if not mtexttag then mtexttag = start_tagged("mtext") @@ -265,7 +266,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer elseif id == noad_code then -- setattr(start,a_tagged,tags.current()) processsubsup(start) - elseif id == dubbox_code or id == hlist_code or id == vlist_code then + elseif id == subbox_code or id == hlist_code or id == vlist_code then -- keep an eye on subbox_code and see what ends up in there local attr = getattr(start,a_tagged) if not attr then @@ -372,7 +373,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer end end end - elseif id == submlistcode then -- normally a hbox + elseif id == submlist_code then -- normally a hbox local list = getlist(start) if list then local attr = getattr(start,a_tagged) diff --git a/tex/context/base/mkiv/mlib-lua.lua b/tex/context/base/mkiv/mlib-lua.lua index 9b567da81..b205946f9 100644 --- a/tex/context/base/mkiv/mlib-lua.lua +++ b/tex/context/base/mkiv/mlib-lua.lua @@ -82,6 +82,11 @@ do currentmpx = remove(stack,mpx) end + function metapost.currentmpx() + return currentmpx + end + + end do diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf Binary files differindex 70635c11f..b3bdbce43 100644 --- a/tex/context/base/mkiv/status-files.pdf +++ b/tex/context/base/mkiv/status-files.pdf diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf Binary files differindex f857f29b5..26ce87818 100644 --- a/tex/context/base/mkiv/status-lua.pdf +++ b/tex/context/base/mkiv/status-lua.pdf diff --git a/tex/context/interface/mkii/keys-cs.xml b/tex/context/interface/mkii/keys-cs.xml index 37736a2d7..1b8ce2fa6 100644 --- a/tex/context/interface/mkii/keys-cs.xml +++ b/tex/context/interface/mkii/keys-cs.xml @@ -573,6 +573,7 @@ <cd:variable name='temporary' value='docasne'/> <cd:variable name='test' value='test'/> <cd:variable name='text' value='text'/> + <cd:variable name='textnote' value='textnote'/> <cd:variable name='three' value='tri'/> <cd:variable name='thursday' value='ctvrtek'/> <cd:variable name='tight' value='tight'/> diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf Binary files differindex 04e0e44ae..ef4f960e6 100644 --- a/tex/context/interface/mkiv/i-context.pdf +++ b/tex/context/interface/mkiv/i-context.pdf diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf Binary files differindex 4b14223aa..8578ce383 100644 --- a/tex/context/interface/mkiv/i-readme.pdf +++ b/tex/context/interface/mkiv/i-readme.pdf diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index fae1b146f..252742e9f 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua -- parent file : c:/data/develop/context/sources/luatex-fonts.lua --- merge date : 06/11/19 19:20:27 +-- merge date : 06/14/19 17:49:06 do -- begin closure to overcome local limits and interference |