|
| 1 | +{ |
| 2 | + "displayName": "1C (Query)", |
| 3 | + "name": "sdbl", |
| 4 | + "scopeName": "source.sdbl", |
| 5 | + "fileTypes": [ |
| 6 | + "sdbl", |
| 7 | + "query" |
| 8 | + ], |
| 9 | + "firstLineMatch": "(?i)Выбрать|Select(\\s+Разрешенные|\\s+Allowed)?(\\s+Различные|\\s+Distinct)?(\\s+Первые|\\s+Top)?.*", |
| 10 | + "uuid": "d94265d3-2270-4ff2-ba36-649fbb4160df", |
| 11 | + "patterns": [ |
| 12 | + { |
| 13 | + "name": "comment.line.double-slash.sdbl", |
| 14 | + "match": "(^\\s*//.*$)" |
| 15 | + }, |
| 16 | + { |
| 17 | + "name": "comment.line.double-slash.sdbl", |
| 18 | + "begin": "//", |
| 19 | + "end": "$" |
| 20 | + }, |
| 21 | + { |
| 22 | + "name": "string.quoted.double.sdbl", |
| 23 | + "begin": "\\\"", |
| 24 | + "end": "\\\"(?![\\\"])", |
| 25 | + "patterns": [ |
| 26 | + { |
| 27 | + "name": "constant.character.escape.sdbl", |
| 28 | + "match": "\\\"\\\"" |
| 29 | + }, |
| 30 | + { |
| 31 | + "name": "comment.line.double-slash.sdbl", |
| 32 | + "match": "(^\\s*//.*$)" |
| 33 | + } |
| 34 | + ] |
| 35 | + }, |
| 36 | + { |
| 37 | + "name": "constant.language.sdbl", |
| 38 | + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(Неопределено|Undefined|Истина|True|Ложь|False|NULL)(?=[^\\wа-яё\\.]|$)" |
| 39 | + }, |
| 40 | + { |
| 41 | + "name": "constant.numeric.sdbl", |
| 42 | + "match": "(?<=[^\\wа-яё\\.]|^)(\\d+\\.?\\d*)(?=[^\\wа-яё\\.]|$)" |
| 43 | + }, |
| 44 | + { |
| 45 | + "name": "keyword.control.conditional.sdbl", |
| 46 | + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(Выбор|Case|Когда|When|Тогда|Then|Иначе|Else|Конец|End)(?=[^\\wа-яё\\.]|$)" |
| 47 | + }, |
| 48 | + { |
| 49 | + "name": "keyword.operator.logical.sdbl", |
| 50 | + "match": "(?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а-яё\\.]|$)" |
| 51 | + }, |
| 52 | + { |
| 53 | + "name": "keyword.operator.comparison.sdbl", |
| 54 | + "match": "<=|>=|=|<|>" |
| 55 | + }, |
| 56 | + { |
| 57 | + "name": "keyword.operator.arithmetic.sdbl", |
| 58 | + "match": "(\\+|-|\\*|/|%)" |
| 59 | + }, |
| 60 | + { |
| 61 | + "name": "keyword.operator.sdbl", |
| 62 | + "match": "(,|;)" |
| 63 | + }, |
| 64 | + { |
| 65 | + "name": "keyword.control.sdbl", |
| 66 | + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(Выбрать|Select|Разрешенные|Allowed|Различные|Distinct|Первые|Top|Как|As|ПустаяТаблица|EmptyTable|Поместить|Into|Уничтожить|Drop|Из|From|((Левое|Left|Правое|Right|Полное|Full)\\s+(Внешнее\\s+|Outer\\s+)?Соединение|Join)|((Внутреннее|Inner)\\s+Соединение|Join)|Где|Where|(Сгруппировать\\s+По(\\s+Группирующим\\s+Наборам)?)|(Group\\s+By(\\s+Grouping\\s+Set)?)|Имеющие|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|СгруппированоПо|GroupedBy)(?=[^\\wа-яё\\.]|$)" |
| 67 | + }, |
| 68 | + { |
| 69 | + "comment": "Функции языка запросов", |
| 70 | + "name": "support.function.sdbl", |
| 71 | + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(Значение|Value|ДатаВремя|DateTime|Тип|Type)(?=\\()" |
| 72 | + }, |
| 73 | + { |
| 74 | + "comment": "Функции работы со строками", |
| 75 | + "name": "support.function.sdbl", |
| 76 | + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(Подстрока|Substring|НРег|Lower|ВРег|Upper|Лев|Left|Прав|Right|ДлинаСтроки|StringLength|СтрНайти|StrFind|СтрЗаменить|StrReplace|СокрЛП|TrimAll|СокрЛ|TrimL|СокрП|TrimR)(?=\\()" |
| 77 | + }, |
| 78 | + { |
| 79 | + "comment": "Функции работы с датами", |
| 80 | + "name": "support.function.sdbl", |
| 81 | + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(Год|Year|Квартал|Quarter|Месяц|Month|ДеньГода|DayOfYear|День|Day|Неделя|Week|ДеньНедели|Weekday|Час|Hour|Минута|Minute|Секунда|Second|НачалоПериода|BeginOfPeriod|КонецПериода|EndOfPeriod|ДобавитьКДате|DateAdd|РазностьДат|DateDiff|Полугодие|HalfYear|Декада|TenDays)(?=\\()" |
| 82 | + }, |
| 83 | + { |
| 84 | + "comment": "Функции работы с числами", |
| 85 | + "name": "support.function.sdbl", |
| 86 | + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(ACOS|COS|ASIN|SIN|ATAN|TAN|EXP|POW|LOG|LOG10|Цел|Int|Окр|Round|SQRT)(?=\\()" |
| 87 | + }, |
| 88 | + { |
| 89 | + "comment": "Агрегатные функции", |
| 90 | + "name": "support.function.sdbl", |
| 91 | + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(Сумма|Sum|Среднее|Avg|Минимум|Min|Максимум|Max|Количество|Count)(?=\\()" |
| 92 | + }, |
| 93 | + { |
| 94 | + "comment": "Прочие функции", |
| 95 | + "name": "support.function.sdbl", |
| 96 | + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(ЕстьNULL|IsNULL|Представление|Presentation|ПредставлениеСсылки|RefPresentation|ТипЗначения|ValueType|АвтономерЗаписи|RecordAutoNumber|РазмерХранимыхДанных|StoredDataSize|УникальныйИдентификатор|UUID)(?=\\()" |
| 97 | + }, |
| 98 | + { |
| 99 | + "name": "support.type.sdbl", |
| 100 | + "match": "(?i)(?<=[^\\wа-яё\\.])(Число|Number|Строка|String|Дата|Date|Булево|Boolean)(?=[^\\wа-яё\\.]|$)" |
| 101 | + }, |
| 102 | + { |
| 103 | + "name": "variable.parameter.sdbl", |
| 104 | + "match": "(&[\\wа-яё]+)" |
| 105 | + } |
| 106 | + ] |
| 107 | +} |
0 commit comments