Class EventContractFormatter
java.lang.Object
com.github._1c_syntax.bsl.languageserver.hover.EventContractFormatter
Отрисовка контракта платформенного события в hover'е: шапка обработчика и его
параметры с типами и описаниями из синтакс-помощника.
Вынесено из DescriptionFormatter: тот рисует описание, написанное человеком в
шапке-комментарии, а здесь — то, что о методе знает платформа. Разные источники,
разные зависимости; вместе они тянули в один класс и реестр типов, и индекс
контрактов, и роли обработчиков формы.
Строки ресурсов берутся из бандла DescriptionFormatter: секции у hover'а
общие, и заводить второй набор переводов ради одного заголовка незачем.
-
Constructor Summary
ConstructorsConstructorDescriptionEventContractFormatter(Resources resources, EventContractsIndex eventContractsIndex, FormHandlerRoleIndex formHandlerRoleIndex, TypeRegistry typeRegistry, LanguageServerConfiguration configuration) -
Method Summary
Modifier and TypeMethodDescriptionОписание параметра-обработчика платформенного события из контракта (bsl-context): сопоставление по позиции — имена параметров обработчика задаёт пользователь, в коде они могут не совпадать с именами в контракте.getEventHandlerSection(@Nullable MethodSymbol method, MemberDescriptor event) Секция-шапка «Обработчик события платформы:<имя>» с платформенным описанием события; к нему подмешивается пользовательское описание метода из шапки-комментария.getParametersSection(@Nullable MethodSymbol method, MemberDescriptor eventContract) Секция «Параметры» по контракту события: имя, типы и описание каждого параметра из синтакс-помощника.
-
Constructor Details
-
EventContractFormatter
@ConstructorProperties({"resources","eventContractsIndex","formHandlerRoleIndex","typeRegistry","configuration"}) public EventContractFormatter(Resources resources, EventContractsIndex eventContractsIndex, FormHandlerRoleIndex formHandlerRoleIndex, TypeRegistry typeRegistry, LanguageServerConfiguration configuration)
-
-
Method Details
-
getEventHandlerSection
Секция-шапка «Обработчик события платформы:<имя>» с платформенным описанием события; к нему подмешивается пользовательское описание метода из шапки-комментария. Платформенное описание идёт первым, пользовательское — следом.Обработчик команды формы событием не является, поэтому и называется иначе — и назван в шапке именем команды, а не процедуры: имя процедуры и так стоит в сигнатуре выше.
-
getParametersSection
Секция «Параметры» по контракту события: имя, типы и описание каждого параметра из синтакс-помощника. К описанию параметра подмешивается пользовательское из шапки-комментария метода, если оно есть: платформенное идёт первым. -
getEventHandlerParameterDescription
Описание параметра-обработчика платформенного события из контракта (bsl-context): сопоставление по позиции — имена параметров обработчика задаёт пользователь, в коде они могут не совпадать с именами в контракте. При выходе за длину контракта возвращаем пусто, если последний параметр контракта не variadic.
-