You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
monaco-editor/src/sql.ts

1133 lines
23 KiB
TypeScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import IRichLanguageConfiguration = monaco.languages.LanguageConfiguration;
import ILanguage = monaco.languages.IMonarchLanguage;
export var conf:IRichLanguageConfiguration = {
comments: {
lineComment: '--',
blockComment: ['/*', '*/'],
},
brackets: [['[',']'],['(',')']],
autoClosingPairs: [
{ open: '"', close: '"', notIn: ['string', 'comment'] },
{ open: '\'', close: '\'', notIn: ['string', 'comment'] },
{ open: '[', close: ']', notIn: ['string', 'comment'] },
{ open: '(', close: ')', notIn: ['string', 'comment'] },
]
// enhancedBrackets:[
// { openTrigger: 'n', open: /begin$/i, closeComplete: 'end', matchCase: true },
// { openTrigger: 'e', open: /case$/i, closeComplete: 'end', matchCase: true },
// { openTrigger: 'n', open: /when$/i, closeComplete: 'then', matchCase: true }
// ],
};
export var language = <ILanguage> {
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',
'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' }]
]
}
};