| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- /*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
- define('vs/basic-languages/tcl/tcl',["require", "exports"], function (require, exports) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.language = exports.conf = void 0;
- exports.conf = {
- brackets: [
- ['{', '}'],
- ['[', ']'],
- ['(', ')']
- ],
- autoClosingPairs: [
- { open: '{', close: '}' },
- { open: '[', close: ']' },
- { open: '(', close: ')' },
- { open: '"', close: '"' },
- { open: "'", close: "'" }
- ],
- surroundingPairs: [
- { open: '{', close: '}' },
- { open: '[', close: ']' },
- { open: '(', close: ')' },
- { open: '"', close: '"' },
- { open: "'", close: "'" }
- ]
- };
- exports.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: [
- // identifiers and keywords
- [
- /[a-zA-Z_]\w*/,
- {
- cases: {
- '@specialFunctions': {
- token: 'keyword.flow',
- next: '@specialFunc'
- },
- '@mainFunctions': 'keyword',
- '@builtinFunctions': 'variable',
- '@default': 'operator.scss'
- }
- }
- ],
- [/\s+\-+(?!\d|\.)\w*|{\*}/, 'metatag'],
- // whitespace
- { include: '@whitespace' },
- // delimiters and operators
- [/[{}()\[\]]/, '@brackets'],
- [/@symbols/, 'operator'],
- [/\$+(?:\:\:)?\{/, { token: 'identifier', next: '@nestedVariable' }],
- [/@variables/, 'type.identifier'],
- [/\.(?!\d|\.)[\w\-]*/, 'operator.sql'],
- // numbers
- [/\d+(\.\d+)?/, 'number'],
- [/\d+/, 'number'],
- // delimiter
- [/;/, 'delimiter'],
- // strings
- [/"/, { 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' }]
- ]
- }
- };
- });
|