Browse Source

文本块和SQL高亮

mxd 5 years ago
parent
commit
75f9929947

+ 1139 - 0
src/main/resources/magicapi-support/monaco/basic-languages/sql/sql.js

@@ -0,0 +1,1139 @@
+/*---------------------------------------------------------------------------------------------
+ *  Copyright (c) Microsoft Corporation. All rights reserved.
+ *  Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+define(["require", "exports"], function (require, exports) {
+    'use strict';
+    Object.defineProperty(exports, "__esModule", {value: true});
+    exports.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: '\''},
+        ]
+    };
+    exports.language = {
+        defaultToken: '',
+        tokenPostfix: '.sql',
+        ignoreCase: true,
+        brackets: [
+            {open: '[', close: ']', token: 'delimiter.square'},
+            {open: '(', close: ')', token: 'delimiter.parenthesis'}
+        ],
+        keywords: [
+            'ABORT_AFTER_WAIT',
+            'ABSENT',
+            'ABSOLUTE',
+            'ACCENT_SENSITIVITY',
+            'ACTION',
+            'ACTIVATION',
+            'ACTIVE',
+            'ADD',
+            'ADDRESS',
+            'ADMIN',
+            'AES',
+            'AES_128',
+            'AES_192',
+            'AES_256',
+            'AFFINITY',
+            'AFTER',
+            'AGGREGATE',
+            'ALGORITHM',
+            'ALL_CONSTRAINTS',
+            'ALL_ERRORMSGS',
+            'ALL_INDEXES',
+            'ALL_LEVELS',
+            'ALL_SPARSE_COLUMNS',
+            'ALLOW_CONNECTIONS',
+            'ALLOW_MULTIPLE_EVENT_LOSS',
+            'ALLOW_PAGE_LOCKS',
+            'ALLOW_ROW_LOCKS',
+            'ALLOW_SINGLE_EVENT_LOSS',
+            'ALLOW_SNAPSHOT_ISOLATION',
+            'ALLOWED',
+            'ALTER',
+            'ANONYMOUS',
+            'ANSI_DEFAULTS',
+            'ANSI_NULL_DEFAULT',
+            'ANSI_NULL_DFLT_OFF',
+            'ANSI_NULL_DFLT_ON',
+            'ANSI_NULLS',
+            'ANSI_PADDING',
+            'ANSI_WARNINGS',
+            'APPEND',
+            'APPLICATION',
+            'APPLICATION_LOG',
+            'ARITHABORT',
+            'ARITHIGNORE',
+            'AS',
+            'ASC',
+            'ASSEMBLY',
+            'ASYMMETRIC',
+            'ASYNCHRONOUS_COMMIT',
+            'AT',
+            'ATOMIC',
+            'ATTACH',
+            'ATTACH_REBUILD_LOG',
+            'AUDIT',
+            'AUDIT_GUID',
+            'AUTHENTICATION',
+            'AUTHORIZATION',
+            'AUTO',
+            'AUTO_CLEANUP',
+            'AUTO_CLOSE',
+            'AUTO_CREATE_STATISTICS',
+            'AUTO_SHRINK',
+            'AUTO_UPDATE_STATISTICS',
+            'AUTO_UPDATE_STATISTICS_ASYNC',
+            'AUTOMATED_BACKUP_PREFERENCE',
+            'AUTOMATIC',
+            'AVAILABILITY',
+            'AVAILABILITY_MODE',
+            'BACKUP',
+            'BACKUP_PRIORITY',
+            'BASE64',
+            'BATCHSIZE',
+            'BEGIN',
+            'BEGIN_DIALOG',
+            'BIGINT',
+            'BINARY',
+            'BINDING',
+            'BIT',
+            'BLOCKERS',
+            'BLOCKSIZE',
+            'BOUNDING_BOX',
+            'BREAK',
+            'BROKER',
+            'BROKER_INSTANCE',
+            'BROWSE',
+            'BUCKET_COUNT',
+            'BUFFER',
+            'BUFFERCOUNT',
+            'BULK',
+            'BULK_LOGGED',
+            'BY',
+            'CACHE',
+            'CALL',
+            'CALLED',
+            'CALLER',
+            'CAP_CPU_PERCENT',
+            'CASCADE',
+            'CASE',
+            'CATALOG',
+            'CATCH',
+            'CELLS_PER_OBJECT',
+            'CERTIFICATE',
+            'CHANGE_RETENTION',
+            'CHANGE_TRACKING',
+            'CHANGES',
+            'CHAR',
+            'CHARACTER',
+            'CHECK',
+            'CHECK_CONSTRAINTS',
+            'CHECK_EXPIRATION',
+            'CHECK_POLICY',
+            'CHECKALLOC',
+            'CHECKCATALOG',
+            'CHECKCONSTRAINTS',
+            'CHECKDB',
+            'CHECKFILEGROUP',
+            'CHECKIDENT',
+            'CHECKPOINT',
+            'CHECKTABLE',
+            'CLASSIFIER_FUNCTION',
+            'CLEANTABLE',
+            'CLEANUP',
+            'CLEAR',
+            'CLOSE',
+            'CLUSTER',
+            'CLUSTERED',
+            'CODEPAGE',
+            'COLLATE',
+            'COLLECTION',
+            'COLUMN',
+            'COLUMN_SET',
+            'COLUMNS',
+            'COLUMNSTORE',
+            'COLUMNSTORE_ARCHIVE',
+            'COMMIT',
+            'COMMITTED',
+            'COMPATIBILITY_LEVEL',
+            'COMPRESSION',
+            'COMPUTE',
+            'CONCAT',
+            'CONCAT_NULL_YIELDS_NULL',
+            'CONFIGURATION',
+            'CONNECT',
+            'CONSTRAINT',
+            'CONTAINMENT',
+            'CONTENT',
+            'CONTEXT',
+            'CONTINUE',
+            'CONTINUE_AFTER_ERROR',
+            'CONTRACT',
+            'CONTRACT_NAME',
+            'CONTROL',
+            'CONVERSATION',
+            'COOKIE',
+            'COPY_ONLY',
+            'COUNTER',
+            'CPU',
+            'CREATE',
+            'CREATE_NEW',
+            'CREATION_DISPOSITION',
+            'CREDENTIAL',
+            'CRYPTOGRAPHIC',
+            'CUBE',
+            'CURRENT',
+            'CURRENT_DATE',
+            'CURSOR',
+            'CURSOR_CLOSE_ON_COMMIT',
+            'CURSOR_DEFAULT',
+            'CYCLE',
+            'DATA',
+            'DATA_COMPRESSION',
+            'DATA_PURITY',
+            'DATABASE',
+            'DATABASE_DEFAULT',
+            'DATABASE_MIRRORING',
+            'DATABASE_SNAPSHOT',
+            'DATAFILETYPE',
+            'DATE',
+            'DATE_CORRELATION_OPTIMIZATION',
+            'DATEFIRST',
+            'DATEFORMAT',
+            'DATETIME',
+            'DATETIME2',
+            'DATETIMEOFFSET',
+            'DAY',
+            'DAYOFYEAR',
+            'DAYS',
+            'DB_CHAINING',
+            'DBCC',
+            'DBREINDEX',
+            'DDL_DATABASE_LEVEL_EVENTS',
+            'DEADLOCK_PRIORITY',
+            'DEALLOCATE',
+            'DEC',
+            'DECIMAL',
+            'DECLARE',
+            'DECRYPTION',
+            'DEFAULT',
+            'DEFAULT_DATABASE',
+            'DEFAULT_FULLTEXT_LANGUAGE',
+            'DEFAULT_LANGUAGE',
+            'DEFAULT_SCHEMA',
+            'DEFINITION',
+            'DELAY',
+            'DELAYED_DURABILITY',
+            'DELETE',
+            'DELETED',
+            'DENSITY_VECTOR',
+            'DENY',
+            'DEPENDENTS',
+            'DES',
+            'DESC',
+            'DESCRIPTION',
+            'DESX',
+            'DHCP',
+            'DIAGNOSTICS',
+            'DIALOG',
+            'DIFFERENTIAL',
+            'DIRECTORY_NAME',
+            'DISABLE',
+            'DISABLE_BROKER',
+            'DISABLED',
+            'DISK',
+            'DISTINCT',
+            'DISTRIBUTED',
+            'DOCUMENT',
+            'DOUBLE',
+            'DROP',
+            'DROP_EXISTING',
+            'DROPCLEANBUFFERS',
+            'DUMP',
+            'DURABILITY',
+            'DYNAMIC',
+            'EDITION',
+            'ELEMENTS',
+            'ELSE',
+            'EMERGENCY',
+            'EMPTY',
+            'EMPTYFILE',
+            'ENABLE',
+            'ENABLE_BROKER',
+            'ENABLED',
+            'ENCRYPTION',
+            'END',
+            'ENDPOINT',
+            'ENDPOINT_URL',
+            'ERRLVL',
+            'ERROR',
+            'ERROR_BROKER_CONVERSATIONS',
+            'ERRORFILE',
+            'ESCAPE',
+            'ESTIMATEONLY',
+            'EVENT',
+            'EVENT_RETENTION_MODE',
+            'EXEC',
+            'EXECUTABLE',
+            'EXECUTE',
+            'EXIT',
+            'EXPAND',
+            'EXPIREDATE',
+            'EXPIRY_DATE',
+            'EXPLICIT',
+            'EXTENDED_LOGICAL_CHECKS',
+            'EXTENSION',
+            'EXTERNAL',
+            'EXTERNAL_ACCESS',
+            'FAIL_OPERATION',
+            'FAILOVER',
+            'FAILOVER_MODE',
+            'FAILURE_CONDITION_LEVEL',
+            'FALSE',
+            'FAN_IN',
+            'FAST',
+            'FAST_FORWARD',
+            'FETCH',
+            'FIELDTERMINATOR',
+            'FILE',
+            'FILEGROUP',
+            'FILEGROWTH',
+            'FILELISTONLY',
+            'FILENAME',
+            'FILEPATH',
+            'FILESTREAM',
+            'FILESTREAM_ON',
+            'FILETABLE_COLLATE_FILENAME',
+            'FILETABLE_DIRECTORY',
+            'FILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME',
+            'FILETABLE_NAMESPACE',
+            'FILETABLE_PRIMARY_KEY_CONSTRAINT_NAME',
+            'FILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAME',
+            'FILLFACTOR',
+            'FILTERING',
+            'FIRE_TRIGGERS',
+            'FIRST',
+            'FIRSTROW',
+            'FLOAT',
+            'FMTONLY',
+            'FOLLOWING',
+            'FOR',
+            'FORCE',
+            'FORCE_FAILOVER_ALLOW_DATA_LOSS',
+            'FORCE_SERVICE_ALLOW_DATA_LOSS',
+            'FORCED',
+            'FORCEPLAN',
+            'FORCESCAN',
+            'FORCESEEK',
+            'FOREIGN',
+            'FORMATFILE',
+            'FORMSOF',
+            'FORWARD_ONLY',
+            'FREE',
+            'FREEPROCCACHE',
+            'FREESESSIONCACHE',
+            'FREESYSTEMCACHE',
+            'FROM',
+            'FULL',
+            'FULLSCAN',
+            'FULLTEXT',
+            'FUNCTION',
+            'GB',
+            'GEOGRAPHY_AUTO_GRID',
+            'GEOGRAPHY_GRID',
+            'GEOMETRY_AUTO_GRID',
+            'GEOMETRY_GRID',
+            'GET',
+            'GLOBAL',
+            'GO',
+            'GOTO',
+            'GOVERNOR',
+            'GRANT',
+            'GRIDS',
+            'GROUP',
+            'GROUP_MAX_REQUESTS',
+            'HADR',
+            'HASH',
+            'HASHED',
+            'HAVING',
+            'HEADERONLY',
+            'HEALTH_CHECK_TIMEOUT',
+            'HELP',
+            'HIERARCHYID',
+            'HIGH',
+            'HINT',
+            'HISTOGRAM',
+            'HOLDLOCK',
+            'HONOR_BROKER_PRIORITY',
+            'HOUR',
+            'HOURS',
+            'IDENTITY',
+            'IDENTITY_INSERT',
+            'IDENTITY_VALUE',
+            'IDENTITYCOL',
+            'IF',
+            'IGNORE_CONSTRAINTS',
+            'IGNORE_DUP_KEY',
+            'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX',
+            'IGNORE_TRIGGERS',
+            'IMAGE',
+            'IMMEDIATE',
+            'IMPERSONATE',
+            'IMPLICIT_TRANSACTIONS',
+            'IMPORTANCE',
+            'INCLUDE',
+            'INCREMENT',
+            'INCREMENTAL',
+            'INDEX',
+            'INDEXDEFRAG',
+            'INFINITE',
+            'INFLECTIONAL',
+            'INIT',
+            'INITIATOR',
+            'INPUT',
+            'INPUTBUFFER',
+            'INSENSITIVE',
+            'INSERT',
+            'INSERTED',
+            'INSTEAD',
+            'INT',
+            'INTEGER',
+            'INTO',
+            'IO',
+            'IP',
+            'ISABOUT',
+            'ISOLATION',
+            'JOB',
+            'KB',
+            'KEEP',
+            'KEEP_CDC',
+            'KEEP_NULLS',
+            'KEEP_REPLICATION',
+            'KEEPDEFAULTS',
+            'KEEPFIXED',
+            'KEEPIDENTITY',
+            'KEEPNULLS',
+            'KERBEROS',
+            'KEY',
+            'KEY_SOURCE',
+            'KEYS',
+            'KEYSET',
+            'KILL',
+            'KILOBYTES_PER_BATCH',
+            'LABELONLY',
+            'LANGUAGE',
+            'LAST',
+            'LASTROW',
+            'LEVEL',
+            'LEVEL_1',
+            'LEVEL_2',
+            'LEVEL_3',
+            'LEVEL_4',
+            'LIFETIME',
+            'LIMIT',
+            'LINENO',
+            'LIST',
+            'LISTENER',
+            'LISTENER_IP',
+            'LISTENER_PORT',
+            'LOAD',
+            'LOADHISTORY',
+            'LOB_COMPACTION',
+            'LOCAL',
+            'LOCAL_SERVICE_NAME',
+            'LOCK_ESCALATION',
+            'LOCK_TIMEOUT',
+            'LOGIN',
+            'LOGSPACE',
+            'LOOP',
+            'LOW',
+            'MANUAL',
+            'MARK',
+            'MARK_IN_USE_FOR_REMOVAL',
+            'MASTER',
+            'MAX_CPU_PERCENT',
+            'MAX_DISPATCH_LATENCY',
+            'MAX_DOP',
+            'MAX_DURATION',
+            'MAX_EVENT_SIZE',
+            'MAX_FILES',
+            'MAX_IOPS_PER_VOLUME',
+            'MAX_MEMORY',
+            'MAX_MEMORY_PERCENT',
+            'MAX_QUEUE_READERS',
+            'MAX_ROLLOVER_FILES',
+            'MAX_SIZE',
+            'MAXDOP',
+            'MAXERRORS',
+            'MAXLENGTH',
+            'MAXRECURSION',
+            'MAXSIZE',
+            'MAXTRANSFERSIZE',
+            'MAXVALUE',
+            'MB',
+            'MEDIADESCRIPTION',
+            'MEDIANAME',
+            'MEDIAPASSWORD',
+            'MEDIUM',
+            'MEMBER',
+            'MEMORY_OPTIMIZED',
+            'MEMORY_OPTIMIZED_DATA',
+            'MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT',
+            'MEMORY_PARTITION_MODE',
+            'MERGE',
+            'MESSAGE',
+            'MESSAGE_FORWARD_SIZE',
+            'MESSAGE_FORWARDING',
+            'MICROSECOND',
+            'MILLISECOND',
+            'MIN_CPU_PERCENT',
+            'MIN_IOPS_PER_VOLUME',
+            'MIN_MEMORY_PERCENT',
+            'MINUTE',
+            'MINUTES',
+            'MINVALUE',
+            'MIRROR',
+            'MIRROR_ADDRESS',
+            'MODIFY',
+            'MONEY',
+            'MONTH',
+            'MOVE',
+            'MULTI_USER',
+            'MUST_CHANGE',
+            'NAME',
+            'NANOSECOND',
+            'NATIONAL',
+            'NATIVE_COMPILATION',
+            'NCHAR',
+            'NEGOTIATE',
+            'NESTED_TRIGGERS',
+            'NEW_ACCOUNT',
+            'NEW_BROKER',
+            'NEW_PASSWORD',
+            'NEWNAME',
+            'NEXT',
+            'NO',
+            'NO_BROWSETABLE',
+            'NO_CHECKSUM',
+            'NO_COMPRESSION',
+            'NO_EVENT_LOSS',
+            'NO_INFOMSGS',
+            'NO_TRUNCATE',
+            'NO_WAIT',
+            'NOCHECK',
+            'NOCOUNT',
+            'NOEXEC',
+            'NOEXPAND',
+            'NOFORMAT',
+            'NOINDEX',
+            'NOINIT',
+            'NOLOCK',
+            'NON',
+            'NON_TRANSACTED_ACCESS',
+            'NONCLUSTERED',
+            'NONE',
+            'NORECOMPUTE',
+            'NORECOVERY',
+            'NORESEED',
+            'NORESET',
+            'NOREWIND',
+            'NORMAL',
+            'NOSKIP',
+            'NOTIFICATION',
+            'NOTRUNCATE',
+            'NOUNLOAD',
+            'NOWAIT',
+            'NTEXT',
+            'NTLM',
+            'NUMANODE',
+            'NUMERIC',
+            'NUMERIC_ROUNDABORT',
+            'NVARCHAR',
+            'OBJECT',
+            'OF',
+            'OFF',
+            'OFFLINE',
+            'OFFSET',
+            'OFFSETS',
+            'OLD_ACCOUNT',
+            'OLD_PASSWORD',
+            'ON',
+            'ON_FAILURE',
+            'ONLINE',
+            'ONLY',
+            'OPEN',
+            'OPEN_EXISTING',
+            'OPENTRAN',
+            'OPTIMISTIC',
+            'OPTIMIZE',
+            'OPTION',
+            'ORDER',
+            'OUT',
+            'OUTPUT',
+            'OUTPUTBUFFER',
+            'OVER',
+            'OVERRIDE',
+            'OWNER',
+            'OWNERSHIP',
+            'PAD_INDEX',
+            'PAGE',
+            'PAGE_VERIFY',
+            'PAGECOUNT',
+            'PAGLOCK',
+            'PARAMETERIZATION',
+            'PARSEONLY',
+            'PARTIAL',
+            'PARTITION',
+            'PARTITIONS',
+            'PARTNER',
+            'PASSWORD',
+            'PATH',
+            'PER_CPU',
+            'PER_NODE',
+            'PERCENT',
+            'PERMISSION_SET',
+            'PERSISTED',
+            'PHYSICAL_ONLY',
+            'PLAN',
+            'POISON_MESSAGE_HANDLING',
+            'POOL',
+            'POPULATION',
+            'PORT',
+            'PRECEDING',
+            'PRECISION',
+            'PRIMARY',
+            'PRIMARY_ROLE',
+            'PRINT',
+            'PRIOR',
+            'PRIORITY',
+            'PRIORITY_LEVEL',
+            'PRIVATE',
+            'PRIVILEGES',
+            'PROC',
+            'PROCCACHE',
+            'PROCEDURE',
+            'PROCEDURE_NAME',
+            'PROCESS',
+            'PROFILE',
+            'PROPERTY',
+            'PROPERTY_DESCRIPTION',
+            'PROPERTY_INT_ID',
+            'PROPERTY_SET_GUID',
+            'PROVIDER',
+            'PROVIDER_KEY_NAME',
+            'PUBLIC',
+            'PUT',
+            'QUARTER',
+            'QUERY',
+            'QUERY_GOVERNOR_COST_LIMIT',
+            'QUEUE',
+            'QUEUE_DELAY',
+            'QUOTED_IDENTIFIER',
+            'RAISERROR',
+            'RANGE',
+            'RAW',
+            'RC2',
+            'RC4',
+            'RC4_128',
+            'READ',
+            'READ_COMMITTED_SNAPSHOT',
+            'READ_ONLY',
+            'READ_ONLY_ROUTING_LIST',
+            'READ_ONLY_ROUTING_URL',
+            'READ_WRITE',
+            'READ_WRITE_FILEGROUPS',
+            'READCOMMITTED',
+            'READCOMMITTEDLOCK',
+            'READONLY',
+            'READPAST',
+            'READTEXT',
+            'READUNCOMMITTED',
+            'READWRITE',
+            'REAL',
+            'REBUILD',
+            'RECEIVE',
+            'RECOMPILE',
+            'RECONFIGURE',
+            'RECOVERY',
+            'RECURSIVE',
+            'RECURSIVE_TRIGGERS',
+            'REFERENCES',
+            'REGENERATE',
+            'RELATED_CONVERSATION',
+            'RELATED_CONVERSATION_GROUP',
+            'RELATIVE',
+            'REMOTE',
+            'REMOTE_PROC_TRANSACTIONS',
+            'REMOTE_SERVICE_NAME',
+            'REMOVE',
+            'REORGANIZE',
+            'REPAIR_ALLOW_DATA_LOSS',
+            'REPAIR_FAST',
+            'REPAIR_REBUILD',
+            'REPEATABLE',
+            'REPEATABLEREAD',
+            'REPLICA',
+            'REPLICATION',
+            'REQUEST_MAX_CPU_TIME_SEC',
+            'REQUEST_MAX_MEMORY_GRANT_PERCENT',
+            'REQUEST_MEMORY_GRANT_TIMEOUT_SEC',
+            'REQUIRED',
+            'RESAMPLE',
+            'RESEED',
+            'RESERVE_DISK_SPACE',
+            'RESET',
+            'RESOURCE',
+            'RESTART',
+            'RESTORE',
+            'RESTRICT',
+            'RESTRICTED_USER',
+            'RESULT',
+            'RESUME',
+            'RETAINDAYS',
+            'RETENTION',
+            'RETURN',
+            'RETURNS',
+            'REVERT',
+            'REVOKE',
+            'REWIND',
+            'REWINDONLY',
+            'ROBUST',
+            'ROLE',
+            'ROLLBACK',
+            'ROLLUP',
+            'ROOT',
+            'ROUTE',
+            'ROW',
+            'ROWCOUNT',
+            'ROWGUIDCOL',
+            'ROWLOCK',
+            'ROWS',
+            'ROWS_PER_BATCH',
+            'ROWTERMINATOR',
+            'ROWVERSION',
+            'RSA_1024',
+            'RSA_2048',
+            'RSA_512',
+            'RULE',
+            'SAFE',
+            'SAFETY',
+            'SAMPLE',
+            'SAVE',
+            'SCHEDULER',
+            'SCHEMA',
+            'SCHEMA_AND_DATA',
+            'SCHEMA_ONLY',
+            'SCHEMABINDING',
+            'SCHEME',
+            'SCROLL',
+            'SCROLL_LOCKS',
+            'SEARCH',
+            'SECOND',
+            'SECONDARY',
+            'SECONDARY_ONLY',
+            'SECONDARY_ROLE',
+            'SECONDS',
+            'SECRET',
+            'SECURITY_LOG',
+            'SECURITYAUDIT',
+            'SELECT',
+            'SELECTIVE',
+            'SELF',
+            'SEND',
+            'SENT',
+            'SEQUENCE',
+            'SERIALIZABLE',
+            'SERVER',
+            'SERVICE',
+            'SERVICE_BROKER',
+            'SERVICE_NAME',
+            'SESSION',
+            'SESSION_TIMEOUT',
+            'SET',
+            'SETS',
+            'SETUSER',
+            'SHOW_STATISTICS',
+            'SHOWCONTIG',
+            'SHOWPLAN',
+            'SHOWPLAN_ALL',
+            'SHOWPLAN_TEXT',
+            'SHOWPLAN_XML',
+            'SHRINKDATABASE',
+            'SHRINKFILE',
+            'SHUTDOWN',
+            'SID',
+            'SIGNATURE',
+            'SIMPLE',
+            'SINGLE_BLOB',
+            'SINGLE_CLOB',
+            'SINGLE_NCLOB',
+            'SINGLE_USER',
+            'SINGLETON',
+            'SIZE',
+            'SKIP',
+            'SMALLDATETIME',
+            'SMALLINT',
+            'SMALLMONEY',
+            'SNAPSHOT',
+            'SORT_IN_TEMPDB',
+            'SOURCE',
+            'SPARSE',
+            'SPATIAL',
+            'SPATIAL_WINDOW_MAX_CELLS',
+            'SPECIFICATION',
+            'SPLIT',
+            'SQL',
+            'SQL_VARIANT',
+            'SQLPERF',
+            'STANDBY',
+            'START',
+            'START_DATE',
+            'STARTED',
+            'STARTUP_STATE',
+            'STAT_HEADER',
+            'STATE',
+            'STATEMENT',
+            'STATIC',
+            'STATISTICAL_SEMANTICS',
+            'STATISTICS',
+            'STATISTICS_INCREMENTAL',
+            'STATISTICS_NORECOMPUTE',
+            'STATS',
+            'STATS_STREAM',
+            'STATUS',
+            'STATUSONLY',
+            'STOP',
+            'STOP_ON_ERROR',
+            'STOPAT',
+            'STOPATMARK',
+            'STOPBEFOREMARK',
+            'STOPLIST',
+            'STOPPED',
+            'SUBJECT',
+            'SUBSCRIPTION',
+            'SUPPORTED',
+            'SUSPEND',
+            'SWITCH',
+            'SYMMETRIC',
+            'SYNCHRONOUS_COMMIT',
+            'SYNONYM',
+            'SYSNAME',
+            'SYSTEM',
+            'TABLE',
+            'TABLERESULTS',
+            'TABLESAMPLE',
+            'TABLOCK',
+            'TABLOCKX',
+            'TAKE',
+            'TAPE',
+            'TARGET',
+            'TARGET_RECOVERY_TIME',
+            'TB',
+            'TCP',
+            'TEXT',
+            'TEXTIMAGE_ON',
+            'TEXTSIZE',
+            'THEN',
+            'THESAURUS',
+            'THROW',
+            'TIES',
+            'TIME',
+            'TIMEOUT',
+            'TIMER',
+            'TIMESTAMP',
+            'TINYINT',
+            'TO',
+            'TOP',
+            'TORN_PAGE_DETECTION',
+            'TRACEOFF',
+            'TRACEON',
+            'TRACESTATUS',
+            'TRACK_CAUSALITY',
+            'TRACK_COLUMNS_UPDATED',
+            'TRAN',
+            'TRANSACTION',
+            'TRANSFER',
+            'TRANSFORM_NOISE_WORDS',
+            'TRIGGER',
+            'TRIPLE_DES',
+            'TRIPLE_DES_3KEY',
+            'TRUE',
+            'TRUNCATE',
+            'TRUNCATEONLY',
+            'TRUSTWORTHY',
+            'TRY',
+            'TSQL',
+            'TWO_DIGIT_YEAR_CUTOFF',
+            'TYPE',
+            'TYPE_WARNING',
+            'UNBOUNDED',
+            'UNCHECKED',
+            'UNCOMMITTED',
+            'UNDEFINED',
+            'UNIQUE',
+            'UNIQUEIDENTIFIER',
+            'UNKNOWN',
+            'UNLIMITED',
+            'UNLOAD',
+            'UNSAFE',
+            'UPDATE',
+            'UPDATETEXT',
+            'UPDATEUSAGE',
+            'UPDLOCK',
+            'URL',
+            'USE',
+            'USED',
+            'USER',
+            'USEROPTIONS',
+            'USING',
+            'VALID_XML',
+            'VALIDATION',
+            'VALUE',
+            'VALUES',
+            'VARBINARY',
+            'VARCHAR',
+            'VARYING',
+            'VERIFYONLY',
+            'VERSION',
+            'VIEW',
+            'VIEW_METADATA',
+            'VIEWS',
+            'VISIBILITY',
+            'WAIT_AT_LOW_PRIORITY',
+            'WAITFOR',
+            'WEEK',
+            'WEIGHT',
+            'WELL_FORMED_XML',
+            'WHEN',
+            'WHERE',
+            'WHILE',
+            'WINDOWS',
+            'WITH',
+            'WITHIN',
+            'WITHOUT',
+            'WITNESS',
+            'WORK',
+            'WORKLOAD',
+            'WRITETEXT',
+            'XACT_ABORT',
+            'XLOCK',
+            'XMAX',
+            'XMIN',
+            'XML',
+            'XMLDATA',
+            'XMLNAMESPACES',
+            'XMLSCHEMA',
+            'XQUERY',
+            'XSINIL',
+            'YEAR',
+            'YMAX',
+            'YMIN'
+        ],
+        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: [
+                {include: '@comments'},
+                {include: '@whitespace'},
+                {include: '@pseudoColumns'},
+                {include: '@numbers'},
+                {include: '@strings'},
+                {include: '@complexIdentifiers'},
+                {include: '@scopes'},
+                [/[;,.]/, 'delimiter'],
+                [/[()]/, '@brackets'],
+                [/[\w@#$]+/, {
+                    cases: {
+                        '@keywords': 'keyword',
+                        '@operators': 'operator',
+                        '@builtinVariables': 'predefined',
+                        '@builtinFunctions': 'predefined',
+                        '@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'}]
+            ]
+        }
+    };
+});

+ 10 - 0
src/main/resources/magicapi-support/monaco/language/magicscript.js

@@ -27,6 +27,7 @@ require(['vs/editor/editor.main'], function() {
             { open: '{', close: '}' },
             { open: '[', close: ']' },
             { open: '(', close: ')' },
+            {open: '"""', close: '"""', notIn: ['string.multi']},
             { open: '"', close: '"', notIn: ['string'] },
             { open: '\'', close: '\'', notIn: ['string'] },
         ],
@@ -53,6 +54,7 @@ require(['vs/editor/editor.main'], function() {
                 [/[;,.]/, 'delimiter'],
                 [/"([^"\\]|\\.)*$/, 'string.invalid'],
                 [/'([^'\\]|\\.)*$/, 'string.invalid'],
+                [/""/, 'string.multi', '@string_multi'],
                 [/"/, 'string', '@string_double'],
                 [/'/, 'string', '@string_single'],
             ],
@@ -70,6 +72,14 @@ require(['vs/editor/editor.main'], function() {
                 [/\*\//, 'comment.mul', '@pop'],
                 [/[\/*]/, 'comment.mul']
             ],
+            string_multi: [
+                [/"""/, {token: 'string.multi', next: '@pop'}],
+                [/"/, {token: 'string.multi', next: '@string_multi_embedded', nextEmbedded: 'sql'}]
+            ],
+            string_multi_embedded: [
+                [/"""/, {token: '@rematch', next: '@pop', nextEmbedded: '@pop'}],
+                [/[^"""]+/, '']
+            ],
             string_double: [
                 [/[^\\"]+/, 'string'],
                // [/@escapes/, 'string.escape'],