1 | Prism.languages.kusto = {
|
2 | 'comment': {
|
3 | pattern: /\/\/.*/,
|
4 | greedy: true
|
5 | },
|
6 | 'string': {
|
7 | pattern: /```[\s\S]*?```|[hH]?(?:"(?:[^\r\n\\"]|\\.)*"|'(?:[^\r\n\\']|\\.)*'|@(?:"[^\r\n"]*"|'[^\r\n']*'))/,
|
8 | greedy: true
|
9 | },
|
10 |
|
11 | 'verb': {
|
12 | pattern: /(\|\s*)[a-z][\w-]*/i,
|
13 | lookbehind: true,
|
14 | alias: 'keyword'
|
15 | },
|
16 |
|
17 | 'command': {
|
18 | pattern: /\.[a-z][a-z\d-]*\b/,
|
19 | alias: 'keyword'
|
20 | },
|
21 |
|
22 | 'class-name': /\b(?:bool|datetime|decimal|dynamic|guid|int|long|real|string|timespan)\b/,
|
23 | 'keyword': /\b(?:access|alias|and|anti|as|asc|auto|between|by|database|declare|desc|external|from|fullouter|has_all|in|ingestion|inline|inner|innerunique|into|let|like|local|not|of|on|or|pattern|print|query_parameters|range|restrict|schema|set|step|table|tables|to|view|where|with|(?:has(?:perfix|suffix)?|contains|(?:starts|ends)with)(?:_cs)?|(?:left|right)(?:anti(?:semi)?|inner|outer|semi)?|matches\s+regex|nulls\s+(?:first|last))(?![\w-])/,
|
24 | 'boolean': /\b(?:true|false|null)\b/,
|
25 |
|
26 | 'function': /\b[a-z_]\w*(?=\s*\()/,
|
27 |
|
28 | 'datetime': [
|
29 | {
|
30 |
|
31 | pattern: /\b(?:(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)\s*,\s*)?\d{1,2}(?:\s+|-)(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(?:\s+|-)\d{2}\s+\d{2}:\d{2}(?::\d{2})?(?:\s*(?:\b(?:(?:U|GM|[ECMT][DS])T|[A-Z])|[+-]\d{4}))?\b/,
|
32 | alias: 'number'
|
33 | },
|
34 | {
|
35 |
|
36 | pattern: /[+-]?\b(?:\d{4}-\d{2}-\d{2}(?:[ T]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)?|\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)Z?/,
|
37 | alias: 'number'
|
38 | }
|
39 | ],
|
40 | 'number': /\b(?:0x[0-9A-Fa-f]+|\d+(?:\.\d+)?(?:[Ee][+-]?\d+)?)(?:(?:min|sec|[mnµ]s|tick|microsecond|[dhms])\b)?|[+-]?\binf\b/,
|
41 |
|
42 | 'operator': /=>|[!=]~|[!=<>]=?|[-+*/%|]|\.\./,
|
43 | 'punctuation': /[()\[\]{},;.:]/
|
44 | };
|