From 9fc3b5934dc5544586f7644e5757a59cbd03a1b8 Mon Sep 17 00:00:00 2001 From: Illia Aihistov Date: Mon, 20 Jul 2026 17:16:50 +0300 Subject: [PATCH 1/9] style: format code with updated dart formatter rules --- .../analysis_options_parser.dart | 4 +- .../common/parameter_parser/rules_data.dart | 4 +- .../avoid_debug_print_in_release_rule.dart | 2 +- .../fixes/avoid_final_with_getter_fix.dart | 19 +- .../utils/getter_reference_id.dart | 5 +- .../avoid_final_with_getter_visitor.dart | 40 ++-- .../visitors/getter_variable_visitor.dart | 21 +- .../avoid_global_state_rule.dart | 8 +- .../avoid_late_keyword_rule.dart | 10 +- .../avoid_returning_widgets_visitor.dart | 8 +- .../avoid_unnecessary_set_state_rule.dart | 11 +- .../models/avoid_using_api_parameters.dart | 4 +- .../models/member_ordering_parameters.dart | 10 +- .../member_ordering/models/modifier.dart | 6 +- .../named_parameters_ordering_parameters.dart | 11 +- .../models/parameter_type.dart | 4 +- .../no_empty_block/no_empty_block_rule.dart | 8 +- .../models/no_magic_number_parameters.dart | 9 +- .../no_magic_number/no_magic_number_rule.dart | 8 +- .../prefer_early_return_rule.dart | 8 +- .../proper_super_calls_rule.dart | 10 +- .../visitors/proper_super_calls_visitor.dart | 3 +- .../utils/use_nearest_context_utils.dart | 5 +- lib/src/models/proxy_analysis_rule.dart | 10 +- lib/src/models/proxy_multi_analysis_rule.dart | 10 +- lib/src/models/solid_lint_rule.dart | 14 +- lib/src/models/solid_multi_lint_rule.dart | 13 +- lib/src/utils/correction_utils.dart | 7 +- lib/src/utils/docs_parser/main.dart | 5 +- .../docusaurus_formatter.dart | 11 +- .../output_formatters/markdown_formatter.dart | 1 - lib/src/utils/map_utils.dart | 12 +- lib/src/utils/named_type_utils.dart | 8 +- lib/src/utils/path_utils.dart | 11 +- .../analysis_options_loader_test.dart | 210 +++++++----------- .../parameters/parameters_parsing_test.dart | 5 +- .../prefer_match_file_name_rule_test.dart | 3 +- test/src/utils/code_generators.dart | 3 +- test/utils/fake_analysis_options_loader.dart | 3 +- tool/generate_web_docs_content.dart | 6 +- 40 files changed, 251 insertions(+), 299 deletions(-) diff --git a/lib/src/common/parameter_parser/analysis_options_parser.dart b/lib/src/common/parameter_parser/analysis_options_parser.dart index f3465d4d..0e002747 100644 --- a/lib/src/common/parameter_parser/analysis_options_parser.dart +++ b/lib/src/common/parameter_parser/analysis_options_parser.dart @@ -64,8 +64,8 @@ class AnalysisOptionsParser { Map _toStandardMap(Map map) => map.whereKeyType().map( - (key, value) => MapEntry(key, _toStandardType(value)), - ); + (key, value) => MapEntry(key, _toStandardType(value)), + ); Object? _toStandardType(Object? value) => switch (value) { Map() => _toStandardMap(value), diff --git a/lib/src/common/parameter_parser/rules_data.dart b/lib/src/common/parameter_parser/rules_data.dart index a589b3fe..d7e3c54b 100644 --- a/lib/src/common/parameter_parser/rules_data.dart +++ b/lib/src/common/parameter_parser/rules_data.dart @@ -10,7 +10,5 @@ class RulesData { const RulesData({required this.rules, required this.disabledRules}); /// Creates a new empty instance of [RulesData]. - const RulesData.empty() - : rules = const {}, - disabledRules = const {}; + const RulesData.empty() : rules = const {}, disabledRules = const {}; } diff --git a/lib/src/lints/avoid_debug_print_in_release/avoid_debug_print_in_release_rule.dart b/lib/src/lints/avoid_debug_print_in_release/avoid_debug_print_in_release_rule.dart index a5d3d44b..32557d93 100644 --- a/lib/src/lints/avoid_debug_print_in_release/avoid_debug_print_in_release_rule.dart +++ b/lib/src/lints/avoid_debug_print_in_release/avoid_debug_print_in_release_rule.dart @@ -43,7 +43,7 @@ class AvoidDebugPrintInReleaseRule extends AnalysisRule { /// Creates an instance of [AvoidDebugPrintInReleaseRule]. AvoidDebugPrintInReleaseRule() - : super(name: lintName, description: 'Avoid debugPrint in release mode.'); + : super(name: lintName, description: 'Avoid debugPrint in release mode.'); @override LintCode get diagnosticCode => _code; diff --git a/lib/src/lints/avoid_final_with_getter/fixes/avoid_final_with_getter_fix.dart b/lib/src/lints/avoid_final_with_getter/fixes/avoid_final_with_getter_fix.dart index dd810642..49d25888 100644 --- a/lib/src/lints/avoid_final_with_getter/fixes/avoid_final_with_getter_fix.dart +++ b/lib/src/lints/avoid_final_with_getter/fixes/avoid_final_with_getter_fix.dart @@ -29,16 +29,15 @@ class AvoidFinalWithGetterFix extends ResolvedCorrectionProducer { @override Future compute(ChangeBuilder builder) async { final getterNode = node; - if (getterNode - case MethodDeclaration( - isGetter: true, - declaredFragment: ExecutableFragment( - element: GetterElement( - isAbstract: false, - isPublic: true, - ), - ), - )) { + if (getterNode case MethodDeclaration( + isGetter: true, + declaredFragment: ExecutableFragment( + element: GetterElement( + isAbstract: false, + isPublic: true, + ), + ), + )) { final compilationUnit = node.thisOrAncestorOfType(); if (compilationUnit == null) return; diff --git a/lib/src/lints/avoid_final_with_getter/utils/getter_reference_id.dart b/lib/src/lints/avoid_final_with_getter/utils/getter_reference_id.dart index 0aa47984..4f25f0d6 100644 --- a/lib/src/lints/avoid_final_with_getter/utils/getter_reference_id.dart +++ b/lib/src/lints/avoid_final_with_getter/utils/getter_reference_id.dart @@ -12,9 +12,8 @@ extension GetterReferenceId on MethodDeclaration { statements: [ ReturnStatement(expression: final expr?), ], - ) - ) => - expr, + ), + ) => expr, _ => null, }; diff --git a/lib/src/lints/avoid_final_with_getter/visitors/avoid_final_with_getter_visitor.dart b/lib/src/lints/avoid_final_with_getter/visitors/avoid_final_with_getter_visitor.dart index ee1aa7de..03a201ef 100644 --- a/lib/src/lints/avoid_final_with_getter/visitors/avoid_final_with_getter_visitor.dart +++ b/lib/src/lints/avoid_final_with_getter/visitors/avoid_final_with_getter_visitor.dart @@ -19,17 +19,16 @@ class AvoidFinalWithGetterVisitor extends RecursiveAstVisitor { void visitMethodDeclaration(MethodDeclaration node) { super.visitMethodDeclaration(node); - if (node - case MethodDeclaration( - isGetter: true, - declaredFragment: ExecutableFragment( - element: ExecutableElement( - isAbstract: false, - isPublic: true, - ) - ), - getterReferenceId: final getterId?, - )) { + if (node case MethodDeclaration( + isGetter: true, + declaredFragment: ExecutableFragment( + element: ExecutableElement( + isAbstract: false, + isPublic: true, + ), + ), + getterReferenceId: final getterId?, + )) { _gettersPairLookup[getterId] = node; if (_fieldsPairLookup.containsKey(getterId)) { @@ -42,16 +41,15 @@ class AvoidFinalWithGetterVisitor extends RecursiveAstVisitor { void visitVariableDeclaration(VariableDeclaration node) { super.visitVariableDeclaration(node); - if (node - case VariableDeclaration( - declaredFragment: VariableFragment( - element: VariableElement( - isPrivate: true, - isFinal: true, - id: final variableId, - ) - ) - )) { + if (node case VariableDeclaration( + declaredFragment: VariableFragment( + element: VariableElement( + isPrivate: true, + isFinal: true, + id: final variableId, + ), + ), + )) { _fieldsPairLookup[variableId] = node; if (_gettersPairLookup[variableId] case final getter?) { diff --git a/lib/src/lints/avoid_final_with_getter/visitors/getter_variable_visitor.dart b/lib/src/lints/avoid_final_with_getter/visitors/getter_variable_visitor.dart index 0e9b4195..c9afd760 100644 --- a/lib/src/lints/avoid_final_with_getter/visitors/getter_variable_visitor.dart +++ b/lib/src/lints/avoid_final_with_getter/visitors/getter_variable_visitor.dart @@ -10,23 +10,22 @@ class GetterVariableVisitor extends RecursiveAstVisitor { /// Creates a new instance of [GetterVariableVisitor] GetterVariableVisitor(MethodDeclaration getter) - : _getterId = getter.getterReferenceId; + : _getterId = getter.getterReferenceId; /// Is there a variable associated with the getter VariableDeclaration? get variable => _variable; @override void visitVariableDeclaration(VariableDeclaration node) { - if (node - case VariableDeclaration( - declaredFragment: VariableFragment( - element: VariableElement( - isPrivate: true, - isFinal: true, - :final id, - ) - ) - ) when id == _getterId) { + if (node case VariableDeclaration( + declaredFragment: VariableFragment( + element: VariableElement( + isPrivate: true, + isFinal: true, + :final id, + ), + ), + ) when id == _getterId) { _variable = node; } diff --git a/lib/src/lints/avoid_global_state/avoid_global_state_rule.dart b/lib/src/lints/avoid_global_state/avoid_global_state_rule.dart index 6ee78241..d63f76bb 100644 --- a/lib/src/lints/avoid_global_state/avoid_global_state_rule.dart +++ b/lib/src/lints/avoid_global_state/avoid_global_state_rule.dart @@ -48,10 +48,10 @@ class AvoidGlobalStateRule extends AnalysisRule { /// Creates an instance of [AvoidGlobalStateRule]. AvoidGlobalStateRule() - : super( - name: lintName, - description: 'Avoid top-level or static mutable variables ', - ); + : super( + name: lintName, + description: 'Avoid top-level or static mutable variables ', + ); @override LintCode get diagnosticCode => _code; diff --git a/lib/src/lints/avoid_late_keyword/avoid_late_keyword_rule.dart b/lib/src/lints/avoid_late_keyword/avoid_late_keyword_rule.dart index e1378562..e9552709 100644 --- a/lib/src/lints/avoid_late_keyword/avoid_late_keyword_rule.dart +++ b/lib/src/lints/avoid_late_keyword/avoid_late_keyword_rule.dart @@ -58,11 +58,11 @@ class AvoidLateKeywordRule extends SolidLintRule { /// Creates an instance of [AvoidLateKeywordRule]. AvoidLateKeywordRule({required super.analysisOptionsLoader}) - : super.withParameters( - name: lintName, - description: 'Warns against using the late keyword.', - parametersParser: AvoidLateKeywordParameters.fromJson, - ); + : super.withParameters( + name: lintName, + description: 'Warns against using the late keyword.', + parametersParser: AvoidLateKeywordParameters.fromJson, + ); @override LintCode get diagnosticCode => _code; diff --git a/lib/src/lints/avoid_returning_widgets/visitors/avoid_returning_widgets_visitor.dart b/lib/src/lints/avoid_returning_widgets/visitors/avoid_returning_widgets_visitor.dart index b81f4c39..f637acfe 100644 --- a/lib/src/lints/avoid_returning_widgets/visitors/avoid_returning_widgets_visitor.dart +++ b/lib/src/lints/avoid_returning_widgets/visitors/avoid_returning_widgets_visitor.dart @@ -43,8 +43,8 @@ class AvoidReturningWidgetsVisitor extends RecursiveAstVisitor { final returnType = switch (node) { Declaration( declaredFragment: ExecutableFragment( - element: ExecutableElement(type: FunctionType(:final returnType)) - ) + element: ExecutableElement(type: FunctionType(:final returnType)), + ), ) => returnType, MethodDeclaration(returnType: TypeAnnotation(:final type)) => type, @@ -70,8 +70,8 @@ class AvoidReturningWidgetsVisitor extends RecursiveAstVisitor { declaredFragment: Fragment( element: Element( name: final String name, - enclosingElement: final InterfaceElement enclosingElement - ) + enclosingElement: final InterfaceElement enclosingElement, + ), ), ) => enclosingElement.getInheritedMember( diff --git a/lib/src/lints/avoid_unnecessary_setstate/avoid_unnecessary_set_state_rule.dart b/lib/src/lints/avoid_unnecessary_setstate/avoid_unnecessary_set_state_rule.dart index 7ea8ac1d..eacba39f 100644 --- a/lib/src/lints/avoid_unnecessary_setstate/avoid_unnecessary_set_state_rule.dart +++ b/lib/src/lints/avoid_unnecessary_setstate/avoid_unnecessary_set_state_rule.dart @@ -60,7 +60,8 @@ class AvoidUnnecessarySetStateRule extends AnalysisRule { static const lintName = 'avoid_unnecessary_setstate'; /// The message shown when the lint rule is triggered. - static const _lintMessage = 'Avoid calling unnecessary setState. ' + static const _lintMessage = + 'Avoid calling unnecessary setState. ' 'Consider changing the state directly.'; /// The lint code for this rule. @@ -71,10 +72,10 @@ class AvoidUnnecessarySetStateRule extends AnalysisRule { /// Creates a new instance of [AvoidUnnecessarySetStateRule]. AvoidUnnecessarySetStateRule() - : super( - name: lintName, - description: _lintMessage, - ); + : super( + name: lintName, + description: _lintMessage, + ); @override LintCode get diagnosticCode => _code; diff --git a/lib/src/lints/avoid_using_api/models/avoid_using_api_parameters.dart b/lib/src/lints/avoid_using_api/models/avoid_using_api_parameters.dart index f132b23c..6e9d074c 100644 --- a/lib/src/lints/avoid_using_api/models/avoid_using_api_parameters.dart +++ b/lib/src/lints/avoid_using_api/models/avoid_using_api_parameters.dart @@ -47,9 +47,7 @@ class AvoidUsingApiParameters { final avoidUsingApi = json['avoid_using_api']; return AvoidUsingApiParameters( entries: List.from( - (json['entries'] as Iterable?) - ?.whereType>() - .map( + (json['entries'] as Iterable?)?.whereType>().map( (e) { if (e is YamlMap) { return AvoidUsingApiEntryParameters.fromJson(e.toMap()); diff --git a/lib/src/lints/member_ordering/models/member_ordering_parameters.dart b/lib/src/lints/member_ordering/models/member_ordering_parameters.dart index 647abec5..2613d3dd 100644 --- a/lib/src/lints/member_ordering/models/member_ordering_parameters.dart +++ b/lib/src/lints/member_ordering/models/member_ordering_parameters.dart @@ -56,11 +56,11 @@ class MemberOrderingParameters { /// Factory for creating empty/default parameters. factory MemberOrderingParameters.empty() => MemberOrderingParameters( - groupsOrder: MemberOrderingConfigParser.parseOrder(null), - widgetsGroupsOrder: MemberOrderingConfigParser.parseWidgetsOrder(null), - alphabetize: false, - alphabetizeByType: false, - ); + groupsOrder: MemberOrderingConfigParser.parseOrder(null), + widgetsGroupsOrder: MemberOrderingConfigParser.parseWidgetsOrder(null), + alphabetize: false, + alphabetizeByType: false, + ); /// Method for creating from json data factory MemberOrderingParameters.fromJson(Map json) => diff --git a/lib/src/lints/member_ordering/models/modifier.dart b/lib/src/lints/member_ordering/models/modifier.dart index f840f261..d7fe6be2 100644 --- a/lib/src/lints/member_ordering/models/modifier.dart +++ b/lib/src/lints/member_ordering/models/modifier.dart @@ -41,8 +41,10 @@ enum Modifier { const Modifier(this.type); /// Parses a String access modifier and returns instance of [Modifier] - static Modifier parse(String? name) => values - .firstWhere((type) => type.type == name, orElse: () => Modifier.unset); + static Modifier parse(String? name) => values.firstWhere( + (type) => type.type == name, + orElse: () => Modifier.unset, + ); } /// Logical implication operation for access modifier diff --git a/lib/src/lints/named_parameters_ordering/models/named_parameters_ordering_parameters.dart b/lib/src/lints/named_parameters_ordering/models/named_parameters_ordering_parameters.dart index 7ff0009f..cb16d227 100644 --- a/lib/src/lints/named_parameters_ordering/models/named_parameters_ordering_parameters.dart +++ b/lib/src/lints/named_parameters_ordering/models/named_parameters_ordering_parameters.dart @@ -39,10 +39,9 @@ class NamedParametersOrderingParameters { /// Method for creating from json data factory NamedParametersOrderingParameters.fromJson( Map json, - ) => - NamedParametersOrderingParameters( - order: NamedParametersConfigParser.parseOrder( - json[_orderConfig], - ), - ); + ) => NamedParametersOrderingParameters( + order: NamedParametersConfigParser.parseOrder( + json[_orderConfig], + ), + ); } diff --git a/lib/src/lints/named_parameters_ordering/models/parameter_type.dart b/lib/src/lints/named_parameters_ordering/models/parameter_type.dart index a72ea2ac..8f560db3 100644 --- a/lib/src/lints/named_parameters_ordering/models/parameter_type.dart +++ b/lib/src/lints/named_parameters_ordering/models/parameter_type.dart @@ -61,8 +61,8 @@ enum ParameterType { return ParameterType.defaultValue; case FieldFormalParameter(:final isRequired) || - FunctionTypedFormalParameter(:final isRequired) || - SimpleFormalParameter(:final isRequired): + FunctionTypedFormalParameter(:final isRequired) || + SimpleFormalParameter(:final isRequired): return isRequired ? ParameterType.required : ParameterType.nullable; } } diff --git a/lib/src/lints/no_empty_block/no_empty_block_rule.dart b/lib/src/lints/no_empty_block/no_empty_block_rule.dart index db3e670f..9022c100 100644 --- a/lib/src/lints/no_empty_block/no_empty_block_rule.dart +++ b/lib/src/lints/no_empty_block/no_empty_block_rule.dart @@ -81,10 +81,10 @@ class NoEmptyBlockRule extends SolidLintRule { NoEmptyBlockRule({ required super.analysisOptionsLoader, }) : super.withParameters( - name: lintName, - description: _code.problemMessage, - parametersParser: NoEmptyBlockParameters.fromJson, - ); + name: lintName, + description: _code.problemMessage, + parametersParser: NoEmptyBlockParameters.fromJson, + ); @override void registerNodeProcessors( diff --git a/lib/src/lints/no_magic_number/models/no_magic_number_parameters.dart b/lib/src/lints/no_magic_number/models/no_magic_number_parameters.dart index 50bdc93f..8d6938fb 100644 --- a/lib/src/lints/no_magic_number/models/no_magic_number_parameters.dart +++ b/lib/src/lints/no_magic_number/models/no_magic_number_parameters.dart @@ -49,9 +49,9 @@ class NoMagicNumberParameters { /// Creates an empty/default instance of [NoMagicNumberParameters] factory NoMagicNumberParameters.empty() => const NoMagicNumberParameters( - allowedNumbers: _defaultMagicNumbers, - allowedInWidgetParams: false, - ); + allowedNumbers: _defaultMagicNumbers, + allowedInWidgetParams: false, + ); /// Method for creating from json data factory NoMagicNumberParameters.fromJson(Map json) { @@ -62,8 +62,7 @@ class NoMagicNumberParameters { return NoMagicNumberParameters( allowedNumbers: allowedList, - allowedInWidgetParams: - json[_allowedInWidgetParamsConfigName] == true, + allowedInWidgetParams: json[_allowedInWidgetParamsConfigName] == true, ); } } diff --git a/lib/src/lints/no_magic_number/no_magic_number_rule.dart b/lib/src/lints/no_magic_number/no_magic_number_rule.dart index 57e5e9f9..9380fc03 100644 --- a/lib/src/lints/no_magic_number/no_magic_number_rule.dart +++ b/lib/src/lints/no_magic_number/no_magic_number_rule.dart @@ -125,10 +125,10 @@ class NoMagicNumberRule extends SolidLintRule { NoMagicNumberRule({ required super.analysisOptionsLoader, }) : super.withParameters( - name: lintName, - description: 'Forbids having numbers without variable.', - parametersParser: NoMagicNumberParameters.fromJson, - ); + name: lintName, + description: 'Forbids having numbers without variable.', + parametersParser: NoMagicNumberParameters.fromJson, + ); @override void registerNodeProcessors( diff --git a/lib/src/lints/prefer_early_return/prefer_early_return_rule.dart b/lib/src/lints/prefer_early_return/prefer_early_return_rule.dart index 582378df..91f26aec 100644 --- a/lib/src/lints/prefer_early_return/prefer_early_return_rule.dart +++ b/lib/src/lints/prefer_early_return/prefer_early_return_rule.dart @@ -43,10 +43,10 @@ class PreferEarlyReturnRule extends AnalysisRule { /// Creates an instance of [PreferEarlyReturnRule] PreferEarlyReturnRule() - : super( - name: lintName, - description: 'Use reverse if to reduce nesting', - ); + : super( + name: lintName, + description: 'Use reverse if to reduce nesting', + ); @override LintCode get diagnosticCode => _code; diff --git a/lib/src/lints/proper_super_calls/proper_super_calls_rule.dart b/lib/src/lints/proper_super_calls/proper_super_calls_rule.dart index fb82e8e8..90b04a9c 100644 --- a/lib/src/lints/proper_super_calls/proper_super_calls_rule.dart +++ b/lib/src/lints/proper_super_calls/proper_super_calls_rule.dart @@ -61,11 +61,11 @@ class ProperSuperCallsRule extends AnalysisRule { /// Creates an instance of [ProperSuperCallsRule]. ProperSuperCallsRule() - : super( - name: lintName, - description: - 'Ensures proper ordering of Flutter lifecycle super calls.', - ); + : super( + name: lintName, + description: + 'Ensures proper ordering of Flutter lifecycle super calls.', + ); @override LintCode get diagnosticCode => superInitStateCode; diff --git a/lib/src/lints/proper_super_calls/visitors/proper_super_calls_visitor.dart b/lib/src/lints/proper_super_calls/visitors/proper_super_calls_visitor.dart index 871938ad..3fe9b217 100644 --- a/lib/src/lints/proper_super_calls/visitors/proper_super_calls_visitor.dart +++ b/lib/src/lints/proper_super_calls/visitors/proper_super_calls_visitor.dart @@ -83,7 +83,8 @@ class ProperSuperCallsVisitor extends SimpleAstVisitor { } bool _isStateSubclass(InterfaceType supertype) { - final isStateSubclass = supertype.element.name == _flutterStateClass || + final isStateSubclass = + supertype.element.name == _flutterStateClass || supertype.allSupertypes.any( (t) => t.element.name == _flutterStateClass, ); diff --git a/lib/src/lints/use_nearest_context/utils/use_nearest_context_utils.dart b/lib/src/lints/use_nearest_context/utils/use_nearest_context_utils.dart index 8e79d9d8..d5b4652f 100644 --- a/lib/src/lints/use_nearest_context/utils/use_nearest_context_utils.dart +++ b/lib/src/lints/use_nearest_context/utils/use_nearest_context_utils.dart @@ -9,8 +9,9 @@ SimpleFormalParameter? findClosestBuildContext(AstNode node) { if (current is FunctionExpression) { final functionParams = current.parameters?.parameters ?? []; for (final param in functionParams) { - final actualParam = - param is DefaultFormalParameter ? param.parameter : param; + final actualParam = param is DefaultFormalParameter + ? param.parameter + : param; if (actualParam is SimpleFormalParameter && isBuildContext(actualParam.declaredFragment?.element.type)) { return actualParam; diff --git a/lib/src/models/proxy_analysis_rule.dart b/lib/src/models/proxy_analysis_rule.dart index 2bdd2d4e..47376dd1 100644 --- a/lib/src/models/proxy_analysis_rule.dart +++ b/lib/src/models/proxy_analysis_rule.dart @@ -17,11 +17,11 @@ class ProxyAnalysisRule extends AnalysisRule { /// Creates a new instance of [ProxyAnalysisRule]. ProxyAnalysisRule(this.delegate, this.loader) - : super( - name: delegate.name, - description: delegate.description, - state: delegate.state, - ); + : super( + name: delegate.name, + description: delegate.description, + state: delegate.state, + ); @override DiagnosticCode get diagnosticCode => delegate.diagnosticCode; diff --git a/lib/src/models/proxy_multi_analysis_rule.dart b/lib/src/models/proxy_multi_analysis_rule.dart index e497590b..5f25dddb 100644 --- a/lib/src/models/proxy_multi_analysis_rule.dart +++ b/lib/src/models/proxy_multi_analysis_rule.dart @@ -17,11 +17,11 @@ class ProxyMultiAnalysisRule extends MultiAnalysisRule { /// Creates a new instance of [ProxyMultiAnalysisRule]. ProxyMultiAnalysisRule(this.delegate, this.loader) - : super( - name: delegate.name, - description: delegate.description, - state: delegate.state, - ); + : super( + name: delegate.name, + description: delegate.description, + state: delegate.state, + ); @override List get diagnosticCodes => delegate.diagnosticCodes; diff --git a/lib/src/models/solid_lint_rule.dart b/lib/src/models/solid_lint_rule.dart index b4bf288e..2b705805 100644 --- a/lib/src/models/solid_lint_rule.dart +++ b/lib/src/models/solid_lint_rule.dart @@ -15,8 +15,8 @@ abstract class SolidLintRule extends AnalysisRule { required super.name, required super.description, super.state, - }) : _analysisOptionsLoader = null, - _parametersParser = null; + }) : _analysisOptionsLoader = null, + _parametersParser = null; /// Constructor for [SolidLintRule] model with parameters. SolidLintRule.withParameters({ @@ -25,15 +25,17 @@ abstract class SolidLintRule extends AnalysisRule { required super.name, required super.description, super.state, - }) : _analysisOptionsLoader = analysisOptionsLoader, - _parametersParser = parametersParser; + }) : _analysisOptionsLoader = analysisOptionsLoader, + _parametersParser = parametersParser; /// Reads the rule parameters from analysis options and parses them to [T] T? getParametersForContext(RuleContext context) { _analysisOptionsLoader?.loadRulesOptionsFromContext(context); - final unparsedParameters = - _analysisOptionsLoader?.getRuleOptions(context, name); + final unparsedParameters = _analysisOptionsLoader?.getRuleOptions( + context, + name, + ); if (unparsedParameters == null) return null; return _parametersParser?.call(unparsedParameters); diff --git a/lib/src/models/solid_multi_lint_rule.dart b/lib/src/models/solid_multi_lint_rule.dart index 244c9377..947a4915 100644 --- a/lib/src/models/solid_multi_lint_rule.dart +++ b/lib/src/models/solid_multi_lint_rule.dart @@ -8,8 +8,7 @@ import 'package:solid_lints/src/models/rule_parameters_parser.dart'; /// /// Mirrors SolidLintRule but extends MultiAnalysisRule instead of /// AnalysisRule, allowing rules to define multiple diagnostic codes. -abstract class SolidMultiLintRule - extends MultiAnalysisRule { +abstract class SolidMultiLintRule extends MultiAnalysisRule { final AnalysisOptionsLoader _analysisOptionsLoader; final RuleParametersParser _parametersParser; @@ -21,15 +20,17 @@ abstract class SolidMultiLintRule required super.name, required super.description, super.state, - }) : _analysisOptionsLoader = analysisOptionsLoader, - _parametersParser = parametersParser; + }) : _analysisOptionsLoader = analysisOptionsLoader, + _parametersParser = parametersParser; /// Reads the rule parameters from analysis options and parses them to [T]. T? getParametersForContext(RuleContext context) { _analysisOptionsLoader.loadRulesOptionsFromContext(context); - final unparsedParameters = - _analysisOptionsLoader.getRuleOptions(context, name); + final unparsedParameters = _analysisOptionsLoader.getRuleOptions( + context, + name, + ); if (unparsedParameters == null) return null; return _parametersParser(unparsedParameters); diff --git a/lib/src/utils/correction_utils.dart b/lib/src/utils/correction_utils.dart index 80bfe87c..5ba2c945 100644 --- a/lib/src/utils/correction_utils.dart +++ b/lib/src/utils/correction_utils.dart @@ -21,9 +21,7 @@ extension CorrectionUtilsExtension on CorrectionUtils { }) { if (node.end >= nextOffset) return null; - final sameLine = getTextRange(node.end, nextOffset) - .split('\n') - .first; + final sameLine = getTextRange(node.end, nextOffset).split('\n').first; final commentIdx = sameLine.indexOf('//'); @@ -55,7 +53,8 @@ extension CorrectionUtilsExtension on CorrectionUtils { required Token? leadingComment, required int minOffset, }) { - final hasValidComment = leadingComment != null && + final hasValidComment = + leadingComment != null && leadingComment.offset >= minOffset && leadingComment.offset < node.offset; diff --git a/lib/src/utils/docs_parser/main.dart b/lib/src/utils/docs_parser/main.dart index abf91055..1bdd4a3d 100644 --- a/lib/src/utils/docs_parser/main.dart +++ b/lib/src/utils/docs_parser/main.dart @@ -5,8 +5,9 @@ import 'package:solid_lints/src/utils/docs_parser/output_formatters/markdown_for import 'package:solid_lints/src/utils/docs_parser/parsers/docs_parser.dart'; void main() async { - final dir = - Directory(normalize(join(Directory.current.path, 'lib', 'src', 'lints'))); + final dir = Directory( + normalize(join(Directory.current.path, 'lib', 'src', 'lints')), + ); final parser = DocsParser( formatter: MarkdownFormatter(), diff --git a/lib/src/utils/docs_parser/output_formatters/docusaurus_formatter.dart b/lib/src/utils/docs_parser/output_formatters/docusaurus_formatter.dart index 33abfab3..b57bf984 100644 --- a/lib/src/utils/docs_parser/output_formatters/docusaurus_formatter.dart +++ b/lib/src/utils/docs_parser/output_formatters/docusaurus_formatter.dart @@ -24,8 +24,8 @@ sidebar_position: 0 DocusaurusFormatter({ required String docusaurusDocsDirPath, required String readmePath, - }) : _outputDirectory = Directory(docusaurusDocsDirPath), - _readmeFile = File(readmePath); + }) : _outputDirectory = Directory(docusaurusDocsDirPath), + _readmeFile = File(readmePath); @override void format(List rules) { @@ -40,9 +40,10 @@ sidebar_position: 0 rules.forEach(_createMarkdownFileForRule); } - void _createMarkdownFileForRule(RuleDoc rule) => File( - join(_outputDirectory.path, '${rule.name}.md'), - ) + void _createMarkdownFileForRule(RuleDoc rule) => + File( + join(_outputDirectory.path, '${rule.name}.md'), + ) ..createSync() ..writeAsString( _markdownFormatter.formatRuleToMarkdown( diff --git a/lib/src/utils/docs_parser/output_formatters/markdown_formatter.dart b/lib/src/utils/docs_parser/output_formatters/markdown_formatter.dart index 64442503..e82d5dd5 100644 --- a/lib/src/utils/docs_parser/output_formatters/markdown_formatter.dart +++ b/lib/src/utils/docs_parser/output_formatters/markdown_formatter.dart @@ -55,5 +55,4 @@ class MarkdownFormatter implements RulesDocumentationFormatter { return formattedString.toString(); } - } diff --git a/lib/src/utils/map_utils.dart b/lib/src/utils/map_utils.dart index 9b5c37d5..0e6928d6 100644 --- a/lib/src/utils/map_utils.dart +++ b/lib/src/utils/map_utils.dart @@ -3,14 +3,14 @@ extension MapExtensions on Map { /// Filters the map entries keeping only those whose keys are of type [U], /// and casts the resulting map's keys to [U]. Map whereKeyType() => { - for (final MapEntry(:key, :value) in entries) - if (key is U) key: value, - }; + for (final MapEntry(:key, :value) in entries) + if (key is U) key: value, + }; /// Filters the map entries keeping only those whose values are of type [W], /// and casts the resulting map's values to [W]. Map whereValueType() => { - for (final MapEntry(:key, :value) in entries) - if (value is W) key: value, - }; + for (final MapEntry(:key, :value) in entries) + if (value is W) key: value, + }; } diff --git a/lib/src/utils/named_type_utils.dart b/lib/src/utils/named_type_utils.dart index 574a40a2..70c0c7e6 100644 --- a/lib/src/utils/named_type_utils.dart +++ b/lib/src/utils/named_type_utils.dart @@ -12,9 +12,11 @@ NamedType parseNamedTypeFromString(String typeString) { return namedTypeFinder.foundNamedType!; } catch (_) { - throw Exception("No NamedType could be parsed from the input " - "typeString: '$typeString'. Ensure it's a valid Dart " - "type declaration."); + throw Exception( + "No NamedType could be parsed from the input " + "typeString: '$typeString'. Ensure it's a valid Dart " + "type declaration.", + ); } } diff --git a/lib/src/utils/path_utils.dart b/lib/src/utils/path_utils.dart index e6ba3a67..066e5199 100644 --- a/lib/src/utils/path_utils.dart +++ b/lib/src/utils/path_utils.dart @@ -23,11 +23,13 @@ bool shouldSkipFile({ final relative = relativePath(path, rootPath); - final matchesInclude = includes.isEmpty || + final matchesInclude = + includes.isEmpty || _matchesAny(includes, relative) || _matchesAny(includes, path); - final matchesExclude = excludes.isNotEmpty && + final matchesExclude = + excludes.isNotEmpty && (_matchesAny(excludes, relative) || _matchesAny(excludes, path)); return !matchesInclude || matchesExclude; @@ -40,8 +42,9 @@ bool _matchesAny(List globs, String path) => /// replaces backslashes with forward slashes String relativePath(String path, [String? root]) { final uriNormalizedPath = p.toUri(path).normalizePath().path; - final uriNormalizedRoot = - root != null ? p.toUri(root).normalizePath().path : null; + final uriNormalizedRoot = root != null + ? p.toUri(root).normalizePath().path + : null; return p.posix.relative(uriNormalizedPath, from: uriNormalizedRoot); } diff --git a/test/src/common/parameter_parser/analysis_options_loader_test.dart b/test/src/common/parameter_parser/analysis_options_loader_test.dart index a47a26e0..6261eb31 100644 --- a/test/src/common/parameter_parser/analysis_options_loader_test.dart +++ b/test/src/common/parameter_parser/analysis_options_loader_test.dart @@ -20,7 +20,8 @@ class AnalysisOptionsLoaderTest extends PubPackageResolutionTest { static const _mockRule2Name = 'mock_rule_2'; static const _cyclomaticComplexityName = 'cyclomatic_complexity'; - static const _mockAnalysisOptionsContent = ''' + static const _mockAnalysisOptionsContent = + ''' plugins: solid_lints: diagnostics: @@ -38,7 +39,8 @@ plugins: method_name: mockMethod - method_name: mockMethod2 '''; - static const _mockDifferentAnalysisOptionsContent = ''' + static const _mockDifferentAnalysisOptionsContent = + ''' plugins: solid_lints: diagnostics: @@ -64,8 +66,9 @@ plugins: void setUp() { super.setUp(); - analysisOptionsLoader = - AnalysisOptionsLoader(resourceProvider: resourceProvider); + analysisOptionsLoader = AnalysisOptionsLoader( + resourceProvider: resourceProvider, + ); mockRuleContext = _createMockContextForPackage(testPackageRootPath); _writeMockAnalysisOptionsYamlFile(); @@ -93,7 +96,7 @@ plugins: for (final ruleName in [ _mockRuleThatNeedsConfigName, _mockRule2Name, - _cyclomaticComplexityName + _cyclomaticComplexityName, ]) { final currentPackageOptions = analysisOptionsLoader.getRuleOptions( mockRuleContext, @@ -104,10 +107,7 @@ plugins: ruleName, ); - expect( - currentPackageOptions, - isNot(equals(otherPackageOptions)), - ); + expect(currentPackageOptions, isNot(equals(otherPackageOptions))); } } @@ -135,7 +135,7 @@ plugins: 'foo': 'bar', 'exclude': [ {'class_name': 'MockClass', 'method_name': 'mockMethod'}, - ] + ], }); expect(cyclomaticComplexityOptions, isNotNull); @@ -144,7 +144,7 @@ plugins: 'exclude': [ {'class_name': 'MockClass', 'method_name': 'mockMethod'}, {'method_name': 'mockMethod2'}, - ] + ], }); } @@ -182,13 +182,10 @@ plugins: } void test_does_not_crash_when_plugins_is_list() { - newAnalysisOptionsYamlFile( - testPackageRootPath, - ''' + newAnalysisOptionsYamlFile(testPackageRootPath, ''' plugins: - solid_lints -''', - ); +'''); analysisOptionsLoader.loadRulesOptionsFromContext(mockRuleContext); final options = analysisOptionsLoader.getRuleOptions( mockRuleContext, @@ -198,12 +195,9 @@ plugins: } void test_does_not_crash_when_solid_lints_is_boolean() { - newAnalysisOptionsYamlFile( - testPackageRootPath, - ''' + newAnalysisOptionsYamlFile(testPackageRootPath, ''' solid_lints: true -''', - ); +'''); analysisOptionsLoader.loadRulesOptionsFromContext(mockRuleContext); final options = analysisOptionsLoader.getRuleOptions( mockRuleContext, @@ -213,17 +207,14 @@ solid_lints: true } void test_does_not_crash_when_rule_option_has_non_string_key() { - newAnalysisOptionsYamlFile( - testPackageRootPath, - ''' + newAnalysisOptionsYamlFile(testPackageRootPath, ''' plugins: solid_lints: diagnostics: $_mockRuleThatNeedsConfigName: 123: true some_parameter: root_value -''', - ); +'''); analysisOptionsLoader.loadRulesOptionsFromContext(mockRuleContext); final options = analysisOptionsLoader.getRuleOptions( mockRuleContext, @@ -279,22 +270,16 @@ plugins: void test_resolve_include_relative_path() { final includedOptionsPath = '$testPackageRootPath/included_options.yaml'; - newFile( - includedOptionsPath, - ''' + newFile(includedOptionsPath, ''' solid_lints: diagnostics: $_mockRuleThatNeedsConfigName: some_parameter: included_value -''', - ); +'''); - newAnalysisOptionsYamlFile( - testPackageRootPath, - ''' + newAnalysisOptionsYamlFile(testPackageRootPath, ''' include: included_options.yaml -''', - ); +'''); analysisOptionsLoader.loadRulesOptionsFromContext(mockRuleContext); @@ -310,19 +295,14 @@ include: included_options.yaml void test_resolve_include_package_path() { final sharedPackageRoot = '/home/shared'; newFolder(sharedPackageRoot); - newFile( - '$sharedPackageRoot/lib/analysis_options.yaml', - ''' + newFile('$sharedPackageRoot/lib/analysis_options.yaml', ''' solid_lints: diagnostics: $_mockRuleThatNeedsConfigName: some_parameter: package_value -''', - ); +'''); - newPackageConfigJsonFile( - testPackageRootPath, - ''' + newPackageConfigJsonFile(testPackageRootPath, ''' { "configVersion": 2, "packages": [ @@ -333,15 +313,11 @@ solid_lints: } ] } -''', - ); +'''); - newAnalysisOptionsYamlFile( - testPackageRootPath, - ''' + newAnalysisOptionsYamlFile(testPackageRootPath, ''' include: package:shared/analysis_options.yaml -''', - ); +'''); analysisOptionsLoader.loadRulesOptionsFromContext(mockRuleContext); @@ -355,12 +331,9 @@ include: package:shared/analysis_options.yaml } void test_resolve_include_malformed_package_uri() { - newAnalysisOptionsYamlFile( - testPackageRootPath, - ''' + newAnalysisOptionsYamlFile(testPackageRootPath, ''' include: package:foo:bar/baz.yaml -''', - ); +'''); // Should not throw FormatException analysisOptionsLoader.loadRulesOptionsFromContext(mockRuleContext); @@ -374,16 +347,13 @@ include: package:foo:bar/baz.yaml } void test_resolve_include_cyclic() { - newAnalysisOptionsYamlFile( - testPackageRootPath, - ''' + newAnalysisOptionsYamlFile(testPackageRootPath, ''' include: analysis_options.yaml solid_lints: diagnostics: $_mockRuleThatNeedsConfigName: some_parameter: cyclic_value -''', - ); +'''); analysisOptionsLoader.loadRulesOptionsFromContext(mockRuleContext); @@ -397,38 +367,38 @@ solid_lints: } void test_isRuleDisabled_when_set_to_false() { - newAnalysisOptionsYamlFile( - testPackageRootPath, - ''' + newAnalysisOptionsYamlFile(testPackageRootPath, ''' solid_lints: diagnostics: $_mockRuleThatNeedsConfigName: false -''', - ); +'''); analysisOptionsLoader.loadRulesOptionsFromContext(mockRuleContext); expect( - analysisOptionsLoader.isRuleDisabled(mockRuleContext, _mockRuleThatNeedsConfigName), + analysisOptionsLoader.isRuleDisabled( + mockRuleContext, + _mockRuleThatNeedsConfigName, + ), isTrue, ); } void test_isRuleDisabled_when_suppressed_in_analyzer_errors() { - newAnalysisOptionsYamlFile( - testPackageRootPath, - ''' + newAnalysisOptionsYamlFile(testPackageRootPath, ''' analyzer: errors: solid_lints/$_mockRuleThatNeedsConfigName: ignore solid_lints/$_mockRule2Name: ignore -''', - ); +'''); analysisOptionsLoader.loadRulesOptionsFromContext(mockRuleContext); expect( - analysisOptionsLoader.isRuleDisabled(mockRuleContext, _mockRuleThatNeedsConfigName), + analysisOptionsLoader.isRuleDisabled( + mockRuleContext, + _mockRuleThatNeedsConfigName, + ), isTrue, ); expect( @@ -438,103 +408,90 @@ analyzer: } void test_isRuleDisabled_when_suppressed_in_analyzer_errors_as_false() { - newAnalysisOptionsYamlFile( - testPackageRootPath, - ''' + newAnalysisOptionsYamlFile(testPackageRootPath, ''' analyzer: errors: solid_lints/$_mockRuleThatNeedsConfigName: false -''', - ); +'''); analysisOptionsLoader.loadRulesOptionsFromContext(mockRuleContext); expect( - analysisOptionsLoader.isRuleDisabled(mockRuleContext, _mockRuleThatNeedsConfigName), + analysisOptionsLoader.isRuleDisabled( + mockRuleContext, + _mockRuleThatNeedsConfigName, + ), isTrue, ); } - void test_isRuleDisabled_when_suppressed_in_included_analyzer_errors() { final includedOptionsPath = '$testPackageRootPath/included_options.yaml'; - newFile( - includedOptionsPath, - ''' + newFile(includedOptionsPath, ''' analyzer: errors: solid_lints/$_mockRuleThatNeedsConfigName: ignore -''', - ); +'''); - newAnalysisOptionsYamlFile( - testPackageRootPath, - ''' + newAnalysisOptionsYamlFile(testPackageRootPath, ''' include: included_options.yaml -''', - ); +'''); analysisOptionsLoader.loadRulesOptionsFromContext(mockRuleContext); expect( - analysisOptionsLoader.isRuleDisabled(mockRuleContext, _mockRuleThatNeedsConfigName), + analysisOptionsLoader.isRuleDisabled( + mockRuleContext, + _mockRuleThatNeedsConfigName, + ), isTrue, ); } void test_isRuleDisabled_when_disabled_in_include_but_re_enabled_with_null() { final includedOptionsPath = '$testPackageRootPath/included_options.yaml'; - newFile( - includedOptionsPath, - ''' + newFile(includedOptionsPath, ''' solid_lints: diagnostics: $_mockRuleThatNeedsConfigName: false -''', - ); +'''); - newAnalysisOptionsYamlFile( - testPackageRootPath, - ''' + newAnalysisOptionsYamlFile(testPackageRootPath, ''' include: included_options.yaml solid_lints: diagnostics: $_mockRuleThatNeedsConfigName: -''', - ); +'''); analysisOptionsLoader.loadRulesOptionsFromContext(mockRuleContext); expect( - analysisOptionsLoader.isRuleDisabled(mockRuleContext, _mockRuleThatNeedsConfigName), + analysisOptionsLoader.isRuleDisabled( + mockRuleContext, + _mockRuleThatNeedsConfigName, + ), isFalse, ); } void test_options_merging_with_include() { final includedOptionsPath = '$testPackageRootPath/included_options.yaml'; - newFile( - includedOptionsPath, - ''' + newFile(includedOptionsPath, ''' solid_lints: diagnostics: $_mockRuleThatNeedsConfigName: param_a: val_a param_b: val_b -''', - ); +'''); - newAnalysisOptionsYamlFile( - testPackageRootPath, - ''' + newAnalysisOptionsYamlFile(testPackageRootPath, ''' include: included_options.yaml solid_lints: diagnostics: $_mockRuleThatNeedsConfigName: param_b: local_val_b param_c: val_c -''', - ); +'''); analysisOptionsLoader.loadRulesOptionsFromContext(mockRuleContext); @@ -553,30 +510,22 @@ solid_lints: void test_options_merging_with_multiple_includes() { final includedOptionsPath1 = '$testPackageRootPath/included_options_1.yaml'; final includedOptionsPath2 = '$testPackageRootPath/included_options_2.yaml'; - newFile( - includedOptionsPath1, - ''' + newFile(includedOptionsPath1, ''' solid_lints: diagnostics: $_mockRuleThatNeedsConfigName: param_a: val_a param_b: val_b -''', - ); - newFile( - includedOptionsPath2, - ''' +'''); + newFile(includedOptionsPath2, ''' solid_lints: diagnostics: $_mockRuleThatNeedsConfigName: param_b: val_b_2 param_c: val_c -''', - ); +'''); - newAnalysisOptionsYamlFile( - testPackageRootPath, - ''' + newAnalysisOptionsYamlFile(testPackageRootPath, ''' include: - included_options_1.yaml - included_options_2.yaml @@ -585,8 +534,7 @@ solid_lints: $_mockRuleThatNeedsConfigName: param_c: local_val_c param_d: val_d -''', - ); +'''); analysisOptionsLoader.loadRulesOptionsFromContext(mockRuleContext); @@ -610,7 +558,8 @@ solid_lints: final rootFolder = getFolder(packageRootPath); return _TestRuleContext( _TestWorkspacePackage(rootFolder), - definingUnit: definingUnit ?? + definingUnit: + definingUnit ?? _TestRuleContextUnit( rootFolder.getChildAssumingFile('lib/dummy.dart'), ), @@ -625,10 +574,7 @@ class _TestRuleContext implements RuleContext { @override final RuleContextUnit definingUnit; - _TestRuleContext( - this.package, { - required this.definingUnit, - }); + _TestRuleContext(this.package, {required this.definingUnit}); @override dynamic noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); diff --git a/test/src/common/parameters/parameters_parsing_test.dart b/test/src/common/parameters/parameters_parsing_test.dart index f64d303a..75a027c4 100644 --- a/test/src/common/parameters/parameters_parsing_test.dart +++ b/test/src/common/parameters/parameters_parsing_test.dart @@ -9,7 +9,10 @@ void main() { final param = ExcludedAnnotationsListParameter.fromJson({ 'exclude_annotation': ['MyAnnotation1', 'MyAnnotation2'], }); - expect(param.excludedAnnotations, containsAll(['MyAnnotation1', 'MyAnnotation2'])); + expect( + param.excludedAnnotations, + containsAll(['MyAnnotation1', 'MyAnnotation2']), + ); }); test('parses single string', () { diff --git a/test/src/lints/prefer_match_file_name/prefer_match_file_name_rule_test.dart b/test/src/lints/prefer_match_file_name/prefer_match_file_name_rule_test.dart index ff27dfc7..605bb10b 100644 --- a/test/src/lints/prefer_match_file_name/prefer_match_file_name_rule_test.dart +++ b/test/src/lints/prefer_match_file_name/prefer_match_file_name_rule_test.dart @@ -202,7 +202,8 @@ final someVariable = 42; '''); } - void test_does_not_report_on_multiple_public_declarations_if_first_matches() async { + void + test_does_not_report_on_multiple_public_declarations_if_first_matches() async { await assertNoDiagnostics(r''' class Test {} class AnotherPublicClass {} diff --git a/test/src/utils/code_generators.dart b/test/src/utils/code_generators.dart index 5947a168..7c36cb85 100644 --- a/test/src/utils/code_generators.dart +++ b/test/src/utils/code_generators.dart @@ -3,6 +3,5 @@ extension RepeatLinesExtension on String { /// Repeats this string [times] times, joining with newlines. /// /// Useful for generating test Dart code with a specific number of lines. - String repeatLines(int times) => - List.generate(times, (_) => this).join('\n'); + String repeatLines(int times) => List.generate(times, (_) => this).join('\n'); } diff --git a/test/utils/fake_analysis_options_loader.dart b/test/utils/fake_analysis_options_loader.dart index 3672abca..c3e16e2a 100644 --- a/test/utils/fake_analysis_options_loader.dart +++ b/test/utils/fake_analysis_options_loader.dart @@ -14,8 +14,7 @@ class FakeAnalysisOptionsLoader implements AnalysisOptionsLoader { Map? getRuleOptionsForFile( String filePath, String ruleName, - ) => - ruleOptions; + ) => ruleOptions; @override void loadRulesOptionsFromContext(RuleContext context) {} diff --git a/tool/generate_web_docs_content.dart b/tool/generate_web_docs_content.dart index 233ebfb0..7ec6bb55 100644 --- a/tool/generate_web_docs_content.dart +++ b/tool/generate_web_docs_content.dart @@ -25,14 +25,16 @@ void main(List rawArgs) async { ..addOption( 'docs-dir', abbr: 'o', - help: 'Parser output path. i.e "docusaurus/docs/Solid Lints" directory.' + help: + 'Parser output path. i.e "docusaurus/docs/Solid Lints" directory.' 'Please note that parent directory would be used to place the intro.md file', defaultsTo: docusaurusDefaultPath, ) ..addOption( 'readme', abbr: 'r', - help: 'Path to the README.md file that should be' + help: + 'Path to the README.md file that should be' ' copied as docusaurus intro.md', defaultsTo: readmeDefaultPath, ) From 9478f39dc4b5df67ad1c97718ddcd8268358a51e Mon Sep 17 00:00:00 2001 From: Illia Aihistov Date: Mon, 20 Jul 2026 17:19:45 +0300 Subject: [PATCH 2/9] chore: add ignore_for_file directive for todo comments in no_empty_block_rule.dart --- lib/src/lints/no_empty_block/no_empty_block_rule.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/src/lints/no_empty_block/no_empty_block_rule.dart b/lib/src/lints/no_empty_block/no_empty_block_rule.dart index 9022c100..24cc8df7 100644 --- a/lib/src/lints/no_empty_block/no_empty_block_rule.dart +++ b/lib/src/lints/no_empty_block/no_empty_block_rule.dart @@ -1,3 +1,4 @@ +// ignore_for_file: todo import 'package:analyzer/analysis_rule/rule_context.dart'; import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; import 'package:analyzer/error/error.dart'; From 174eeaf8bcf78d20c28fc5feb2e391414953e5dc Mon Sep 17 00:00:00 2001 From: Illia Aihistov Date: Mon, 20 Jul 2026 17:21:50 +0300 Subject: [PATCH 3/9] chore: remove custom lint analysis step from CI workflow --- .github/workflows/flutter.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/flutter.yaml b/.github/workflows/flutter.yaml index b0e90b60..798ffab9 100644 --- a/.github/workflows/flutter.yaml +++ b/.github/workflows/flutter.yaml @@ -26,9 +26,6 @@ jobs: - name: Run default analyzer run: flutter analyze - - name: Run custom analyzer - run: dart run custom_lint - - name: Run tests run: | # run tests if `test` folder exists From 9f2141ade3ab2031782172d13df2f368048379ec Mon Sep 17 00:00:00 2001 From: Illia Aihistov Date: Mon, 20 Jul 2026 17:33:20 +0300 Subject: [PATCH 4/9] chore: migrate flutter analyze and test commands to dart CLI in CI workflow --- .github/workflows/flutter.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/flutter.yaml b/.github/workflows/flutter.yaml index 798ffab9..8b8b09b9 100644 --- a/.github/workflows/flutter.yaml +++ b/.github/workflows/flutter.yaml @@ -24,14 +24,14 @@ jobs: run: dart format . --set-exit-if-changed - name: Run default analyzer - run: flutter analyze + run: dart analyze - name: Run tests run: | # run tests if `test` folder exists if [ -d test ] then - flutter test -r expanded + dart test -r expanded else echo "Tests not found." fi From 7f8fea97b54a3c0394a33c3127f93ef1d25c57ec Mon Sep 17 00:00:00 2001 From: Illia Aihistov Date: Mon, 20 Jul 2026 17:38:12 +0300 Subject: [PATCH 5/9] chore: upgrade actions/checkout to v4 in flutter workflow --- .github/workflows/flutter.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/flutter.yaml b/.github/workflows/flutter.yaml index 8b8b09b9..0f2d790b 100644 --- a/.github/workflows/flutter.yaml +++ b/.github/workflows/flutter.yaml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Flutter uses: subosito/flutter-action@v2 From 6d9b2b2f0bd9ba9b9edf8060c43df37aab420cbc Mon Sep 17 00:00:00 2001 From: Illia Aihistov Date: Mon, 20 Jul 2026 17:44:12 +0300 Subject: [PATCH 6/9] chore: update actions/checkout to v7 in GitHub workflow --- .github/workflows/flutter.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/flutter.yaml b/.github/workflows/flutter.yaml index 0f2d790b..90d95fe1 100644 --- a/.github/workflows/flutter.yaml +++ b/.github/workflows/flutter.yaml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Flutter uses: subosito/flutter-action@v2 From 6cc161333cc58b12bdb4313b7b1e5f5c7359ee4c Mon Sep 17 00:00:00 2001 From: Illia Aihistov Date: Mon, 20 Jul 2026 18:01:17 +0300 Subject: [PATCH 7/9] refactor: reorganize test directory structure and remove deprecated lint testing package --- lint_test/.gitignore | 45 ------ lint_test/.metadata | 30 ---- lint_test/README.md | 3 - .../alphabetize_by_type_test.dart | 26 ---- .../analysis_options.yaml | 8 -- lint_test/analysis_options.yaml | 91 ------------ ...id_debug_print_in_release_prefix_test.dart | 53 ------- lint_test/named_parameters_ordering_test.dart | 133 ------------------ lint_test/pubspec.yaml | 15 -- test/lints/auto_lint_data.dart | 19 --- ...void_debug_print_in_release_rule_test.dart | 2 +- .../avoid_final_with_getter_rule_test.dart | 2 +- .../avoid_global_state_rule_test.dart | 2 +- .../avoid_late_keyword_rule_test.dart | 2 +- .../avoid_non_null_assertion_rule_test.dart | 2 +- .../avoid_returning_widgets_rule_test.dart | 2 +- ...unnecessary_return_variable_rule_test.dart | 2 +- ...avoid_unnecessary_set_state_rule_test.dart | 2 +- ...unnecessary_type_assertions_rule_test.dart | 2 +- ...d_unrelated_type_assertions_rule_test.dart | 2 +- .../avoid_unused_parameters_rule_test.dart | 2 +- .../avoid_using_api_rule_test.dart | 2 +- .../cyclomatic_complexity_rule_test.dart | 2 +- .../double_literal_format_rule_test.dart | 2 +- .../member_ordering_rule_test.dart | 2 +- .../named_parameters_ordering_rule_test.dart | 2 +- .../newline_before_return_rule_test.dart | 2 +- .../no_empty_block_rule_test.dart | 2 +- .../no_equal_then_else_rule_test.dart | 2 +- .../no_magic_number_rule_test.dart | 2 +- .../number_of_parameters_rule_test.dart | 2 +- ...fer_conditional_expressions_rule_test.dart | 2 +- .../prefer_early_return_rule_test.dart | 2 +- .../prefer_first/prefer_first_rule_test.dart | 2 +- .../prefer_last/prefer_last_rule_test.dart | 2 +- .../prefer_match_file_name_rule_test.dart | 2 +- .../proper_super_calls_rule_test.dart | 2 +- ...e_names_for_type_parameters_rule_test.dart | 2 +- .../use_nearest_context_rule_test.dart | 2 +- test/src/utils/auto_lint_data.dart | 2 + .../utils}/auto_test_lint_offsets.dart | 2 +- .../utils/fake_analysis_options_loader.dart | 0 .../utils/table_driven_rule_test_base.dart | 2 +- 43 files changed, 33 insertions(+), 454 deletions(-) delete mode 100644 lint_test/.gitignore delete mode 100644 lint_test/.metadata delete mode 100644 lint_test/README.md delete mode 100644 lint_test/alphabetize_by_type_test/alphabetize_by_type_test.dart delete mode 100644 lint_test/alphabetize_by_type_test/analysis_options.yaml delete mode 100644 lint_test/analysis_options.yaml delete mode 100644 lint_test/avoid_debug_print_in_release_test/avoid_debug_print_in_release_prefix_test.dart delete mode 100644 lint_test/named_parameters_ordering_test.dart delete mode 100644 lint_test/pubspec.yaml delete mode 100644 test/lints/auto_lint_data.dart rename test/{ => src}/lints/avoid_debug_print_in_release/avoid_debug_print_in_release_rule_test.dart (98%) rename test/{ => src}/lints/avoid_global_state/avoid_global_state_rule_test.dart (97%) rename test/{ => src/lints/avoid_late_keyword_rule_test}/avoid_late_keyword_rule_test.dart (99%) rename test/{ => src}/lints/avoid_non_null_assertion/avoid_non_null_assertion_rule_test.dart (98%) rename test/{ => src}/lints/avoid_unnecessary_return_variable/avoid_unnecessary_return_variable_rule_test.dart (99%) rename test/{ => src}/lints/avoid_unnecessary_set_state/avoid_unnecessary_set_state_rule_test.dart (99%) rename test/{ => src}/lints/avoid_unnecessary_type_assertions/avoid_unnecessary_type_assertions_rule_test.dart (98%) rename test/{ => src}/lints/avoid_unrelated_type_assertions/avoid_unrelated_type_assertions_rule_test.dart (97%) rename test/{ => src}/lints/avoid_unused_parameters/avoid_unused_parameters_rule_test.dart (99%) rename test/{ => src}/lints/double_literal_format/double_literal_format_rule_test.dart (98%) rename test/{ => src}/lints/newline_before_return/newline_before_return_rule_test.dart (98%) rename test/{ => src}/lints/no_equal_then_else/no_equal_then_else_rule_test.dart (97%) rename test/{ => src}/lints/prefer_early_return/prefer_early_return_rule_test.dart (99%) rename test/{ => src}/lints/prefer_first/prefer_first_rule_test.dart (97%) rename test/{ => src/lints}/prefer_last/prefer_last_rule_test.dart (98%) rename test/{ => src}/lints/proper_super_calls/proper_super_calls_rule_test.dart (98%) rename test/{lints => src/utils}/auto_test_lint_offsets.dart (98%) rename test/{ => src}/utils/fake_analysis_options_loader.dart (100%) diff --git a/lint_test/.gitignore b/lint_test/.gitignore deleted file mode 100644 index 3820a95c..00000000 --- a/lint_test/.gitignore +++ /dev/null @@ -1,45 +0,0 @@ -# Miscellaneous -*.class -*.log -*.pyc -*.swp -.DS_Store -.atom/ -.build/ -.buildlog/ -.history -.svn/ -.swiftpm/ -migrate_working_dir/ - -# IntelliJ related -*.iml -*.ipr -*.iws -.idea/ - -# The .vscode folder contains launch configuration and tasks you configure in -# VS Code which you may wish to be included in version control, so this line -# is commented out by default. -#.vscode/ - -# Flutter/Dart/Pub related -**/doc/api/ -**/ios/Flutter/.last_build_id -.dart_tool/ -.flutter-plugins-dependencies -.pub-cache/ -.pub/ -/build/ -/coverage/ - -# Symbolication related -app.*.symbols - -# Obfuscation related -app.*.map.json - -# Android Studio will place build artifacts here -/android/app/debug -/android/app/profile -/android/app/release diff --git a/lint_test/.metadata b/lint_test/.metadata deleted file mode 100644 index 0bb2266c..00000000 --- a/lint_test/.metadata +++ /dev/null @@ -1,30 +0,0 @@ -# This file tracks properties of this Flutter project. -# Used by Flutter tool to assess capabilities and perform upgrades etc. -# -# This file should be version controlled and should not be manually edited. - -version: - revision: "05db9689081f091050f01aed79f04dce0c750154" - channel: "stable" - -project_type: app - -# Tracks metadata for the flutter migrate command -migration: - platforms: - - platform: root - create_revision: 05db9689081f091050f01aed79f04dce0c750154 - base_revision: 05db9689081f091050f01aed79f04dce0c750154 - - platform: web - create_revision: 05db9689081f091050f01aed79f04dce0c750154 - base_revision: 05db9689081f091050f01aed79f04dce0c750154 - - # User provided section - - # List of Local paths (relative to this file) that should be - # ignored by the migrate tool. - # - # Files that are not part of the templates will be ignored by default. - unmanaged_files: - - 'lib/main.dart' - - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/lint_test/README.md b/lint_test/README.md deleted file mode 100644 index 9002c39f..00000000 --- a/lint_test/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# solid_lints_test - -A new Flutter project. diff --git a/lint_test/alphabetize_by_type_test/alphabetize_by_type_test.dart b/lint_test/alphabetize_by_type_test/alphabetize_by_type_test.dart deleted file mode 100644 index e26d062e..00000000 --- a/lint_test/alphabetize_by_type_test/alphabetize_by_type_test.dart +++ /dev/null @@ -1,26 +0,0 @@ -// ignore_for_file: unused_field -// ignore_for_file: unused_element -// ignore_for_file: prefer_match_file_name - -/// Check the `member_ordering` rule -/// alphabetical-by-type option enabled - -class CorrectAlphabeticalByTypeClass { - final double e = 1; - final int a = 1; -} - -class WrongAlphabeticalByTypeClass { - final int e = 1; - - // expect_lint: member_ordering - final double a = 1; -} - -class PartiallyWrongAlphabeticalByTypeClass { - final int a = 1; - final String str = 's'; - - // expect_lint: member_ordering - final double e = 1; -} diff --git a/lint_test/alphabetize_by_type_test/analysis_options.yaml b/lint_test/alphabetize_by_type_test/analysis_options.yaml deleted file mode 100644 index 000cfecb..00000000 --- a/lint_test/alphabetize_by_type_test/analysis_options.yaml +++ /dev/null @@ -1,8 +0,0 @@ -analyzer: - plugins: - - ../custom_lint - -custom_lint: - rules: - - member_ordering: - alphabetize_by_type: true diff --git a/lint_test/analysis_options.yaml b/lint_test/analysis_options.yaml deleted file mode 100644 index 788633dc..00000000 --- a/lint_test/analysis_options.yaml +++ /dev/null @@ -1,91 +0,0 @@ -analyzer: - plugins: - - custom_lint - -custom_lint: - rules: - - cyclomatic_complexity: - max_complexity: 4 - exclude: - - class_name: Exclude - method_name: excludeMethod - - method_name: excludeMethod - - number_of_parameters: - max_parameters: 2 - exclude: - - class_name: Exclude - method_name: avoidNumberOfParameters - - method_name: avoidNumberOfParameters - - function_lines_of_code: - max_lines: 50 - - avoid_non_null_assertion - - avoid_late_keyword: - allow_initialized: true - - avoid_global_state - - avoid_returning_widgets: - exclude: - - class_name: ExcludeWidget - method_name: excludeWidgetMethod - - method_name: excludeMethod - - avoid_unnecessary_setstate - - double_literal_format - - avoid_unnecessary_type_assertions - - avoid_unrelated_type_assertions - - avoid_unused_parameters: - exclude: - - class_name: Exclude - method_name: excludeMethod - - method_name: excludeMethod - - simpleMethodName - - SimpleClassName - - exclude - - newline_before_return - - no_empty_block: - allow_with_comments: true - exclude: - - class_name: Exclude - method_name: excludeMethod - - method_name: excludeMethod - - no_equal_then_else - - avoid_debug_print_in_release - - prefer_early_return - - member_ordering: - alphabetize: true - order: - - public_fields - - private_fields - - constructors - - getters - - setters - - public_methods - - private_methods - - close_method - widgets_order: - - const_fields - - static_fields - - static_methods - - public_fields - - private_fields - - public_methods - - private_methods - - constructors - - build_method - - init_state_method - - did_change_dependencies_method - - did_update_widget_method - - dispose_method - - no_magic_number - - prefer_conditional_expressions - - prefer_first - - prefer_last - - prefer_match_file_name - - proper_super_calls - - avoid_final_with_getter - - named_parameters_ordering: - order: - - required_super - - super - - required - - nullable - - default - - avoid_unnecessary_return_variable diff --git a/lint_test/avoid_debug_print_in_release_test/avoid_debug_print_in_release_prefix_test.dart b/lint_test/avoid_debug_print_in_release_test/avoid_debug_print_in_release_prefix_test.dart deleted file mode 100644 index 01b162aa..00000000 --- a/lint_test/avoid_debug_print_in_release_test/avoid_debug_print_in_release_prefix_test.dart +++ /dev/null @@ -1,53 +0,0 @@ -// ignore_for_file: unused_local_variable - -import 'package:flutter/foundation.dart' as f; - -/// Test the avoid_debug_print_in_release -void avoidDebugPrintTest() { - // expect_lint: avoid_debug_print_in_release - f.debugPrint(''); - - // expect_lint: avoid_debug_print_in_release - final test = f.debugPrint; - - test('test'); - - // expect_lint: avoid_debug_print_in_release - final test2 = f.debugPrint(''); - - debugPrint(); - - debugPrint; - - if (!f.kReleaseMode) { - f.debugPrint(''); - - final test = f.debugPrint; - - var test2; - - test2 = debugPrint; - - test.call('test'); - - final test3 = f.debugPrint(''); - - if (true) { - f.debugPrint(''); - - final test = f.debugPrint; - - var test2; - - test2 = debugPrint; - - test.call('test'); - - final test3 = f.debugPrint(''); - } - } -} - -void debugPrint() { - return; -} diff --git a/lint_test/named_parameters_ordering_test.dart b/lint_test/named_parameters_ordering_test.dart deleted file mode 100644 index 3ea72264..00000000 --- a/lint_test/named_parameters_ordering_test.dart +++ /dev/null @@ -1,133 +0,0 @@ -// ignore_for_file: unused_field, prefer_match_file_name, proper_super_calls, number_of_parameters, avoid_unused_parameters, member_ordering -// ignore_for_file: unused_element -// ignore_for_file: no_empty_block - -/// Check the `named_parameters_ordering` rule - -class User { - final String accountType; - final String? userId; - - User({ - this.userId, - // expect_lint: named_parameters_ordering - required this.accountType, - }); -} - -class UserProfile extends User { - final String? age; - final String? country; - final String email; - final bool isActive; - final String name; - final String? profileId; - - // no lint - UserProfile.orderedConstructor( - this.profileId, { - required super.accountType, - super.userId, - required this.name, - required this.email, - this.age, - this.country, - this.isActive = true, - }); - - UserProfile.partiallyOrderedConstructor( - this.profileId, { - required super.accountType, - required this.email, - this.age, - // expect_lint: named_parameters_ordering - required this.name, - this.country, - // expect_lint: named_parameters_ordering - super.userId, - this.isActive = true, - }); - - UserProfile.unorderedConstructor( - String profileId, { - this.age, - // expect_lint: named_parameters_ordering - super.userId, - // expect_lint: named_parameters_ordering - required super.accountType, - this.country, - // expect_lint: named_parameters_ordering - required this.name, - this.isActive = true, - // expect_lint: named_parameters_ordering - required this.email, - }) : profileId = profileId; - - // no lint - void orderedMethod({ - required String name, - required String email, - int? age, - bool isActive = true, - }) { - return; - } - - void partiallyOrderedMethod({ - required String name, - int? age, - // expect_lint: named_parameters_ordering - required String email, - bool isActive = true, - }) { - return; - } - - void unorderedMethod({ - int? age, - // expect_lint: named_parameters_ordering - required String email, - bool isActive = true, - // expect_lint: named_parameters_ordering - required String name, - }) { - return; - } - - void mixedParameters( - String accountType, - String? userId, { - int? age, - // expect_lint: named_parameters_ordering - required String email, - bool isActive = true, - // expect_lint: named_parameters_ordering - required String name, - }) { - return; - } -} - -void functionExample({ - required String name, - bool isActive = true, - // expect_lint: named_parameters_ordering - int? age, - // expect_lint: named_parameters_ordering - required String email, -}) { - return; -} - -void mixedParameters( - String accountType, - String? userId, { - int? age, - // expect_lint: named_parameters_ordering - required String email, - bool isActive = true, - // expect_lint: named_parameters_ordering - required String name, -}) { - return; -} diff --git a/lint_test/pubspec.yaml b/lint_test/pubspec.yaml deleted file mode 100644 index 10e64475..00000000 --- a/lint_test/pubspec.yaml +++ /dev/null @@ -1,15 +0,0 @@ -name: solid_lints_test -description: Test project for solid_lints rules -publish_to: none - -environment: - sdk: ">=3.5.0 <4.0.0" - -dependencies: - flutter: - sdk: flutter - -dev_dependencies: - solid_lints: - path: ../ - test: ^1.20.1 diff --git a/test/lints/auto_lint_data.dart b/test/lints/auto_lint_data.dart deleted file mode 100644 index 61b900dc..00000000 --- a/test/lints/auto_lint_data.dart +++ /dev/null @@ -1,19 +0,0 @@ -import 'package:analyzer_testing/src/analysis_rule/pub_package_resolution.dart'; - -/// Holds data about a lint placeholder, including the original code -/// and optional diagnostic assertions. -class AutoLintData { - final String code; - final Pattern? correctionContains; - final List messageContainsAll; - final String? name; - final List? contextMessages; - - const AutoLintData({ - required this.code, - this.correctionContains, - this.messageContainsAll = const [], - this.name, - this.contextMessages, - }); -} diff --git a/test/lints/avoid_debug_print_in_release/avoid_debug_print_in_release_rule_test.dart b/test/src/lints/avoid_debug_print_in_release/avoid_debug_print_in_release_rule_test.dart similarity index 98% rename from test/lints/avoid_debug_print_in_release/avoid_debug_print_in_release_rule_test.dart rename to test/src/lints/avoid_debug_print_in_release/avoid_debug_print_in_release_rule_test.dart index 1848496e..5da8b6d9 100644 --- a/test/lints/avoid_debug_print_in_release/avoid_debug_print_in_release_rule_test.dart +++ b/test/src/lints/avoid_debug_print_in_release/avoid_debug_print_in_release_rule_test.dart @@ -2,7 +2,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:solid_lints/src/lints/avoid_debug_print_in_release/avoid_debug_print_in_release_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/src/lints/avoid_final_with_getter/avoid_final_with_getter_rule_test.dart b/test/src/lints/avoid_final_with_getter/avoid_final_with_getter_rule_test.dart index af66db59..a57aa2fe 100644 --- a/test/src/lints/avoid_final_with_getter/avoid_final_with_getter_rule_test.dart +++ b/test/src/lints/avoid_final_with_getter/avoid_final_with_getter_rule_test.dart @@ -2,7 +2,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:solid_lints/src/lints/avoid_final_with_getter/avoid_final_with_getter_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../../lints/auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/lints/avoid_global_state/avoid_global_state_rule_test.dart b/test/src/lints/avoid_global_state/avoid_global_state_rule_test.dart similarity index 97% rename from test/lints/avoid_global_state/avoid_global_state_rule_test.dart rename to test/src/lints/avoid_global_state/avoid_global_state_rule_test.dart index 2ba14682..008a4de8 100644 --- a/test/lints/avoid_global_state/avoid_global_state_rule_test.dart +++ b/test/src/lints/avoid_global_state/avoid_global_state_rule_test.dart @@ -2,7 +2,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:solid_lints/src/lints/avoid_global_state/avoid_global_state_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/avoid_late_keyword_rule_test.dart b/test/src/lints/avoid_late_keyword_rule_test/avoid_late_keyword_rule_test.dart similarity index 99% rename from test/avoid_late_keyword_rule_test.dart rename to test/src/lints/avoid_late_keyword_rule_test/avoid_late_keyword_rule_test.dart index 1211ac6a..701b6b9d 100644 --- a/test/avoid_late_keyword_rule_test.dart +++ b/test/src/lints/avoid_late_keyword_rule_test/avoid_late_keyword_rule_test.dart @@ -4,7 +4,7 @@ import 'package:solid_lints/src/common/parameter_parser/analysis_options_loader. import 'package:solid_lints/src/lints/avoid_late_keyword/avoid_late_keyword_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import 'lints/auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/lints/avoid_non_null_assertion/avoid_non_null_assertion_rule_test.dart b/test/src/lints/avoid_non_null_assertion/avoid_non_null_assertion_rule_test.dart similarity index 98% rename from test/lints/avoid_non_null_assertion/avoid_non_null_assertion_rule_test.dart rename to test/src/lints/avoid_non_null_assertion/avoid_non_null_assertion_rule_test.dart index 001cf982..68997f8c 100644 --- a/test/lints/avoid_non_null_assertion/avoid_non_null_assertion_rule_test.dart +++ b/test/src/lints/avoid_non_null_assertion/avoid_non_null_assertion_rule_test.dart @@ -4,7 +4,7 @@ import 'package:solid_lints/src/common/parameter_parser/analysis_options_loader. import 'package:solid_lints/src/lints/avoid_non_null_assertion/avoid_non_null_assertion_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/src/lints/avoid_returning_widgets/avoid_returning_widgets_rule_test.dart b/test/src/lints/avoid_returning_widgets/avoid_returning_widgets_rule_test.dart index dba8fd06..cf822377 100644 --- a/test/src/lints/avoid_returning_widgets/avoid_returning_widgets_rule_test.dart +++ b/test/src/lints/avoid_returning_widgets/avoid_returning_widgets_rule_test.dart @@ -4,7 +4,7 @@ import 'package:solid_lints/src/common/parameter_parser/analysis_options_loader. import 'package:solid_lints/src/lints/avoid_returning_widgets/avoid_returning_widgets_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../../lints/auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/lints/avoid_unnecessary_return_variable/avoid_unnecessary_return_variable_rule_test.dart b/test/src/lints/avoid_unnecessary_return_variable/avoid_unnecessary_return_variable_rule_test.dart similarity index 99% rename from test/lints/avoid_unnecessary_return_variable/avoid_unnecessary_return_variable_rule_test.dart rename to test/src/lints/avoid_unnecessary_return_variable/avoid_unnecessary_return_variable_rule_test.dart index 051c61c0..7073167a 100644 --- a/test/lints/avoid_unnecessary_return_variable/avoid_unnecessary_return_variable_rule_test.dart +++ b/test/src/lints/avoid_unnecessary_return_variable/avoid_unnecessary_return_variable_rule_test.dart @@ -2,7 +2,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:solid_lints/src/lints/avoid_unnecessary_return_variable/avoid_unnecessary_return_variable_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/lints/avoid_unnecessary_set_state/avoid_unnecessary_set_state_rule_test.dart b/test/src/lints/avoid_unnecessary_set_state/avoid_unnecessary_set_state_rule_test.dart similarity index 99% rename from test/lints/avoid_unnecessary_set_state/avoid_unnecessary_set_state_rule_test.dart rename to test/src/lints/avoid_unnecessary_set_state/avoid_unnecessary_set_state_rule_test.dart index a7d308f0..7800eefa 100644 --- a/test/lints/avoid_unnecessary_set_state/avoid_unnecessary_set_state_rule_test.dart +++ b/test/src/lints/avoid_unnecessary_set_state/avoid_unnecessary_set_state_rule_test.dart @@ -25,7 +25,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:solid_lints/src/lints/avoid_unnecessary_setstate/avoid_unnecessary_set_state_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/lints/avoid_unnecessary_type_assertions/avoid_unnecessary_type_assertions_rule_test.dart b/test/src/lints/avoid_unnecessary_type_assertions/avoid_unnecessary_type_assertions_rule_test.dart similarity index 98% rename from test/lints/avoid_unnecessary_type_assertions/avoid_unnecessary_type_assertions_rule_test.dart rename to test/src/lints/avoid_unnecessary_type_assertions/avoid_unnecessary_type_assertions_rule_test.dart index a383bf07..b5e4b371 100644 --- a/test/lints/avoid_unnecessary_type_assertions/avoid_unnecessary_type_assertions_rule_test.dart +++ b/test/src/lints/avoid_unnecessary_type_assertions/avoid_unnecessary_type_assertions_rule_test.dart @@ -2,7 +2,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:solid_lints/src/lints/avoid_unnecessary_type_assertions/avoid_unnecessary_type_assertions_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/lints/avoid_unrelated_type_assertions/avoid_unrelated_type_assertions_rule_test.dart b/test/src/lints/avoid_unrelated_type_assertions/avoid_unrelated_type_assertions_rule_test.dart similarity index 97% rename from test/lints/avoid_unrelated_type_assertions/avoid_unrelated_type_assertions_rule_test.dart rename to test/src/lints/avoid_unrelated_type_assertions/avoid_unrelated_type_assertions_rule_test.dart index c41bb3ad..13767dfd 100644 --- a/test/lints/avoid_unrelated_type_assertions/avoid_unrelated_type_assertions_rule_test.dart +++ b/test/src/lints/avoid_unrelated_type_assertions/avoid_unrelated_type_assertions_rule_test.dart @@ -2,7 +2,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:solid_lints/src/lints/avoid_unrelated_type_assertions/avoid_unrelated_type_assertions_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/lints/avoid_unused_parameters/avoid_unused_parameters_rule_test.dart b/test/src/lints/avoid_unused_parameters/avoid_unused_parameters_rule_test.dart similarity index 99% rename from test/lints/avoid_unused_parameters/avoid_unused_parameters_rule_test.dart rename to test/src/lints/avoid_unused_parameters/avoid_unused_parameters_rule_test.dart index 82d5830c..5f29bee4 100644 --- a/test/lints/avoid_unused_parameters/avoid_unused_parameters_rule_test.dart +++ b/test/src/lints/avoid_unused_parameters/avoid_unused_parameters_rule_test.dart @@ -3,7 +3,7 @@ import 'package:solid_lints/src/lints/avoid_unused_parameters/avoid_unused_param import 'package:test_reflective_loader/test_reflective_loader.dart'; import '../../utils/fake_analysis_options_loader.dart'; -import '../auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/src/lints/avoid_using_api/avoid_using_api_rule_test.dart b/test/src/lints/avoid_using_api/avoid_using_api_rule_test.dart index 780ddc8d..308dd9dd 100644 --- a/test/src/lints/avoid_using_api/avoid_using_api_rule_test.dart +++ b/test/src/lints/avoid_using_api/avoid_using_api_rule_test.dart @@ -5,7 +5,7 @@ import 'package:solid_lints/src/lints/avoid_using_api/avoid_using_api_rule.dart' import 'package:test/test.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../../lints/auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/src/lints/cyclomatic_complexity/cyclomatic_complexity_rule_test.dart b/test/src/lints/cyclomatic_complexity/cyclomatic_complexity_rule_test.dart index 4b5c09c1..94758467 100644 --- a/test/src/lints/cyclomatic_complexity/cyclomatic_complexity_rule_test.dart +++ b/test/src/lints/cyclomatic_complexity/cyclomatic_complexity_rule_test.dart @@ -4,7 +4,7 @@ import 'package:solid_lints/src/common/parameter_parser/analysis_options_loader. import 'package:solid_lints/src/lints/cyclomatic_complexity/cyclomatic_complexity_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../../lints/auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/lints/double_literal_format/double_literal_format_rule_test.dart b/test/src/lints/double_literal_format/double_literal_format_rule_test.dart similarity index 98% rename from test/lints/double_literal_format/double_literal_format_rule_test.dart rename to test/src/lints/double_literal_format/double_literal_format_rule_test.dart index 43e01e78..42abc04d 100644 --- a/test/lints/double_literal_format/double_literal_format_rule_test.dart +++ b/test/src/lints/double_literal_format/double_literal_format_rule_test.dart @@ -2,7 +2,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:solid_lints/src/lints/double_literal_format/double_literal_format_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/src/lints/member_ordering/member_ordering_rule_test.dart b/test/src/lints/member_ordering/member_ordering_rule_test.dart index 30ff152a..e77177ff 100644 --- a/test/src/lints/member_ordering/member_ordering_rule_test.dart +++ b/test/src/lints/member_ordering/member_ordering_rule_test.dart @@ -4,7 +4,7 @@ import 'package:solid_lints/src/common/parameter_parser/analysis_options_loader. import 'package:solid_lints/src/lints/member_ordering/member_ordering_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../../lints/auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/src/lints/named_parameters_ordering/named_parameters_ordering_rule_test.dart b/test/src/lints/named_parameters_ordering/named_parameters_ordering_rule_test.dart index 9ed5e32b..ecc896c4 100644 --- a/test/src/lints/named_parameters_ordering/named_parameters_ordering_rule_test.dart +++ b/test/src/lints/named_parameters_ordering/named_parameters_ordering_rule_test.dart @@ -4,7 +4,7 @@ import 'package:solid_lints/src/common/parameter_parser/analysis_options_loader. import 'package:solid_lints/src/lints/named_parameters_ordering/named_parameters_ordering_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../../lints/auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineRefSuite(); diff --git a/test/lints/newline_before_return/newline_before_return_rule_test.dart b/test/src/lints/newline_before_return/newline_before_return_rule_test.dart similarity index 98% rename from test/lints/newline_before_return/newline_before_return_rule_test.dart rename to test/src/lints/newline_before_return/newline_before_return_rule_test.dart index a8ea4f19..d19dadc9 100644 --- a/test/lints/newline_before_return/newline_before_return_rule_test.dart +++ b/test/src/lints/newline_before_return/newline_before_return_rule_test.dart @@ -2,7 +2,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:solid_lints/src/lints/newline_before_return/newline_before_return_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/src/lints/no_empty_block/no_empty_block_rule_test.dart b/test/src/lints/no_empty_block/no_empty_block_rule_test.dart index 0199ea81..59f51fd8 100644 --- a/test/src/lints/no_empty_block/no_empty_block_rule_test.dart +++ b/test/src/lints/no_empty_block/no_empty_block_rule_test.dart @@ -4,7 +4,7 @@ import 'package:solid_lints/src/common/parameter_parser/analysis_options_loader. import 'package:solid_lints/src/lints/no_empty_block/no_empty_block_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../../lints/auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/lints/no_equal_then_else/no_equal_then_else_rule_test.dart b/test/src/lints/no_equal_then_else/no_equal_then_else_rule_test.dart similarity index 97% rename from test/lints/no_equal_then_else/no_equal_then_else_rule_test.dart rename to test/src/lints/no_equal_then_else/no_equal_then_else_rule_test.dart index 99059d62..59e8679f 100644 --- a/test/lints/no_equal_then_else/no_equal_then_else_rule_test.dart +++ b/test/src/lints/no_equal_then_else/no_equal_then_else_rule_test.dart @@ -2,7 +2,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:solid_lints/src/lints/no_equal_then_else/no_equal_then_else_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/src/lints/no_magic_number/no_magic_number_rule_test.dart b/test/src/lints/no_magic_number/no_magic_number_rule_test.dart index 46d7b1a8..bd4ff8c7 100644 --- a/test/src/lints/no_magic_number/no_magic_number_rule_test.dart +++ b/test/src/lints/no_magic_number/no_magic_number_rule_test.dart @@ -4,7 +4,7 @@ import 'package:solid_lints/src/common/parameter_parser/analysis_options_loader. import 'package:solid_lints/src/lints/no_magic_number/no_magic_number_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../../lints/auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/src/lints/number_of_parameters/number_of_parameters_rule_test.dart b/test/src/lints/number_of_parameters/number_of_parameters_rule_test.dart index 2b7dd7d9..52a9d171 100644 --- a/test/src/lints/number_of_parameters/number_of_parameters_rule_test.dart +++ b/test/src/lints/number_of_parameters/number_of_parameters_rule_test.dart @@ -4,7 +4,7 @@ import 'package:solid_lints/src/common/parameter_parser/analysis_options_loader. import 'package:solid_lints/src/lints/number_of_parameters/number_of_parameters_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../../lints/auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/src/lints/prefer_conditional_expressions/prefer_conditional_expressions_rule_test.dart b/test/src/lints/prefer_conditional_expressions/prefer_conditional_expressions_rule_test.dart index 724e0747..c8d5d922 100644 --- a/test/src/lints/prefer_conditional_expressions/prefer_conditional_expressions_rule_test.dart +++ b/test/src/lints/prefer_conditional_expressions/prefer_conditional_expressions_rule_test.dart @@ -4,7 +4,7 @@ import 'package:solid_lints/src/common/parameter_parser/analysis_options_loader. import 'package:solid_lints/src/lints/prefer_conditional_expressions/prefer_conditional_expressions_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../../lints/auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/lints/prefer_early_return/prefer_early_return_rule_test.dart b/test/src/lints/prefer_early_return/prefer_early_return_rule_test.dart similarity index 99% rename from test/lints/prefer_early_return/prefer_early_return_rule_test.dart rename to test/src/lints/prefer_early_return/prefer_early_return_rule_test.dart index 4b3cfa2e..d6281b5e 100644 --- a/test/lints/prefer_early_return/prefer_early_return_rule_test.dart +++ b/test/src/lints/prefer_early_return/prefer_early_return_rule_test.dart @@ -2,7 +2,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:solid_lints/src/lints/prefer_early_return/prefer_early_return_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/lints/prefer_first/prefer_first_rule_test.dart b/test/src/lints/prefer_first/prefer_first_rule_test.dart similarity index 97% rename from test/lints/prefer_first/prefer_first_rule_test.dart rename to test/src/lints/prefer_first/prefer_first_rule_test.dart index 50bdf212..ba66b169 100644 --- a/test/lints/prefer_first/prefer_first_rule_test.dart +++ b/test/src/lints/prefer_first/prefer_first_rule_test.dart @@ -2,7 +2,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:solid_lints/src/lints/prefer_first/prefer_first_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/prefer_last/prefer_last_rule_test.dart b/test/src/lints/prefer_last/prefer_last_rule_test.dart similarity index 98% rename from test/prefer_last/prefer_last_rule_test.dart rename to test/src/lints/prefer_last/prefer_last_rule_test.dart index a25747c6..16ef8cbc 100644 --- a/test/prefer_last/prefer_last_rule_test.dart +++ b/test/src/lints/prefer_last/prefer_last_rule_test.dart @@ -2,7 +2,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:solid_lints/src/lints/prefer_last/prefer_last_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../lints/auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/src/lints/prefer_match_file_name/prefer_match_file_name_rule_test.dart b/test/src/lints/prefer_match_file_name/prefer_match_file_name_rule_test.dart index 605bb10b..581b0b9f 100644 --- a/test/src/lints/prefer_match_file_name/prefer_match_file_name_rule_test.dart +++ b/test/src/lints/prefer_match_file_name/prefer_match_file_name_rule_test.dart @@ -4,7 +4,7 @@ import 'package:solid_lints/src/common/parameter_parser/analysis_options_loader. import 'package:solid_lints/src/lints/prefer_match_file_name/prefer_match_file_name_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../../lints/auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/lints/proper_super_calls/proper_super_calls_rule_test.dart b/test/src/lints/proper_super_calls/proper_super_calls_rule_test.dart similarity index 98% rename from test/lints/proper_super_calls/proper_super_calls_rule_test.dart rename to test/src/lints/proper_super_calls/proper_super_calls_rule_test.dart index 6d73d246..a61fcfea 100644 --- a/test/lints/proper_super_calls/proper_super_calls_rule_test.dart +++ b/test/src/lints/proper_super_calls/proper_super_calls_rule_test.dart @@ -2,7 +2,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:solid_lints/src/lints/proper_super_calls/proper_super_calls_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/src/lints/use_descriptive_names_for_type_parameters/use_descriptive_names_for_type_parameters_rule_test.dart b/test/src/lints/use_descriptive_names_for_type_parameters/use_descriptive_names_for_type_parameters_rule_test.dart index 2b27ba46..439b8dc3 100644 --- a/test/src/lints/use_descriptive_names_for_type_parameters/use_descriptive_names_for_type_parameters_rule_test.dart +++ b/test/src/lints/use_descriptive_names_for_type_parameters/use_descriptive_names_for_type_parameters_rule_test.dart @@ -4,7 +4,7 @@ import 'package:solid_lints/src/common/parameter_parser/analysis_options_loader. import 'package:solid_lints/src/lints/use_descriptive_names_for_type_parameters/use_descriptive_names_for_type_parameters_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../../lints/auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/src/lints/use_nearest_context/use_nearest_context_rule_test.dart b/test/src/lints/use_nearest_context/use_nearest_context_rule_test.dart index 070b71e2..5e68a889 100644 --- a/test/src/lints/use_nearest_context/use_nearest_context_rule_test.dart +++ b/test/src/lints/use_nearest_context/use_nearest_context_rule_test.dart @@ -3,7 +3,7 @@ import 'package:analyzer_testing/utilities/utilities.dart'; import 'package:solid_lints/src/lints/use_nearest_context/use_nearest_context_rule.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../../lints/auto_test_lint_offsets.dart'; +import '../../utils/auto_test_lint_offsets.dart'; void main() { defineReflectiveSuite(() { diff --git a/test/src/utils/auto_lint_data.dart b/test/src/utils/auto_lint_data.dart index f0aa562b..61b900dc 100644 --- a/test/src/utils/auto_lint_data.dart +++ b/test/src/utils/auto_lint_data.dart @@ -1,5 +1,7 @@ import 'package:analyzer_testing/src/analysis_rule/pub_package_resolution.dart'; +/// Holds data about a lint placeholder, including the original code +/// and optional diagnostic assertions. class AutoLintData { final String code; final Pattern? correctionContains; diff --git a/test/lints/auto_test_lint_offsets.dart b/test/src/utils/auto_test_lint_offsets.dart similarity index 98% rename from test/lints/auto_test_lint_offsets.dart rename to test/src/utils/auto_test_lint_offsets.dart index b4b41fbb..e026f382 100644 --- a/test/lints/auto_test_lint_offsets.dart +++ b/test/src/utils/auto_test_lint_offsets.dart @@ -2,7 +2,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:analyzer_testing/src/analysis_rule/pub_package_resolution.dart'; import 'package:collection/collection.dart'; -import '../src/utils/auto_lint_data.dart'; +import 'auto_lint_data.dart'; mixin AutoTestLintOffsets on AnalysisRuleTest { int _nextPlaceholderId = 0; diff --git a/test/utils/fake_analysis_options_loader.dart b/test/src/utils/fake_analysis_options_loader.dart similarity index 100% rename from test/utils/fake_analysis_options_loader.dart rename to test/src/utils/fake_analysis_options_loader.dart diff --git a/test/src/utils/table_driven_rule_test_base.dart b/test/src/utils/table_driven_rule_test_base.dart index f27fdaad..97d8a164 100644 --- a/test/src/utils/table_driven_rule_test_base.dart +++ b/test/src/utils/table_driven_rule_test_base.dart @@ -1,7 +1,7 @@ import 'package:analyzer_testing/analysis_rule/analysis_rule.dart'; import 'package:test/test.dart' hide setUp; -import '../../lints/auto_test_lint_offsets.dart'; +import 'auto_test_lint_offsets.dart'; /// Result expected from a table-driven test case. enum ExpectedResult { From dfafb6ff6dc83029f03fb13f19d7919473834fc1 Mon Sep 17 00:00:00 2001 From: Illia Aihistov Date: Mon, 20 Jul 2026 18:18:54 +0300 Subject: [PATCH 8/9] refactor: throw FormatException instead of Exception when type parsing fails --- lib/src/utils/named_type_utils.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/src/utils/named_type_utils.dart b/lib/src/utils/named_type_utils.dart index 70c0c7e6..05680a5c 100644 --- a/lib/src/utils/named_type_utils.dart +++ b/lib/src/utils/named_type_utils.dart @@ -12,10 +12,11 @@ NamedType parseNamedTypeFromString(String typeString) { return namedTypeFinder.foundNamedType!; } catch (_) { - throw Exception( + throw FormatException( "No NamedType could be parsed from the input " "typeString: '$typeString'. Ensure it's a valid Dart " "type declaration.", + typeString, ); } } From c41b7f41e95864b04ec155340650278d637274f9 Mon Sep 17 00:00:00 2001 From: Illia Aihistov Date: Wed, 22 Jul 2026 11:38:04 +0300 Subject: [PATCH 9/9] refactor: update todo ignore comments in no_empty_block lint documentation examples --- lib/src/lints/no_empty_block/no_empty_block_rule.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/src/lints/no_empty_block/no_empty_block_rule.dart b/lib/src/lints/no_empty_block/no_empty_block_rule.dart index 24cc8df7..0f15e066 100644 --- a/lib/src/lints/no_empty_block/no_empty_block_rule.dart +++ b/lib/src/lints/no_empty_block/no_empty_block_rule.dart @@ -1,4 +1,3 @@ -// ignore_for_file: todo import 'package:analyzer/analysis_rule/rule_context.dart'; import 'package:analyzer/analysis_rule/rule_visitor_registry.dart'; import 'package:analyzer/error/error.dart'; @@ -46,11 +45,13 @@ import 'package:solid_lints/src/models/solid_lint_rule.dart'; /// #### GOOD: /// ```dart /// int fn() { +// ignore: todo /// // TODO: complete this /// } /// /// Function getCallback() { /// return () { +// ignore: todo /// // TODO: actually do something /// }; /// }