diff --git a/CHANGELOG.md b/CHANGELOG.md index 38e7d73..05e03e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +## 1.0.5 + +- The following globs have been added to the analyzer exclusion list: + - test/**/*.mocks.dart + - build/** + - android/** + - ios/** + - web/** + - windows/** + - macos/** + - linux/** + ## 1.0.4 - Preserves tailing commas diff --git a/README.md b/README.md index fae40e7..e3d6f17 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -This package provides lint rules for Dart and Flutter which are used by the [Arcane Framework](https://github.com/hanskokx/arcane_framework). For more information, see the [complete list of options](https://github.com/hanskokx/arcane_analysis/blob/main/lib/analysis_options.1.0.0.yaml). +This package provides lint rules for Dart and Flutter which are used by the [Arcane Framework](https://github.com/hanskokx/arcane_framework). For more information, see the [complete list of options](https://github.com/hanskokx/arcane_analysis/blob/main/lib/analysis_options.1.0.5.yaml). **Note**: Although the linting rules differ, the package layout has taken enormous inspiration from the excellent [very_good_analysis](https://github.com/VeryGoodOpenSource/very_good_analysis) package from [Very Good Ventures](https://verygood.ventures/), which was in turn heavily inspired by [pedantic](https://github.com/dart-lang/pedantic). diff --git a/lib/analysis_options.1.0.5.yaml b/lib/analysis_options.1.0.5.yaml new file mode 100644 index 0000000..f4d6436 --- /dev/null +++ b/lib/analysis_options.1.0.5.yaml @@ -0,0 +1,136 @@ +formatter: + trailing_commas: preserve + +analyzer: + errors: + # treat missing required parameters as an error (not a hint) + missing_required_param: error + # treat missing returns as an error (not a hint) + missing_return: error + invalid_annotation_target: ignore + exclude: + # Generated files + - lib/**/*.g.dart + - lib/**/*.graphql.dart + - lib/**/*.freezed.dart + - lib/**/*.mapper.dart + - test/**/*.mocks.dart + # Artifacts and platform-specific directories + - build/** + - android/** + - ios/** + - web/** + - windows/** + - macos/** + - linux/** + language: + strict-casts: true + +linter: + rules: + always_declare_return_types: true + always_put_required_named_parameters_first: true + annotate_overrides: true + avoid_annotating_with_dynamic: true + avoid_dynamic_calls: true + avoid_escaping_inner_quotes: true + avoid_function_literals_in_foreach_calls: true + avoid_null_checks_in_equality_operators: true + avoid_print: true + avoid_relative_lib_imports: true + avoid_setters_without_getters: true + avoid_shadowing_type_parameters: true + avoid_single_cascade_in_expression_statements: true + avoid_unnecessary_containers: true + avoid_unused_constructor_parameters: true + avoid_void_async: true + camel_case_extensions: true + camel_case_types: true + cancel_subscriptions: true + close_sinks: true + collection_methods_unrelated_type: true + constant_identifier_names: true + control_flow_in_finally: true + depend_on_referenced_packages: true + directives_ordering: true + empty_constructor_bodies: true + empty_statements: true + eol_at_end_of_file: true + exhaustive_cases: true + file_names: true + flutter_style_todos: true + hash_and_equals: true + implementation_imports: true + implicit_call_tearoffs: true + leading_newlines_in_multiline_strings: true + missing_whitespace_between_adjacent_strings: true + no_adjacent_strings_in_list: true + no_duplicate_case_values: true + no_leading_underscores_for_library_prefixes: true + no_leading_underscores_for_local_identifiers: true + no_logic_in_create_state: true + no_runtimeType_toString: true + non_constant_identifier_names: true + null_check_on_nullable_type_parameter: true + null_closures: true + only_throw_errors: true + package_prefixed_library_names: true + prefer_adjacent_string_concatenation: true + prefer_asserts_in_initializer_lists: true + prefer_collection_literals: true + prefer_conditional_assignment: true + prefer_const_constructors_in_immutables: true + prefer_const_constructors: true + prefer_const_declarations: true + prefer_const_literals_to_create_immutables: true + prefer_constructors_over_static_methods: true + prefer_contains: true + prefer_double_quotes: true + prefer_final_fields: true + prefer_final_in_for_each: true + prefer_final_locals: true + prefer_for_elements_to_map_fromIterable: true + prefer_function_declarations_over_variables: true + prefer_generic_function_type_aliases: true + prefer_if_null_operators: true + prefer_initializing_formals: true + prefer_inlined_adds: true + prefer_interpolation_to_compose_strings: true + prefer_is_empty: true + prefer_is_not_empty: true + prefer_is_not_operator: true + prefer_iterable_whereType: true + prefer_null_aware_operators: true + prefer_spread_collections: true + prefer_typing_uninitialized_variables: true + provide_deprecation_message: true + recursive_getters: true + require_trailing_commas: true + sized_box_for_whitespace: true + sized_box_shrink_expand: true + slash_for_doc_comments: true + sort_child_properties_last: true + sort_pub_dependencies: true + type_init_formals: true + type_literal_in_constant_pattern: true + unawaited_futures: true + unnecessary_await_in_return: true + unnecessary_brace_in_string_interps: true + unnecessary_breaks: true + unnecessary_const: true + unnecessary_constructor_name: true + unnecessary_getters_setters: true + unnecessary_late: true + unnecessary_new: true + unnecessary_null_aware_assignments: true + unnecessary_null_in_if_null_operators: true + unnecessary_nullable_for_final_variable_declarations: true + unnecessary_overrides: true + unnecessary_parenthesis: true + unnecessary_statements: true + use_build_context_synchronously: true + use_colored_box: true + use_decorated_box: true + use_enums: true + use_key_in_widget_constructors: true + valid_regexps: true diff --git a/lib/analysis_options.yaml b/lib/analysis_options.yaml index 410ab2a..bf0b950 100644 --- a/lib/analysis_options.yaml +++ b/lib/analysis_options.yaml @@ -1 +1 @@ -include: package:arcane_analysis/analysis_options.1.0.4.yaml +include: package:arcane_analysis/analysis_options.1.0.5.yaml