123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- /*!-----------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Version: 0.31.1(337587859b1c171314b40503171188b6cea6a32a)
- * Released under the MIT license
- * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
- *-----------------------------------------------------------------------------*/
- // src/basic-languages/tcl/tcl.ts
- var conf = {
- brackets: [
- ["{", "}"],
- ["[", "]"],
- ["(", ")"]
- ],
- autoClosingPairs: [
- { open: "{", close: "}" },
- { open: "[", close: "]" },
- { open: "(", close: ")" },
- { open: '"', close: '"' },
- { open: "'", close: "'" }
- ],
- surroundingPairs: [
- { open: "{", close: "}" },
- { open: "[", close: "]" },
- { open: "(", close: ")" },
- { open: '"', close: '"' },
- { open: "'", close: "'" }
- ]
- };
- var language = {
- tokenPostfix: ".tcl",
- specialFunctions: [
- "set",
- "unset",
- "rename",
- "variable",
- "proc",
- "coroutine",
- "foreach",
- "incr",
- "append",
- "lappend",
- "linsert",
- "lreplace"
- ],
- mainFunctions: [
- "if",
- "then",
- "elseif",
- "else",
- "case",
- "switch",
- "while",
- "for",
- "break",
- "continue",
- "return",
- "package",
- "namespace",
- "catch",
- "exit",
- "eval",
- "expr",
- "uplevel",
- "upvar"
- ],
- builtinFunctions: [
- "file",
- "info",
- "concat",
- "join",
- "lindex",
- "list",
- "llength",
- "lrange",
- "lsearch",
- "lsort",
- "split",
- "array",
- "parray",
- "binary",
- "format",
- "regexp",
- "regsub",
- "scan",
- "string",
- "subst",
- "dict",
- "cd",
- "clock",
- "exec",
- "glob",
- "pid",
- "pwd",
- "close",
- "eof",
- "fblocked",
- "fconfigure",
- "fcopy",
- "fileevent",
- "flush",
- "gets",
- "open",
- "puts",
- "read",
- "seek",
- "socket",
- "tell",
- "interp",
- "after",
- "auto_execok",
- "auto_load",
- "auto_mkindex",
- "auto_reset",
- "bgerror",
- "error",
- "global",
- "history",
- "load",
- "source",
- "time",
- "trace",
- "unknown",
- "unset",
- "update",
- "vwait",
- "winfo",
- "wm",
- "bind",
- "event",
- "pack",
- "place",
- "grid",
- "font",
- "bell",
- "clipboard",
- "destroy",
- "focus",
- "grab",
- "lower",
- "option",
- "raise",
- "selection",
- "send",
- "tk",
- "tkwait",
- "tk_bisque",
- "tk_focusNext",
- "tk_focusPrev",
- "tk_focusFollowsMouse",
- "tk_popup",
- "tk_setPalette"
- ],
- symbols: /[=><!~?:&|+\-*\/\^%]+/,
- brackets: [
- { open: "(", close: ")", token: "delimiter.parenthesis" },
- { open: "{", close: "}", token: "delimiter.curly" },
- { open: "[", close: "]", token: "delimiter.square" }
- ],
- escapes: /\\(?:[abfnrtv\\"'\[\]\{\};\$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
- variables: /(?:\$+(?:(?:\:\:?)?[a-zA-Z_]\w*)+)/,
- tokenizer: {
- root: [
- [
- /[a-zA-Z_]\w*/,
- {
- cases: {
- "@specialFunctions": {
- token: "keyword.flow",
- next: "@specialFunc"
- },
- "@mainFunctions": "keyword",
- "@builtinFunctions": "variable",
- "@default": "operator.scss"
- }
- }
- ],
- [/\s+\-+(?!\d|\.)\w*|{\*}/, "metatag"],
- { include: "@whitespace" },
- [/[{}()\[\]]/, "@brackets"],
- [/@symbols/, "operator"],
- [/\$+(?:\:\:)?\{/, { token: "identifier", next: "@nestedVariable" }],
- [/@variables/, "type.identifier"],
- [/\.(?!\d|\.)[\w\-]*/, "operator.sql"],
- [/\d+(\.\d+)?/, "number"],
- [/\d+/, "number"],
- [/;/, "delimiter"],
- [/"/, { token: "string.quote", bracket: "@open", next: "@dstring" }],
- [/'/, { token: "string.quote", bracket: "@open", next: "@sstring" }]
- ],
- dstring: [
- [/\[/, { token: "@brackets", next: "@nestedCall" }],
- [/\$+(?:\:\:)?\{/, { token: "identifier", next: "@nestedVariable" }],
- [/@variables/, "type.identifier"],
- [/[^\\$\[\]"]+/, "string"],
- [/@escapes/, "string.escape"],
- [/"/, { token: "string.quote", bracket: "@close", next: "@pop" }]
- ],
- sstring: [
- [/\[/, { token: "@brackets", next: "@nestedCall" }],
- [/\$+(?:\:\:)?\{/, { token: "identifier", next: "@nestedVariable" }],
- [/@variables/, "type.identifier"],
- [/[^\\$\[\]']+/, "string"],
- [/@escapes/, "string.escape"],
- [/'/, { token: "string.quote", bracket: "@close", next: "@pop" }]
- ],
- whitespace: [
- [/[ \t\r\n]+/, "white"],
- [/#.*\\$/, { token: "comment", next: "@newlineComment" }],
- [/#.*(?!\\)$/, "comment"]
- ],
- newlineComment: [
- [/.*\\$/, "comment"],
- [/.*(?!\\)$/, { token: "comment", next: "@pop" }]
- ],
- nestedVariable: [
- [/[^\{\}\$]+/, "type.identifier"],
- [/\}/, { token: "identifier", next: "@pop" }]
- ],
- nestedCall: [
- [/\[/, { token: "@brackets", next: "@nestedCall" }],
- [/\]/, { token: "@brackets", next: "@pop" }],
- { include: "root" }
- ],
- specialFunc: [
- [/"/, { token: "string", next: "@dstring" }],
- [/'/, { token: "string", next: "@sstring" }],
- [/\S+/, { token: "type", next: "@pop" }]
- ]
- }
- };
- export {
- conf,
- language
- };
|