diff --git a/CHANGELOG.md b/CHANGELOG.md index 3527b45..731ab32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.0.3 + +- Added the following linting rules: + - `use_decorated_box` + - `use_enums` + ## 1.0.2 - Added `unnecessary_breaks` linting rule diff --git a/lib/analysis_options.1.0.3-experimental.yaml b/lib/analysis_options.1.0.3-experimental.yaml new file mode 100644 index 0000000..c540acb --- /dev/null +++ b/lib/analysis_options.1.0.3-experimental.yaml @@ -0,0 +1,126 @@ +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: + - lib/**/*.g.dart + - lib/*.g.dart + - lib/**/*.graphql.dart + - lib/**/*.freezed.dart + - test/**/*.mocks.dart + 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 + specify_nonobvious_local_variable_types: true # Experimental, https://dart.dev/tools/linter-rules/specify_nonobvious_local_variable_types + specify_nonobvious_property_types: true # Unreleased, https://dart.dev/tools/linter-rules/specify_nonobvious_property_types + 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.1.0.3.yaml b/lib/analysis_options.1.0.3.yaml new file mode 100644 index 0000000..2a52142 --- /dev/null +++ b/lib/analysis_options.1.0.3.yaml @@ -0,0 +1,124 @@ +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: + - lib/**/*.g.dart + - lib/*.g.dart + - lib/**/*.graphql.dart + - lib/**/*.freezed.dart + - test/**/*.mocks.dart + 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 d6ffe7a..803f549 100644 --- a/lib/analysis_options.yaml +++ b/lib/analysis_options.yaml @@ -1 +1 @@ -include: package:arcane_analysis/analysis_options.1.0.2.yaml +include: package:arcane_analysis/analysis_options.1.0.3.yaml diff --git a/pubspec.yaml b/pubspec.yaml index f9e5c72..c7ce4c1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: arcane_analysis description: Linting rules for Dart and Flutter used by the Arcane Framework -version: 1.0.2 +version: 1.0.3 homepage: https://github.com/hanskokx/arcane_analysis repository: https://github.com/hanskokx/arcane_analysis documentation: https://github.com/hanskokx/arcane_analysis @@ -13,4 +13,4 @@ topics: - arcane-framework environment: - sdk: ^3.5.3 + sdk: ^3.5.4