822 lines
15 KiB
JavaScript
822 lines
15 KiB
JavaScript
/*!-----------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Version: 0.36.1(6c56744c3419458f0dd48864520b759d1a3a1ca8)
|
|
* Released under the MIT license
|
|
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
|
|
*-----------------------------------------------------------------------------*/
|
|
|
|
// src/basic-languages/sql/sql.ts
|
|
var 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: "'" }
|
|
]
|
|
};
|
|
var language = {
|
|
defaultToken: "",
|
|
tokenPostfix: ".sql",
|
|
ignoreCase: true,
|
|
brackets: [
|
|
{ open: "[", close: "]", token: "delimiter.square" },
|
|
{ open: "(", close: ")", token: "delimiter.parenthesis" }
|
|
],
|
|
keywords: [
|
|
"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: [
|
|
"ALL",
|
|
"AND",
|
|
"ANY",
|
|
"BETWEEN",
|
|
"EXISTS",
|
|
"IN",
|
|
"LIKE",
|
|
"NOT",
|
|
"OR",
|
|
"SOME",
|
|
"EXCEPT",
|
|
"INTERSECT",
|
|
"UNION",
|
|
"APPLY",
|
|
"CROSS",
|
|
"FULL",
|
|
"INNER",
|
|
"JOIN",
|
|
"LEFT",
|
|
"OUTER",
|
|
"RIGHT",
|
|
"CONTAINS",
|
|
"FREETEXT",
|
|
"IS",
|
|
"NULL",
|
|
"PIVOT",
|
|
"UNPIVOT",
|
|
"MATCHED"
|
|
],
|
|
builtinFunctions: [
|
|
"AVG",
|
|
"CHECKSUM_AGG",
|
|
"COUNT",
|
|
"COUNT_BIG",
|
|
"GROUPING",
|
|
"GROUPING_ID",
|
|
"MAX",
|
|
"MIN",
|
|
"SUM",
|
|
"STDEV",
|
|
"STDEVP",
|
|
"VAR",
|
|
"VARP",
|
|
"CUME_DIST",
|
|
"FIRST_VALUE",
|
|
"LAG",
|
|
"LAST_VALUE",
|
|
"LEAD",
|
|
"PERCENTILE_CONT",
|
|
"PERCENTILE_DISC",
|
|
"PERCENT_RANK",
|
|
"COLLATE",
|
|
"COLLATIONPROPERTY",
|
|
"TERTIARY_WEIGHTS",
|
|
"FEDERATION_FILTERING_VALUE",
|
|
"CAST",
|
|
"CONVERT",
|
|
"PARSE",
|
|
"TRY_CAST",
|
|
"TRY_CONVERT",
|
|
"TRY_PARSE",
|
|
"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_STATUS",
|
|
"DATALENGTH",
|
|
"IDENT_CURRENT",
|
|
"IDENT_INCR",
|
|
"IDENT_SEED",
|
|
"IDENTITY",
|
|
"SQL_VARIANT_PROPERTY",
|
|
"CURRENT_TIMESTAMP",
|
|
"DATEADD",
|
|
"DATEDIFF",
|
|
"DATEFROMPARTS",
|
|
"DATENAME",
|
|
"DATEPART",
|
|
"DATETIME2FROMPARTS",
|
|
"DATETIMEFROMPARTS",
|
|
"DATETIMEOFFSETFROMPARTS",
|
|
"DAY",
|
|
"EOMONTH",
|
|
"GETDATE",
|
|
"GETUTCDATE",
|
|
"ISDATE",
|
|
"MONTH",
|
|
"SMALLDATETIMEFROMPARTS",
|
|
"SWITCHOFFSET",
|
|
"SYSDATETIME",
|
|
"SYSDATETIMEOFFSET",
|
|
"SYSUTCDATETIME",
|
|
"TIMEFROMPARTS",
|
|
"TODATETIMEOFFSET",
|
|
"YEAR",
|
|
"CHOOSE",
|
|
"COALESCE",
|
|
"IIF",
|
|
"NULLIF",
|
|
"ABS",
|
|
"ACOS",
|
|
"ASIN",
|
|
"ATAN",
|
|
"ATN2",
|
|
"CEILING",
|
|
"COS",
|
|
"COT",
|
|
"DEGREES",
|
|
"EXP",
|
|
"FLOOR",
|
|
"LOG",
|
|
"LOG10",
|
|
"PI",
|
|
"POWER",
|
|
"RADIANS",
|
|
"RAND",
|
|
"ROUND",
|
|
"SIGN",
|
|
"SIN",
|
|
"SQRT",
|
|
"SQUARE",
|
|
"TAN",
|
|
"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",
|
|
"DENSE_RANK",
|
|
"NTILE",
|
|
"RANK",
|
|
"ROW_NUMBER",
|
|
"PUBLISHINGSERVERNAME",
|
|
"OPENDATASOURCE",
|
|
"OPENQUERY",
|
|
"OPENROWSET",
|
|
"OPENXML",
|
|
"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",
|
|
"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",
|
|
"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",
|
|
"TEXTPTR",
|
|
"TEXTVALID",
|
|
"COLUMNS_UPDATED",
|
|
"EVENTDATA",
|
|
"TRIGGER_NESTLEVEL",
|
|
"UPDATE",
|
|
"CHANGETABLE",
|
|
"CHANGE_TRACKING_CONTEXT",
|
|
"CHANGE_TRACKING_CURRENT_VERSION",
|
|
"CHANGE_TRACKING_IS_COLUMN_IN_MASK",
|
|
"CHANGE_TRACKING_MIN_VALID_VERSION",
|
|
"CONTAINSTABLE",
|
|
"FREETEXTTABLE",
|
|
"SEMANTICKEYPHRASETABLE",
|
|
"SEMANTICSIMILARITYDETAILSTABLE",
|
|
"SEMANTICSIMILARITYTABLE",
|
|
"FILETABLEROOTPATH",
|
|
"GETFILENAMESPACEPATH",
|
|
"GETPATHLOCATOR",
|
|
"PATHNAME",
|
|
"GET_TRANSMISSION_STATUS"
|
|
],
|
|
builtinVariables: [
|
|
"@@DATEFIRST",
|
|
"@@DBTS",
|
|
"@@LANGID",
|
|
"@@LANGUAGE",
|
|
"@@LOCK_TIMEOUT",
|
|
"@@MAX_CONNECTIONS",
|
|
"@@MAX_PRECISION",
|
|
"@@NESTLEVEL",
|
|
"@@OPTIONS",
|
|
"@@REMSERVER",
|
|
"@@SERVERNAME",
|
|
"@@SERVICENAME",
|
|
"@@SPID",
|
|
"@@TEXTSIZE",
|
|
"@@VERSION",
|
|
"@@CURSOR_ROWS",
|
|
"@@FETCH_STATUS",
|
|
"@@DATEFIRST",
|
|
"@@PROCID",
|
|
"@@ERROR",
|
|
"@@IDENTITY",
|
|
"@@ROWCOUNT",
|
|
"@@TRANCOUNT",
|
|
"@@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: {
|
|
"@operators": "operator",
|
|
"@builtinVariables": "predefined",
|
|
"@builtinFunctions": "predefined",
|
|
"@keywords": "keyword",
|
|
"@default": "identifier"
|
|
}
|
|
}
|
|
],
|
|
[/[<>=!%&+\-*/|~^]/, "operator"]
|
|
],
|
|
whitespace: [[/\s+/, "white"]],
|
|
comments: [
|
|
[/--+.*/, "comment"],
|
|
[/\/\*/, { token: "comment.quote", next: "@comment" }]
|
|
],
|
|
comment: [
|
|
[/[^*/]+/, "comment"],
|
|
[/\*\//, { 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 {
|
|
conf,
|
|
language
|
|
};
|