diff --git a/CHANGELOG.md b/CHANGELOG.md index 508abdc..01a7f4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.28.0 + +* Грамматики переведены в формат JSON +* Убрана горячая клавиша с команды expandAbbreviation как мешающая плагинам AI-автокомплита + ## 1.27.3 * Обновлены правила подсветки языка запросов и языка 1С diff --git a/package-lock.json b/package-lock.json index 0d5f100..4ddea50 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "language-1c-bsl", - "version": "1.27.3", + "version": "1.28.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "language-1c-bsl", - "version": "1.27.3", + "version": "1.28.0", "license": "SEE LICENSE IN LICENSE.md", "dependencies": { "alignment": "0.0.1", diff --git a/package.json b/package.json index 557d860..03daf54 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "Language 1C (BSL)", "description": "Syntax highlighting for 1C:Enterprise 8.", "icon": "images/1c-syntax.png", - "version": "1.27.3", + "version": "1.28.0", "publisher": "1c-syntax", "galleryBanner": { "color": "#0000FF", @@ -285,8 +285,6 @@ }, { "command": "language-1c-bsl.expandAbbreviation", - "key": "tab", - "mac": "tab", "when": "editorTextFocus && editorLangId == 'bsl'" }, { @@ -325,12 +323,12 @@ { "language": "bsl", "scopeName": "source.bsl", - "path": "./syntaxes/1c.tmLanguage" + "path": "./syntaxes/1c.tmLanguage.json" }, { "language": "sdbl", "scopeName": "source.sdbl", - "path": "./syntaxes/1c-query.tmLanguage" + "path": "./syntaxes/1c-query.tmLanguage.json" } ], "problemMatchers": [ diff --git a/syntaxes/1c-query.tmLanguage b/syntaxes/1c-query.tmLanguage deleted file mode 100644 index 6513c82..0000000 --- a/syntaxes/1c-query.tmLanguage +++ /dev/null @@ -1,167 +0,0 @@ - - - - - name - 1C (Query) - scopeName - source.sdbl - fileTypes - - sdbl - query - - firstLineMatch - (?i)Выбрать|Select(\s+Разрешенные|\s+Allowed)?(\s+Различные|\s+Distinct)?(\s+Первые|\s+Top)?.* - uuid - d94265d3-2270-4ff2-ba36-649fbb4160df - patterns - - - name - comment.line.double-slash.sdbl - match - (^\s*//.*$) - - - name - comment.line.double-slash.sdbl - begin - // - end - $ - - - name - string.quoted.double.sdbl - begin - \" - end - \"(?![\"]) - patterns - - - name - constant.character.escape.sdbl - match - \"\" - - - name - comment.line.double-slash.sdbl - match - (^\s*//.*$) - - - - - name - constant.language.sdbl - match - (?i)(?<=[^\wа-яё\.]|^)(Неопределено|Undefined|Истина|True|Ложь|False|NULL)(?=[^\wа-яё\.]|$) - - - name - constant.numeric.sdbl - match - (?<=[^\wа-яё\.]|^)(\d+\.?\d*)(?=[^\wа-яё\.]|$) - - - name - keyword.control.conditional.sdbl - match - (?i)(?<=[^\wа-яё\.]|^)(Выбор|Case|Когда|When|Тогда|Then|Иначе|Else|Конец|End)(?=[^\wа-яё\.]|$) - - - name - keyword.operator.logical.sdbl - 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а-яё\.]|$) - - - name - keyword.operator.comparison.sdbl - match - <=|>=|=|<|> - - - name - keyword.operator.arithmetic.sdbl - match - (\+|-|\*|/|%) - - - name - keyword.operator.sdbl - match - (,|;) - - - name - keyword.control.sdbl - 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а-яё\.]|$) - - - comment - Функции языка запросов - name - support.function.sdbl - match - (?i)(?<=[^\wа-яё\.]|^)(Значение|Value|ДатаВремя|DateTime|Тип|Type)(?=\() - - - comment - Функции работы со строками - name - support.function.sdbl - match - (?i)(?<=[^\wа-яё\.]|^)(Подстрока|Substring|НРег|Lower|ВРег|Upper|Лев|Left|Прав|Right|ДлинаСтроки|StringLength|СтрНайти|StrFind|СтрЗаменить|StrReplace|СокрЛП|TrimAll|СокрЛ|TrimL|СокрП|TrimR)(?=\() - - - comment - Функции работы с датами - name - support.function.sdbl - match - (?i)(?<=[^\wа-яё\.]|^)(Год|Year|Квартал|Quarter|Месяц|Month|ДеньГода|DayOfYear|День|Day|Неделя|Week|ДеньНедели|Weekday|Час|Hour|Минута|Minute|Секунда|Second|НачалоПериода|BeginOfPeriod|КонецПериода|EndOfPeriod|ДобавитьКДате|DateAdd|РазностьДат|DateDiff|Полугодие|HalfYear|Декада|TenDays)(?=\() - - - comment - Функции работы с числами - name - support.function.sdbl - match - (?i)(?<=[^\wа-яё\.]|^)(ACOS|COS|ASIN|SIN|ATAN|TAN|EXP|POW|LOG|LOG10|Цел|Int|Окр|Round|SQRT)(?=\() - - - comment - Агрегатные функции - name - support.function.sdbl - match - (?i)(?<=[^\wа-яё\.]|^)(Сумма|Sum|Среднее|Avg|Минимум|Min|Максимум|Max|Количество|Count)(?=\() - - - comment - Прочие функции - name - support.function.sdbl - match - (?i)(?<=[^\wа-яё\.]|^)(ЕстьNULL|IsNULL|Представление|Presentation|ПредставлениеСсылки|RefPresentation|ТипЗначения|ValueType|АвтономерЗаписи|RecordAutoNumber|РазмерХранимыхДанных|StoredDataSize|УникальныйИдентификатор|UUID)(?=\() - - - name - support.type.sdbl - match - (?i)(?<=[^\wа-яё\.])(Число|Number|Строка|String|Дата|Date|Булево|Boolean)(?=[^\wа-яё\.]|$) - - - name - variable.parameter.sdbl - match - (&[\wа-яё]+) - - - - \ No newline at end of file diff --git a/syntaxes/1c-query.tmLanguage.json b/syntaxes/1c-query.tmLanguage.json new file mode 100644 index 0000000..2239ead --- /dev/null +++ b/syntaxes/1c-query.tmLanguage.json @@ -0,0 +1,107 @@ +{ + "displayName": "1C (Query)", + "name": "sdbl", + "scopeName": "source.sdbl", + "fileTypes": [ + "sdbl", + "query" + ], + "firstLineMatch": "(?i)Выбрать|Select(\\s+Разрешенные|\\s+Allowed)?(\\s+Различные|\\s+Distinct)?(\\s+Первые|\\s+Top)?.*", + "uuid": "d94265d3-2270-4ff2-ba36-649fbb4160df", + "patterns": [ + { + "name": "comment.line.double-slash.sdbl", + "match": "(^\\s*//.*$)" + }, + { + "name": "comment.line.double-slash.sdbl", + "begin": "//", + "end": "$" + }, + { + "name": "string.quoted.double.sdbl", + "begin": "\\\"", + "end": "\\\"(?![\\\"])", + "patterns": [ + { + "name": "constant.character.escape.sdbl", + "match": "\\\"\\\"" + }, + { + "name": "comment.line.double-slash.sdbl", + "match": "(^\\s*//.*$)" + } + ] + }, + { + "name": "constant.language.sdbl", + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(Неопределено|Undefined|Истина|True|Ложь|False|NULL)(?=[^\\wа-яё\\.]|$)" + }, + { + "name": "constant.numeric.sdbl", + "match": "(?<=[^\\wа-яё\\.]|^)(\\d+\\.?\\d*)(?=[^\\wа-яё\\.]|$)" + }, + { + "name": "keyword.control.conditional.sdbl", + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(Выбор|Case|Когда|When|Тогда|Then|Иначе|Else|Конец|End)(?=[^\\wа-яё\\.]|$)" + }, + { + "name": "keyword.operator.logical.sdbl", + "match": "(?i)(?=|=|<|>" + }, + { + "name": "keyword.operator.arithmetic.sdbl", + "match": "(\\+|-|\\*|/|%)" + }, + { + "name": "keyword.operator.sdbl", + "match": "(,|;)" + }, + { + "name": "keyword.control.sdbl", + "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а-яё\\.]|$)" + }, + { + "comment": "Функции языка запросов", + "name": "support.function.sdbl", + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(Значение|Value|ДатаВремя|DateTime|Тип|Type)(?=\\()" + }, + { + "comment": "Функции работы со строками", + "name": "support.function.sdbl", + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(Подстрока|Substring|НРег|Lower|ВРег|Upper|Лев|Left|Прав|Right|ДлинаСтроки|StringLength|СтрНайти|StrFind|СтрЗаменить|StrReplace|СокрЛП|TrimAll|СокрЛ|TrimL|СокрП|TrimR)(?=\\()" + }, + { + "comment": "Функции работы с датами", + "name": "support.function.sdbl", + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(Год|Year|Квартал|Quarter|Месяц|Month|ДеньГода|DayOfYear|День|Day|Неделя|Week|ДеньНедели|Weekday|Час|Hour|Минута|Minute|Секунда|Second|НачалоПериода|BeginOfPeriod|КонецПериода|EndOfPeriod|ДобавитьКДате|DateAdd|РазностьДат|DateDiff|Полугодие|HalfYear|Декада|TenDays)(?=\\()" + }, + { + "comment": "Функции работы с числами", + "name": "support.function.sdbl", + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(ACOS|COS|ASIN|SIN|ATAN|TAN|EXP|POW|LOG|LOG10|Цел|Int|Окр|Round|SQRT)(?=\\()" + }, + { + "comment": "Агрегатные функции", + "name": "support.function.sdbl", + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(Сумма|Sum|Среднее|Avg|Минимум|Min|Максимум|Max|Количество|Count)(?=\\()" + }, + { + "comment": "Прочие функции", + "name": "support.function.sdbl", + "match": "(?i)(?<=[^\\wа-яё\\.]|^)(ЕстьNULL|IsNULL|Представление|Presentation|ПредставлениеСсылки|RefPresentation|ТипЗначения|ValueType|АвтономерЗаписи|RecordAutoNumber|РазмерХранимыхДанных|StoredDataSize|УникальныйИдентификатор|UUID)(?=\\()" + }, + { + "name": "support.type.sdbl", + "match": "(?i)(?<=[^\\wа-яё\\.])(Число|Number|Строка|String|Дата|Date|Булево|Boolean)(?=[^\\wа-яё\\.]|$)" + }, + { + "name": "variable.parameter.sdbl", + "match": "(&[\\wа-яё]+)" + } + ] +} diff --git a/syntaxes/1c.tmLanguage b/syntaxes/1c.tmLanguage deleted file mode 100644 index 5319137..0000000 --- a/syntaxes/1c.tmLanguage +++ /dev/null @@ -1,1230 +0,0 @@ - - - - - name - 1C (BSL) - scopeName - source.bsl - fileTypes - - bsl - os - - uuid - cf0633ff-beee-424a-a2f7-3dce4093e139 - patterns - - - include - #basic - - - include - #miscellaneous - - - comment - Proc and function definition - begin - (?i:(?<=[^\wа-яё\.]|^)(Процедура|Procedure|Функция|Function)\s+([a-zа-яё0-9_]+)\s*(\()) - beginCaptures - - 1 - - name - storage.type.bsl - - 2 - - name - entity.name.function.bsl - - 3 - - name - punctuation.bracket.begin.bsl - - - end - (?i:(\))\s*((Экспорт|Export)(?=[^\wа-яё\.]|$))?) - endCaptures - - 1 - - name - punctuation.bracket.end.bsl - - 2 - - name - storage.modifier.bsl - - - patterns - - - include - #annotations - - - include - #basic - - - name - keyword.operator.assignment.bsl - match - (=) - - - name - storage.modifier.bsl - match - (?i:(?<=[^\wа-яё\.]|^)(Знач|Val)(?=[^\wа-яё\.]|$)) - - - name - invalid.illegal.bsl - match - (?<=[^\wа-яё\.]|^)((?<==)(?i)[a-zа-яё0-9_]+)(?=[^\wа-яё\.]|$) - - - name - invalid.illegal.bsl - match - (?<=[^\wа-яё\.]|^)((?<==\s)\s*(?i)[a-zа-яё0-9_]+)(?=[^\wа-яё\.]|$) - - - name - variable.parameter.bsl - match - (?i:[a-zа-яё0-9_]+) - - - - - comment - Define of variable - begin - (?i:(?<=[^\wа-яё\.]|^)(Перем|Var)\s+([a-zа-яё0-9_]+)\s*) - beginCaptures - - 1 - - name - storage.type.var.bsl - - 2 - - name - variable.bsl - - - end - (;) - endCaptures - - 1 - - name - keyword.operator.bsl - - - patterns - - - name - keyword.operator.bsl - match - (,) - - - name - storage.modifier.bsl - match - (?i:(?<=[^\wа-яё\.]|^)(Экспорт|Export)(?=[^\wа-яё\.]|$)) - - - name - variable.bsl - match - (?i:[a-zа-яё0-9_]+) - - - - - comment - Conditional - name - meta.conditional.bsl - begin - (?i:(?<=;|^)\s*(Если|If)) - beginCaptures - - 1 - - name - keyword.control.conditional.bsl - - - end - (?i:(Тогда|Then)) - endCaptures - - 1 - - name - keyword.control.conditional.bsl - - - patterns - - - include - #basic - - - include - #miscellaneous - - - - - comment - Variable assignment - name - meta.var-single-variable.bsl - begin - (?i:(?<=;|^)\s*([\wа-яё]+))\s*(=) - beginCaptures - - 1 - - name - variable.assignment.bsl - - 2 - - name - keyword.operator.assignment.bsl - - - end - (?i:(?=(;|Иначе|Конец|Els|End))) - patterns - - - include - #basic - - - include - #miscellaneous - - - - - name - storage.type.bsl - match - (?i:(?<=[^\wа-яё\.]|^)(КонецПроцедуры|EndProcedure|КонецФункции|EndFunction)(?=[^\wа-яё\.]|$)) - - - name - keyword.control.import.bsl - match - (?i)#(Использовать|Use)(?=[^\wа-яё\.]|$) - - - name - keyword.control.native.bsl - match - (?i)#native - - - name - keyword.control.bsl - match - (?i:(?<=[^\wа-яё\.]|^)(Прервать|Break|Продолжить|Continue|Возврат|Return)(?=[^\wа-яё\.]|$)) - - - name - keyword.control.conditional.bsl - match - (?i:(?<=[^\wа-яё\.]|^)(Если|If|Иначе|Else|ИначеЕсли|ElsIf|Тогда|Then|КонецЕсли|EndIf)(?=[^\wа-яё\.]|$)) - - - name - keyword.control.exception.bsl - match - (?i:(?<=[^\wа-яё\.]|^)(Попытка|Try|Исключение|Except|КонецПопытки|EndTry|ВызватьИсключение|Raise)(?=[^\wа-яё\.]|$)) - - - name - keyword.control.repeat.bsl - match - (?i:(?<=[^\wа-яё\.]|^)(Пока|While|(Для|For)(\s+(Каждого|Each))?|Из|In|По|To|Цикл|Do|КонецЦикла|EndDo)(?=[^\wа-яё\.]|$)) - - - name - storage.modifier.directive.bsl - match - (?i:&(НаКлиенте((НаСервере(БезКонтекста)?)?)|AtClient((AtServer(NoContext)?)?)|НаСервере(БезКонтекста)?|AtServer(NoContext)?)) - - - include - #annotations - - - name - keyword.other.preprocessor.bsl - match - (?i:#(Если|If|ИначеЕсли|ElsIf|Иначе|Else|КонецЕсли|EndIf).*(Тогда|Then)?) - - - comment - Region start - begin - (?i)(#(Область|Region))(\s+([\wа-яё]+))? - beginCaptures - - 1 - - name - keyword.other.section.bsl - - 4 - - name - entity.name.section.bsl - - - end - $ - - - comment - Region end - name - keyword.other.section.bsl - match - (?i)#(КонецОбласти|EndRegion) - - - comment - Delete start - name - keyword.other.section.bsl - match - (?i)#(Удаление|Delete) - - - comment - Delete end - name - keyword.other.section.bsl - match - (?i)#(КонецУдаления|EndDelete) - - - comment - Inster start - name - keyword.other.section.bsl - match - (?i)#(Вставка|Insert) - - - comment - Insert end - name - keyword.other.section.bsl - match - (?i)#(КонецВставки|EndInsert) - - - repository - - miscellaneous - - patterns - - - name - keyword.operator.logical.bsl - match - (?i:(?<=[^\wа-яё\.]|^)(НЕ|NOT|И|AND|ИЛИ|OR)(?=[^\wа-яё\.]|$)) - - - name - keyword.operator.comparison.bsl - match - <=|>=|=|<|> - - - name - keyword.operator.arithmetic.bsl - match - (\+|-|\*|/|%) - - - name - keyword.operator.bsl - match - (;|\?) - - - comment - Functions w/o brackets - name - support.function.bsl - match - (?i:(?<=[^\wа-яё\.]|^)(Новый|New)(?=[^\wа-яё\.]|$)) - - - comment - Глобальный контекст - функции работы со значениями типа Строка - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -СтрДлина|StrLen| -СокрЛ|TrimL| -СокрП|TrimR| -СокрЛП|TrimAll| -Лев|Left| -Прав|Right| -Сред|Mid| -СтрНайти|StrFind| -ВРег|Upper| -НРег|Lower| -ТРег|Title| -Символ|Char| -КодСимвола|CharCode| -ПустаяСтрока|IsBlankString| -СтрЗаменить|StrReplace| -СтрЧислоСтрок|StrLineCount| -СтрПолучитьСтроку|StrGetLine| -СтрЧислоВхождений|StrOccurrenceCount| -СтрСравнить|StrCompare| -СтрНачинаетсяС|StrStartWith| -СтрЗаканчиваетсяНа|StrEndsWith| -СтрРазделить|StrSplit| -СтрСоединить|StrConcat -)\s*(?=\()) - - - comment - Глобальный контекст - функции работы со значениями типа Число - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -Цел|Int| -Окр|Round| -ACos| -ASin| -ATan| -Cos| -Exp| -Log| -Log10| -Pow| -Sin| -Sqrt| -Tan -)\s*(?=\()) - - - comment - Глобальный контекст - функции работы со значениями типа Дата - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -Год|Year| -Месяц|Month| -День|Day| -Час|Hour| -Минута|Minute| -Секунда|Second| -НачалоГода|BegOfYear| -НачалоДня|BegOfDay| -НачалоКвартала|BegOfQuarter| -НачалоМесяца|BegOfMonth| -НачалоМинуты|BegOfMinute| -НачалоНедели|BegOfWeek| -НачалоЧаса|BegOfHour| -КонецГода|EndOfYear| -КонецДня|EndOfDay| -КонецКвартала|EndOfQuarter| -КонецМесяца|EndOfMonth| -КонецМинуты|EndOfMinute| -КонецНедели|EndOfWeek| -КонецЧаса|EndOfHour| -НеделяГода|WeekOfYear| -ДеньГода|DayOfYear| -ДеньНедели|WeekDay| -ТекущаяДата|CurrentDate| -ДобавитьМесяц|AddMonth -)\s*(?=\()) - - - comment - Глобальный контекст - функции работы со значениями типа Тип - name - support.function.bsl - match - (?i:(?<=[^\wа-яё\.]|^)(Тип|Type|ТипЗнч|TypeOf)\s*(?=\()) - - - comment - Глобальный контекст - функции преобразования значений - name - support.function.bsl - match - (?i:(?<=[^\wа-яё\.]|^)(Булево|Boolean|Число|Number|Строка|String|Дата|Date)\s*(?=\()) - - - comment - Глобальный контекст - процедуры и функции интерактивной работы - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -ПоказатьВопрос|ShowQueryBox| -Вопрос|DoQueryBox| -ПоказатьПредупреждение|ShowMessageBox| -Предупреждение|DoMessageBox| -Сообщить|Message| -ОчиститьСообщения|ClearMessages| -ОповеститьОбИзменении|NotifyChanged| -Состояние|Status| -Сигнал|Beep| -ПоказатьЗначение|ShowValue| -ОткрытьЗначение|OpenValue| -Оповестить|Notify| -ОбработкаПрерыванияПользователя|UserInterruptProcessing| -ОткрытьСодержаниеСправки|OpenHelpContent| -ОткрытьИндексСправки|OpenHelpIndex| -ОткрытьСправку|OpenHelp| -ПоказатьИнформациюОбОшибке|ShowErrorInfo| -КраткоеПредставлениеОшибки|BriefErrorDescription| -ПодробноеПредставлениеОшибки|DetailErrorDescription| -ПолучитьФорму|GetForm| -ЗакрытьСправку|CloseHelp| -ПоказатьОповещениеПользователя|ShowUserNotification| -ОткрытьФорму|OpenForm| -ОткрытьФормуМодально|OpenFormModal| -АктивноеОкно|ActiveWindow| -ВыполнитьОбработкуОповещения|ExecuteNotifyProcessing -)\s*(?=\()) - - - comment - Глобальный контекст - функции для вызова диалога ввода данных - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -ПоказатьВводЗначения|ShowInputValue| -ВвестиЗначение|InputValue| -ПоказатьВводЧисла|ShowInputNumber| -ВвестиЧисло|InputNumber| -ПоказатьВводСтроки|ShowInputString| -ВвестиСтроку|InputString| -ПоказатьВводДаты|ShowInputDate| -ВвестиДату|InputDate -)\s*(?=\()) - - - comment - Глобальный контекст - функции форматирования - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -Формат|Format| -ЧислоПрописью|NumberInWords| -НСтр|NStr| -ПредставлениеПериода|PeriodPresentation| -СтрШаблон|StrTemplate -)\s*(?=\()) - - - comment - Глобальный контекст - функции обращения к конфигурации - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -ПолучитьОбщийМакет|GetCommonTemplate| -ПолучитьОбщуюФорму|GetCommonForm| -ПредопределенноеЗначение|PredefinedValue| -ПолучитьПолноеИмяПредопределенногоЗначения|GetPredefinedValueFullName -)\s*(?=\()) - - - comment - Глобальный контекст - процедуры и функции сеанса работы - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -ПолучитьЗаголовокСистемы|GetCaption| -ПолучитьСкоростьКлиентскогоСоединения|GetClientConnectionSpeed| -ПодключитьОбработчикОжидания|AttachIdleHandler| -УстановитьЗаголовокСистемы|SetCaption| -ОтключитьОбработчикОжидания|DetachIdleHandler| -ИмяКомпьютера|ComputerName| -ЗавершитьРаботуСистемы|Exit| -ИмяПользователя|UserName| -ПрекратитьРаботуСистемы|Terminate| -ПолноеИмяПользователя|UserFullName| -ЗаблокироватьРаботуПользователя|LockApplication| -КаталогПрограммы|BinDir| -КаталогВременныхФайлов|TempFilesDir| -ПравоДоступа|AccessRight| -РольДоступна|IsInRole| -ТекущийЯзык|CurrentLanguage| -ТекущийКодЛокализации|CurrentLocaleCode| -СтрокаСоединенияИнформационнойБазы|InfoBaseConnectionString| -ПодключитьОбработчикОповещения|AttachNotificationHandler| -ОтключитьОбработчикОповещения|DetachNotificationHandler| -ПолучитьСообщенияПользователю|GetUserMessages| -ПараметрыДоступа|AccessParameters| -ПредставлениеПриложения|ApplicationPresentation| -ТекущийЯзыкСистемы|CurrentSystemLanguage| -ЗапуститьСистему|RunSystem| -ТекущийРежимЗапуска|CurrentRunMode| -УстановитьЧасовойПоясСеанса|SetSessionTimeZone| -ЧасовойПоясСеанса|SessionTimeZone| -ТекущаяДатаСеанса|CurrentSessionDate| -УстановитьКраткийЗаголовокПриложения|SetShortApplicationCaption| -ПолучитьКраткийЗаголовокПриложения|GetShortApplicationCaption| -ПредставлениеПрава|RightPresentation| -ВыполнитьПроверкуПравДоступа|VerifyAccessRights| -РабочийКаталогДанныхПользователя|UserDataWorkDir| -КаталогДокументов|DocumentsDir| -ПолучитьИнформациюЭкрановКлиента|GetClientDisplaysInformation| -ТекущийВариантОсновногоШрифтаКлиентскогоПриложения|ClientApplicationBaseFontCurrentVariant| -ТекущийВариантИнтерфейсаКлиентскогоПриложения|ClientApplicationInterfaceCurrentVariant| -УстановитьЗаголовокКлиентскогоПриложения|SetClientApplicationCaption| -ПолучитьЗаголовокКлиентскогоПриложения|GetClientApplicationCaption| -НачатьПолучениеКаталогаВременныхФайлов|BeginGettingTempFilesDir| -НачатьПолучениеКаталогаДокументов|BeginGettingDocumentsDir| -НачатьПолучениеРабочегоКаталогаДанныхПользователя|BeginGettingUserDataWorkDir| -ПодключитьОбработчикЗапросаНастроекКлиентаЛицензирования|AttachLicensingClientParametersRequestHandler| -ОтключитьОбработчикЗапросаНастроекКлиентаЛицензирования|DetachLicensingClientParametersRequestHandler| -КаталогБиблиотекиМобильногоУстройства|MobileDeviceLibraryDir -)\s*(?=\()) - - - comment - Глобальный контекст - процедуры и функции сохранения значений - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -ЗначениеВСтрокуВнутр|ValueToStringInternal| -ЗначениеИзСтрокиВнутр|ValueFromStringInternal| -ЗначениеВФайл|ValueToFile| -ЗначениеИзФайла|ValueFromFile -)\s*(?=\()) - - - comment - Глобальный контекст - Процедуры и функции работы с операционной системой - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -КомандаСистемы|System| -ЗапуститьПриложение|RunApp| -ПолучитьCOMОбъект|GetCOMObject| -ПользователиОС|OSUsers| -НачатьЗапускПриложения|BeginRunningApplication -)\s*(?=\()) - - - comment - Глобальный контекст - Процедуры и функции работы с внешними компонентами - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -ПодключитьВнешнююКомпоненту|AttachAddIn| -НачатьУстановкуВнешнейКомпоненты|BeginInstallAddIn| -УстановитьВнешнююКомпоненту|InstallAddIn| -НачатьПодключениеВнешнейКомпоненты|BeginAttachingAddIn -)\s*(?=\()) - - - comment - Глобальный контекст - Процедуры и функции работы с файлами - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -КопироватьФайл|FileCopy| -ПереместитьФайл|MoveFile| -УдалитьФайлы|DeleteFiles| -НайтиФайлы|FindFiles| -СоздатьКаталог|CreateDirectory| -ПолучитьИмяВременногоФайла|GetTempFileName| -РазделитьФайл|SplitFile| -ОбъединитьФайлы|MergeFiles| -ПолучитьФайл|GetFile| -НачатьПомещениеФайла|BeginPutFile| -ПоместитьФайл|PutFile| -ЭтоАдресВременногоХранилища|IsTempStorageURL| -УдалитьИзВременногоХранилища|DeleteFromTempStorage| -ПолучитьИзВременногоХранилища|GetFromTempStorage| -ПоместитьВоВременноеХранилище|PutToTempStorage| -ПодключитьРасширениеРаботыСФайлами|AttachFileSystemExtension| -НачатьУстановкуРасширенияРаботыСФайлами|BeginInstallFileSystemExtension| -УстановитьРасширениеРаботыСФайлами|InstallFileSystemExtension| -ПолучитьФайлы|GetFiles| -ПоместитьФайлы|PutFiles| -ЗапроситьРазрешениеПользователя|RequestUserPermission| -ПолучитьМаскуВсеФайлы|GetAllFilesMask| -ПолучитьМаскуВсеФайлыКлиента|GetClientAllFilesMask| -ПолучитьМаскуВсеФайлыСервера|GetServerAllFilesMask| -ПолучитьРазделительПути|GetPathSeparator| -ПолучитьРазделительПутиКлиента|GetClientPathSeparator| -ПолучитьРазделительПутиСервера|GetServerPathSeparator| -НачатьПодключениеРасширенияРаботыСФайлами|BeginAttachingFileSystemExtension| -НачатьЗапросРазрешенияПользователя|BeginRequestingUserPermission| -НачатьПоискФайлов|BeginFindingFiles| -НачатьСозданиеКаталога|BeginCreatingDirectory| -НачатьКопированиеФайла|BeginCopyingFile| -НачатьПеремещениеФайла|BeginMovingFile| -НачатьУдалениеФайлов|BeginDeletingFiles| -НачатьПолучениеФайлов|BeginGettingFiles| -НачатьПомещениеФайлов|BeginPuttingFiles| -НачатьСозданиеДвоичныхДанныхИзФайла|BeginCreateBinaryDataFromFile -)\s*(?=\()) - - - comment - Глобальный контекст - Процедуры и функции работы с информационной базой - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -НачатьТранзакцию|BeginTransaction| -ЗафиксироватьТранзакцию|CommitTransaction| -ОтменитьТранзакцию|RollbackTransaction| -УстановитьМонопольныйРежим|SetExclusiveMode| -МонопольныйРежим|ExclusiveMode| -ПолучитьОперативнуюОтметкуВремени|GetRealTimeTimestamp| -ПолучитьСоединенияИнформационнойБазы|GetInfoBaseConnections| -НомерСоединенияИнформационнойБазы|InfoBaseConnectionNumber| -КонфигурацияИзменена|ConfigurationChanged| -КонфигурацияБазыДанныхИзмененаДинамически|DataBaseConfigurationChangedDynamically| -УстановитьВремяОжиданияБлокировкиДанных|SetLockWaitTime| -ОбновитьНумерациюОбъектов|RefreshObjectsNumbering| -ПолучитьВремяОжиданияБлокировкиДанных|GetLockWaitTime| -КодЛокализацииИнформационнойБазы|InfoBaseLocaleCode| -УстановитьМинимальнуюДлинуПаролейПользователей|SetUserPasswordMinLength| -ПолучитьМинимальнуюДлинуПаролейПользователей|GetUserPasswordMinLength| -ИнициализироватьПредопределенныеДанные|InitializePredefinedData| -УдалитьДанныеИнформационнойБазы|EraseInfoBaseData| -УстановитьПроверкуСложностиПаролейПользователей|SetUserPasswordStrengthCheck| -ПолучитьПроверкуСложностиПаролейПользователей|GetUserPasswordStrengthCheck| -ПолучитьСтруктуруХраненияБазыДанных|GetDBStorageStructureInfo| -УстановитьПривилегированныйРежим|SetPrivilegedMode| -ПривилегированныйРежим|PrivilegedMode| -ТранзакцияАктивна|TransactionActive| -НеобходимостьЗавершенияСоединения|ConnectionStopRequest| -НомерСеансаИнформационнойБазы|InfoBaseSessionNumber| -ПолучитьСеансыИнформационнойБазы|GetInfoBaseSessions| -ЗаблокироватьДанныеДляРедактирования|LockDataForEdit| -УстановитьСоединениеСВнешнимИсточникомДанных|ConnectExternalDataSource| -РазблокироватьДанныеДляРедактирования|UnlockDataForEdit| -РазорватьСоединениеСВнешнимИсточникомДанных|DisconnectExternalDataSource| -ПолучитьБлокировкуСеансов|GetSessionsLock| -УстановитьБлокировкуСеансов|SetSessionsLock| -ОбновитьПовторноИспользуемыеЗначения|RefreshReusableValues| -УстановитьБезопасныйРежим|SetSafeMode| -БезопасныйРежим|SafeMode| -ПолучитьДанныеВыбора|GetChoiceData| -УстановитьЧасовойПоясИнформационнойБазы|SetInfoBaseTimeZone| -ПолучитьЧасовойПоясИнформационнойБазы|GetInfoBaseTimeZone| -ПолучитьОбновлениеКонфигурацииБазыДанных|GetDataBaseConfigurationUpdate| -УстановитьБезопасныйРежимРазделенияДанных|SetDataSeparationSafeMode| -БезопасныйРежимРазделенияДанных|DataSeparationSafeMode| -УстановитьВремяЗасыпанияПассивногоСеанса|SetPassiveSessionHibernateTime| -ПолучитьВремяЗасыпанияПассивногоСеанса|GetPassiveSessionHibernateTime| -УстановитьВремяЗавершенияСпящегоСеанса|SetHibernateSessionTerminateTime| -ПолучитьВремяЗавершенияСпящегоСеанса|GetHibernateSessionTerminateTime| -ПолучитьТекущийСеансИнформационнойБазы|GetCurrentInfoBaseSession| -ПолучитьИдентификаторКонфигурации|GetConfigurationID| -УстановитьНастройкиКлиентаЛицензирования|SetLicensingClientParameters| -ПолучитьИмяКлиентаЛицензирования|GetLicensingClientName| -ПолучитьДополнительныйПараметрКлиентаЛицензирования|GetLicensingClientAdditionalParameter| -ПолучитьОтключениеБезопасногоРежима|GetSafeModeDisabled| -УстановитьОтключениеБезопасногоРежима|SetSafeModeDisabled -)\s*(?=\()) - - - comment - Глобальный контекст - Процедуры и функции работы с данными информационной базы - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -НайтиПомеченныеНаУдаление|FindMarkedForDeletion| -НайтиПоСсылкам|FindByRef| -УдалитьОбъекты|DeleteObjects| -УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы|SetInfoBasePredefinedDataUpdate| -ПолучитьОбновлениеПредопределенныхДанныхИнформационнойБазы|GetInfoBasePredefinedData -)\s*(?=\()) - - - comment - Глобальный контекст - Процедуры и функции работы с XML - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -XMLСтрока|XMLString| -XMLЗначение|XMLValue| -XMLТип|XMLType| -XMLТипЗнч|XMLTypeOf| -ИзXMLТипа|FromXMLType| -ВозможностьЧтенияXML|CanReadXML| -ПолучитьXMLТип|GetXMLType| -ПрочитатьXML|ReadXML| -ЗаписатьXML|WriteXML| -НайтиНедопустимыеСимволыXML|FindDisallowedXMLCharacters| -ИмпортМоделиXDTO|ImportXDTOModel| -СоздатьФабрикуXDTO|CreateXDTOFactory -)\s*(?=\()) - - - comment - Глобальный контекст - Процедуры и функции работы с JSON - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -ЗаписатьJSON|WriteJSON| -ПрочитатьJSON|ReadJSON| -ПрочитатьДатуJSON|ReadJSONDate| -ЗаписатьДатуJSON|WriteJSONDate -)\s*(?=\()) - - - comment - Глобальный контекст - Процедуры и функции работы с журналом регистрации - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -ЗаписьЖурналаРегистрации|WriteLogEvent| -ПолучитьИспользованиеЖурналаРегистрации|GetEventLogUsing| -УстановитьИспользованиеЖурналаРегистрации|SetEventLogUsing| -ПредставлениеСобытияЖурналаРегистрации|EventLogEventPresentation| -ВыгрузитьЖурналРегистрации|UnloadEventLog| -ПолучитьЗначенияОтбораЖурналаРегистрации|GetEventLogFilterValues| -УстановитьИспользованиеСобытияЖурналаРегистрации|SetEventLogEventUse| -ПолучитьИспользованиеСобытияЖурналаРегистрации|GetEventLogEventUse| -СкопироватьЖурналРегистрации|CopyEventLog| -ОчиститьЖурналРегистрации|ClearEventLog -)\s*(?=\()) - - - comment - Глобальный контекст - Процедуры и функции работы с универсальными объектами - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -ЗначениеВДанныеФормы|ValueToFormData| -ДанныеФормыВЗначение|FormDataToValue| -КопироватьДанныеФормы|CopyFormData| -УстановитьСоответствиеОбъектаИФормы|SetObjectAndFormConformity| -ПолучитьСоответствиеОбъектаИФормы|GetObjectAndFormConformity -)\s*(?=\()) - - - comment - Глобальный контекст - Процедуры и функции работы с функциональными опциями - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -ПолучитьФункциональнуюОпцию|GetFunctionalOption| -ПолучитьФункциональнуюОпциюИнтерфейса|GetInterfaceFunctionalOption| -УстановитьПараметрыФункциональныхОпцийИнтерфейса|SetInterfaceFunctionalOptionParameters| -ПолучитьПараметрыФункциональныхОпцийИнтерфейса|GetInterfaceFunctionalOptionParameters| -ОбновитьИнтерфейс|RefreshInterface -)\s*(?=\()) - - - comment - Глобальный контекст - Процедуры и функции работы с криптографией - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -УстановитьРасширениеРаботыСКриптографией|InstallCryptoExtension| -НачатьУстановкуРасширенияРаботыСКриптографией|BeginInstallCryptoExtension| -ПодключитьРасширениеРаботыСКриптографией|AttachCryptoExtension| -НачатьПодключениеРасширенияРаботыСКриптографией|BeginAttachingCryptoExtension -)\s*(?=\()) - - - comment - Глобальный контекст - Процедуры и функции работы со стандартным интерфейсом OData - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -УстановитьСоставСтандартногоИнтерфейсаOData|SetStandardODataInterfaceContent| -ПолучитьСоставСтандартногоИнтерфейсаOData|GetStandardODataInterfaceContent -)\s*(?=\()) - - - comment - Глобальный контекст - Процедуры и функции работы с двоичными данными - name - support.function.bsl - match - (?i:(?<=[^\wа-яё\.]|^)(СоединитьБуферыДвоичныхДанных|ConcatBinaryDataBuffers)\s*(?=\()) - - - comment - Глобальный контекст - Прочие процедуры и функции - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -Мин|Min| -Макс|Max| -ОписаниеОшибки|ErrorDescription| -Вычислить|Eval| -ИнформацияОбОшибке|ErrorInfo| -Base64Значение|Base64Value| -Base64Строка|Base64String| -ЗаполнитьЗначенияСвойств|FillPropertyValues| -ЗначениеЗаполнено|ValueIsFilled| -ПолучитьПредставленияНавигационныхСсылок|GetURLsPresentations| -НайтиОкноПоНавигационнойСсылке|FindWindowByURL| -ПолучитьОкна|GetWindows| -ПерейтиПоНавигационнойСсылке|GotoURL| -ПолучитьНавигационнуюСсылку|GetURL| -ПолучитьДопустимыеКодыЛокализации|GetAvailableLocaleCodes| -ПолучитьНавигационнуюСсылкуИнформационнойБазы|GetInfoBaseURL| -ПредставлениеКодаЛокализации|LocaleCodePresentation| -ПолучитьДопустимыеЧасовыеПояса|GetAvailableTimeZones| -ПредставлениеЧасовогоПояса|TimeZonePresentation| -ТекущаяУниверсальнаяДата|CurrentUniversalDate| -ТекущаяУниверсальнаяДатаВМиллисекундах|CurrentUniversalDateInMilliseconds| -МестноеВремя|ToLocalTime| -УниверсальноеВремя|ToUniversalTime| -ЧасовойПояс|TimeZone| -СмещениеЛетнегоВремени|DaylightTimeOffset| -СмещениеСтандартногоВремени|StandardTimeOffset| -КодироватьСтроку|EncodeString| -РаскодироватьСтроку|DecodeString| -Найти|Find| -ПродолжитьВызов|ProceedWithCall -)\s*(?=\()) - - - comment - Глобальный контекст - События приложения и сеанса - name - support.function.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -ПередНачаломРаботыСистемы|BeforeStart| -ПриНачалеРаботыСистемы|OnStart| -ПередЗавершениемРаботыСистемы|BeforeExit| -ПриЗавершенииРаботыСистемы|OnExit| -ОбработкаВнешнегоСобытия|ExternEventProcessing| -УстановкаПараметровСеанса|SessionParametersSetting| -ПриИзмененииПараметровЭкрана|OnChangeDisplaySettings -)\s*(?=\()) - - - comment - Глобальный контекст - Свойства (классы) - name - support.class.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -WSСсылки|WSReferences| -БиблиотекаКартинок|PictureLib| -БиблиотекаМакетовОформленияКомпоновкиДанных|DataCompositionAppearanceTemplateLib| -БиблиотекаСтилей|StyleLib| -БизнесПроцессы|BusinessProcesses| -ВнешниеИсточникиДанных|ExternalDataSources| -ВнешниеОбработки|ExternalDataProcessors| -ВнешниеОтчеты|ExternalReports| -Документы|Documents| -ДоставляемыеУведомления|DeliverableNotifications| -ЖурналыДокументов|DocumentJournals| -Задачи|Tasks| -ИнформацияОбИнтернетСоединении|InternetConnectionInformation| -ИспользованиеРабочейДаты|WorkingDateUse| -ИсторияРаботыПользователя|UserWorkHistory| -Константы|Constants| -КритерииОтбора|FilterCriteria| -Метаданные|Metadata| -Обработки|DataProcessors| -ОтправкаДоставляемыхУведомлений|DeliverableNotificationSend| -Отчеты|Reports| -ПараметрыСеанса|SessionParameters| -Перечисления|Enums| -ПланыВидовРасчета|ChartsOfCalculationTypes| -ПланыВидовХарактеристик|ChartsOfCharacteristicTypes| -ПланыОбмена|ExchangePlans| -ПланыСчетов|ChartsOfAccounts| -ПолнотекстовыйПоиск|FullTextSearch| -ПользователиИнформационнойБазы|InfoBaseUsers| -Последовательности|Sequences| -РасширенияКонфигурации|ConfigurationExtensions| -РегистрыБухгалтерии|AccountingRegisters| -РегистрыНакопления|AccumulationRegisters| -РегистрыРасчета|CalculationRegisters| -РегистрыСведений|InformationRegisters| -РегламентныеЗадания|ScheduledJobs| -СериализаторXDTO|XDTOSerializer| -Справочники|Catalogs| -СредстваГеопозиционирования|LocationTools| -СредстваКриптографии|CryptoToolsManager| -СредстваМультимедиа|MultimediaTools| -СредстваОтображенияРекламы|AdvertisingPresentationTools| -СредстваПочты|MailTools| -СредстваТелефонии|TelephonyTools| -ФабрикаXDTO|XDTOFactory| -ФайловыеПотоки|FileStreams| -ФоновыеЗадания|BackgroundJobs| -ХранилищаНастроек|SettingsStorages| -ВстроенныеПокупки|InAppPurchases| -ОтображениеРекламы|AdRepresentation| -ПанельЗадачОС|OSTaskbar| -ПроверкаВстроенныхПокупок|InAppPurchasesValidation -)(?=[^\wа-яё]|$)) - - - comment - Глобальный контекст - Свойства (переменные) - name - support.variable.bsl - match - (?x)(?i:(?<=[^\wа-яё\.]|^)( -ГлавныйИнтерфейс|MainInterface| -ГлавныйСтиль|MainStyle| -ПараметрЗапуска|LaunchParameter| -РабочаяДата|WorkingDate| -ХранилищеВариантовОтчетов|ReportsVariantsStorage| -ХранилищеНастроекДанныхФорм|FormDataSettingsStorage| -ХранилищеОбщихНастроек|CommonSettingsStorage| -ХранилищеПользовательскихНастроекДинамическихСписков|DynamicListsUserSettingsStorage| -ХранилищеПользовательскихНастроекОтчетов|ReportsUserSettingsStorage| -ХранилищеСистемныхНастроек|SystemSettingsStorage -)(?=[^\wа-яё]|$)) - - - - query - - begin - (?i)(?<=[^\wа-яё\.]|^)(Выбрать|Select(\s+Разрешенные|\s+Allowed)?(\s+Различные|\s+Distinct)?(\s+Первые|\s+Top)?)(?=[^\wа-яё\.]|$) - beginCaptures - - 1 - - name - keyword.control.sdbl - - - end - (?=\"[^\"]) - patterns - - - name - comment.line.double-slash.bsl - begin - ^\s*// - end - $ - - - name - comment.line.double-slash.sdbl - match - (//((\"\")|[^\"])*) - - - name - string.quoted.double.sdbl - match - \"\"[^"]*\"\" - - - include - source.sdbl - - - - basic - - patterns - - - name - comment.line.double-slash.bsl - begin - // - end - $ - - - name - string.quoted.double.bsl - begin - \" - end - \"(?![\"]) - patterns - - - include - #query - - - name - constant.character.escape.bsl - match - \"\" - - - name - comment.line.double-slash.bsl - match - (^\s*//.*$) - - - - - name - constant.language.bsl - match - (?i:(?<=[^\wа-яё\.]|^)(Неопределено|Undefined|Истина|True|Ложь|False|NULL)(?=[^\wа-яё\.]|$)) - - - name - constant.numeric.bsl - match - (?<=[^\wа-яё\.]|^)(\d+\.?\d*)(?=[^\wа-яё\.]|$) - - - name - constant.other.date.bsl - match - \'((\d{4}[^\d\']*\d{2}[^\d\']*\d{2})([^\d\']*\d{2}[^\d\']*\d{2}([^\d\']*\d{2})?)?)\' - - - name - keyword.operator.bsl - match - (,) - - - name - punctuation.bracket.begin.bsl - match - (\() - - - name - punctuation.bracket.end.bsl - match - (\)) - - - - annotations - - patterns - - - comment - Annotations with parameters - begin - (?i)(&([a-zа-яё0-9_]+))\s*(\() - beginCaptures - - 1 - - name - storage.type.annotation.bsl - - 3 - - name - punctuation.bracket.begin.bsl - - - end - (\)) - endCaptures - - 1 - - name - punctuation.bracket.end.bsl - - - patterns - - - include - #basic - - - name - keyword.operator.assignment.bsl - match - (=) - - - name - invalid.illegal.bsl - match - (?<=[^\wа-яё\.]|^)((?<==)(?i)[a-zа-яё0-9_]+)(?=[^\wа-яё\.]|$) - - - name - invalid.illegal.bsl - match - (?<=[^\wа-яё\.]|^)((?<==\s)\s*(?i)[a-zа-яё0-9_]+)(?=[^\wа-яё\.]|$) - - - name - variable.annotation.bsl - match - (?i)[a-zа-яё0-9_]+ - - - - - comment - Annotations without parameters - name - storage.type.annotation.bsl - match - (?i)(&([a-zа-яё0-9_]+)) - - - - - - \ No newline at end of file diff --git a/syntaxes/1c.tmLanguage.json b/syntaxes/1c.tmLanguage.json new file mode 100644 index 0000000..2a436f5 --- /dev/null +++ b/syntaxes/1c.tmLanguage.json @@ -0,0 +1,518 @@ +{ + "displayName": "1C (BSL)", + "name": "bsl", + "scopeName": "source.bsl", + "fileTypes": [ + "bsl", + "os" + ], + "uuid": "cf0633ff-beee-424a-a2f7-3dce4093e139", + "patterns": [ + { + "include": "#basic" + }, + { + "include": "#miscellaneous" + }, + { + "comment": "Proc and function definition", + "begin": "(?i:(?<=[^\\wа-яё\\.]|^)(Процедура|Procedure|Функция|Function)\\s+([a-zа-яё0-9_]+)\\s*(\\())", + "beginCaptures": { + "1": { + "name": "storage.type.bsl" + }, + "2": { + "name": "entity.name.function.bsl" + }, + "3": { + "name": "punctuation.bracket.begin.bsl" + } + }, + "end": "(?i:(\\))\\s*((Экспорт|Export)(?=[^\\wа-яё\\.]|$))?)", + "endCaptures": { + "1": { + "name": "punctuation.bracket.end.bsl" + }, + "2": { + "name": "storage.modifier.bsl" + } + }, + "patterns": [ + { + "include": "#annotations" + }, + { + "include": "#basic" + }, + { + "name": "keyword.operator.assignment.bsl", + "match": "(=)" + }, + { + "name": "storage.modifier.bsl", + "match": "(?i:(?<=[^\\wа-яё\\.]|^)(Знач|Val)(?=[^\\wа-яё\\.]|$))" + }, + { + "name": "invalid.illegal.bsl", + "match": "(?<=[^\\wа-яё\\.]|^)((?<==)(?i)[a-zа-яё0-9_]+)(?=[^\\wа-яё\\.]|$)" + }, + { + "name": "invalid.illegal.bsl", + "match": "(?<=[^\\wа-яё\\.]|^)((?<==\\s)\\s*(?i)[a-zа-яё0-9_]+)(?=[^\\wа-яё\\.]|$)" + }, + { + "name": "variable.parameter.bsl", + "match": "(?i:[a-zа-яё0-9_]+)" + } + ] + }, + { + "comment": "Define of variable", + "begin": "(?i:(?<=[^\\wа-яё\\.]|^)(Перем|Var)\\s+([a-zа-яё0-9_]+)\\s*)", + "beginCaptures": { + "1": { + "name": "storage.type.var.bsl" + }, + "2": { + "name": "variable.bsl" + } + }, + "end": "(;)", + "endCaptures": { + "1": { + "name": "keyword.operator.bsl" + } + }, + "patterns": [ + { + "name": "keyword.operator.bsl", + "match": "(,)" + }, + { + "name": "storage.modifier.bsl", + "match": "(?i:(?<=[^\\wа-яё\\.]|^)(Экспорт|Export)(?=[^\\wа-яё\\.]|$))" + }, + { + "name": "variable.bsl", + "match": "(?i:[a-zа-яё0-9_]+)" + } + ] + }, + { + "comment": "Conditional", + "name": "meta.conditional.bsl", + "begin": "(?i:(?<=;|^)\\s*(Если|If))", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.bsl" + } + }, + "end": "(?i:(Тогда|Then))", + "endCaptures": { + "1": { + "name": "keyword.control.conditional.bsl" + } + }, + "patterns": [ + { + "include": "#basic" + }, + { + "include": "#miscellaneous" + } + ] + }, + { + "comment": "Variable assignment", + "name": "meta.var-single-variable.bsl", + "begin": "(?i:(?<=;|^)\\s*([\\wа-яё]+))\\s*(=)", + "beginCaptures": { + "1": { + "name": "variable.assignment.bsl" + }, + "2": { + "name": "keyword.operator.assignment.bsl" + } + }, + "end": "(?i:(?=(;|Иначе|Конец|Els|End)))", + "patterns": [ + { + "include": "#basic" + }, + { + "include": "#miscellaneous" + } + ] + }, + { + "name": "storage.type.bsl", + "match": "(?i:(?<=[^\\wа-яё\\.]|^)(КонецПроцедуры|EndProcedure|КонецФункции|EndFunction)(?=[^\\wа-яё\\.]|$))" + }, + { + "name": "keyword.control.import.bsl", + "match": "(?i)#(Использовать|Use)(?=[^\\wа-яё\\.]|$)" + }, + { + "name": "keyword.control.native.bsl", + "match": "(?i)#native" + }, + { + "name": "keyword.control.bsl", + "match": "(?i:(?<=[^\\wа-яё\\.]|^)(Прервать|Break|Продолжить|Continue|Возврат|Return)(?=[^\\wа-яё\\.]|$))" + }, + { + "name": "keyword.control.conditional.bsl", + "match": "(?i:(?<=[^\\wа-яё\\.]|^)(Если|If|Иначе|Else|ИначеЕсли|ElsIf|Тогда|Then|КонецЕсли|EndIf)(?=[^\\wа-яё\\.]|$))" + }, + { + "name": "keyword.control.exception.bsl", + "match": "(?i:(?<=[^\\wа-яё\\.]|^)(Попытка|Try|Исключение|Except|КонецПопытки|EndTry|ВызватьИсключение|Raise)(?=[^\\wа-яё\\.]|$))" + }, + { + "name": "keyword.control.repeat.bsl", + "match": "(?i:(?<=[^\\wа-яё\\.]|^)(Пока|While|(Для|For)(\\s+(Каждого|Each))?|Из|In|По|To|Цикл|Do|КонецЦикла|EndDo)(?=[^\\wа-яё\\.]|$))" + }, + { + "name": "storage.modifier.directive.bsl", + "match": "(?i:&(НаКлиенте((НаСервере(БезКонтекста)?)?)|AtClient((AtServer(NoContext)?)?)|НаСервере(БезКонтекста)?|AtServer(NoContext)?))" + }, + { + "include": "#annotations" + }, + { + "name": "keyword.other.preprocessor.bsl", + "match": "(?i:#(Если|If|ИначеЕсли|ElsIf|Иначе|Else|КонецЕсли|EndIf).*(Тогда|Then)?)" + }, + { + "comment": "Region start", + "begin": "(?i)(#(Область|Region))(\\s+([\\wа-яё]+))?", + "beginCaptures": { + "1": { + "name": "keyword.other.section.bsl" + }, + "4": { + "name": "entity.name.section.bsl" + } + }, + "end": "$" + }, + { + "comment": "Region end", + "name": "keyword.other.section.bsl", + "match": "(?i)#(КонецОбласти|EndRegion)" + }, + { + "comment": "Delete start", + "name": "keyword.other.section.bsl", + "match": "(?i)#(Удаление|Delete)" + }, + { + "comment": "Delete end", + "name": "keyword.other.section.bsl", + "match": "(?i)#(КонецУдаления|EndDelete)" + }, + { + "comment": "Inster start", + "name": "keyword.other.section.bsl", + "match": "(?i)#(Вставка|Insert)" + }, + { + "comment": "Insert end", + "name": "keyword.other.section.bsl", + "match": "(?i)#(КонецВставки|EndInsert)" + } + ], + "repository": { + "miscellaneous": { + "patterns": [ + { + "name": "keyword.operator.logical.bsl", + "match": "(?i:(?<=[^\\wа-яё\\.]|^)(НЕ|NOT|И|AND|ИЛИ|OR)(?=[^\\wа-яё\\.]|$))" + }, + { + "name": "keyword.operator.comparison.bsl", + "match": "<=|>=|=|<|>" + }, + { + "name": "keyword.operator.arithmetic.bsl", + "match": "(\\+|-|\\*|/|%)" + }, + { + "name": "keyword.operator.bsl", + "match": "(;|\\?)" + }, + { + "comment": "Functions w/o brackets", + "name": "support.function.bsl", + "match": "(?i:(?<=[^\\wа-яё\\.]|^)(Новый|New)(?=[^\\wа-яё\\.]|$))" + }, + { + "comment": "Глобальный контекст - функции работы со значениями типа Строка", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nСтрДлина|StrLen|\nСокрЛ|TrimL|\nСокрП|TrimR|\nСокрЛП|TrimAll|\nЛев|Left|\nПрав|Right|\nСред|Mid|\nСтрНайти|StrFind|\nВРег|Upper|\nНРег|Lower|\nТРег|Title|\nСимвол|Char|\nКодСимвола|CharCode|\nПустаяСтрока|IsBlankString|\nСтрЗаменить|StrReplace|\nСтрЧислоСтрок|StrLineCount|\nСтрПолучитьСтроку|StrGetLine|\nСтрЧислоВхождений|StrOccurrenceCount|\nСтрСравнить|StrCompare|\nСтрНачинаетсяС|StrStartWith|\nСтрЗаканчиваетсяНа|StrEndsWith|\nСтрРазделить|StrSplit|\nСтрСоединить|StrConcat\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - функции работы со значениями типа Число", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nЦел|Int|\nОкр|Round|\nACos|\nASin|\nATan|\nCos|\nExp|\nLog|\nLog10|\nPow|\nSin|\nSqrt|\nTan\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - функции работы со значениями типа Дата", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nГод|Year|\nМесяц|Month|\nДень|Day|\nЧас|Hour|\nМинута|Minute|\nСекунда|Second|\nНачалоГода|BegOfYear|\nНачалоДня|BegOfDay|\nНачалоКвартала|BegOfQuarter|\nНачалоМесяца|BegOfMonth|\nНачалоМинуты|BegOfMinute|\nНачалоНедели|BegOfWeek|\nНачалоЧаса|BegOfHour|\nКонецГода|EndOfYear|\nКонецДня|EndOfDay|\nКонецКвартала|EndOfQuarter|\nКонецМесяца|EndOfMonth|\nКонецМинуты|EndOfMinute|\nКонецНедели|EndOfWeek|\nКонецЧаса|EndOfHour|\nНеделяГода|WeekOfYear|\nДеньГода|DayOfYear|\nДеньНедели|WeekDay|\nТекущаяДата|CurrentDate|\nДобавитьМесяц|AddMonth\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - функции работы со значениями типа Тип", + "name": "support.function.bsl", + "match": "(?i:(?<=[^\\wа-яё\\.]|^)(Тип|Type|ТипЗнч|TypeOf)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - функции преобразования значений", + "name": "support.function.bsl", + "match": "(?i:(?<=[^\\wа-яё\\.]|^)(Булево|Boolean|Число|Number|Строка|String|Дата|Date)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - процедуры и функции интерактивной работы", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nПоказатьВопрос|ShowQueryBox|\nВопрос|DoQueryBox|\nПоказатьПредупреждение|ShowMessageBox|\nПредупреждение|DoMessageBox|\nСообщить|Message|\nОчиститьСообщения|ClearMessages|\nОповеститьОбИзменении|NotifyChanged|\nСостояние|Status|\nСигнал|Beep|\nПоказатьЗначение|ShowValue|\nОткрытьЗначение|OpenValue|\nОповестить|Notify|\nОбработкаПрерыванияПользователя|UserInterruptProcessing|\nОткрытьСодержаниеСправки|OpenHelpContent|\nОткрытьИндексСправки|OpenHelpIndex|\nОткрытьСправку|OpenHelp|\nПоказатьИнформациюОбОшибке|ShowErrorInfo|\nКраткоеПредставлениеОшибки|BriefErrorDescription|\nПодробноеПредставлениеОшибки|DetailErrorDescription|\nПолучитьФорму|GetForm|\nЗакрытьСправку|CloseHelp|\nПоказатьОповещениеПользователя|ShowUserNotification|\nОткрытьФорму|OpenForm|\nОткрытьФормуМодально|OpenFormModal|\nАктивноеОкно|ActiveWindow|\nВыполнитьОбработкуОповещения|ExecuteNotifyProcessing\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - функции для вызова диалога ввода данных", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nПоказатьВводЗначения|ShowInputValue|\nВвестиЗначение|InputValue|\nПоказатьВводЧисла|ShowInputNumber|\nВвестиЧисло|InputNumber|\nПоказатьВводСтроки|ShowInputString|\nВвестиСтроку|InputString|\nПоказатьВводДаты|ShowInputDate|\nВвестиДату|InputDate\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - функции форматирования", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nФормат|Format|\nЧислоПрописью|NumberInWords|\nНСтр|NStr|\nПредставлениеПериода|PeriodPresentation|\nСтрШаблон|StrTemplate\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - функции обращения к конфигурации", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nПолучитьОбщийМакет|GetCommonTemplate|\nПолучитьОбщуюФорму|GetCommonForm|\nПредопределенноеЗначение|PredefinedValue|\nПолучитьПолноеИмяПредопределенногоЗначения|GetPredefinedValueFullName\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - процедуры и функции сеанса работы", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nПолучитьЗаголовокСистемы|GetCaption|\nПолучитьСкоростьКлиентскогоСоединения|GetClientConnectionSpeed|\nПодключитьОбработчикОжидания|AttachIdleHandler|\nУстановитьЗаголовокСистемы|SetCaption|\nОтключитьОбработчикОжидания|DetachIdleHandler|\nИмяКомпьютера|ComputerName|\nЗавершитьРаботуСистемы|Exit|\nИмяПользователя|UserName|\nПрекратитьРаботуСистемы|Terminate|\nПолноеИмяПользователя|UserFullName|\nЗаблокироватьРаботуПользователя|LockApplication|\nКаталогПрограммы|BinDir|\nКаталогВременныхФайлов|TempFilesDir|\nПравоДоступа|AccessRight|\nРольДоступна|IsInRole|\nТекущийЯзык|CurrentLanguage|\nТекущийКодЛокализации|CurrentLocaleCode|\nСтрокаСоединенияИнформационнойБазы|InfoBaseConnectionString|\nПодключитьОбработчикОповещения|AttachNotificationHandler|\nОтключитьОбработчикОповещения|DetachNotificationHandler|\nПолучитьСообщенияПользователю|GetUserMessages|\nПараметрыДоступа|AccessParameters|\nПредставлениеПриложения|ApplicationPresentation|\nТекущийЯзыкСистемы|CurrentSystemLanguage|\nЗапуститьСистему|RunSystem|\nТекущийРежимЗапуска|CurrentRunMode|\nУстановитьЧасовойПоясСеанса|SetSessionTimeZone|\nЧасовойПоясСеанса|SessionTimeZone|\nТекущаяДатаСеанса|CurrentSessionDate|\nУстановитьКраткийЗаголовокПриложения|SetShortApplicationCaption|\nПолучитьКраткийЗаголовокПриложения|GetShortApplicationCaption|\nПредставлениеПрава|RightPresentation|\nВыполнитьПроверкуПравДоступа|VerifyAccessRights|\nРабочийКаталогДанныхПользователя|UserDataWorkDir|\nКаталогДокументов|DocumentsDir|\nПолучитьИнформациюЭкрановКлиента|GetClientDisplaysInformation|\nТекущийВариантОсновногоШрифтаКлиентскогоПриложения|ClientApplicationBaseFontCurrentVariant|\nТекущийВариантИнтерфейсаКлиентскогоПриложения|ClientApplicationInterfaceCurrentVariant|\nУстановитьЗаголовокКлиентскогоПриложения|SetClientApplicationCaption|\nПолучитьЗаголовокКлиентскогоПриложения|GetClientApplicationCaption|\nНачатьПолучениеКаталогаВременныхФайлов|BeginGettingTempFilesDir|\nНачатьПолучениеКаталогаДокументов|BeginGettingDocumentsDir|\nНачатьПолучениеРабочегоКаталогаДанныхПользователя|BeginGettingUserDataWorkDir|\nПодключитьОбработчикЗапросаНастроекКлиентаЛицензирования|AttachLicensingClientParametersRequestHandler|\nОтключитьОбработчикЗапросаНастроекКлиентаЛицензирования|DetachLicensingClientParametersRequestHandler|\nКаталогБиблиотекиМобильногоУстройства|MobileDeviceLibraryDir\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - процедуры и функции сохранения значений", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nЗначениеВСтрокуВнутр|ValueToStringInternal|\nЗначениеИзСтрокиВнутр|ValueFromStringInternal|\nЗначениеВФайл|ValueToFile|\nЗначениеИзФайла|ValueFromFile\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - Процедуры и функции работы с операционной системой", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nКомандаСистемы|System|\nЗапуститьПриложение|RunApp|\nПолучитьCOMОбъект|GetCOMObject|\nПользователиОС|OSUsers|\nНачатьЗапускПриложения|BeginRunningApplication\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - Процедуры и функции работы с внешними компонентами", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nПодключитьВнешнююКомпоненту|AttachAddIn|\nНачатьУстановкуВнешнейКомпоненты|BeginInstallAddIn|\nУстановитьВнешнююКомпоненту|InstallAddIn|\nНачатьПодключениеВнешнейКомпоненты|BeginAttachingAddIn\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - Процедуры и функции работы с файлами", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nКопироватьФайл|FileCopy|\nПереместитьФайл|MoveFile|\nУдалитьФайлы|DeleteFiles|\nНайтиФайлы|FindFiles|\nСоздатьКаталог|CreateDirectory|\nПолучитьИмяВременногоФайла|GetTempFileName|\nРазделитьФайл|SplitFile|\nОбъединитьФайлы|MergeFiles|\nПолучитьФайл|GetFile|\nНачатьПомещениеФайла|BeginPutFile|\nПоместитьФайл|PutFile|\nЭтоАдресВременногоХранилища|IsTempStorageURL|\nУдалитьИзВременногоХранилища|DeleteFromTempStorage|\nПолучитьИзВременногоХранилища|GetFromTempStorage|\nПоместитьВоВременноеХранилище|PutToTempStorage|\nПодключитьРасширениеРаботыСФайлами|AttachFileSystemExtension|\nНачатьУстановкуРасширенияРаботыСФайлами|BeginInstallFileSystemExtension|\nУстановитьРасширениеРаботыСФайлами|InstallFileSystemExtension|\nПолучитьФайлы|GetFiles|\nПоместитьФайлы|PutFiles|\nЗапроситьРазрешениеПользователя|RequestUserPermission|\nПолучитьМаскуВсеФайлы|GetAllFilesMask|\nПолучитьМаскуВсеФайлыКлиента|GetClientAllFilesMask|\nПолучитьМаскуВсеФайлыСервера|GetServerAllFilesMask|\nПолучитьРазделительПути|GetPathSeparator|\nПолучитьРазделительПутиКлиента|GetClientPathSeparator|\nПолучитьРазделительПутиСервера|GetServerPathSeparator|\nНачатьПодключениеРасширенияРаботыСФайлами|BeginAttachingFileSystemExtension|\nНачатьЗапросРазрешенияПользователя|BeginRequestingUserPermission|\nНачатьПоискФайлов|BeginFindingFiles|\nНачатьСозданиеКаталога|BeginCreatingDirectory|\nНачатьКопированиеФайла|BeginCopyingFile|\nНачатьПеремещениеФайла|BeginMovingFile|\nНачатьУдалениеФайлов|BeginDeletingFiles|\nНачатьПолучениеФайлов|BeginGettingFiles|\nНачатьПомещениеФайлов|BeginPuttingFiles|\nНачатьСозданиеДвоичныхДанныхИзФайла|BeginCreateBinaryDataFromFile\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - Процедуры и функции работы с информационной базой", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nНачатьТранзакцию|BeginTransaction|\nЗафиксироватьТранзакцию|CommitTransaction|\nОтменитьТранзакцию|RollbackTransaction|\nУстановитьМонопольныйРежим|SetExclusiveMode|\nМонопольныйРежим|ExclusiveMode|\nПолучитьОперативнуюОтметкуВремени|GetRealTimeTimestamp|\nПолучитьСоединенияИнформационнойБазы|GetInfoBaseConnections|\nНомерСоединенияИнформационнойБазы|InfoBaseConnectionNumber|\nКонфигурацияИзменена|ConfigurationChanged|\nКонфигурацияБазыДанныхИзмененаДинамически|DataBaseConfigurationChangedDynamically|\nУстановитьВремяОжиданияБлокировкиДанных|SetLockWaitTime|\nОбновитьНумерациюОбъектов|RefreshObjectsNumbering|\nПолучитьВремяОжиданияБлокировкиДанных|GetLockWaitTime|\nКодЛокализацииИнформационнойБазы|InfoBaseLocaleCode|\nУстановитьМинимальнуюДлинуПаролейПользователей|SetUserPasswordMinLength|\nПолучитьМинимальнуюДлинуПаролейПользователей|GetUserPasswordMinLength|\nИнициализироватьПредопределенныеДанные|InitializePredefinedData|\nУдалитьДанныеИнформационнойБазы|EraseInfoBaseData|\nУстановитьПроверкуСложностиПаролейПользователей|SetUserPasswordStrengthCheck|\nПолучитьПроверкуСложностиПаролейПользователей|GetUserPasswordStrengthCheck|\nПолучитьСтруктуруХраненияБазыДанных|GetDBStorageStructureInfo|\nУстановитьПривилегированныйРежим|SetPrivilegedMode|\nПривилегированныйРежим|PrivilegedMode|\nТранзакцияАктивна|TransactionActive|\nНеобходимостьЗавершенияСоединения|ConnectionStopRequest|\nНомерСеансаИнформационнойБазы|InfoBaseSessionNumber|\nПолучитьСеансыИнформационнойБазы|GetInfoBaseSessions|\nЗаблокироватьДанныеДляРедактирования|LockDataForEdit|\nУстановитьСоединениеСВнешнимИсточникомДанных|ConnectExternalDataSource|\nРазблокироватьДанныеДляРедактирования|UnlockDataForEdit|\nРазорватьСоединениеСВнешнимИсточникомДанных|DisconnectExternalDataSource|\nПолучитьБлокировкуСеансов|GetSessionsLock|\nУстановитьБлокировкуСеансов|SetSessionsLock|\nОбновитьПовторноИспользуемыеЗначения|RefreshReusableValues|\nУстановитьБезопасныйРежим|SetSafeMode|\nБезопасныйРежим|SafeMode|\nПолучитьДанныеВыбора|GetChoiceData|\nУстановитьЧасовойПоясИнформационнойБазы|SetInfoBaseTimeZone|\nПолучитьЧасовойПоясИнформационнойБазы|GetInfoBaseTimeZone|\nПолучитьОбновлениеКонфигурацииБазыДанных|GetDataBaseConfigurationUpdate|\nУстановитьБезопасныйРежимРазделенияДанных|SetDataSeparationSafeMode|\nБезопасныйРежимРазделенияДанных|DataSeparationSafeMode|\nУстановитьВремяЗасыпанияПассивногоСеанса|SetPassiveSessionHibernateTime|\nПолучитьВремяЗасыпанияПассивногоСеанса|GetPassiveSessionHibernateTime|\nУстановитьВремяЗавершенияСпящегоСеанса|SetHibernateSessionTerminateTime|\nПолучитьВремяЗавершенияСпящегоСеанса|GetHibernateSessionTerminateTime|\nПолучитьТекущийСеансИнформационнойБазы|GetCurrentInfoBaseSession|\nПолучитьИдентификаторКонфигурации|GetConfigurationID|\nУстановитьНастройкиКлиентаЛицензирования|SetLicensingClientParameters|\nПолучитьИмяКлиентаЛицензирования|GetLicensingClientName|\nПолучитьДополнительныйПараметрКлиентаЛицензирования|GetLicensingClientAdditionalParameter|\nПолучитьОтключениеБезопасногоРежима|GetSafeModeDisabled|\nУстановитьОтключениеБезопасногоРежима|SetSafeModeDisabled\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - Процедуры и функции работы с данными информационной базы", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nНайтиПомеченныеНаУдаление|FindMarkedForDeletion|\nНайтиПоСсылкам|FindByRef|\nУдалитьОбъекты|DeleteObjects|\nУстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы|SetInfoBasePredefinedDataUpdate|\nПолучитьОбновлениеПредопределенныхДанныхИнформационнойБазы|GetInfoBasePredefinedData\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - Процедуры и функции работы с XML", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nXMLСтрока|XMLString|\nXMLЗначение|XMLValue|\nXMLТип|XMLType|\nXMLТипЗнч|XMLTypeOf|\nИзXMLТипа|FromXMLType|\nВозможностьЧтенияXML|CanReadXML|\nПолучитьXMLТип|GetXMLType|\nПрочитатьXML|ReadXML|\nЗаписатьXML|WriteXML|\nНайтиНедопустимыеСимволыXML|FindDisallowedXMLCharacters|\nИмпортМоделиXDTO|ImportXDTOModel|\nСоздатьФабрикуXDTO|CreateXDTOFactory\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - Процедуры и функции работы с JSON", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nЗаписатьJSON|WriteJSON|\nПрочитатьJSON|ReadJSON|\nПрочитатьДатуJSON|ReadJSONDate|\nЗаписатьДатуJSON|WriteJSONDate\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - Процедуры и функции работы с журналом регистрации", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nЗаписьЖурналаРегистрации|WriteLogEvent|\nПолучитьИспользованиеЖурналаРегистрации|GetEventLogUsing|\nУстановитьИспользованиеЖурналаРегистрации|SetEventLogUsing|\nПредставлениеСобытияЖурналаРегистрации|EventLogEventPresentation|\nВыгрузитьЖурналРегистрации|UnloadEventLog|\nПолучитьЗначенияОтбораЖурналаРегистрации|GetEventLogFilterValues|\nУстановитьИспользованиеСобытияЖурналаРегистрации|SetEventLogEventUse|\nПолучитьИспользованиеСобытияЖурналаРегистрации|GetEventLogEventUse|\nСкопироватьЖурналРегистрации|CopyEventLog|\nОчиститьЖурналРегистрации|ClearEventLog\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - Процедуры и функции работы с универсальными объектами", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nЗначениеВДанныеФормы|ValueToFormData|\nДанныеФормыВЗначение|FormDataToValue|\nКопироватьДанныеФормы|CopyFormData|\nУстановитьСоответствиеОбъектаИФормы|SetObjectAndFormConformity|\nПолучитьСоответствиеОбъектаИФормы|GetObjectAndFormConformity\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - Процедуры и функции работы с функциональными опциями", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nПолучитьФункциональнуюОпцию|GetFunctionalOption|\nПолучитьФункциональнуюОпциюИнтерфейса|GetInterfaceFunctionalOption|\nУстановитьПараметрыФункциональныхОпцийИнтерфейса|SetInterfaceFunctionalOptionParameters|\nПолучитьПараметрыФункциональныхОпцийИнтерфейса|GetInterfaceFunctionalOptionParameters|\nОбновитьИнтерфейс|RefreshInterface\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - Процедуры и функции работы с криптографией", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nУстановитьРасширениеРаботыСКриптографией|InstallCryptoExtension|\nНачатьУстановкуРасширенияРаботыСКриптографией|BeginInstallCryptoExtension|\nПодключитьРасширениеРаботыСКриптографией|AttachCryptoExtension|\nНачатьПодключениеРасширенияРаботыСКриптографией|BeginAttachingCryptoExtension\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - Процедуры и функции работы со стандартным интерфейсом OData", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nУстановитьСоставСтандартногоИнтерфейсаOData|SetStandardODataInterfaceContent|\nПолучитьСоставСтандартногоИнтерфейсаOData|GetStandardODataInterfaceContent\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - Процедуры и функции работы с двоичными данными", + "name": "support.function.bsl", + "match": "(?i:(?<=[^\\wа-яё\\.]|^)(СоединитьБуферыДвоичныхДанных|ConcatBinaryDataBuffers)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - Прочие процедуры и функции", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nМин|Min|\nМакс|Max|\nОписаниеОшибки|ErrorDescription|\nВычислить|Eval|\nИнформацияОбОшибке|ErrorInfo|\nBase64Значение|Base64Value|\nBase64Строка|Base64String|\nЗаполнитьЗначенияСвойств|FillPropertyValues|\nЗначениеЗаполнено|ValueIsFilled|\nПолучитьПредставленияНавигационныхСсылок|GetURLsPresentations|\nНайтиОкноПоНавигационнойСсылке|FindWindowByURL|\nПолучитьОкна|GetWindows|\nПерейтиПоНавигационнойСсылке|GotoURL|\nПолучитьНавигационнуюСсылку|GetURL|\nПолучитьДопустимыеКодыЛокализации|GetAvailableLocaleCodes|\nПолучитьНавигационнуюСсылкуИнформационнойБазы|GetInfoBaseURL|\nПредставлениеКодаЛокализации|LocaleCodePresentation|\nПолучитьДопустимыеЧасовыеПояса|GetAvailableTimeZones|\nПредставлениеЧасовогоПояса|TimeZonePresentation|\nТекущаяУниверсальнаяДата|CurrentUniversalDate|\nТекущаяУниверсальнаяДатаВМиллисекундах|CurrentUniversalDateInMilliseconds|\nМестноеВремя|ToLocalTime|\nУниверсальноеВремя|ToUniversalTime|\nЧасовойПояс|TimeZone|\nСмещениеЛетнегоВремени|DaylightTimeOffset|\nСмещениеСтандартногоВремени|StandardTimeOffset|\nКодироватьСтроку|EncodeString|\nРаскодироватьСтроку|DecodeString|\nНайти|Find|\nПродолжитьВызов|ProceedWithCall\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - События приложения и сеанса", + "name": "support.function.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nПередНачаломРаботыСистемы|BeforeStart|\nПриНачалеРаботыСистемы|OnStart|\nПередЗавершениемРаботыСистемы|BeforeExit|\nПриЗавершенииРаботыСистемы|OnExit|\nОбработкаВнешнегоСобытия|ExternEventProcessing|\nУстановкаПараметровСеанса|SessionParametersSetting|\nПриИзмененииПараметровЭкрана|OnChangeDisplaySettings\n)\\s*(?=\\())" + }, + { + "comment": "Глобальный контекст - Свойства (классы)", + "name": "support.class.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nWSСсылки|WSReferences|\nБиблиотекаКартинок|PictureLib|\nБиблиотекаМакетовОформленияКомпоновкиДанных|DataCompositionAppearanceTemplateLib|\nБиблиотекаСтилей|StyleLib|\nБизнесПроцессы|BusinessProcesses|\nВнешниеИсточникиДанных|ExternalDataSources|\nВнешниеОбработки|ExternalDataProcessors|\nВнешниеОтчеты|ExternalReports|\nДокументы|Documents|\nДоставляемыеУведомления|DeliverableNotifications|\nЖурналыДокументов|DocumentJournals|\nЗадачи|Tasks|\nИнформацияОбИнтернетСоединении|InternetConnectionInformation|\nИспользованиеРабочейДаты|WorkingDateUse|\nИсторияРаботыПользователя|UserWorkHistory|\nКонстанты|Constants|\nКритерииОтбора|FilterCriteria|\nМетаданные|Metadata|\nОбработки|DataProcessors|\nОтправкаДоставляемыхУведомлений|DeliverableNotificationSend|\nОтчеты|Reports|\nПараметрыСеанса|SessionParameters|\nПеречисления|Enums|\nПланыВидовРасчета|ChartsOfCalculationTypes|\nПланыВидовХарактеристик|ChartsOfCharacteristicTypes|\nПланыОбмена|ExchangePlans|\nПланыСчетов|ChartsOfAccounts|\nПолнотекстовыйПоиск|FullTextSearch|\nПользователиИнформационнойБазы|InfoBaseUsers|\nПоследовательности|Sequences|\nРасширенияКонфигурации|ConfigurationExtensions|\nРегистрыБухгалтерии|AccountingRegisters|\nРегистрыНакопления|AccumulationRegisters|\nРегистрыРасчета|CalculationRegisters|\nРегистрыСведений|InformationRegisters|\nРегламентныеЗадания|ScheduledJobs|\nСериализаторXDTO|XDTOSerializer|\nСправочники|Catalogs|\nСредстваГеопозиционирования|LocationTools|\nСредстваКриптографии|CryptoToolsManager|\nСредстваМультимедиа|MultimediaTools|\nСредстваОтображенияРекламы|AdvertisingPresentationTools|\nСредстваПочты|MailTools|\nСредстваТелефонии|TelephonyTools|\nФабрикаXDTO|XDTOFactory|\nФайловыеПотоки|FileStreams|\nФоновыеЗадания|BackgroundJobs|\nХранилищаНастроек|SettingsStorages|\nВстроенныеПокупки|InAppPurchases|\nОтображениеРекламы|AdRepresentation|\nПанельЗадачОС|OSTaskbar|\nПроверкаВстроенныхПокупок|InAppPurchasesValidation\n)(?=[^\\wа-яё]|$))" + }, + { + "comment": "Глобальный контекст - Свойства (переменные)", + "name": "support.variable.bsl", + "match": "(?x)(?i:(?<=[^\\wа-яё\\.]|^)(\nГлавныйИнтерфейс|MainInterface|\nГлавныйСтиль|MainStyle|\nПараметрЗапуска|LaunchParameter|\nРабочаяДата|WorkingDate|\nХранилищеВариантовОтчетов|ReportsVariantsStorage|\nХранилищеНастроекДанныхФорм|FormDataSettingsStorage|\nХранилищеОбщихНастроек|CommonSettingsStorage|\nХранилищеПользовательскихНастроекДинамическихСписков|DynamicListsUserSettingsStorage|\nХранилищеПользовательскихНастроекОтчетов|ReportsUserSettingsStorage|\nХранилищеСистемныхНастроек|SystemSettingsStorage\n)(?=[^\\wа-яё]|$))" + } + ] + }, + "query": { + "begin": "(?i)(?<=[^\\wа-яё\\.]|^)(Выбрать|Select(\\s+Разрешенные|\\s+Allowed)?(\\s+Различные|\\s+Distinct)?(\\s+Первые|\\s+Top)?)(?=[^\\wа-яё\\.]|$)", + "beginCaptures": { + "1": { + "name": "keyword.control.sdbl" + } + }, + "end": "(?=\\\"[^\\\"])", + "patterns": [ + { + "name": "comment.line.double-slash.bsl", + "begin": "^\\s*//", + "end": "$" + }, + { + "name": "comment.line.double-slash.sdbl", + "match": "(//((\\\"\\\")|[^\\\"])*)" + }, + { + "name": "string.quoted.double.sdbl", + "match": "\\\"\\\"[^\"]*\\\"\\\"" + }, + { + "include": "source.sdbl" + } + ] + }, + "basic": { + "patterns": [ + { + "name": "comment.line.double-slash.bsl", + "begin": "//", + "end": "$" + }, + { + "name": "string.quoted.double.bsl", + "begin": "\\\"", + "end": "\\\"(?![\\\"])", + "patterns": [ + { + "include": "#query" + }, + { + "name": "constant.character.escape.bsl", + "match": "\\\"\\\"" + }, + { + "name": "comment.line.double-slash.bsl", + "match": "(^\\s*//.*$)" + } + ] + }, + { + "name": "constant.language.bsl", + "match": "(?i:(?<=[^\\wа-яё\\.]|^)(Неопределено|Undefined|Истина|True|Ложь|False|NULL)(?=[^\\wа-яё\\.]|$))" + }, + { + "name": "constant.numeric.bsl", + "match": "(?<=[^\\wа-яё\\.]|^)(\\d+\\.?\\d*)(?=[^\\wа-яё\\.]|$)" + }, + { + "name": "constant.other.date.bsl", + "match": "\\'((\\d{4}[^\\d\\']*\\d{2}[^\\d\\']*\\d{2})([^\\d\\']*\\d{2}[^\\d\\']*\\d{2}([^\\d\\']*\\d{2})?)?)\\'" + }, + { + "name": "keyword.operator.bsl", + "match": "(,)" + }, + { + "name": "punctuation.bracket.begin.bsl", + "match": "(\\()" + }, + { + "name": "punctuation.bracket.end.bsl", + "match": "(\\))" + } + ] + }, + "annotations": { + "patterns": [ + { + "comment": "Annotations with parameters", + "begin": "(?i)(&([a-zа-яё0-9_]+))\\s*(\\()", + "beginCaptures": { + "1": { + "name": "storage.type.annotation.bsl" + }, + "3": { + "name": "punctuation.bracket.begin.bsl" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.bracket.end.bsl" + } + }, + "patterns": [ + { + "include": "#basic" + }, + { + "name": "keyword.operator.assignment.bsl", + "match": "(=)" + }, + { + "name": "invalid.illegal.bsl", + "match": "(?<=[^\\wа-яё\\.]|^)((?<==)(?i)[a-zа-яё0-9_]+)(?=[^\\wа-яё\\.]|$)" + }, + { + "name": "invalid.illegal.bsl", + "match": "(?<=[^\\wа-яё\\.]|^)((?<==\\s)\\s*(?i)[a-zа-яё0-9_]+)(?=[^\\wа-яё\\.]|$)" + }, + { + "name": "variable.annotation.bsl", + "match": "(?i)[a-zа-яё0-9_]+" + } + ] + }, + { + "comment": "Annotations without parameters", + "name": "storage.type.annotation.bsl", + "match": "(?i)(&([a-zа-яё0-9_]+))" + } + ] + } + } +}