2025-05-28 16:38:56 +03:00
|
|
|
|
include: package:flutter_lints/flutter.yaml
|
|
|
|
|
|
|
|
|
|
|
|
# Включает правила из:
|
|
|
|
|
|
# - package:lints/core.yaml: основные правила критических проблем
|
|
|
|
|
|
# - package:lints/recommended.yaml: рекомендуемые правила для чистого кода
|
|
|
|
|
|
# - package:flutter_lints/flutter.yaml: специфичные правила для Flutter
|
2025-01-21 14:24:31 +03:00
|
|
|
|
|
|
|
|
|
|
analyzer:
|
|
|
|
|
|
exclude:
|
2025-05-28 16:38:56 +03:00
|
|
|
|
- "android/**"
|
|
|
|
|
|
- "assets/**"
|
|
|
|
|
|
- "build/**"
|
|
|
|
|
|
- "config/**"
|
|
|
|
|
|
- "core/**"
|
|
|
|
|
|
- "res/**"
|
|
|
|
|
|
- "ios/**"
|
2025-01-21 14:24:31 +03:00
|
|
|
|
- "**/*.g.dart"
|
2025-05-28 16:38:56 +03:00
|
|
|
|
- "**/*.config.dart"
|
|
|
|
|
|
- "**/*.gen.dart"
|
2025-01-21 14:24:31 +03:00
|
|
|
|
- "**/*.freezed.dart"
|
2025-05-28 16:38:56 +03:00
|
|
|
|
- "**/generated/*"
|
|
|
|
|
|
- "**/*.gr.dart"
|
2025-01-21 14:24:31 +03:00
|
|
|
|
- "**/*.yaml"
|
|
|
|
|
|
- "app_services/aurora/**"
|
|
|
|
|
|
- "/app_services/aurora/**"
|
2025-05-28 16:38:56 +03:00
|
|
|
|
- "**/app_services/aurora/**"
|
|
|
|
|
|
- "**/*.lock.dart"
|
|
|
|
|
|
errors:
|
|
|
|
|
|
# Переопределения уровней ошибок (error/warning/info)
|
|
|
|
|
|
avoid_dynamic_calls: error # Запрещает использование dynamic для вызовов методов
|
|
|
|
|
|
avoid_returning_null_for_future: error # Запрещает возврат null вместо Future
|
|
|
|
|
|
avoid_slow_async_io: warning # Предупреждает о медленных асинхронных операциях ввода/вывода
|
|
|
|
|
|
avoid_type_to_string: warning # Предупреждает о неправильном использовании toString() для типов
|
|
|
|
|
|
cancel_subscriptions: error # Требует отмены подписок, предотвращает утечки памяти
|
|
|
|
|
|
close_sinks: error # Требует закрытия sink-ов, предотвращает утечки ресурсов
|
|
|
|
|
|
comment_references: warning # Проверяет корректность ссылок в комментариях
|
|
|
|
|
|
always_declare_return_types: error # Требует явного указания возвращаемых типов методов
|
|
|
|
|
|
always_require_non_null_named_parameters: warning # Требует использования @required для ненулевых параметров
|
|
|
|
|
|
avoid_bool_literals_in_conditional_expressions: warning # Запрещает избыточные булевы литералы в условных выражениях
|
|
|
|
|
|
avoid_return_types_on_setters: warning # Запрещает возвращаемые типы для сеттеров
|
|
|
|
|
|
avoid_returning_null: error # Запрещает возврат null
|
|
|
|
|
|
avoid_setters_without_getters: error # Требует создания геттера при наличии сеттера
|
|
|
|
|
|
avoid_void_async: error # Запрещает использование void для асинхронных функций
|
|
|
|
|
|
constant_identifier_names: error # Проверяет правильность именования констант
|
|
|
|
|
|
unnecessary_new: warning # Запрещает избыточное использование ключевого слова new
|
|
|
|
|
|
use_decorated_box: warning # Рекомендует использовать DecoratedBox вместо Container
|
|
|
|
|
|
use_colored_box: warning # Рекомендует использовать ColoredBox вместо Container с цветом
|
|
|
|
|
|
|
|
|
|
|
|
linter:
|
|
|
|
|
|
rules:
|
|
|
|
|
|
# Нестандартные правила или правила с измененными значениями
|
|
|
|
|
|
always_put_required_named_parameters_first: true # Требовать размещать обязательные именованные параметры первыми
|
|
|
|
|
|
avoid_catches_without_on_clauses: true # Избегать catch без указания типа исключения
|
|
|
|
|
|
avoid_catching_errors: true # Избегать перехвата ошибок типа Error
|
|
|
|
|
|
avoid_equals_and_hash_code_on_mutable_classes: true # Избегать equals и hashCode в изменяемых классах
|
|
|
|
|
|
avoid_escaping_inner_quotes: true # Избегать экранирования внутренних кавычек
|
|
|
|
|
|
avoid_field_initializers_in_const_classes: true # Избегать инициализаторов полей в константных классах
|
|
|
|
|
|
avoid_implementing_value_types: true # Избегать реализации интерфейсов значимых типов
|
|
|
|
|
|
avoid_multiple_declarations_per_line: false # Разрешать несколько объявлений в одной строке
|
|
|
|
|
|
avoid_positional_boolean_parameters: true # Избегать позиционных булевых параметров
|
|
|
|
|
|
avoid_private_typedef_functions: true # Избегать приватных typedef-функций
|
|
|
|
|
|
avoid_redundant_argument_values: true # Избегать избыточных значений аргументов
|
|
|
|
|
|
avoid_returning_this: true # Избегать возврата this
|
|
|
|
|
|
cascade_invocations: true # Использовать каскадные вызовы
|
|
|
|
|
|
deprecated_consistency: true # Поддерживать согласованность устаревших элементов
|
|
|
|
|
|
do_not_use_environment: false # Разрешить использование Environment
|
|
|
|
|
|
leading_newlines_in_multiline_strings: true # Начинать многострочные строки с новой строки
|
|
|
|
|
|
no_runtimeType_toString: true # Не использовать runtimeType.toString()
|
|
|
|
|
|
one_member_abstracts: false # Разрешать абстрактные классы с одним методом
|
|
|
|
|
|
only_throw_errors: true # Выбрасывать только объекты Error
|
|
|
|
|
|
parameter_assignments: true # Запрещать присваивание значений параметрам
|
|
|
|
|
|
prefer_asserts_with_message: true # Использовать сообщения с assert
|
|
|
|
|
|
prefer_constructors_over_static_methods: true # Предпочитать конструкторы статическим методам
|
|
|
|
|
|
prefer_final_in_for_each: true # Использовать final в for-each циклах
|
|
|
|
|
|
prefer_final_locals: true # Использовать final для локальных переменных
|
|
|
|
|
|
public_member_api_docs: false # Не требовать документацию для всех публичных членов
|
|
|
|
|
|
require_trailing_commas: true # Требовать запятые в конце для улучшения форматирования
|
|
|
|
|
|
sort_constructors_first: true # Требовать размещать конструкторы первыми
|
|
|
|
|
|
sort_pub_dependencies: false # Не требовать сортировки зависимостей в pubspec
|
|
|
|
|
|
sort_unnamed_constructors_first: false # Не требовать размещать безымянные конструкторы первыми
|
|
|
|
|
|
use_is_even_rather_than_modulo: true # Использовать isEven вместо % 2 == 0
|
|
|
|
|
|
use_late_for_private_fields_and_variables: false # Не требовать late для приватных полей
|
|
|
|
|
|
use_setters_to_change_properties: true # Использовать сеттеры для изменения свойств
|
|
|
|
|
|
use_string_buffers: true # Использовать StringBuffer для сложной конкатенации
|
|
|
|
|
|
use_to_and_as_if_applicable: true # Использовать методы to и as при применимости
|
|
|
|
|
|
no_literal_bool_comparisons: true # Запрещать сравнения с литералами true/false
|
|
|
|
|
|
use_key_in_widget_constructors: true # Обязательное указание ключа для stateful/stateless widgets
|
|
|
|
|
|
always_use_package_imports: true # Всегда использовать package: импорты
|
|
|
|
|
|
|