forked from nixel2007/sublime-language-1c-bsl
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path1c-query.tmLanguage
159 lines (159 loc) · 6.83 KB
/
1c-query.tmLanguage
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>1C (Query)</string>
<key>scopeName</key>
<string>source.sdbl</string>
<key>fileTypes</key>
<array>
<string>sdbl</string>
<string>query</string>
</array>
<key>firstLineMatch</key>
<string>(?i)Выбрать|Select(\s+Разрешенные|\s+Allowed)?(\s+Различные|\s+Distinct)?(\s+Первые|\s+Top)?.*</string>
<key>uuid</key>
<string>d94265d3-2270-4ff2-ba36-649fbb4160df</string>
<key>patterns</key>
<array>
<dict>
<key>name</key>
<string>comment.line.double-slash.sdbl</string>
<key>match</key>
<string>(^\s*//.*$)</string>
</dict>
<dict>
<key>name</key>
<string>comment.line.double-slash.sdbl</string>
<key>begin</key>
<string>//</string>
<key>end</key>
<string>$</string>
</dict>
<dict>
<key>name</key>
<string>string.quoted.double.sdbl</string>
<key>begin</key>
<string>\"</string>
<key>end</key>
<string>\"(?![\"])</string>
<key>patterns</key>
<array>
<dict>
<key>name</key>
<string>constant.character.escape.sdbl</string>
<key>match</key>
<string>\"\"</string>
</dict>
<dict>
<key>name</key>
<string>comment.line.double-slash.sdbl</string>
<key>match</key>
<string>(^\s*//.*$)</string>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>constant.language.sdbl</string>
<key>match</key>
<string>(?i)(?<=[^\wа-яё\.]|^)(Неопределено|Undefined|Истина|True|Ложь|False|NULL)(?=[^\wа-яё\.]|$)</string>
</dict>
<dict>
<key>name</key>
<string>constant.numeric.sdbl</string>
<key>match</key>
<string>(?<=[^\wа-яё\.]|^)(\d+\.?\d*)(?=[^\wа-яё\.]|$)</string>
</dict>
<dict>
<key>name</key>
<string>keyword.control.conditional.sdbl</string>
<key>match</key>
<string>(?i)(?<=[^\wа-яё\.]|^)(Выбор|Case|Когда|When|Тогда|Then|Иначе|Else|Конец|End)(?=[^\wа-яё\.]|$)</string>
</dict>
<dict>
<key>name</key>
<string>keyword.operator.logical.sdbl</string>
<key>match</key>
<string>(?i)(?<!КАК\s|AS\s)(?<=[^\wа-яё\.]|^)(НЕ|NOT|И|AND|ИЛИ|OR|В\s+ИЕРАРХИИ|IN\s+HIERARCHY|В|In|Между|Between|Есть(\s+НЕ)?\s+NULL|Is(\s+NOT)?\s+NULL|Ссылка|Refs|Подобно|Like)(?=[^\wа-яё\.]|$)</string>
</dict>
<dict>
<key>name</key>
<string>keyword.operator.comparison.sdbl</string>
<key>match</key>
<string><=|>=|=|<|></string>
</dict>
<dict>
<key>name</key>
<string>keyword.operator.arithmetic.sdbl</string>
<key>match</key>
<string>(\+|-|\*|/|%)</string>
</dict>
<dict>
<key>name</key>
<string>keyword.operator.sdbl</string>
<key>match</key>
<string>(,|;)</string>
</dict>
<dict>
<key>name</key>
<string>keyword.control.sdbl</string>
<key>match</key>
<string>(?i)(?<=[^\wа-яё\.]|^)(Выбрать|Select|Разрешенные|Allowed|Различные|Distinct|Первые|Top|Как|As|ПустаяТаблица|EpmtyTable|Поместить|Into|Уничтожить|Drop|Из|From|((Левое|Left|Правое|Right|Полное|Full)\s+(Внешнее\s+|Outer\s+)?Соединение|Join)|((Внутреннее|Inner)\s+Соединение|Join)|Где|Where|(Сгруппировать\s+По)|(Group\s+By)|Имеющие|Having|Объединить(\s+Все)?|Union(\s+All)?|(Упорядочить\s+По)|(Order\s+By)|Автоупорядочивание|Autoorder|Итоги|Totals|По(\s+Общие)?|By(\s+Overall)?|(Только\s+)?Иерархия|(Only\s+)?Hierarchy|Периодами|Periods|Индексировать|Index|Выразить|Cast|Возр|Asc|Убыв|Desc|Для\s+Изменения|(For\s+Update(\s+Of)?)|Спецсимвол|Escape)(?=[^\wа-яё\.]|$)</string>
</dict>
<dict>
<key>comment</key>
<string>Функции языка запросов</string>
<key>name</key>
<string>support.function.sdbl</string>
<key>match</key>
<string>(?i)(?<=[^\wа-яё\.]|^)(Значение|Value|ДатаВремя|DateTime|Тип|Type)(?=\()</string>
</dict>
<dict>
<key>comment</key>
<string>Функции работы со строками</string>
<key>name</key>
<string>support.function.sdbl</string>
<key>match</key>
<string>(?i)(?<=[^\wа-яё\.]|^)(Подстрока|Substring)(?=\()</string>
</dict>
<dict>
<key>comment</key>
<string>Функции работы с датами</string>
<key>name</key>
<string>support.function.sdbl</string>
<key>match</key>
<string>(?i)(?<=[^\wа-яё\.]|^)(Год|Year|Квартал|Quarter|Месяц|Month|ДеньГода|DayOfYear|День|Day|Неделя|Week|ДеньНедели|Weekday|Час|Hour|Минута|Minute|Секунда|Second|НачалоПериода|BeginOfPeriod|КонецПериода|EndOfPeriod|ДобавитьКДате|DateAdd|РазностьДат|DateDiff)(?=\()</string>
</dict>
<dict>
<key>comment</key>
<string>Агрегатные функции</string>
<key>name</key>
<string>support.function.sdbl</string>
<key>match</key>
<string>(?i)(?<=[^\wа-яё\.]|^)(Сумма|Sum|Среднее|Avg|Минимум|Min|Максимум|Max|Количество|Count)(?=\()</string>
</dict>
<dict>
<key>comment</key>
<string>Прочие функции</string>
<key>name</key>
<string>support.function.sdbl</string>
<key>match</key>
<string>(?i)(?<=[^\wа-яё\.]|^)(ЕстьNULL|IsNULL|Представление|Presentation|ПредставлениеСсылки|RefPresentation|ТипЗначения|ValueType)(?=\()</string>
</dict>
<dict>
<key>name</key>
<string>support.type.sdbl</string>
<key>match</key>
<string>(?i)(?<=[^\wа-яё\.])(Число|Number|Строка|String|Дата|Date)(?=[^\wа-яё\.]|$)</string>
</dict>
<dict>
<key>name</key>
<string>variable.parameter.sdbl</string>
<key>match</key>
<string>(&[\wа-яё]+)</string>
</dict>
</array>
</dict>
</plist>