[{"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*(reg(?:exp|sub))\\b\\s*","beginCaptures":{"1":{"name":"keyword.other.tcl"}},"end":"[]\\n;]","patterns":[{"match":"\\\\(?:.|\\n)","name":"constant.character.escape.tcl"},{"match":"-\\w+\\s*"},{"applyEndPatternLast":1,"begin":"--\\s*","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))\"","end":"\"([^]\\s]*)","endCaptures":{"1":{"name":"invalid.illegal.tcl"}},"patterns":[{"include":"#escape"},{"include":"#variable"}]},"braces":{"begin":"(?:^|(?<=\\s))\\{","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\\h+|u\\h{1,4}|.|\\n)","name":"constant.character.escape.tcl"},"inner-braces":{"begin":"\\{","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;])","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 ]","end":"(?=[]\\n;])","patterns":[{"include":"#variable"},{"include":"#embedded"},{"include":"#escape"},{"include":"#braces"},{"include":"#string"}]}]},"string":{"applyEndPatternLast":1,"begin":"(?:^|(?<=\\s))(?=\")","end":"","name":"string.quoted.double.tcl","patterns":[{"include":"#bare-string"}]},"variable":{"captures":{"1":{"name":"punctuation.definition.variable.tcl"}},"match":"(\\$)((?:[0-9A-Z_a-z]|::)+(\\([^)]+\\))?|\\{[^}]*})","name":"support.function.tcl"}},"scopeName":"source.tcl"}]