diff --git a/bundles/com.e1c.v8codestyle.autosort/META-INF/MANIFEST.MF b/bundles/com.e1c.v8codestyle.autosort/META-INF/MANIFEST.MF index f056cb59..5c8d0d47 100644 --- a/bundles/com.e1c.v8codestyle.autosort/META-INF/MANIFEST.MF +++ b/bundles/com.e1c.v8codestyle.autosort/META-INF/MANIFEST.MF @@ -28,7 +28,7 @@ Import-Package: com._1c.g5.v8.activitytracking.core;version="[1.0.0,2.0.0)", com._1c.g5.v8.dt.lifecycle;version="[3.0.0,4.0.0)", com._1c.g5.v8.dt.md.sort;version="[1.0.0,2.0.0)", com._1c.g5.v8.dt.metadata.mdclass;version="[9.0.0,10.0.0)", - com.e1c.g5.v8.dt.cli.api;version="[2.0.0,3.0.0)", + com.e1c.g5.v8.dt.cli.api;version="[3.0.0,4.0.0)", com.e1c.g5.v8.dt.cli.api.components;version="[3.0.0,4.0.0)", com.e1c.v8codestyle;version="[0.7.0,0.8.0)", com.google.common.base;version="[32.1.0,33.0.0)", diff --git a/bundles/com.e1c.v8codestyle.bsl.ui/META-INF/MANIFEST.MF b/bundles/com.e1c.v8codestyle.bsl.ui/META-INF/MANIFEST.MF index a3eca170..541c2759 100644 --- a/bundles/com.e1c.v8codestyle.bsl.ui/META-INF/MANIFEST.MF +++ b/bundles/com.e1c.v8codestyle.bsl.ui/META-INF/MANIFEST.MF @@ -44,7 +44,7 @@ Import-Package: com._1c.g5.ides.ui.texteditor.xtext.embedded;version="[6.0.0,7.0 com._1c.g5.v8.dt.mcore;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.metadata.mdclass;version="[9.0.0,10.0.0)", com._1c.g5.v8.dt.theming.ui.util;version="[1.0.0,2.0.0)", - com._1c.g5.v8.dt.ui.util;version="[7.0.0,8.0.0)", + com._1c.g5.v8.dt.ui.util;version="[8.0.0,9.0.0)", com._1c.g5.v8.dt.ui.wizards;version="[8.0.0,9.0.0)", com._1c.g5.wiring;version="[2.2.0,3.0.0)", com._1c.g5.wiring.binder;version="[1.1.0,2.0.0)", diff --git a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/messages_ru.properties b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/messages_ru.properties index 734a6370..73d50767 100644 --- a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/messages_ru.properties +++ b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/messages_ru.properties @@ -16,11 +16,11 @@ AbstractDynamicFeatureAccessTypeCheck_Skip_source_object_types = Если объ DocCommentFieldTypeCheck_Field__N__has_no_type_definition = Поле "{0}" не имеет определения типа -DocCommentFieldTypeCheck_description = Система строгой типизации кода проверяет что поле документирующего комментария имеет описание типа +DocCommentFieldTypeCheck_description = Система строгой типизации кода проверяет, что поле документирующего комментария имеет описание типа DocCommentFieldTypeCheck_title = Поле документирующего комментария имеет описание типа -DynamicFeatureAccessMethodNotFoundCheck_description = Система строгой типизации кода проверяет что динамически вызываемый метод существует в объекте +DynamicFeatureAccessMethodNotFoundCheck_description = Система строгой типизации кода проверяет, что динамически вызываемый метод существует в объекте DynamicFeatureAccessMethodNotFoundCheck_title = Метод в объекте не найден @@ -28,11 +28,11 @@ DynamicFeatureAccessTypeCheck_Feature_access_M_has_no_return_type = Свойст DynamicFeatureAccessTypeCheck_Method_M_not_found_in_accessed_object = Метод "{0}" не найден в исходном объекте -DynamicFeatureAccessTypeCheck_description = Система строгой типизации кода проверяет что динамическое свойство объекта имеет тип возвращаемого значения +DynamicFeatureAccessTypeCheck_description = Система строгой типизации кода проверяет, что динамическое свойство объекта имеет тип возвращаемого значения DynamicFeatureAccessTypeCheck_title = Свойство объекта имеет тип возвращаемого значения -FunctionCtorReturnSectionCheck_Declared_property__N__with_type__T__missing_returning_types__M = Декларируемое свойство "{0}" с типом: "{1}" не содержит возвращемые типы "{2}" +FunctionCtorReturnSectionCheck_Declared_property__N__with_type__T__missing_returning_types__M = Декларируемое свойство "{0}" с типом: "{1}" не содержит возвращаемые типы "{2}" FunctionCtorReturnSectionCheck_Declared_property__N__with_type__T__not_returning = Декларируемое свойство "{0}" с типом: "{1}" не возвращается @@ -42,25 +42,25 @@ FunctionCtorReturnSectionCheck_Return_non_declared_type__T = Возвращае FunctionCtorReturnSectionCheck_User_extandable_Data_type_list_comma_separated = Список типов данных расширяемых пользователем, через запятую -FunctionCtorReturnSectionCheck_description = Система строгой типизации кода проверяет что возвращаемые значения функции эквивалентны секции возвращаемого значения документирующего комментария +FunctionCtorReturnSectionCheck_description = Система строгой типизации кода проверяет, что возвращаемые значения функции эквивалентны секции возвращаемого значения документирующего комментария FunctionCtorReturnSectionCheck_title = Секция возвращаемого значения функции-конструктора данных FunctionReturnTypeCheck_Function_has_no_return_value_type = Функция не имеет типа возвращаемого значения -FunctionReturnTypeCheck_description = Система строгой типизации кода проверяет что каждая функция возвращает типизированное значение +FunctionReturnTypeCheck_description = Система строгой типизации кода проверяет, что каждая функция возвращает типизированное значение FunctionReturnTypeCheck_title = Функция возвращает типизированное значение InvocationParamIntersectionCheck_Allow_dynamic_types_check_for_local_method_call = Разрешить проверку динамических типов для вызова локального метода -InvocationParamIntersectionCheck_description = Система строгой типизации кода проверяет что тип вызываемого выражения пересекается с типом параметра вызываемого метода +InvocationParamIntersectionCheck_description = Система строгой типизации кода проверяет, что тип вызываемого выражения пересекается с типом параметра вызываемого метода InvocationParamIntersectionCheck_title = Вызываемый тип пересекается с типом параметра MethodParamTypeCheck_Method_param_N_has_no_value_type = Параметр метода "{0}" не имеет типа значения -MethodParamTypeCheck_description = Система строгой типизации кода проверяет что каждый параметр метода имеет тип значения +MethodParamTypeCheck_description = Система строгой типизации кода проверяет, что каждый параметр метода имеет тип значения MethodParamTypeCheck_title = Параметр метода имеет тип @@ -68,7 +68,7 @@ SimpleStatementTypeCheck_Allow_local_Variable_reset_to_Undefined_type = Разр SimpleStatementTypeCheck_Value_type_N_changed_to_M = Тип значения "{0}" заменен на "{1}" -SimpleStatementTypeCheck_description = Система строгой типизации кода проверяет что утверждение (строка присвоения значения) меняет тип +SimpleStatementTypeCheck_description = Система строгой типизации кода проверяет, что утверждение (строка присвоения значения) меняет тип SimpleStatementTypeCheck_title = Утверждение меняет тип @@ -80,7 +80,7 @@ StructureCtorValueTypeCheck_Structure_key__N__K__has_no_default_value_initialize StructureCtorValueTypeCheck_Structure_key__N__K__value_initialized_with_empty_types = Ключ {0} "{1}" Структуры инициализируется с пустым типом -StructureCtorValueTypeCheck_description = Проверяет строковый литерал в конструкторе структуры что каждый ключ имеет типзированное значение +StructureCtorValueTypeCheck_description = Проверяет строковый литерал в конструкторе структуры, что каждый ключ имеет типзированное значение StructureCtorValueTypeCheck_title = Типизация значений в конструкторе структуры @@ -106,6 +106,6 @@ TypedValueAddingToUntypedCollectionCheck_title = Добавление типиз VariableTypeCheck_Variable_M_has_no_value_type = Переменная "{0}" не имеет типа -VariableTypeCheck_description = Система строгой типизации кода проверяет что каждая переменная имеет тип значения +VariableTypeCheck_description = Система строгой типизации кода проверяет, что каждая переменная имеет тип значения VariableTypeCheck_title = Переменная имеет тип значения diff --git a/bundles/com.e1c.v8codestyle.form/src/com/e1c/v8codestyle/form/check/FormItemsSingleEventHandlerCheck.java b/bundles/com.e1c.v8codestyle.form/src/com/e1c/v8codestyle/form/check/FormItemsSingleEventHandlerCheck.java index 1fbf6c5d..5cd7a760 100644 --- a/bundles/com.e1c.v8codestyle.form/src/com/e1c/v8codestyle/form/check/FormItemsSingleEventHandlerCheck.java +++ b/bundles/com.e1c.v8codestyle.form/src/com/e1c/v8codestyle/form/check/FormItemsSingleEventHandlerCheck.java @@ -32,6 +32,7 @@ import com._1c.g5.v8.dt.form.model.FormItemContainer; import com._1c.g5.v8.dt.form.model.FormPackage; import com._1c.g5.v8.dt.form.service.FormItemInformationService; +import com._1c.g5.v8.dt.mcore.Event; import com._1c.g5.v8.dt.metadata.mdclass.ScriptVariant; import com.e1c.g5.v8.dt.check.CheckComplexity; import com.e1c.g5.v8.dt.check.ICheckParameters; @@ -48,7 +49,7 @@ * @author Manaev Konstantin */ public class FormItemsSingleEventHandlerCheck - extends BasicCheck + extends BasicCheck { private static final String CHECK_ID = "form-items-single-event-handler"; //$NON-NLS-1$ @@ -74,12 +75,12 @@ public String getCheckId() protected void check(Object object, ResultAcceptor resultAceptor, ICheckParameters parameters, IProgressMonitor monitor) { - if (object instanceof Form) + if (object instanceof Form form) { - IV8Project project = v8ProjectManager.getProject((EObject)object); - ScriptVariant variant = project == null ? ScriptVariant.ENGLISH : project.getScriptVariant(); + IV8Project v8project = v8ProjectManager.getProject((EObject)object); + ScriptVariant variant = v8project == null ? ScriptVariant.ENGLISH : v8project.getScriptVariant(); Map handlers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - checkEObjectEventHandlers((EObject)object, handlers, variant, resultAceptor, monitor); + checkEObjectEventHandlers(form, handlers, variant, resultAceptor, monitor); } } @@ -137,19 +138,27 @@ private void checkHandlersList(EObject item, List eventHandlers, M { return; } - EventHandler event = eventIterator.next(); - String handlerName = - variant == ScriptVariant.ENGLISH ? event.getEvent().getName() : event.getEvent().getNameRu(); - if (handlers.containsKey(event.getName())) + EventHandler eventHandler = eventIterator.next(); + Event event = eventHandler.getEvent(); + if (event.eIsProxy()) + { + continue; + } + String handlerName = eventHandler.getName(); + String eventName = variant == ScriptVariant.ENGLISH ? event.getName() : event.getNameRu(); + + if (handlers.containsKey(handlerName)) { resultAceptor.addIssue(MessageFormat.format( Messages.FormItemsSingleEventHandlerCheck_the_handler_is_already_assigned_to_event, handlerName, - handlers.get(event.getName())), event, FormPackage.Literals.EVENT_HANDLER__NAME); + handlers.get(handlerName)), eventHandler, FormPackage.Literals.EVENT_HANDLER__NAME); } else { - handlers.put(event.getName(), MessageFormat - .format(Messages.FormItemsSingleEventHandlerCheck_itemName_dot_eventName, itemName, handlerName)); + handlers.put(handlerName, + eventName != null ? MessageFormat + .format(Messages.FormItemsSingleEventHandlerCheck_itemName_dot_eventName, itemName, eventName) + : itemName); } } } diff --git a/tests/com.e1c.v8codestyle.bsl.ui.itests/META-INF/MANIFEST.MF b/tests/com.e1c.v8codestyle.bsl.ui.itests/META-INF/MANIFEST.MF index 1a2d5bde..11a3a9be 100644 --- a/tests/com.e1c.v8codestyle.bsl.ui.itests/META-INF/MANIFEST.MF +++ b/tests/com.e1c.v8codestyle.bsl.ui.itests/META-INF/MANIFEST.MF @@ -10,7 +10,7 @@ Bundle-RequiredExecutionEnvironment: JavaSE-17 Bundle-Localization: fragment Import-Package: com._1c.g5.v8.dt.bsl.ui.editor;version="[10.0.0,11.0.0)", com._1c.g5.v8.dt.testing;version="[3.1.0,4.0.0)", - com._1c.g5.v8.dt.ui.util;version="[7.0.0,8.0.0)", + com._1c.g5.v8.dt.ui.util;version="[8.0.0,9.0.0)", org.junit;version="[4.13.0,5.0.0)" Require-Bundle: org.eclipse.ui.forms;bundle-version="[3.11.0,4.0.0)", org.eclipse.core.expressions;bundle-version="[3.8.0,4.0.0)"