site/node_modules/shiki/dist/langs/tcl.mjs
2024-10-14 08:09:33 +02:00

7 lines
5.1 KiB
JavaScript

const lang = Object.freeze({ "displayName": "Tcl", "fileTypes": ["tcl"], "foldingStartMarker": "\\{\\s*$", "foldingStopMarker": "^\\s*\\}", "name": "tcl", "patterns": [{ "begin": "(?<=^|;)\\s*((#))", "beginCaptures": { "1": { "name": "comment.line.number-sign.tcl" }, "2": { "name": "punctuation.definition.comment.tcl" } }, "contentName": "comment.line.number-sign.tcl", "end": "\\n", "patterns": [{ "match": "(\\\\\\\\|\\\\\\n)" }] }, { "captures": { "1": { "name": "keyword.control.tcl" } }, "match": "(?<=^|[\\[{;])\\s*(if|while|for|catch|default|return|break|continue|switch|exit|foreach|try|throw)\\b" }, { "captures": { "1": { "name": "keyword.control.tcl" } }, "match": "(?<=^|})\\s*(then|elseif|else)\\b" }, { "captures": { "1": { "name": "keyword.other.tcl" }, "2": { "name": "entity.name.function.tcl" } }, "match": "(?<=^|{)\\s*(proc)\\s+([^\\s]+)" }, { "captures": { "1": { "name": "keyword.other.tcl" } }, "match": "(?<=^|[\\[{;])\\s*(after|append|array|auto_execok|auto_import|auto_load|auto_mkindex|auto_mkindex_old|auto_qualify|auto_reset|bgerror|binary|cd|clock|close|concat|dde|encoding|eof|error|eval|exec|expr|fblocked|fconfigure|fcopy|file|fileevent|filename|flush|format|gets|glob|global|history|http|incr|info|interp|join|lappend|library|lindex|linsert|list|llength|load|lrange|lreplace|lsearch|lset|lsort|memory|msgcat|namespace|open|package|parray|pid|pkg::create|pkg_mkIndex|proc|puts|pwd|re_syntax|read|registry|rename|resource|scan|seek|set|socket|SafeBase|source|split|string|subst|Tcl|tcl_endOfWord|tcl_findLibrary|tcl_startOfNextWord|tcl_startOfPreviousWord|tcl_wordBreakAfter|tcl_wordBreakBefore|tcltest|tclvars|tell|time|trace|unknown|unset|update|uplevel|upvar|variable|vwait)\\b" }, { "begin": "(?<=^|[\\[{;])\\s*(regexp|regsub)\\b\\s*", "beginCaptures": { "1": { "name": "keyword.other.tcl" } }, "comment": "special-case regexp/regsub keyword in order to handle the expression", "end": "[\\n;\\]]", "patterns": [{ "match": "\\\\(?:.|\\n)", "name": "constant.character.escape.tcl" }, { "comment": "switch for regexp", "match": "-\\w+\\s*" }, { "applyEndPatternLast": 1, "begin": "--\\s*", "comment": "end of switches", "end": "", "patterns": [{ "include": "#regexp" }] }, { "include": "#regexp" }] }, { "include": "#escape" }, { "include": "#variable" }, { "include": "#operator" }, { "include": "#numeric" }, { "begin": '"', "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.tcl" } }, "end": '"', "endCaptures": { "0": { "name": "punctuation.definition.string.end.tcl" } }, "name": "string.quoted.double.tcl", "patterns": [{ "include": "#escape" }, { "include": "#variable" }, { "include": "#embedded" }] }], "repository": { "bare-string": { "begin": '(?:^|(?<=\\s))"', "comment": "matches a single quote-enclosed word without scoping", "end": '"([^\\s\\]]*)', "endCaptures": { "1": { "name": "invalid.illegal.tcl" } }, "patterns": [{ "include": "#escape" }, { "include": "#variable" }] }, "braces": { "begin": "(?:^|(?<=\\s))\\{", "comment": "matches a single brace-enclosed word", "end": "\\}([^\\s\\]]*)", "endCaptures": { "1": { "name": "invalid.illegal.tcl" } }, "patterns": [{ "match": "\\\\[{}\\n]", "name": "constant.character.escape.tcl" }, { "include": "#inner-braces" }] }, "embedded": { "begin": "\\[", "beginCaptures": { "0": { "name": "punctuation.section.embedded.begin.tcl" } }, "end": "\\]", "endCaptures": { "0": { "name": "punctuation.section.embedded.end.tcl" } }, "name": "source.tcl.embedded", "patterns": [{ "include": "source.tcl" }] }, "escape": { "match": "\\\\(\\d{1,3}|x[a-fA-F0-9]+|u[a-fA-F0-9]{1,4}|.|\\n)", "name": "constant.character.escape.tcl" }, "inner-braces": { "begin": "\\{", "comment": "matches a nested brace in a brace-enclosed word", "end": "\\}", "patterns": [{ "match": "\\\\[{}\\n]", "name": "constant.character.escape.tcl" }, { "include": "#inner-braces" }] }, "numeric": { "match": "(?<![a-zA-Z])([+-]?([0-9]*[.])?[0-9]+f?)(?![\\.a-zA-Z])", "name": "constant.numeric.tcl" }, "operator": { "match": "(?<= |\\d)(-|\\+|~|&{1,2}|\\|{1,2}|<{1,2}|>{1,2}|\\*{1,2}|!|%|\\/|<=|>=|={1,2}|!=|\\^)(?= |\\d)", "name": "keyword.operator.tcl" }, "regexp": { "begin": "(?=\\S)(?![\\n;\\]])", "comment": "matches a single word, named as a regexp, then swallows the rest of the command", "end": "(?=[\\n;\\]])", "patterns": [{ "begin": "(?=[^ \\t\\n;])", "end": "(?=[ \\t\\n;])", "name": "string.regexp.tcl", "patterns": [{ "include": "#braces" }, { "include": "#bare-string" }, { "include": "#escape" }, { "include": "#variable" }] }, { "begin": "[ \\t]", "comment": "swallow the rest of the command", "end": "(?=[\\n;\\]])", "patterns": [{ "include": "#variable" }, { "include": "#embedded" }, { "include": "#escape" }, { "include": "#braces" }, { "include": "#string" }] }] }, "string": { "applyEndPatternLast": 1, "begin": '(?:^|(?<=\\s))(?=")', "comment": "matches a single quote-enclosed word with scoping", "end": "", "name": "string.quoted.double.tcl", "patterns": [{ "include": "#bare-string" }] }, "variable": { "captures": { "1": { "name": "punctuation.definition.variable.tcl" } }, "match": "(\\$)((?:[a-zA-Z0-9_]|::)+(\\([^\\)]+\\))?|\\{[^\\}]*\\})", "name": "support.function.tcl" } }, "scopeName": "source.tcl" });
var tcl = [
lang
];
export { tcl as default };