UNPKG

w-vue-middle

Version:

统一公共服务组件

965 lines (962 loc) 20.7 kB
// 默认配置 export const defaultOpts = { locale: 'zh-cn', folding: true, // 是否折叠 automaticLayout: true, contextmenu: false, fixedOverflowWidgets: true, fontFamily: 'Menlo-Regular, Monaco, Menlo, Consolas, "Ubuntu Mono", monospace', formatOnPaste: true, formatOnType: true, insertSpaces: true, lineDecorationsWidth: 7, lineHeight: 24, lineNumbersMinChars: 3, minimap: { enabled: false, // 是否启用预览图 }, quickSuggestions: true, readOnly: false, roundedSelection: false, scrollBeyondLastLine: false, scrollbar: { verticalScrollbarSize: 6, horizontalScrollbarSize: 6, alwaysConsumeMouseWheel: false, arrowSize: 0, }, snippetSuggestions: 'none', tabSize: 2, theme: 'vs-dark', wordBasedSuggestions: false, wordWrap: 'on', cursorStyle: 'line', selectOnLineNumbers: true, autoIndent: 'advanced', glyphMargin: false, renderIndentGuides: true, renderLineHighlight: 'line', renderWhitespace: 'none', scrollBeyondLastColumn: 2, } // 语法格式校验 export const conf = { comments: { lineComment: '--', blockComment: ['/*', '*/'] }, brackets: [ ['{', '}'], ['[', ']'], ['(', ')'] ], autoClosingPairs: [ {open: '{', close: '}'}, {open: '[', close: ']'}, {open: '(', close: ')'}, {open: '"', close: '"'}, {open: "'", close: "'"} ], surroundingPairs: [ {open: '{', close: '}'}, {open: '[', close: ']'}, {open: '(', close: ')'}, {open: '"', close: '"'}, {open: "'", close: "'"} ] } // 自定义代码解析和高亮配置 export const language = { defaultToken: '', tokenPostfix: '.sql', // 是否区分大小写 true区分 ignoreCase: true, brackets: [ {open: '[', close: ']', token: 'delimiter.square'}, {open: '(', close: ')', token: 'delimiter.parenthesis'} ], // 关键字 keywords: [ // This list is generated using `keywords.js` 'ABORT', 'ABSOLUTE', 'ACTION', 'ADA', 'ADD', 'AFTER', 'ALL', 'ALLOCATE', 'ALTER', 'ALWAYS', 'ANALYZE', 'AND', 'ANY', 'ARE', 'AS', 'ASC', 'ASSERTION', 'AT', 'ATTACH', 'AUTHORIZATION', 'AUTOINCREMENT', 'AVG', 'BACKUP', 'BEFORE', 'BEGIN', 'BETWEEN', 'BIT', 'BIT_LENGTH', 'BOTH', 'BREAK', 'BROWSE', 'BULK', 'BY', 'CASCADE', 'CASCADED', 'CASE', 'CAST', 'CATALOG', 'CHAR', 'CHARACTER', 'CHARACTER_LENGTH', 'CHAR_LENGTH', 'CHECK', 'CHECKPOINT', 'CLOSE', 'CLUSTERED', 'COALESCE', 'COLLATE', 'COLLATION', 'COLUMN', 'COMMIT', 'COMPUTE', 'CONFLICT', 'CONNECT', 'CONNECTION', 'CONSTRAINT', 'CONSTRAINTS', 'CONTAINS', 'CONTAINSTABLE', 'CONTINUE', 'CONVERT', 'CORRESPONDING', 'COUNT', 'CREATE', 'CROSS', 'CURRENT', 'CURRENT_DATE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER', 'CURSOR', 'DATABASE', 'DATE', 'DAY', 'DBCC', 'DEALLOCATE', 'DEC', 'DECIMAL', 'DECLARE', 'DEFAULT', 'DEFERRABLE', 'DEFERRED', 'DELETE', 'DENY', 'DESC', 'DESCRIBE', 'DESCRIPTOR', 'DETACH', 'DIAGNOSTICS', 'DISCONNECT', 'DISK', 'DISTINCT', 'DISTRIBUTED', 'DO', 'DOMAIN', 'DOUBLE', 'DROP', 'DUMP', 'EACH', 'ELSE', 'END', 'END-EXEC', 'ERRLVL', 'ESCAPE', 'EXCEPT', 'EXCEPTION', 'EXCLUDE', 'EXCLUSIVE', 'EXEC', 'EXECUTE', 'EXISTS', 'EXIT', 'EXPLAIN', 'EXTERNAL', 'EXTRACT', 'FAIL', 'FALSE', 'FETCH', 'FILE', 'FILLFACTOR', 'FILTER', 'FIRST', 'FLOAT', 'FOLLOWING', 'FOR', 'FOREIGN', 'FORTRAN', 'FOUND', 'FREETEXT', 'FREETEXTTABLE', 'FROM', 'FULL', 'FUNCTION', 'GENERATED', 'GET', 'GLOB', 'GLOBAL', 'GO', 'GOTO', 'GRANT', 'GROUP', 'GROUPS', 'HAVING', 'HOLDLOCK', 'HOUR', 'IDENTITY', 'IDENTITYCOL', 'IDENTITY_INSERT', 'IF', 'IGNORE', 'IMMEDIATE', 'IN', 'INCLUDE', 'INDEX', 'INDEXED', 'INDICATOR', 'INITIALLY', 'INNER', 'INPUT', 'INSENSITIVE', 'INSERT', 'INSTEAD', 'INT', 'INTEGER', 'INTERSECT', 'INTERVAL', 'INTO', 'IS', 'ISNULL', 'ISOLATION', 'JOIN', 'KEY', 'KILL', 'LANGUAGE', 'LAST', 'LEADING', 'LEFT', 'LEVEL', 'LIKE', 'LIMIT', 'LINENO', 'LOAD', 'LOCAL', 'LOWER', 'MATCH', 'MATERIALIZED', 'MAX', 'MERGE', 'MIN', 'MINUTE', 'MODULE', 'MONTH', 'NAMES', 'NATIONAL', 'NATURAL', 'NCHAR', 'NEXT', 'NO', 'NOCHECK', 'NONCLUSTERED', 'NONE', 'NOT', 'NOTHING', 'NOTNULL', 'NULL', 'NULLIF', 'NULLS', 'NUMERIC', 'OCTET_LENGTH', 'OF', 'OFF', 'OFFSET', 'OFFSETS', 'ON', 'ONLY', 'OPEN', 'OPENDATASOURCE', 'OPENQUERY', 'OPENROWSET', 'OPENXML', 'OPTION', 'OR', 'ORDER', 'OTHERS', 'OUTER', 'OUTPUT', 'OVER', 'OVERLAPS', 'PAD', 'PARTIAL', 'PARTITION', 'PASCAL', 'PERCENT', 'PIVOT', 'PLAN', 'POSITION', 'PRAGMA', 'PRECEDING', 'PRECISION', 'PREPARE', 'PRESERVE', 'PRIMARY', 'PRINT', 'PRIOR', 'PRIVILEGES', 'PROC', 'PROCEDURE', 'PUBLIC', 'QUERY', 'RAISE', 'RAISERROR', 'RANGE', 'READ', 'READTEXT', 'REAL', 'RECONFIGURE', 'RECURSIVE', 'REFERENCES', 'REGEXP', 'REINDEX', 'RELATIVE', 'RELEASE', 'RENAME', 'REPLACE', 'REPLICATION', 'RESTORE', 'RESTRICT', 'RETURN', 'RETURNING', 'REVERT', 'REVOKE', 'RIGHT', 'ROLLBACK', 'ROW', 'ROWCOUNT', 'ROWGUIDCOL', 'ROWS', 'RULE', 'SAVE', 'SAVEPOINT', 'SCHEMA', 'SCROLL', 'SECOND', 'SECTION', 'SECURITYAUDIT', 'SELECT', 'SEMANTICKEYPHRASETABLE', 'SEMANTICSIMILARITYDETAILSTABLE', 'SEMANTICSIMILARITYTABLE', 'SESSION', 'SESSION_USER', 'SET', 'SETUSER', 'SHUTDOWN', 'SIZE', 'SMALLINT', 'SOME', 'SPACE', 'SQL', 'SQLCA', 'SQLCODE', 'SQLERROR', 'SQLSTATE', 'SQLWARNING', 'STATISTICS', 'SUBSTRING', 'SUM', 'SYSTEM_USER', 'TABLE', 'TABLESAMPLE', 'TEMP', 'TEMPORARY', 'TEXTSIZE', 'THEN', 'TIES', 'TIME', 'TIMESTAMP', 'TIMEZONE_HOUR', 'TIMEZONE_MINUTE', 'TO', 'TOP', 'TRAILING', 'TRAN', 'TRANSACTION', 'TRANSLATE', 'TRANSLATION', 'TRIGGER', 'TRIM', 'TRUE', 'TRUNCATE', 'TRY_CONVERT', 'TSEQUAL', 'UNBOUNDED', 'UNION', 'UNIQUE', 'UNKNOWN', 'UNPIVOT', 'UPDATE', 'UPDATETEXT', 'UPPER', 'USAGE', 'USE', // 'USER', 'USING', 'VACUUM', 'VALUE', 'VALUES', 'VARCHAR', 'VARYING', 'VIEW', 'VIRTUAL', 'WAITFOR', 'WHEN', 'WHENEVER', 'WHERE', 'WHILE', 'WINDOW', 'WITH', 'WITHIN GROUP', 'WITHOUT', 'WORK', 'WRITE', 'WRITETEXT', 'YEAR', 'ZONE' ], // 操作符定义 operators: [ // Logical 'ALL', 'AND', 'ANY', 'BETWEEN', 'EXISTS', 'IN', 'LIKE', 'NOT', 'OR', 'SOME', // Set 'EXCEPT', 'INTERSECT', 'UNION', // Join 'APPLY', 'CROSS', 'FULL', 'INNER', 'JOIN', 'LEFT', 'OUTER', 'RIGHT', // Predicates 'CONTAINS', 'FREETEXT', 'IS', 'NULL', // Pivoting 'PIVOT', 'UNPIVOT', // Merging 'MATCHED' ], builtinFunctions: [ // Aggregate 'AVG', 'CHECKSUM_AGG', 'COUNT', 'COUNT_BIG', 'GROUPING', 'GROUPING_ID', 'MAX', 'MIN', 'SUM', 'STDEV', 'STDEVP', 'VAR', 'VARP', // Analytic 'CUME_DIST', 'FIRST_VALUE', 'LAG', 'LAST_VALUE', 'LEAD', 'PERCENTILE_CONT', 'PERCENTILE_DISC', 'PERCENT_RANK', // Collation 'COLLATE', 'COLLATIONPROPERTY', 'TERTIARY_WEIGHTS', // Azure 'FEDERATION_FILTERING_VALUE', // Conversion 'CAST', 'CONVERT', 'PARSE', 'TRY_CAST', 'TRY_CONVERT', 'TRY_PARSE', // Cryptographic 'ASYMKEY_ID', 'ASYMKEYPROPERTY', 'CERTPROPERTY', 'CERT_ID', 'CRYPT_GEN_RANDOM', 'DECRYPTBYASYMKEY', 'DECRYPTBYCERT', 'DECRYPTBYKEY', 'DECRYPTBYKEYAUTOASYMKEY', 'DECRYPTBYKEYAUTOCERT', 'DECRYPTBYPASSPHRASE', 'ENCRYPTBYASYMKEY', 'ENCRYPTBYCERT', 'ENCRYPTBYKEY', 'ENCRYPTBYPASSPHRASE', 'HASHBYTES', 'IS_OBJECTSIGNED', 'KEY_GUID', 'KEY_ID', 'KEY_NAME', 'SIGNBYASYMKEY', 'SIGNBYCERT', 'SYMKEYPROPERTY', 'VERIFYSIGNEDBYCERT', 'VERIFYSIGNEDBYASYMKEY', // Cursor 'CURSOR_STATUS', // Datatype 'DATALENGTH', 'IDENT_CURRENT', 'IDENT_INCR', 'IDENT_SEED', 'IDENTITY', 'SQL_VARIANT_PROPERTY', // Datetime 'CURRENT_TIMESTAMP', 'DATEADD', 'DATEDIFF', 'DATEFROMPARTS', 'DATENAME', 'DATEPART', 'DATETIME2FROMPARTS', 'DATETIMEFROMPARTS', 'DATETIMEOFFSETFROMPARTS', 'DAY', 'EOMONTH', 'GETDATE', 'GETUTCDATE', 'ISDATE', 'MONTH', 'SMALLDATETIMEFROMPARTS', 'SWITCHOFFSET', 'SYSDATETIME', 'SYSDATETIMEOFFSET', 'SYSUTCDATETIME', 'TIMEFROMPARTS', 'TODATETIMEOFFSET', 'YEAR', // Logical 'CHOOSE', 'COALESCE', 'IIF', 'NULLIF', // Mathematical 'ABS', 'ACOS', 'ASIN', 'ATAN', 'ATN2', 'CEILING', 'COS', 'COT', 'DEGREES', 'EXP', 'FLOOR', 'LOG', 'LOG10', 'PI', 'POWER', 'RADIANS', 'RAND', 'ROUND', 'SIGN', 'SIN', 'SQRT', 'SQUARE', 'TAN', // Metadata 'APP_NAME', 'APPLOCK_MODE', 'APPLOCK_TEST', 'ASSEMBLYPROPERTY', 'COL_LENGTH', 'COL_NAME', 'COLUMNPROPERTY', 'DATABASE_PRINCIPAL_ID', 'DATABASEPROPERTYEX', 'DB_ID', 'DB_NAME', 'FILE_ID', 'FILE_IDEX', 'FILE_NAME', 'FILEGROUP_ID', 'FILEGROUP_NAME', 'FILEGROUPPROPERTY', 'FILEPROPERTY', 'FULLTEXTCATALOGPROPERTY', 'FULLTEXTSERVICEPROPERTY', 'INDEX_COL', 'INDEXKEY_PROPERTY', 'INDEXPROPERTY', 'OBJECT_DEFINITION', 'OBJECT_ID', 'OBJECT_NAME', 'OBJECT_SCHEMA_NAME', 'OBJECTPROPERTY', 'OBJECTPROPERTYEX', 'ORIGINAL_DB_NAME', 'PARSENAME', 'SCHEMA_ID', 'SCHEMA_NAME', 'SCOPE_IDENTITY', 'SERVERPROPERTY', 'STATS_DATE', 'TYPE_ID', 'TYPE_NAME', 'TYPEPROPERTY', // Ranking 'DENSE_RANK', 'NTILE', 'RANK', 'ROW_NUMBER', // Replication 'PUBLISHINGSERVERNAME', // Rowset 'OPENDATASOURCE', 'OPENQUERY', 'OPENROWSET', 'OPENXML', // Security 'CERTENCODED', 'CERTPRIVATEKEY', 'CURRENT_USER', 'HAS_DBACCESS', 'HAS_PERMS_BY_NAME', 'IS_MEMBER', 'IS_ROLEMEMBER', 'IS_SRVROLEMEMBER', 'LOGINPROPERTY', 'ORIGINAL_LOGIN', 'PERMISSIONS', 'PWDENCRYPT', 'PWDCOMPARE', 'SESSION_USER', 'SESSIONPROPERTY', 'SUSER_ID', 'SUSER_NAME', 'SUSER_SID', 'SUSER_SNAME', 'SYSTEM_USER', // 'USER', 'USER_ID', 'USER_NAME', // String 'ASCII', 'CHAR', 'CHARINDEX', 'CONCAT', 'DIFFERENCE', 'FORMAT', 'LEFT', 'LEN', 'LOWER', 'LTRIM', 'NCHAR', 'PATINDEX', 'QUOTENAME', 'REPLACE', 'REPLICATE', 'REVERSE', 'RIGHT', 'RTRIM', 'SOUNDEX', 'SPACE', 'STR', 'STUFF', 'SUBSTRING', 'UNICODE', 'UPPER', // System 'BINARY_CHECKSUM', 'CHECKSUM', 'CONNECTIONPROPERTY', 'CONTEXT_INFO', 'CURRENT_REQUEST_ID', 'ERROR_LINE', 'ERROR_NUMBER', 'ERROR_MESSAGE', 'ERROR_PROCEDURE', 'ERROR_SEVERITY', 'ERROR_STATE', 'FORMATMESSAGE', 'GETANSINULL', 'GET_FILESTREAM_TRANSACTION_CONTEXT', 'HOST_ID', 'HOST_NAME', 'ISNULL', 'ISNUMERIC', 'MIN_ACTIVE_ROWVERSION', 'NEWID', 'NEWSEQUENTIALID', 'ROWCOUNT_BIG', 'XACT_STATE', // TextImage 'TEXTPTR', 'TEXTVALID', // Trigger 'COLUMNS_UPDATED', 'EVENTDATA', 'TRIGGER_NESTLEVEL', 'UPDATE', // ChangeTracking 'CHANGETABLE', 'CHANGE_TRACKING_CONTEXT', 'CHANGE_TRACKING_CURRENT_VERSION', 'CHANGE_TRACKING_IS_COLUMN_IN_MASK', 'CHANGE_TRACKING_MIN_VALID_VERSION', // FullTextSearch 'CONTAINSTABLE', 'FREETEXTTABLE', // SemanticTextSearch 'SEMANTICKEYPHRASETABLE', 'SEMANTICSIMILARITYDETAILSTABLE', 'SEMANTICSIMILARITYTABLE', // FileStream 'FILETABLEROOTPATH', 'GETFILENAMESPACEPATH', 'GETPATHLOCATOR', 'PATHNAME', // ServiceBroker 'GET_TRANSMISSION_STATUS' ], builtinVariables: [ // Configuration '@@DATEFIRST', '@@DBTS', '@@LANGID', '@@LANGUAGE', '@@LOCK_TIMEOUT', '@@MAX_CONNECTIONS', '@@MAX_PRECISION', '@@NESTLEVEL', '@@OPTIONS', '@@REMSERVER', '@@SERVERNAME', '@@SERVICENAME', '@@SPID', '@@TEXTSIZE', '@@VERSION', // Cursor '@@CURSOR_ROWS', '@@FETCH_STATUS', // Datetime '@@DATEFIRST', // Metadata '@@PROCID', // System '@@ERROR', '@@IDENTITY', '@@ROWCOUNT', '@@TRANCOUNT', // Stats '@@CONNECTIONS', '@@CPU_BUSY', '@@IDLE', '@@IO_BUSY', '@@PACKET_ERRORS', '@@PACK_RECEIVED', '@@PACK_SENT', '@@TIMETICKS', '@@TOTAL_ERRORS', '@@TOTAL_READ', '@@TOTAL_WRITE' ], pseudoColumns: ['$ACTION', '$IDENTITY', '$ROWGUID', '$PARTITION'], // 代码解析配置 tokenizer: { root: [ // 格式为[正则表达式,对应的类型如(string,number,comment)] [/\[[a-zA-Z0-9_]+\]/, 'code.sql'], // 自定义token规则 {include: '@comments'}, {include: '@whitespace'}, {include: '@pseudoColumns'}, {include: '@numbers'}, {include: '@strings'}, {include: '@complexIdentifiers'}, {include: '@scopes'}, [/[;,.]/, 'delimiter'], [/[()]/, '@brackets'], [ /[\w@#$]+/, { cases: { '@operators': 'operator', '@builtinVariables': 'predefined', '@builtinFunctions': 'predefined', '@keywords': 'keyword', '@default': 'identifier' } } ], [/[<>=!%&+\-*/|~^]/, 'operator'] ], whitespace: [[/\s+/, 'white']], comments: [ [/--+.*/, 'comment'], [/\/\*/, {token: 'comment.quote', next: '@comment'}] ], comment: [ [/[^*/]+/, 'comment'], // Not supporting nested comments, as nested comments seem to not be standard? // i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic // [/\/\*/, { token: 'comment.quote', next: '@push' }], // nested comment not allowed :-( [/\*\//, {token: 'comment.quote', next: '@pop'}], [/./, 'comment'] ], pseudoColumns: [ [ /[$][A-Za-z_][\w@#$]*/, { cases: { '@pseudoColumns': 'predefined', '@default': 'identifier' } } ] ], numbers: [ [/0[xX][0-9a-fA-F]*/, 'number'], [/[$][+-]*\d*(\.\d*)?/, 'number'], [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number'] ], strings: [ [/N'/, {token: 'string', next: '@string'}], [/'/, {token: 'string', next: '@string'}] ], string: [ [/[^']+/, 'string'], [/''/, 'string'], [/'/, {token: 'string', next: '@pop'}] ], complexIdentifiers: [ [/\[/, {token: 'identifier.quote', next: '@bracketedIdentifier'}], [/"/, {token: 'identifier.quote', next: '@quotedIdentifier'}] ], bracketedIdentifier: [ [/[^\]]+/, 'identifier'], [/]]/, 'identifier'], [/]/, {token: 'identifier.quote', next: '@pop'}] ], quotedIdentifier: [ [/[^"]+/, 'identifier'], [/""/, 'identifier'], [/"/, {token: 'identifier.quote', next: '@pop'}] ], scopes: [ [/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i, 'keyword'], [/BEGIN\s+TRY\b/i, {token: 'keyword.try'}], [/END\s+TRY\b/i, {token: 'keyword.try'}], [/BEGIN\s+CATCH\b/i, {token: 'keyword.catch'}], [/END\s+CATCH\b/i, {token: 'keyword.catch'}], [/(BEGIN|CASE)\b/i, {token: 'keyword.block'}], [/END\b/i, {token: 'keyword.block'}], [/WHEN\b/i, {token: 'keyword.choice'}], [/THEN\b/i, {token: 'keyword.choice'}] ] } } // 自定义主题配置 export const customTheme = { base: 'vs', inherit: false, // 编辑器颜色配置 colors: { 'editor.background': '#FFFFFE', 'editor.foreground': '#000000', 'editor.inactiveSelectionBackground': '#E5EBF1', 'editorIndentGuide.background': '#D3D3D3', 'editorIndentGuide.activeBackground': '#939393', 'editor.selectionHighlightBackground': '#ADD6FF4D' }, rules: [ { token: 'code.sql', foreground: '2d5afa', fontStyle: 'bold'}, // 自定义token颜色 高亮且加粗 { token: '', foreground: '000000', background: 'fffffe' }, { token: 'invalid', foreground: 'cd3131'}, { token: 'emphasis', fontStyle: 'italic' }, { token: 'strong', fontStyle: 'bold' }, { token: 'variable', foreground: '001188' }, { token: 'variable.predefined', foreground: '4864AA' }, { token: 'constant', foreground: 'dd0000' }, { token: 'comment', foreground: '008000' }, { token: 'number', foreground: '098658' }, { token: 'number.hex', foreground: '3030c0' }, { token: 'regexp', foreground: '800000' }, { token: 'annotation', foreground: '808080' }, { token: 'type', foreground: '008080' }, { token: 'delimiter', foreground: '000000' }, { token: 'delimiter.html', foreground: '383838' }, { token: 'delimiter.xml', foreground: '0000FF' }, { token: 'tag', foreground: '800000' }, { token: 'tag.id.pug', foreground: '4F76AC' }, { token: 'tag.class.pug', foreground: '4F76AC' }, { token: 'meta.scss', foreground: '800000' }, { token: 'metatag', foreground: 'e00000' }, { token: 'metatag.content.html', foreground: 'FF0000' }, { token: 'metatag.html', foreground: '808080' }, { token: 'metatag.xml', foreground: '808080' }, { token: 'metatag.php', fontStyle: 'bold' }, { token: 'key', foreground: '863B00' }, { token: 'string.key.json', foreground: 'A31515' }, { token: 'string.value.json', foreground: '0451A5' }, { token: 'attribute.name', foreground: 'FF0000' }, { token: 'attribute.value', foreground: '0451A5' }, { token: 'attribute.value.number', foreground: '098658' }, { token: 'attribute.value.unit', foreground: '098658' }, { token: 'attribute.value.html', foreground: '0000FF' }, { token: 'attribute.value.xml', foreground: '0000FF' }, { token: 'string', foreground: 'A31515' }, { token: 'string.html', foreground: '0000FF' }, { token: 'string.sql', foreground: 'FF0000' }, { token: 'string.yaml', foreground: '0451A5' }, { token: 'keyword', foreground: '0000FF' }, { token: 'keyword.json', foreground: '0451A5' }, { token: 'keyword.flow', foreground: 'AF00DB' }, { token: 'keyword.flow.scss', foreground: '0000FF' }, { token: 'operator.scss', foreground: '666666' }, { token: 'operator.sql', foreground: '778899' }, { token: 'operator.swift', foreground: '666666' }, { token: 'predefined.sql', foreground: 'C700C7' } ] }