dolphindb 2.0.964 → 2.0.966
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/language.js +68 -47
- package/language.js.map +1 -1
- package/package.json +1 -1
- package/.eslintrc.json +0 -148
- package/.eslintrc.schema.json +0 -1509
- package/.vscode/extensions.json +0 -10
- package/.vscode/launch.template.json +0 -16
- package/.vscode/settings.json +0 -13
- package/.vscode/settings.template.json +0 -13
package/language.js
CHANGED
|
@@ -1,61 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
'
|
|
4
|
-
'
|
|
5
|
-
'
|
|
6
|
-
'defg',
|
|
7
|
-
'map',
|
|
8
|
-
'mapr',
|
|
9
|
-
'timer',
|
|
10
|
-
// 流程控制
|
|
11
|
-
'if',
|
|
12
|
-
'else',
|
|
13
|
-
'do',
|
|
14
|
-
'for',
|
|
15
|
-
'while',
|
|
16
|
-
'return',
|
|
17
|
-
'continue',
|
|
18
|
-
'break',
|
|
19
|
-
'try',
|
|
20
|
-
'catch',
|
|
21
|
-
'throw',
|
|
22
|
-
'go',
|
|
23
|
-
// 模块
|
|
24
|
-
'use',
|
|
25
|
-
'module',
|
|
26
|
-
// 仅 Python 有的
|
|
27
|
-
'async',
|
|
28
|
-
'await',
|
|
29
|
-
'class',
|
|
30
|
-
'del',
|
|
31
|
-
'elif',
|
|
32
|
-
'except',
|
|
33
|
-
'finally',
|
|
34
|
-
'global',
|
|
35
|
-
'import',
|
|
36
|
-
'is',
|
|
37
|
-
'lambda',
|
|
38
|
-
'nonlocal',
|
|
39
|
-
'not',
|
|
40
|
-
'or',
|
|
41
|
-
'pass',
|
|
42
|
-
'raise',
|
|
43
|
-
'yield',
|
|
44
|
-
// --- SQL
|
|
1
|
+
const sql_keywords = [
|
|
2
|
+
// 不要单独算关键字比较好
|
|
3
|
+
// 'column',
|
|
4
|
+
// 'table',
|
|
5
|
+
// 'database',
|
|
45
6
|
'select',
|
|
46
7
|
'exec',
|
|
47
8
|
'update',
|
|
48
9
|
'insert',
|
|
49
|
-
'
|
|
10
|
+
'insert into',
|
|
50
11
|
'create table',
|
|
51
12
|
'create database',
|
|
52
|
-
'alter',
|
|
13
|
+
'alter table',
|
|
14
|
+
// alter table ... add column_name datatype
|
|
15
|
+
'add',
|
|
16
|
+
'rename',
|
|
17
|
+
'to',
|
|
18
|
+
'drop',
|
|
19
|
+
'drop table',
|
|
20
|
+
'drop database',
|
|
53
21
|
'delete',
|
|
54
22
|
'transaction',
|
|
55
23
|
'inner join',
|
|
56
24
|
'full join',
|
|
25
|
+
'full outer join',
|
|
57
26
|
'left join',
|
|
27
|
+
'left outer join',
|
|
58
28
|
'right join',
|
|
29
|
+
'right outer join',
|
|
59
30
|
'left semijoin',
|
|
60
31
|
'cross join',
|
|
61
32
|
'context by',
|
|
@@ -64,6 +35,7 @@ export const keywords = [
|
|
|
64
35
|
'pivot by',
|
|
65
36
|
'order by',
|
|
66
37
|
'cgroup by',
|
|
38
|
+
'partition by',
|
|
67
39
|
'csort',
|
|
68
40
|
'limit',
|
|
69
41
|
'top',
|
|
@@ -75,17 +47,66 @@ export const keywords = [
|
|
|
75
47
|
'set',
|
|
76
48
|
'as',
|
|
77
49
|
'in',
|
|
50
|
+
'or',
|
|
51
|
+
'not',
|
|
78
52
|
'on',
|
|
53
|
+
'like',
|
|
79
54
|
'values',
|
|
80
55
|
'exists',
|
|
81
56
|
'distinct',
|
|
57
|
+
'map',
|
|
82
58
|
'between', 'and',
|
|
83
59
|
'is null', 'is not null',
|
|
84
60
|
// case when ... then ... end
|
|
85
|
-
'case', 'when', 'then', 'end',
|
|
61
|
+
'case', 'when', 'then', 'else', 'end',
|
|
86
62
|
'union', 'union all',
|
|
87
63
|
'nulls first', 'nulls last',
|
|
88
64
|
'asc', 'desc',
|
|
65
|
+
];
|
|
66
|
+
export const keywords = [
|
|
67
|
+
'assert',
|
|
68
|
+
'const',
|
|
69
|
+
'mutable',
|
|
70
|
+
'def',
|
|
71
|
+
'defg',
|
|
72
|
+
// 'map',
|
|
73
|
+
'mapr',
|
|
74
|
+
'timer',
|
|
75
|
+
// 流程控制
|
|
76
|
+
'if',
|
|
77
|
+
// 'else',
|
|
78
|
+
'do',
|
|
79
|
+
'for',
|
|
80
|
+
'while',
|
|
81
|
+
'return',
|
|
82
|
+
'continue',
|
|
83
|
+
'break',
|
|
84
|
+
'try',
|
|
85
|
+
'catch',
|
|
86
|
+
'throw',
|
|
87
|
+
'go',
|
|
88
|
+
// 模块
|
|
89
|
+
'use',
|
|
90
|
+
'module',
|
|
91
|
+
// 仅 Python 有的
|
|
92
|
+
'async',
|
|
93
|
+
'await',
|
|
94
|
+
'class',
|
|
95
|
+
'del',
|
|
96
|
+
'elif',
|
|
97
|
+
'except',
|
|
98
|
+
'finally',
|
|
99
|
+
'global',
|
|
100
|
+
'import',
|
|
101
|
+
'is',
|
|
102
|
+
'lambda',
|
|
103
|
+
'nonlocal',
|
|
104
|
+
'pass',
|
|
105
|
+
'raise',
|
|
106
|
+
'yield',
|
|
107
|
+
// --- SQL
|
|
108
|
+
...sql_keywords,
|
|
109
|
+
...sql_keywords.map(keyword => keyword.toUpperCase())
|
|
89
110
|
].sort((l, r) => {
|
|
90
111
|
const delta_len = l.length - r.length;
|
|
91
112
|
if (delta_len !== 0)
|
package/language.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language.js","sourceRoot":"","sources":["language.ts"],"names":[],"mappings":"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","sourcesContent":["export const keywords = [\n 'assert',\n \n 'const',\n 'mutable',\n \n 'def',\n 'defg',\n \n 'map',\n 'mapr',\n \n 'timer',\n \n // 流程控制\n 'if',\n 'else',\n 'do',\n 'for',\n 'while',\n 'return',\n 'continue',\n 'break',\n 'try',\n 'catch',\n 'throw',\n 'go',\n \n // 模块\n 'use',\n 'module',\n \n \n // 仅 Python 有的\n 'async',\n 'await',\n 'class',\n 'del',\n 'elif',\n 'except',\n 'finally',\n 'global',\n 'import',\n 'is',\n 'lambda',\n 'nonlocal',\n 'not',\n 'or',\n 'pass',\n 'raise',\n 'yield',\n \n \n \n // --- SQL\n 'select',\n 'exec',\n 'update',\n 'insert',\n 'create',\n 'create table',\n 'create database',\n 'alter',\n 'delete',\n \n 'transaction',\n \n 'inner join',\n 'full join',\n 'left join',\n 'right join',\n 'left semijoin',\n 'cross join',\n \n 'context by',\n 'partitioned by',\n 'group by',\n 'pivot by',\n 'order by',\n 'cgroup by',\n \n 'csort',\n 'limit',\n 'top',\n \n 'into',\n 'from',\n 'where',\n 'having',\n 'with',\n 'set',\n 'as',\n 'in',\n 'on',\n 'values',\n 'exists',\n 'distinct',\n \n 'between', 'and', // between ... and ...\n \n 'is null', 'is not null',\n \n // case when ... then ... end\n 'case', 'when', 'then', 'end',\n \n 'union', 'union all',\n \n 'nulls first', 'nulls last',\n \n 'asc', 'desc',\n].sort((l, r) => { // 长的在前面,正则表达式先匹配全部,而不是部分单词,防止高亮显示不正确\n const delta_len = l.length - r.length\n if (delta_len !== 0)\n return -delta_len\n \n return 0 // 否则保留原本顺序\n})\n\n\nexport const constants = [\n 'NULL',\n 'true',\n 'false',\n 'pi',\n 'e',\n \n // --- form\n 'SCALAR',\n 'VECTOR',\n 'PAIR',\n 'MATRIX',\n 'SET',\n 'DICT',\n 'TABLE',\n // 'CHART',\n // 'CHUNK',\n \n // --- type\n 'VOID',\n 'BOOL',\n 'CHAR',\n 'SHORT',\n 'INT', 'INDEX',\n 'LONG',\n 'DATE',\n 'MONTH',\n 'TIME',\n 'MINUTE',\n 'SECOND',\n 'DATETIME',\n 'TIMESTAMP',\n 'NANOTIME',\n 'NANOTIMESTAMP',\n 'FLOAT',\n 'DOUBLE',\n 'SYMBOL',\n 'STRING',\n 'UUID',\n 'FUNCTIONDEF',\n 'HANDLE',\n 'CODE',\n 'DATASOURCE',\n 'RESOURCE',\n 'ANY',\n // 'COMPRESS',\n 'DICTIONARY',\n 'DATEHOUR',\n 'IPADDR',\n 'INT128',\n 'BLOB',\n 'COMPLEX',\n 'POINT',\n 'DURATION',\n 'OBJECT',\n 'DECIMAL32',\n 'DECIMAL64',\n \n // partition type\n 'SEQ',\n 'RANGE',\n 'HASH',\n 'VALUE',\n 'LIST',\n 'COMPO',\n \n \n // defined\n // https://www.dolphindb.cn/cn/help/FunctionsandCommands/FunctionReferences/d/defined.html\n 'VAR',\n 'SHARED',\n 'DEF',\n 'GLOBAL',\n \n \n // 用户权限管理\n // https://www.dolphindb.cn/cn/help/200/SystemManagement/UserAccessControl.html\n // https://www.dolphindb.cn/cn/help/200/FunctionsandCommands/CommandsReferences/d/deny.html\n 'TABLE_READ',\n 'TABLE_WRITE',\n 'TABLE_INSERT',\n 'TABLE_UPDATE',\n 'TABLE_DELETE',\n \n 'DBOBJ_CREATE',\n 'DBOBJ_DELETE',\n \n 'DB_DELETE',\n 'DB_INSERT',\n 'DB_MANAGE',\n 'DB_OWNER',\n 'DB_READ',\n 'DB_UPDATE',\n 'DB_WRITE',\n \n 'SCRIPT_EXEC',\n 'TASK_GROUP_MEM_LIMIT',\n 'TEST_EXEC',\n 'VIEW_EXEC',\n 'QUERY_RESULT_MEM_LIMIT',\n \n \n // hint\n // https://www.dolphindb.cn/cn/help/200/FunctionsandCommands/FunctionReferences/s/sql.html\n 'HINT_HASH',\n 'HINT_SNAPSHOT',\n 'HINT_KEEPORDER',\n 'HINT_SEQ',\n 'HINT_EXPLAIN',\n 'HINT_VECTORIZED',\n \n \n // --- seek mode\n 'HEAD',\n 'CURRENT',\n 'TAIL',\n \n // --- chart type\n // https://www.dolphindb.cn/cn/help/200/FunctionsandCommands/FunctionReferences/p/plot.html\n 'LINE',\n 'PIE',\n 'COLUMN',\n 'BAR',\n 'AREA',\n 'SCATTER',\n 'HISTOGRAM',\n 'KLINE',\n \n \n // --- log level\n 'DEBUG',\n 'INFO',\n 'WARNING',\n 'ERROR',\n \n // keep duplicates\n // https://www.dolphindb.cn/cn/help/200/FunctionsandCommands/FunctionReferences/c/createPartitionedTable.html?highlight=first\n 'FIRST',\n 'LAST',\n 'ALL',\n \n // keep\n // https://www.dolphindb.cn/cn/help/200/FunctionsandCommands/FunctionReferences/i/isDuplicated.html?highlight=none\n 'NONE',\n \n 'HASH_PTN',\n \n // 仅 Python 有的\n 'True',\n 'False',\n 'None',\n \n] as const\n\n\n\nexport const tm_language = {\n $schema: 'https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json',\n \n name: 'DolphinDB',\n \n scopeName: 'source.dolphindb',\n \n patterns: [\n {\n match: '\\\\.\\\\.\\\\.',\n name: 'invalid.ellipsis.dolphindb'\n },\n {\n include: '#keyword'\n },\n {\n include: '#literal'\n },\n {\n include: '#comment'\n },\n {\n include: '#decorator'\n },\n {\n include: '#variable'\n },\n {\n include: '#operator'\n },\n {\n include: '#method_call'\n },\n {\n include: '#function_call'\n },\n {\n include: '#property'\n },\n {\n match: ';',\n name: 'punctuation.terminator.statement.dolphindb'\n },\n {\n match: ',',\n name: 'punctuation.separator.commma.dolphindb'\n }\n ],\n \n \n repository: {\n keyword: {\n // \\b: word boundary\n // (?<![.$]): boundary 不是 . 或 $\n // ?!\\s*: 不是 label\n match: `\\\\b(?<![.$])(${keywords.join('|')})(?!(\\\\s*:|\\\\())\\\\b`,\n name: 'keyword.control.dolphindb'\n },\n \n literal: {\n patterns: [\n { include: '#constant' },\n { include: '#datetime' },\n { include: '#string' },\n { include: '#number' },\n ]\n },\n \n constant: {\n match: `\\\\b(?<![.$])(${constants.join('|')})(?!\\\\s*:)\\\\b`,\n name: 'constant.language.int.dolphindb'\n },\n \n decorator: {\n match: '^@testing',\n name: 'meta.decorator.dolphindb',\n },\n \n datetime: {\n patterns: [\n {\n match: '\\\\b[0-9]{4}[.][0-9]{2}[.][0-9]{2}[T ][0-9]{2}:[0-9]{2}:[0-9]{2}([.][0-9]{3,9})?\\\\b',\n name: 'constant.numeric.datetime.datetime.dolphindb',\n },\n {\n match: '\\\\b[0-9]{4}\\\\.[0-9]{2}M\\\\b',\n name: 'constant.numeric.datetime.month.dolphindb',\n },\n {\n match: '\\\\b[0-9]{4}\\\\.[0-9]{2}\\\\.[0-9]{2}\\\\b',\n name: 'constant.numeric.datetime.date.dolphindb',\n },\n {\n match: '\\\\b[0-9]{2}:[0-9]{2}:[0-9]{2}([.][0-9]{3,9})?\\\\b',\n name: 'constant.numeric.datetime.time.dolphindb',\n },\n {\n match: '\\\\b[0-9]{2}:[0-9]{2}m\\\\b',\n name: 'constant.numeric.datetime.minute.dolphindb',\n },\n ]\n },\n \n string: {\n patterns: [\n {\n include: '#string_single_quoted'\n },\n {\n include: '#string_double_quoted'\n },\n {\n begin: \"'''\",\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.string.begin.dolphindb'\n }\n },\n end: \"'''\",\n endCaptures: {\n 0: {\n name: 'punctuation.definition.string.end.dolphindb'\n }\n },\n name: 'string.quoted.single.heredoc.dolphindb',\n patterns: [\n {\n captures: {\n 1: {\n name: 'punctuation.definition.escape.backslash.dolphindb'\n }\n },\n match: '(\\\\\\\\).',\n name: 'constant.character.escape.backslash.dolphindb'\n }\n ]\n },\n {\n begin: '\"\"\"',\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.string.begin.dolphindb'\n }\n },\n end: '\"\"\"',\n endCaptures: {\n 0: {\n name: 'punctuation.definition.string.end.dolphindb'\n }\n },\n name: 'string.quoted.double.heredoc.dolphindb',\n patterns: [\n {\n captures: {\n 1: {\n name: 'punctuation.definition.escape.backslash.dolphindb'\n }\n },\n match: '(\\\\\\\\).',\n name: 'constant.character.escape.backslash.dolphindb'\n },\n {\n include: '#interpolated_dolphindb'\n }\n ]\n },\n {\n match: '`[\\\\w\\\\.]+',\n name: 'string.quoted.other.dolphindb'\n },\n {\n match: '(`)(.*)(`)',\n name: 'string.quoted.script.dolphindb',\n captures: {\n 1: {\n name: 'punctuation.definition.string.begin.dolphindb'\n },\n 2: {\n name: 'source.js.embedded.dolphindb',\n patterns: [\n {\n include: 'source.js'\n }\n ]\n },\n 3: {\n name: 'punctuation.definition.string.end.dolphindb'\n }\n }\n }\n ]\n },\n \n number: {\n patterns: [\n {\n match: '\\\\b[01]+[bB]\\\\b',\n name: 'constant.numeric.binary.dolphindb'\n },\n {\n // 97c\n match: '\\\\b[0-9]+([clhsmyM]|ms)\\\\b',\n name: 'constant.numeric.dolphindb'\n },\n {\n // 1.2f, 1f\n match: '\\\\b[0-9]+(\\\\.[0-9]+)?f\\\\b',\n name: 'constant.numeric.dolphindb'\n },\n {\n match: \n '(?x)\\n' +\n '(?:\\n' +\n ' (?:\\\\b[0-9]+(\\\\.)[0-9]+[eE][+-]?[0-9]+\\\\b)| # 1.1E+3\\n' +\n ' (?:\\\\b[0-9]+(\\\\.)[eE][+-]?[0-9]+\\\\b)| # 1.E+3\\n' +\n ' (?:\\\\b(\\\\.)[0-9]+[eE][+-]?[0-9]+\\\\b)| # .1E+3\\n' +\n ' (?:\\\\b[0-9]+[eE][+-]?[0-9]+\\\\b)| # 1E+3\\n' +\n ' (?:\\\\b[0-9]+(\\\\.)[0-9]+\\\\b)| # 1.1\\n' +\n ' (?:\\\\b[0-9]+(?=\\\\.{2,3}))| # 1 followed by a slice\\n' +\n ' (?:\\\\b[0-9]+(\\\\.)\\\\b)| # 1.\\n' +\n ' (?:\\\\b(\\\\.)[0-9]+\\\\b)| # .1\\n' +\n ' (?:\\\\b[0-9]+\\\\b(?!\\\\.)) # 1\\n' +\n ')\\n',\n \n captures: {\n 0: {\n name: 'constant.numeric.decimal.dolphindb'\n },\n 1: {\n name: 'punctuation.separator.decimal.period.dolphindb'\n },\n 2: {\n name: 'punctuation.separator.decimal.period.dolphindb'\n },\n 3: {\n name: 'punctuation.separator.decimal.period.dolphindb'\n },\n 4: {\n name: 'punctuation.separator.decimal.period.dolphindb'\n },\n 5: {\n name: 'punctuation.separator.decimal.period.dolphindb'\n },\n 6: {\n name: 'punctuation.separator.decimal.period.dolphindb'\n }\n }\n },\n ]\n },\n \n string_single_quoted: {\n patterns: [\n {\n begin: \"'\",\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.string.begin.dolphindb'\n }\n },\n end: \"'\",\n endCaptures: {\n 0: {\n name: 'punctuation.definition.string.end.dolphindb'\n }\n },\n name: 'string.quoted.single.dolphindb',\n patterns: [\n {\n captures: {\n 1: {\n name: 'punctuation.definition.escape.backslash.dolphindb'\n }\n },\n match: '(\\\\\\\\)(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)',\n name: 'constant.character.escape.backslash.dolphindb'\n }\n ]\n }\n ]\n },\n \n string_double_quoted: {\n patterns: [\n {\n begin: '\"',\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.string.begin.dolphindb'\n }\n },\n end: '\"',\n endCaptures: {\n 0: {\n name: 'punctuation.definition.string.end.dolphindb'\n }\n },\n name: 'string.quoted.double.dolphindb',\n patterns: [\n {\n captures: {\n 1: {\n name: 'punctuation.definition.escape.backslash.dolphindb'\n }\n },\n match: '(\\\\\\\\)(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)',\n name: 'constant.character.escape.backslash.dolphindb'\n },\n {\n include: '#interpolated_dolphindb'\n }\n ]\n }\n ]\n },\n \n function_call: {\n patterns: [\n {\n begin: '(@)?([\\\\w$]+!?)\\\\s*(?=\\\\()',\n beginCaptures: {\n 1: {\n name: 'variable.other.readwrite.instance.dolphindb'\n },\n 2: {\n patterns: [\n {\n include: '#function_name'\n }\n ]\n }\n },\n end: '(?<=\\\\))',\n name: 'meta.function-call.dolphindb',\n patterns: [\n {\n include: '#arguments'\n }\n ]\n }\n ]\n },\n \n function_name: {\n patterns: [\n {\n match: '[a-zA-Z_$][\\\\w$]*',\n name: 'entity.name.function.dolphindb'\n },\n {\n match: '\\\\d[\\\\w$]*',\n name: 'invalid.illegal.identifier.dolphindb'\n }\n ]\n },\n \n function_params: {\n patterns: [\n {\n begin: '\\\\(',\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.parameters.begin.bracket.round.dolphindb'\n }\n },\n end: '\\\\)',\n endCaptures: {\n 0: {\n name: 'punctuation.definition.parameters.end.bracket.round.dolphindb'\n }\n },\n name: 'meta.parameters.dolphindb',\n patterns: [\n {\n include: '#variable'\n },\n {\n match: '(@(?:[a-zA-Z_$][\\\\w$]*)?)(\\\\.\\\\.\\\\.)?',\n captures: {\n 1: {\n name: 'variable.parameter.function.readwrite.instance.dolphindb'\n },\n 2: {\n name: 'keyword.operator.splat.dolphindb'\n }\n }\n },\n {\n include: '$self'\n }\n ]\n }\n ]\n },\n \n comment: {\n patterns: [\n {\n begin: '/\\\\*',\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.comment.dolphindb'\n }\n },\n end: '\\\\*/',\n endCaptures: {\n 0: {\n name: 'punctuation.definition.comment.dolphindb'\n }\n },\n name: 'comment.block.dolphindb'\n },\n {\n begin: '//',\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.comment.dolphindb'\n }\n },\n end: '$',\n name: 'comment.line.number-sign.dolphindb'\n },\n {\n begin: '#',\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.comment.dolphindb'\n }\n },\n end: '$',\n name: 'comment.line.number-sign.dolphindb'\n }\n ]\n },\n \n arguments: {\n patterns: [\n {\n begin: '\\\\(',\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.arguments.begin.bracket.round.dolphindb'\n }\n },\n end: '\\\\)',\n endCaptures: {\n 0: {\n name: 'punctuation.definition.arguments.end.bracket.round.dolphindb'\n }\n },\n name: 'meta.arguments.dolphindb',\n patterns: [\n {\n include: '$self'\n },\n {\n include: '#literal'\n },\n {\n include: '#variable'\n }\n ]\n }\n ]\n },\n \n variable: {\n patterns: [\n {\n match: '(@)([a-zA-Z_\\\\$]\\\\w*)?',\n name: 'variable.other.readwrite.instance.dolphindb'\n }\n ]\n },\n \n interpolated_dolphindb: {\n patterns: [\n {\n begin: '\\\\#\\\\{',\n captures: {\n 0: {\n name: 'punctuation.section.embedded.dolphindb'\n }\n },\n end: '\\\\}',\n name: 'source.dolphindb.embedded.source',\n patterns: [\n {\n include: '$self'\n }\n ]\n }\n ]\n },\n \n method_call: {\n patterns: [\n {\n begin: '(?:(\\\\.)|(::))\\\\s*([\\\\w$]+!?)(?=\\\\()',\n beginCaptures: {\n 1: {\n name: 'punctuation.separator.method.period.dolphindb'\n },\n 2: {\n name: 'keyword.operator.prototype.dolphindb'\n },\n 3: {\n patterns: [\n {\n include: '#method_name'\n }\n ]\n }\n },\n end: '(?<=\\\\))',\n name: 'meta.method-call.dolphindb',\n patterns: [\n {\n include: '#arguments'\n }\n ]\n }\n ]\n },\n \n method_name: {\n patterns: [\n {\n match: '[a-zA-Z_$][\\\\w$]*',\n name: 'entity.name.function.dolphindb'\n },\n {\n match: '\\\\d[\\\\w$]*',\n name: 'invalid.illegal.identifier.dolphindb'\n }\n ]\n },\n \n operator: {\n patterns: [\n {\n match: '<<|>>',\n name: 'keyword.operator.bitwise.shift.dolphindb'\n },\n {\n match: '!=|<=|>=|==|>|<',\n name: 'keyword.operator.comparison.dolphindb'\n },\n {\n match: '<-|->',\n name: 'keyword.operator.join.dolphindb'\n },\n {\n match: '&&|!|\\\\|\\\\|',\n name: 'keyword.operator.logical.dolphindb'\n },\n {\n match: '&|\\\\||\\\\^',\n name: 'keyword.operator.bitwise.dolphindb'\n },\n {\n match: '\\\\.\\\\.',\n name: 'keyword.operator.splat.dolphindb'\n },\n {\n match: '\\\\?',\n name: 'keyword.operator.existential.dolphindb'\n },\n {\n match: '/|<-|%|\\\\*|/|-|\\\\$|\\\\+',\n name: 'keyword.operator.dolphindb'\n },\n {\n match: '([a-zA-Z$_][\\\\w$]*)?\\\\s*(=|:(?!:))(?![>=])',\n captures: {\n 1: {\n name: 'variable.assignment.dolphindb'\n },\n 2: {\n name: 'keyword.operator.assignment.dolphindb'\n }\n }\n }\n ]\n },\n \n property: {\n patterns: [\n {\n match: '(?:(\\\\.)|(::))\\\\s*([A-Z][A-Z0-9_$]*\\\\b\\\\$*)(?=\\\\s*\\\\??(\\\\.\\\\s*[a-zA-Z_$]\\\\w*|::))',\n captures: {\n 1: {\n name: 'punctuation.separator.property.period.dolphindb'\n },\n 2: {\n name: 'keyword.operator.prototype.dolphindb'\n },\n 3: {\n name: 'constant.other.object.property.dolphindb'\n }\n }\n },\n {\n match: '(?:(\\\\.)|(::))\\\\s*(\\\\$*[a-zA-Z_$][\\\\w$]*)(?=\\\\s*\\\\??(\\\\.\\\\s*[a-zA-Z_$]\\\\w*|::))',\n captures: {\n 1: {\n name: 'punctuation.separator.property.period.dolphindb'\n },\n 2: {\n name: 'keyword.operator.prototype.dolphindb'\n },\n 3: {\n name: 'variable.other.object.property.dolphindb'\n }\n }\n },\n {\n match: '(?:(\\\\.)|(::))\\\\s*([A-Z][A-Z0-9_$]*\\\\b\\\\$*)',\n captures: {\n 1: {\n name: 'punctuation.separator.property.period.dolphindb'\n },\n 2: {\n name: 'keyword.operator.prototype.dolphindb'\n },\n 3: {\n name: 'constant.other.property.dolphindb'\n }\n }\n },\n {\n match: '(?:(\\\\.)|(::))\\\\s*(\\\\$*[a-zA-Z_$][\\\\w$]*)',\n captures: {\n 1: {\n name: 'punctuation.separator.property.period.dolphindb'\n },\n 2: {\n name: 'keyword.operator.prototype.dolphindb'\n },\n 3: {\n name: 'variable.other.property.dolphindb'\n }\n }\n },\n {\n match: '(?:(\\\\.)|(::))\\\\s*([0-9][\\\\w$]*)',\n captures: {\n 1: {\n name: 'punctuation.separator.property.period.dolphindb'\n },\n 2: {\n name: 'keyword.operator.prototype.dolphindb'\n },\n 3: {\n name: 'invalid.illegal.identifier.dolphindb'\n }\n }\n }\n ]\n }\n }\n} as Block\n\n\ninterface Block {\n patterns: Pattern[]\n repository?: Record<string, Pattern | Block>\n}\n\ntype Pattern = Match | Include | Block\n\ntype Match = MatchOne | MatchBeginEnd\n\ninterface MatchOne {\n /** a single-line regular expression */\n match: RegExp | string\n \n /** This is the scope that will be applied to the matched text */\n name?: string\n \n /** This use of the captures > patterns structure is extremely important. \n Without it, a stretch of text matched by a match rule is considered finished, and \n TextMate’s search proceeds to the rest of the line after the matched text. \n With it, the stretch of matched text itself becomes a candidate for further matches. \n */\n captures?: Captures\n}\n\ninterface MatchBeginEnd {\n begin: RegExp | string\n \n end: RegExp | string\n \n /** This is the scope (or an expression evaluating to a scope) to be applied to \n the entire matched stretch(es) of text starting at the start of the begin match.\n */\n name?: string\n \n /** This is the scope to be applied to what’s between the begin match and the end match (or the end of the document). */\n contentName?: string\n \n /** it applies to the region between the begin and end matches. */\n patterns?: Pattern[]\n \n beginCaptures?: Captures\n \n endCaptures?: Captures\n \n whileCaptures?: Captures\n \n /** If the name or number of the matched group happens to be the same for both the begin pattern and the other pattern, \n you can (if appropriate) use captures as a shorthand to avoid saying the same thing twice.\n */\n captures?: Captures\n \n applyEndPatternLast?: 1\n}\n\ninterface Include {\n include: string\n}\n\ntype Captures = Record<string | number, {\n /** This is the scope that will be assigned to the matched group text. */\n name?: string\n \n /** This is a list of match rules to be sought within the matched group text \n — thus permitting the search for matches to continue inside the matched text.\n */\n patterns?: Pattern[]\n}>\n\n"]}
|
|
1
|
+
{"version":3,"file":"language.js","sourceRoot":"","sources":["language.ts"],"names":[],"mappings":"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","sourcesContent":["const sql_keywords = [\n // 不要单独算关键字比较好\n // 'column',\n // 'table',\n // 'database',\n \n 'select',\n 'exec',\n 'update',\n \n 'insert',\n 'insert into',\n \n 'create table',\n 'create database',\n \n 'alter table',\n \n // alter table ... add column_name datatype\n 'add',\n 'rename',\n 'to',\n 'drop',\n \n \n 'drop table',\n 'drop database',\n \n 'delete',\n \n 'transaction',\n \n 'inner join',\n 'full join',\n 'full outer join',\n 'left join',\n 'left outer join',\n 'right join',\n 'right outer join',\n 'left semijoin',\n 'cross join',\n \n 'context by',\n 'partitioned by',\n 'group by',\n 'pivot by',\n 'order by',\n 'cgroup by',\n 'partition by',\n \n 'csort',\n 'limit',\n 'top',\n \n 'into',\n 'from',\n 'where',\n 'having',\n 'with',\n 'set',\n 'as',\n 'in',\n 'or',\n 'not',\n 'on',\n 'like',\n 'values',\n 'exists',\n 'distinct',\n 'map',\n \n \n 'between', 'and', // between ... and ...\n \n 'is null', 'is not null',\n \n // case when ... then ... end\n 'case', 'when', 'then', 'else', 'end',\n \n 'union', 'union all',\n \n 'nulls first', 'nulls last',\n \n 'asc', 'desc',\n]\n\n\nexport const keywords = [\n 'assert',\n \n 'const',\n 'mutable',\n \n 'def',\n 'defg',\n \n // 'map',\n 'mapr',\n \n 'timer',\n \n // 流程控制\n 'if',\n // 'else',\n 'do',\n 'for',\n 'while',\n 'return',\n 'continue',\n 'break',\n 'try',\n 'catch',\n 'throw',\n 'go',\n \n // 模块\n 'use',\n 'module',\n \n \n // 仅 Python 有的\n 'async',\n 'await',\n 'class',\n 'del',\n 'elif',\n 'except',\n 'finally',\n 'global',\n 'import',\n 'is',\n 'lambda',\n 'nonlocal',\n 'pass',\n 'raise',\n 'yield',\n \n \n // --- SQL\n ... sql_keywords,\n ... sql_keywords.map(keyword => keyword.toUpperCase())\n].sort((l, r) => { // 长的在前面,正则表达式先匹配全部,而不是部分单词,防止高亮显示不正确\n const delta_len = l.length - r.length\n if (delta_len !== 0)\n return -delta_len\n \n return 0 // 否则保留原本顺序\n})\n\n\nexport const constants = [\n 'NULL',\n 'true',\n 'false',\n 'pi',\n 'e',\n \n // --- form\n 'SCALAR',\n 'VECTOR',\n 'PAIR',\n 'MATRIX',\n 'SET',\n 'DICT',\n 'TABLE',\n // 'CHART',\n // 'CHUNK',\n \n // --- type\n 'VOID',\n 'BOOL',\n 'CHAR',\n 'SHORT',\n 'INT', 'INDEX',\n 'LONG',\n 'DATE',\n 'MONTH',\n 'TIME',\n 'MINUTE',\n 'SECOND',\n 'DATETIME',\n 'TIMESTAMP',\n 'NANOTIME',\n 'NANOTIMESTAMP',\n 'FLOAT',\n 'DOUBLE',\n 'SYMBOL',\n 'STRING',\n 'UUID',\n 'FUNCTIONDEF',\n 'HANDLE',\n 'CODE',\n 'DATASOURCE',\n 'RESOURCE',\n 'ANY',\n // 'COMPRESS',\n 'DICTIONARY',\n 'DATEHOUR',\n 'IPADDR',\n 'INT128',\n 'BLOB',\n 'COMPLEX',\n 'POINT',\n 'DURATION',\n 'OBJECT',\n 'DECIMAL32',\n 'DECIMAL64',\n \n // partition type\n 'SEQ',\n 'RANGE',\n 'HASH',\n 'VALUE',\n 'LIST',\n 'COMPO',\n \n \n // defined\n // https://www.dolphindb.cn/cn/help/FunctionsandCommands/FunctionReferences/d/defined.html\n 'VAR',\n 'SHARED',\n 'DEF',\n 'GLOBAL',\n \n \n // 用户权限管理\n // https://www.dolphindb.cn/cn/help/200/SystemManagement/UserAccessControl.html\n // https://www.dolphindb.cn/cn/help/200/FunctionsandCommands/CommandsReferences/d/deny.html\n 'TABLE_READ',\n 'TABLE_WRITE',\n 'TABLE_INSERT',\n 'TABLE_UPDATE',\n 'TABLE_DELETE',\n \n 'DBOBJ_CREATE',\n 'DBOBJ_DELETE',\n \n 'DB_DELETE',\n 'DB_INSERT',\n 'DB_MANAGE',\n 'DB_OWNER',\n 'DB_READ',\n 'DB_UPDATE',\n 'DB_WRITE',\n \n 'SCRIPT_EXEC',\n 'TASK_GROUP_MEM_LIMIT',\n 'TEST_EXEC',\n 'VIEW_EXEC',\n 'QUERY_RESULT_MEM_LIMIT',\n \n \n // hint\n // https://www.dolphindb.cn/cn/help/200/FunctionsandCommands/FunctionReferences/s/sql.html\n 'HINT_HASH',\n 'HINT_SNAPSHOT',\n 'HINT_KEEPORDER',\n 'HINT_SEQ',\n 'HINT_EXPLAIN',\n 'HINT_VECTORIZED',\n \n \n // --- seek mode\n 'HEAD',\n 'CURRENT',\n 'TAIL',\n \n // --- chart type\n // https://www.dolphindb.cn/cn/help/200/FunctionsandCommands/FunctionReferences/p/plot.html\n 'LINE',\n 'PIE',\n 'COLUMN',\n 'BAR',\n 'AREA',\n 'SCATTER',\n 'HISTOGRAM',\n 'KLINE',\n \n \n // --- log level\n 'DEBUG',\n 'INFO',\n 'WARNING',\n 'ERROR',\n \n // keep duplicates\n // https://www.dolphindb.cn/cn/help/200/FunctionsandCommands/FunctionReferences/c/createPartitionedTable.html?highlight=first\n 'FIRST',\n 'LAST',\n 'ALL',\n \n // keep\n // https://www.dolphindb.cn/cn/help/200/FunctionsandCommands/FunctionReferences/i/isDuplicated.html?highlight=none\n 'NONE',\n \n 'HASH_PTN',\n \n // 仅 Python 有的\n 'True',\n 'False',\n 'None',\n \n] as const\n\n\n\nexport const tm_language = {\n $schema: 'https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json',\n \n name: 'DolphinDB',\n \n scopeName: 'source.dolphindb',\n \n patterns: [\n {\n match: '\\\\.\\\\.\\\\.',\n name: 'invalid.ellipsis.dolphindb'\n },\n {\n include: '#keyword'\n },\n {\n include: '#literal'\n },\n {\n include: '#comment'\n },\n {\n include: '#decorator'\n },\n {\n include: '#variable'\n },\n {\n include: '#operator'\n },\n {\n include: '#method_call'\n },\n {\n include: '#function_call'\n },\n {\n include: '#property'\n },\n {\n match: ';',\n name: 'punctuation.terminator.statement.dolphindb'\n },\n {\n match: ',',\n name: 'punctuation.separator.commma.dolphindb'\n }\n ],\n \n \n repository: {\n keyword: {\n // \\b: word boundary\n // (?<![.$]): boundary 不是 . 或 $\n // ?!\\s*: 不是 label\n match: `\\\\b(?<![.$])(${keywords.join('|')})(?!(\\\\s*:|\\\\())\\\\b`,\n name: 'keyword.control.dolphindb'\n },\n \n literal: {\n patterns: [\n { include: '#constant' },\n { include: '#datetime' },\n { include: '#string' },\n { include: '#number' },\n ]\n },\n \n constant: {\n match: `\\\\b(?<![.$])(${constants.join('|')})(?!\\\\s*:)\\\\b`,\n name: 'constant.language.int.dolphindb'\n },\n \n decorator: {\n match: '^@testing',\n name: 'meta.decorator.dolphindb',\n },\n \n datetime: {\n patterns: [\n {\n match: '\\\\b[0-9]{4}[.][0-9]{2}[.][0-9]{2}[T ][0-9]{2}:[0-9]{2}:[0-9]{2}([.][0-9]{3,9})?\\\\b',\n name: 'constant.numeric.datetime.datetime.dolphindb',\n },\n {\n match: '\\\\b[0-9]{4}\\\\.[0-9]{2}M\\\\b',\n name: 'constant.numeric.datetime.month.dolphindb',\n },\n {\n match: '\\\\b[0-9]{4}\\\\.[0-9]{2}\\\\.[0-9]{2}\\\\b',\n name: 'constant.numeric.datetime.date.dolphindb',\n },\n {\n match: '\\\\b[0-9]{2}:[0-9]{2}:[0-9]{2}([.][0-9]{3,9})?\\\\b',\n name: 'constant.numeric.datetime.time.dolphindb',\n },\n {\n match: '\\\\b[0-9]{2}:[0-9]{2}m\\\\b',\n name: 'constant.numeric.datetime.minute.dolphindb',\n },\n ]\n },\n \n string: {\n patterns: [\n {\n include: '#string_single_quoted'\n },\n {\n include: '#string_double_quoted'\n },\n {\n begin: \"'''\",\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.string.begin.dolphindb'\n }\n },\n end: \"'''\",\n endCaptures: {\n 0: {\n name: 'punctuation.definition.string.end.dolphindb'\n }\n },\n name: 'string.quoted.single.heredoc.dolphindb',\n patterns: [\n {\n captures: {\n 1: {\n name: 'punctuation.definition.escape.backslash.dolphindb'\n }\n },\n match: '(\\\\\\\\).',\n name: 'constant.character.escape.backslash.dolphindb'\n }\n ]\n },\n {\n begin: '\"\"\"',\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.string.begin.dolphindb'\n }\n },\n end: '\"\"\"',\n endCaptures: {\n 0: {\n name: 'punctuation.definition.string.end.dolphindb'\n }\n },\n name: 'string.quoted.double.heredoc.dolphindb',\n patterns: [\n {\n captures: {\n 1: {\n name: 'punctuation.definition.escape.backslash.dolphindb'\n }\n },\n match: '(\\\\\\\\).',\n name: 'constant.character.escape.backslash.dolphindb'\n },\n {\n include: '#interpolated_dolphindb'\n }\n ]\n },\n {\n match: '`[\\\\w\\\\.]+',\n name: 'string.quoted.other.dolphindb'\n },\n {\n match: '(`)(.*)(`)',\n name: 'string.quoted.script.dolphindb',\n captures: {\n 1: {\n name: 'punctuation.definition.string.begin.dolphindb'\n },\n 2: {\n name: 'source.js.embedded.dolphindb',\n patterns: [\n {\n include: 'source.js'\n }\n ]\n },\n 3: {\n name: 'punctuation.definition.string.end.dolphindb'\n }\n }\n }\n ]\n },\n \n number: {\n patterns: [\n {\n match: '\\\\b[01]+[bB]\\\\b',\n name: 'constant.numeric.binary.dolphindb'\n },\n {\n // 97c\n match: '\\\\b[0-9]+([clhsmyM]|ms)\\\\b',\n name: 'constant.numeric.dolphindb'\n },\n {\n // 1.2f, 1f\n match: '\\\\b[0-9]+(\\\\.[0-9]+)?f\\\\b',\n name: 'constant.numeric.dolphindb'\n },\n {\n match: \n '(?x)\\n' +\n '(?:\\n' +\n ' (?:\\\\b[0-9]+(\\\\.)[0-9]+[eE][+-]?[0-9]+\\\\b)| # 1.1E+3\\n' +\n ' (?:\\\\b[0-9]+(\\\\.)[eE][+-]?[0-9]+\\\\b)| # 1.E+3\\n' +\n ' (?:\\\\b(\\\\.)[0-9]+[eE][+-]?[0-9]+\\\\b)| # .1E+3\\n' +\n ' (?:\\\\b[0-9]+[eE][+-]?[0-9]+\\\\b)| # 1E+3\\n' +\n ' (?:\\\\b[0-9]+(\\\\.)[0-9]+\\\\b)| # 1.1\\n' +\n ' (?:\\\\b[0-9]+(?=\\\\.{2,3}))| # 1 followed by a slice\\n' +\n ' (?:\\\\b[0-9]+(\\\\.)\\\\b)| # 1.\\n' +\n ' (?:\\\\b(\\\\.)[0-9]+\\\\b)| # .1\\n' +\n ' (?:\\\\b[0-9]+\\\\b(?!\\\\.)) # 1\\n' +\n ')\\n',\n \n captures: {\n 0: {\n name: 'constant.numeric.decimal.dolphindb'\n },\n 1: {\n name: 'punctuation.separator.decimal.period.dolphindb'\n },\n 2: {\n name: 'punctuation.separator.decimal.period.dolphindb'\n },\n 3: {\n name: 'punctuation.separator.decimal.period.dolphindb'\n },\n 4: {\n name: 'punctuation.separator.decimal.period.dolphindb'\n },\n 5: {\n name: 'punctuation.separator.decimal.period.dolphindb'\n },\n 6: {\n name: 'punctuation.separator.decimal.period.dolphindb'\n }\n }\n },\n ]\n },\n \n string_single_quoted: {\n patterns: [\n {\n begin: \"'\",\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.string.begin.dolphindb'\n }\n },\n end: \"'\",\n endCaptures: {\n 0: {\n name: 'punctuation.definition.string.end.dolphindb'\n }\n },\n name: 'string.quoted.single.dolphindb',\n patterns: [\n {\n captures: {\n 1: {\n name: 'punctuation.definition.escape.backslash.dolphindb'\n }\n },\n match: '(\\\\\\\\)(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)',\n name: 'constant.character.escape.backslash.dolphindb'\n }\n ]\n }\n ]\n },\n \n string_double_quoted: {\n patterns: [\n {\n begin: '\"',\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.string.begin.dolphindb'\n }\n },\n end: '\"',\n endCaptures: {\n 0: {\n name: 'punctuation.definition.string.end.dolphindb'\n }\n },\n name: 'string.quoted.double.dolphindb',\n patterns: [\n {\n captures: {\n 1: {\n name: 'punctuation.definition.escape.backslash.dolphindb'\n }\n },\n match: '(\\\\\\\\)(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)',\n name: 'constant.character.escape.backslash.dolphindb'\n },\n {\n include: '#interpolated_dolphindb'\n }\n ]\n }\n ]\n },\n \n function_call: {\n patterns: [\n {\n begin: '(@)?([\\\\w$]+!?)\\\\s*(?=\\\\()',\n beginCaptures: {\n 1: {\n name: 'variable.other.readwrite.instance.dolphindb'\n },\n 2: {\n patterns: [\n {\n include: '#function_name'\n }\n ]\n }\n },\n end: '(?<=\\\\))',\n name: 'meta.function-call.dolphindb',\n patterns: [\n {\n include: '#arguments'\n }\n ]\n }\n ]\n },\n \n function_name: {\n patterns: [\n {\n match: '[a-zA-Z_$][\\\\w$]*',\n name: 'entity.name.function.dolphindb'\n },\n {\n match: '\\\\d[\\\\w$]*',\n name: 'invalid.illegal.identifier.dolphindb'\n }\n ]\n },\n \n function_params: {\n patterns: [\n {\n begin: '\\\\(',\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.parameters.begin.bracket.round.dolphindb'\n }\n },\n end: '\\\\)',\n endCaptures: {\n 0: {\n name: 'punctuation.definition.parameters.end.bracket.round.dolphindb'\n }\n },\n name: 'meta.parameters.dolphindb',\n patterns: [\n {\n include: '#variable'\n },\n {\n match: '(@(?:[a-zA-Z_$][\\\\w$]*)?)(\\\\.\\\\.\\\\.)?',\n captures: {\n 1: {\n name: 'variable.parameter.function.readwrite.instance.dolphindb'\n },\n 2: {\n name: 'keyword.operator.splat.dolphindb'\n }\n }\n },\n {\n include: '$self'\n }\n ]\n }\n ]\n },\n \n comment: {\n patterns: [\n {\n begin: '/\\\\*',\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.comment.dolphindb'\n }\n },\n end: '\\\\*/',\n endCaptures: {\n 0: {\n name: 'punctuation.definition.comment.dolphindb'\n }\n },\n name: 'comment.block.dolphindb'\n },\n {\n begin: '//',\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.comment.dolphindb'\n }\n },\n end: '$',\n name: 'comment.line.number-sign.dolphindb'\n },\n {\n begin: '#',\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.comment.dolphindb'\n }\n },\n end: '$',\n name: 'comment.line.number-sign.dolphindb'\n }\n ]\n },\n \n arguments: {\n patterns: [\n {\n begin: '\\\\(',\n beginCaptures: {\n 0: {\n name: 'punctuation.definition.arguments.begin.bracket.round.dolphindb'\n }\n },\n end: '\\\\)',\n endCaptures: {\n 0: {\n name: 'punctuation.definition.arguments.end.bracket.round.dolphindb'\n }\n },\n name: 'meta.arguments.dolphindb',\n patterns: [\n {\n include: '$self'\n },\n {\n include: '#literal'\n },\n {\n include: '#variable'\n }\n ]\n }\n ]\n },\n \n variable: {\n patterns: [\n {\n match: '(@)([a-zA-Z_\\\\$]\\\\w*)?',\n name: 'variable.other.readwrite.instance.dolphindb'\n }\n ]\n },\n \n interpolated_dolphindb: {\n patterns: [\n {\n begin: '\\\\#\\\\{',\n captures: {\n 0: {\n name: 'punctuation.section.embedded.dolphindb'\n }\n },\n end: '\\\\}',\n name: 'source.dolphindb.embedded.source',\n patterns: [\n {\n include: '$self'\n }\n ]\n }\n ]\n },\n \n method_call: {\n patterns: [\n {\n begin: '(?:(\\\\.)|(::))\\\\s*([\\\\w$]+!?)(?=\\\\()',\n beginCaptures: {\n 1: {\n name: 'punctuation.separator.method.period.dolphindb'\n },\n 2: {\n name: 'keyword.operator.prototype.dolphindb'\n },\n 3: {\n patterns: [\n {\n include: '#method_name'\n }\n ]\n }\n },\n end: '(?<=\\\\))',\n name: 'meta.method-call.dolphindb',\n patterns: [\n {\n include: '#arguments'\n }\n ]\n }\n ]\n },\n \n method_name: {\n patterns: [\n {\n match: '[a-zA-Z_$][\\\\w$]*',\n name: 'entity.name.function.dolphindb'\n },\n {\n match: '\\\\d[\\\\w$]*',\n name: 'invalid.illegal.identifier.dolphindb'\n }\n ]\n },\n \n operator: {\n patterns: [\n {\n match: '<<|>>',\n name: 'keyword.operator.bitwise.shift.dolphindb'\n },\n {\n match: '!=|<=|>=|==|>|<',\n name: 'keyword.operator.comparison.dolphindb'\n },\n {\n match: '<-|->',\n name: 'keyword.operator.join.dolphindb'\n },\n {\n match: '&&|!|\\\\|\\\\|',\n name: 'keyword.operator.logical.dolphindb'\n },\n {\n match: '&|\\\\||\\\\^',\n name: 'keyword.operator.bitwise.dolphindb'\n },\n {\n match: '\\\\.\\\\.',\n name: 'keyword.operator.splat.dolphindb'\n },\n {\n match: '\\\\?',\n name: 'keyword.operator.existential.dolphindb'\n },\n {\n match: '/|<-|%|\\\\*|/|-|\\\\$|\\\\+',\n name: 'keyword.operator.dolphindb'\n },\n {\n match: '([a-zA-Z$_][\\\\w$]*)?\\\\s*(=|:(?!:))(?![>=])',\n captures: {\n 1: {\n name: 'variable.assignment.dolphindb'\n },\n 2: {\n name: 'keyword.operator.assignment.dolphindb'\n }\n }\n }\n ]\n },\n \n property: {\n patterns: [\n {\n match: '(?:(\\\\.)|(::))\\\\s*([A-Z][A-Z0-9_$]*\\\\b\\\\$*)(?=\\\\s*\\\\??(\\\\.\\\\s*[a-zA-Z_$]\\\\w*|::))',\n captures: {\n 1: {\n name: 'punctuation.separator.property.period.dolphindb'\n },\n 2: {\n name: 'keyword.operator.prototype.dolphindb'\n },\n 3: {\n name: 'constant.other.object.property.dolphindb'\n }\n }\n },\n {\n match: '(?:(\\\\.)|(::))\\\\s*(\\\\$*[a-zA-Z_$][\\\\w$]*)(?=\\\\s*\\\\??(\\\\.\\\\s*[a-zA-Z_$]\\\\w*|::))',\n captures: {\n 1: {\n name: 'punctuation.separator.property.period.dolphindb'\n },\n 2: {\n name: 'keyword.operator.prototype.dolphindb'\n },\n 3: {\n name: 'variable.other.object.property.dolphindb'\n }\n }\n },\n {\n match: '(?:(\\\\.)|(::))\\\\s*([A-Z][A-Z0-9_$]*\\\\b\\\\$*)',\n captures: {\n 1: {\n name: 'punctuation.separator.property.period.dolphindb'\n },\n 2: {\n name: 'keyword.operator.prototype.dolphindb'\n },\n 3: {\n name: 'constant.other.property.dolphindb'\n }\n }\n },\n {\n match: '(?:(\\\\.)|(::))\\\\s*(\\\\$*[a-zA-Z_$][\\\\w$]*)',\n captures: {\n 1: {\n name: 'punctuation.separator.property.period.dolphindb'\n },\n 2: {\n name: 'keyword.operator.prototype.dolphindb'\n },\n 3: {\n name: 'variable.other.property.dolphindb'\n }\n }\n },\n {\n match: '(?:(\\\\.)|(::))\\\\s*([0-9][\\\\w$]*)',\n captures: {\n 1: {\n name: 'punctuation.separator.property.period.dolphindb'\n },\n 2: {\n name: 'keyword.operator.prototype.dolphindb'\n },\n 3: {\n name: 'invalid.illegal.identifier.dolphindb'\n }\n }\n }\n ]\n }\n }\n} as Block\n\n\ninterface Block {\n patterns: Pattern[]\n repository?: Record<string, Pattern | Block>\n}\n\ntype Pattern = Match | Include | Block\n\ntype Match = MatchOne | MatchBeginEnd\n\ninterface MatchOne {\n /** a single-line regular expression */\n match: RegExp | string\n \n /** This is the scope that will be applied to the matched text */\n name?: string\n \n /** This use of the captures > patterns structure is extremely important. \n Without it, a stretch of text matched by a match rule is considered finished, and \n TextMate’s search proceeds to the rest of the line after the matched text. \n With it, the stretch of matched text itself becomes a candidate for further matches. \n */\n captures?: Captures\n}\n\ninterface MatchBeginEnd {\n begin: RegExp | string\n \n end: RegExp | string\n \n /** This is the scope (or an expression evaluating to a scope) to be applied to \n the entire matched stretch(es) of text starting at the start of the begin match.\n */\n name?: string\n \n /** This is the scope to be applied to what’s between the begin match and the end match (or the end of the document). */\n contentName?: string\n \n /** it applies to the region between the begin and end matches. */\n patterns?: Pattern[]\n \n beginCaptures?: Captures\n \n endCaptures?: Captures\n \n whileCaptures?: Captures\n \n /** If the name or number of the matched group happens to be the same for both the begin pattern and the other pattern, \n you can (if appropriate) use captures as a shorthand to avoid saying the same thing twice.\n */\n captures?: Captures\n \n applyEndPatternLast?: 1\n}\n\ninterface Include {\n include: string\n}\n\ntype Captures = Record<string | number, {\n /** This is the scope that will be assigned to the matched group text. */\n name?: string\n \n /** This is a list of match rules to be sought within the matched group text \n — thus permitting the search for matches to continue inside the matched text.\n */\n patterns?: Pattern[]\n}>\n\n"]}
|
package/package.json
CHANGED
package/.eslintrc.json
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "./.eslintrc.schema.json",
|
|
3
|
-
|
|
4
|
-
"root": true,
|
|
5
|
-
|
|
6
|
-
"ignorePatterns": ["**/*.d.ts"],
|
|
7
|
-
|
|
8
|
-
"parser": "@typescript-eslint/parser",
|
|
9
|
-
"parserOptions": {
|
|
10
|
-
"ecmaVersion": "latest",
|
|
11
|
-
"sourceType": "module",
|
|
12
|
-
"project": "./tsconfig.json",
|
|
13
|
-
"ecmaFeatures": {
|
|
14
|
-
"jsx": true
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
|
|
18
|
-
"plugins": [
|
|
19
|
-
"@typescript-eslint"
|
|
20
|
-
],
|
|
21
|
-
|
|
22
|
-
"settings": {
|
|
23
|
-
"react": {
|
|
24
|
-
"version": "detect"
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
|
|
28
|
-
"env": {
|
|
29
|
-
"node": true,
|
|
30
|
-
"browser": true
|
|
31
|
-
},
|
|
32
|
-
|
|
33
|
-
"rules": {
|
|
34
|
-
"@typescript-eslint/semi": ["error", "never"],
|
|
35
|
-
"@typescript-eslint/no-extra-semi": "error",
|
|
36
|
-
"semi-style": ["error", "first"],
|
|
37
|
-
|
|
38
|
-
// 使用 ===
|
|
39
|
-
"eqeqeq": "error",
|
|
40
|
-
|
|
41
|
-
// 父类尽量返回 this 类型
|
|
42
|
-
"@typescript-eslint/prefer-return-this-type": "error",
|
|
43
|
-
|
|
44
|
-
// 尽量使用 . 访问属性而不是 []
|
|
45
|
-
"@typescript-eslint/dot-notation": "error",
|
|
46
|
-
|
|
47
|
-
// 必须 throw Error
|
|
48
|
-
"@typescript-eslint/no-throw-literal": "error",
|
|
49
|
-
|
|
50
|
-
// ------------ async
|
|
51
|
-
// 返回 Promise 的函数一定要标记为 async 函数
|
|
52
|
-
"@typescript-eslint/promise-function-async": "error",
|
|
53
|
-
|
|
54
|
-
// 不要 return await promise, 直接 return promise, 除非外面有 try catch
|
|
55
|
-
"@typescript-eslint/return-await": "error",
|
|
56
|
-
|
|
57
|
-
// ------------ 括号
|
|
58
|
-
|
|
59
|
-
// a => { } 而不是 (a) => { }
|
|
60
|
-
"arrow-parens": ["error", "as-needed", { "requireForBlockBody": false }],
|
|
61
|
-
|
|
62
|
-
// 不要多余的大括号
|
|
63
|
-
// if (true)
|
|
64
|
-
// console.log()
|
|
65
|
-
"curly": ["error", "multi"],
|
|
66
|
-
|
|
67
|
-
// if 的 body 必须换行
|
|
68
|
-
"nonblock-statement-body-position": ["error", "below"],
|
|
69
|
-
|
|
70
|
-
// ------------ 空格
|
|
71
|
-
|
|
72
|
-
// { a, b } 这样的对象,大括号里面要有空格
|
|
73
|
-
"@typescript-eslint/object-curly-spacing": ["error", "always"],
|
|
74
|
-
|
|
75
|
-
// [a, b, c]
|
|
76
|
-
"@typescript-eslint/comma-spacing": "error",
|
|
77
|
-
|
|
78
|
-
// foo()
|
|
79
|
-
"@typescript-eslint/func-call-spacing": "error",
|
|
80
|
-
|
|
81
|
-
// a => { } 中箭头左右两边空格
|
|
82
|
-
"arrow-spacing": ["error"],
|
|
83
|
-
|
|
84
|
-
// 注释双斜杠后面要有空格
|
|
85
|
-
"spaced-comment": ["error", "always", { "markers": ["/"] }],
|
|
86
|
-
|
|
87
|
-
// 函数声明中,名称后面要有空格
|
|
88
|
-
"@typescript-eslint/space-before-function-paren": "error",
|
|
89
|
-
|
|
90
|
-
// { return true } 这样的 block 大括号里面要有空格
|
|
91
|
-
"block-spacing": ["error", "always"],
|
|
92
|
-
|
|
93
|
-
// aaa: 123
|
|
94
|
-
"@typescript-eslint/key-spacing": ["error", { "beforeColon": false, "afterColon": true, "mode": "minimum" }],
|
|
95
|
-
|
|
96
|
-
// aaa: string
|
|
97
|
-
"@typescript-eslint/type-annotation-spacing": ["error"],
|
|
98
|
-
|
|
99
|
-
// if ()
|
|
100
|
-
"@typescript-eslint/keyword-spacing": ["error", { "before": true, "after": true }],
|
|
101
|
-
|
|
102
|
-
// if (1) { }
|
|
103
|
-
"@typescript-eslint/space-before-blocks": "error",
|
|
104
|
-
|
|
105
|
-
// case 1: ...
|
|
106
|
-
"switch-colon-spacing": "error",
|
|
107
|
-
|
|
108
|
-
// a + b
|
|
109
|
-
"@typescript-eslint/space-infix-ops": "error",
|
|
110
|
-
|
|
111
|
-
// 不允许使用 tab
|
|
112
|
-
"no-tabs": "error",
|
|
113
|
-
|
|
114
|
-
// 使用 \n 换行
|
|
115
|
-
"linebreak-style": ["error", "unix"],
|
|
116
|
-
|
|
117
|
-
// 文件以 \n 结尾
|
|
118
|
-
"eol-last": ["error", "always"],
|
|
119
|
-
|
|
120
|
-
// ------------ 引号
|
|
121
|
-
|
|
122
|
-
// 用单引号
|
|
123
|
-
"jsx-quotes": ["error", "prefer-single"],
|
|
124
|
-
|
|
125
|
-
// 用单引号
|
|
126
|
-
"quotes": ["error", "single", { "avoidEscape": true, "allowTemplateLiterals": false }],
|
|
127
|
-
|
|
128
|
-
// 不要冗余的引号包裹属性
|
|
129
|
-
"quote-props": ["error", "as-needed", { "keywords": false, "unnecessary": true }],
|
|
130
|
-
|
|
131
|
-
// ------------ 其它
|
|
132
|
-
// 单行类型声明用 `,` 分割,多行类型声明结尾不要加分号
|
|
133
|
-
"@typescript-eslint/member-delimiter-style": ["error", {
|
|
134
|
-
"multiline": {
|
|
135
|
-
"delimiter": "none",
|
|
136
|
-
"requireLast": false
|
|
137
|
-
},
|
|
138
|
-
"singleline": {
|
|
139
|
-
"delimiter": "comma",
|
|
140
|
-
"requireLast": false
|
|
141
|
-
}
|
|
142
|
-
}],
|
|
143
|
-
|
|
144
|
-
"@typescript-eslint/prefer-includes": "error",
|
|
145
|
-
|
|
146
|
-
"@typescript-eslint/prefer-regexp-exec": "error"
|
|
147
|
-
}
|
|
148
|
-
}
|