From d37af86eb4937b8e54d5d3cc63acdf631307aaec Mon Sep 17 00:00:00 2001 From: Remi Rousselet Date: Sun, 27 Oct 2024 04:05:18 +0100 Subject: [PATCH 1/3] Fix ref insert --- .../riverpod_lint/lib/src/lints/functional_ref.dart | 10 ++++++++-- .../test/lints/functional_ref/fix/functional_ref.diff | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/riverpod_lint/lib/src/lints/functional_ref.dart b/packages/riverpod_lint/lib/src/lints/functional_ref.dart index 6588d6f93..ca0bed667 100644 --- a/packages/riverpod_lint/lib/src/lints/functional_ref.dart +++ b/packages/riverpod_lint/lib/src/lints/functional_ref.dart @@ -80,7 +80,7 @@ class FunctionalRefFix extends RiverpodFix { final refNode = declaration .node.functionExpression.parameters!.parameters.firstOrNull; - if (refNode == null) { + if (refNode == null || refNode.isNamed) { // No ref parameter, adding one final changeBuilder = reporter.createChangeBuilder( message: 'Add ref parameter', @@ -90,9 +90,14 @@ class FunctionalRefFix extends RiverpodFix { changeBuilder.addDartFileEdit((builder) { final ref = builder.importRef(); + var toInsert = '$ref ref'; + if (refNode != null) { + toInsert = '$toInsert, '; + } + builder.addSimpleInsertion( declaration.node.functionExpression.parameters!.leftParenthesis.end, - '$ref ref', + toInsert, ); }); return; @@ -135,6 +140,7 @@ extension ImportFix on DartFileEditBuilder { return _importWithPrefix('Ref'); } + @useResult String _importWithPrefix(String name) { final hooksRiverpodUri = Uri(scheme: 'package', path: 'hooks_riverpod/hooks_riverpod.dart'); diff --git a/packages/riverpod_lint_flutter_test/test/lints/functional_ref/fix/functional_ref.diff b/packages/riverpod_lint_flutter_test/test/lints/functional_ref/fix/functional_ref.diff index 32afe3369..804b040f1 100644 --- a/packages/riverpod_lint_flutter_test/test/lints/functional_ref/fix/functional_ref.diff +++ b/packages/riverpod_lint_flutter_test/test/lints/functional_ref/fix/functional_ref.diff @@ -34,14 +34,14 @@ int incorrectlyTyped( return 0; ``` --- -Message: `Type as Ref` +Message: `Add ref parameter` Priority: 90 Diff for file `test/lints/functional_ref/functional_ref.dart:34`: ``` @riverpod // expect_lint: functional_ref - int noRefButArgs({int a = 42}) { -+ int noRefButArgs({Ref a = 42}) { ++ int noRefButArgs(Ref ref, {int a = 42}) { return 0; } ``` From f440c21acdc67a746d5fca503b11b30cf6590956 Mon Sep 17 00:00:00 2001 From: Remi Rousselet Date: Sun, 27 Oct 2024 20:07:17 +0100 Subject: [PATCH 2/3] Use latest custom_lint --- examples/counter/pubspec.yaml | 2 +- examples/marvel/pubspec.yaml | 2 +- examples/pub/pubspec.yaml | 2 +- examples/random_number/pubspec.yaml | 2 +- examples/stackoverflow/pubspec.yaml | 2 +- examples/todos/pubspec.yaml | 4 ++-- packages/riverpod_analyzer_utils/CHANGELOG.md | 4 ++++ packages/riverpod_analyzer_utils/pubspec.yaml | 2 +- packages/riverpod_lint/CHANGELOG.md | 4 ++++ packages/riverpod_lint/pubspec.yaml | 2 +- packages/riverpod_lint_flutter_test/pubspec.yaml | 4 ++-- 11 files changed, 19 insertions(+), 11 deletions(-) diff --git a/examples/counter/pubspec.yaml b/examples/counter/pubspec.yaml index 270a678a0..71a355882 100644 --- a/examples/counter/pubspec.yaml +++ b/examples/counter/pubspec.yaml @@ -24,7 +24,7 @@ dependencies: dev_dependencies: build_runner: ^2.3.3 - custom_lint: ^0.6.0 + custom_lint: ^0.7.0 flutter_test: sdk: flutter freezed: ^2.3.2 diff --git a/examples/marvel/pubspec.yaml b/examples/marvel/pubspec.yaml index e152e732e..dab401fe3 100644 --- a/examples/marvel/pubspec.yaml +++ b/examples/marvel/pubspec.yaml @@ -22,7 +22,7 @@ dependencies: dev_dependencies: build_runner: ^2.0.0 - custom_lint: ^0.6.0 + custom_lint: ^0.7.0 flutter_test: sdk: flutter freezed: ^2.1.0 diff --git a/examples/pub/pubspec.yaml b/examples/pub/pubspec.yaml index 8940ae4ff..59d69f5b1 100644 --- a/examples/pub/pubspec.yaml +++ b/examples/pub/pubspec.yaml @@ -23,7 +23,7 @@ dependencies: dev_dependencies: build_runner: ^2.0.0 - custom_lint: ^0.6.0 + custom_lint: ^0.7.0 flutter_test: sdk: flutter freezed: ^2.1.0 diff --git a/examples/random_number/pubspec.yaml b/examples/random_number/pubspec.yaml index c401595f8..770d455bd 100644 --- a/examples/random_number/pubspec.yaml +++ b/examples/random_number/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: mockito: ^5.0.13 dev_dependencies: - custom_lint: ^0.6.0 + custom_lint: ^0.7.0 flutter_lints: ^1.0.0 flutter_test: sdk: flutter diff --git a/examples/stackoverflow/pubspec.yaml b/examples/stackoverflow/pubspec.yaml index 6582b1d6b..0767c7bdd 100644 --- a/examples/stackoverflow/pubspec.yaml +++ b/examples/stackoverflow/pubspec.yaml @@ -19,7 +19,7 @@ dependencies: dev_dependencies: build_runner: ^2.0.0 - custom_lint: ^0.6.0 + custom_lint: ^0.7.0 flutter_test: sdk: flutter freezed: ^2.1.0 diff --git a/examples/todos/pubspec.yaml b/examples/todos/pubspec.yaml index 5149622a1..80697d4de 100644 --- a/examples/todos/pubspec.yaml +++ b/examples/todos/pubspec.yaml @@ -14,11 +14,11 @@ dependencies: path: ../../packages/hooks_riverpod riverpod: path: ../../packages/riverpod - uuid: ^3.0.4 + uuid: ^4.0.4 dev_dependencies: build_runner: ^2.0.0 - custom_lint: ^0.6.0 + custom_lint: ^0.7.0 flutter_test: sdk: flutter riverpod_lint: diff --git a/packages/riverpod_analyzer_utils/CHANGELOG.md b/packages/riverpod_analyzer_utils/CHANGELOG.md index e6a724811..b61175bfb 100644 --- a/packages/riverpod_analyzer_utils/CHANGELOG.md +++ b/packages/riverpod_analyzer_utils/CHANGELOG.md @@ -1,3 +1,7 @@ +## Unreleased patch + +- Support latest custom_lint + ## 0.5.6 - 2024-10-22 - Support analyzer >=6.7.0 <7.0.0 diff --git a/packages/riverpod_analyzer_utils/pubspec.yaml b/packages/riverpod_analyzer_utils/pubspec.yaml index 2f4253a7c..3c049152f 100644 --- a/packages/riverpod_analyzer_utils/pubspec.yaml +++ b/packages/riverpod_analyzer_utils/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: analyzer: ^6.7.0 collection: ^1.16.0 crypto: ^3.0.2 - custom_lint_core: ^0.6.0 + custom_lint_core: ^0.7.0 freezed_annotation: ^2.2.0 meta: ^1.7.0 path: ^1.8.0 diff --git a/packages/riverpod_lint/CHANGELOG.md b/packages/riverpod_lint/CHANGELOG.md index f539bcf16..8ef3198f3 100644 --- a/packages/riverpod_lint/CHANGELOG.md +++ b/packages/riverpod_lint/CHANGELOG.md @@ -1,3 +1,7 @@ +## Unreleased patch + +- Support latest custom_lint + ## 2.6.1 - 2024-10-22 - Support analyzer >=6.7.0 <7.0.0 diff --git a/packages/riverpod_lint/pubspec.yaml b/packages/riverpod_lint/pubspec.yaml index 203a5cabd..efddae1d3 100644 --- a/packages/riverpod_lint/pubspec.yaml +++ b/packages/riverpod_lint/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: analyzer: ^6.7.0 analyzer_plugin: ^0.11.2 collection: ^1.16.0 - custom_lint_builder: ^0.6.0 + custom_lint_builder: ^0.7.0 meta: ^1.7.0 path: ^1.8.1 riverpod: 2.6.1 diff --git a/packages/riverpod_lint_flutter_test/pubspec.yaml b/packages/riverpod_lint_flutter_test/pubspec.yaml index e3d37c6fb..321b161d2 100644 --- a/packages/riverpod_lint_flutter_test/pubspec.yaml +++ b/packages/riverpod_lint_flutter_test/pubspec.yaml @@ -15,8 +15,8 @@ dependencies: dev_dependencies: build_runner: ^2.4.6 - custom_lint: ^0.6.0 - custom_lint_core: ^0.6.0 + custom_lint: ^0.7.0 + custom_lint_core: ^0.7.0 freezed: ^2.3.2 json_serializable: ^6.6.1 riverpod_lint: From 75f847a80eac21ed42083cb72a92a1cea4f6c7b1 Mon Sep 17 00:00:00 2001 From: Remi Rousselet Date: Sun, 27 Oct 2024 20:12:45 +0100 Subject: [PATCH 3/3] Lints --- .../lib/src/lints/async_value_nullable_pattern.dart | 5 ++++- .../lib/src/lints/avoid_build_context_in_providers.dart | 5 ++++- packages/riverpod_lint/lib/src/lints/functional_ref.dart | 5 ++++- .../riverpod_lint/lib/src/lints/missing_provider_scope.dart | 5 ++++- packages/riverpod_lint/lib/src/lints/notifier_build.dart | 5 ++++- packages/riverpod_lint/lib/src/lints/notifier_extends.dart | 5 ++++- .../riverpod_lint/lib/src/lints/provider_dependencies.dart | 5 ++++- 7 files changed, 28 insertions(+), 7 deletions(-) diff --git a/packages/riverpod_lint/lib/src/lints/async_value_nullable_pattern.dart b/packages/riverpod_lint/lib/src/lints/async_value_nullable_pattern.dart index b5fd70cea..af3c385da 100644 --- a/packages/riverpod_lint/lib/src/lints/async_value_nullable_pattern.dart +++ b/packages/riverpod_lint/lib/src/lints/async_value_nullable_pattern.dart @@ -1,7 +1,10 @@ import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/element/nullability_suffix.dart'; import 'package:analyzer/dart/element/type.dart'; -import 'package:analyzer/error/error.dart' hide LintCode; +import 'package:analyzer/error/error.dart' + hide + // ignore: undefined_hidden_name, necessary to support lower analyzer version + LintCode; import 'package:analyzer/error/listener.dart'; import 'package:custom_lint_builder/custom_lint_builder.dart'; import 'package:riverpod_analyzer_utils/riverpod_analyzer_utils.dart'; diff --git a/packages/riverpod_lint/lib/src/lints/avoid_build_context_in_providers.dart b/packages/riverpod_lint/lib/src/lints/avoid_build_context_in_providers.dart index 62776f518..d87c645dc 100644 --- a/packages/riverpod_lint/lib/src/lints/avoid_build_context_in_providers.dart +++ b/packages/riverpod_lint/lib/src/lints/avoid_build_context_in_providers.dart @@ -1,5 +1,8 @@ import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/error/error.dart' hide LintCode; +import 'package:analyzer/error/error.dart' + hide + // ignore: undefined_hidden_name, necessary to support lower analyzer version + LintCode; import 'package:analyzer/error/listener.dart'; import 'package:custom_lint_builder/custom_lint_builder.dart'; diff --git a/packages/riverpod_lint/lib/src/lints/functional_ref.dart b/packages/riverpod_lint/lib/src/lints/functional_ref.dart index ca0bed667..0d6498e72 100644 --- a/packages/riverpod_lint/lib/src/lints/functional_ref.dart +++ b/packages/riverpod_lint/lib/src/lints/functional_ref.dart @@ -1,6 +1,9 @@ import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/element/element.dart'; -import 'package:analyzer/error/error.dart' hide LintCode; +import 'package:analyzer/error/error.dart' + hide + // ignore: undefined_hidden_name, necessary to support lower analyzer version + LintCode; import 'package:analyzer/error/listener.dart'; import 'package:analyzer_plugin/utilities/change_builder/change_builder_dart.dart'; import 'package:collection/collection.dart'; diff --git a/packages/riverpod_lint/lib/src/lints/missing_provider_scope.dart b/packages/riverpod_lint/lib/src/lints/missing_provider_scope.dart index 38d777b3d..c401225fe 100644 --- a/packages/riverpod_lint/lib/src/lints/missing_provider_scope.dart +++ b/packages/riverpod_lint/lib/src/lints/missing_provider_scope.dart @@ -1,6 +1,9 @@ import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/element/element.dart'; -import 'package:analyzer/error/error.dart' hide LintCode; +import 'package:analyzer/error/error.dart' + hide + // ignore: undefined_hidden_name, necessary to support lower analyzer version + LintCode; import 'package:analyzer/error/listener.dart'; import 'package:collection/collection.dart'; import 'package:custom_lint_builder/custom_lint_builder.dart'; diff --git a/packages/riverpod_lint/lib/src/lints/notifier_build.dart b/packages/riverpod_lint/lib/src/lints/notifier_build.dart index b39b8a050..c878a9f15 100644 --- a/packages/riverpod_lint/lib/src/lints/notifier_build.dart +++ b/packages/riverpod_lint/lib/src/lints/notifier_build.dart @@ -1,5 +1,8 @@ import 'package:analyzer/dart/element/element.dart'; -import 'package:analyzer/error/error.dart' hide LintCode; +import 'package:analyzer/error/error.dart' + hide + // ignore: undefined_hidden_name, necessary to support lower analyzer version + LintCode; import 'package:analyzer/error/listener.dart'; import 'package:custom_lint_builder/custom_lint_builder.dart'; import 'package:riverpod_analyzer_utils/riverpod_analyzer_utils.dart'; diff --git a/packages/riverpod_lint/lib/src/lints/notifier_extends.dart b/packages/riverpod_lint/lib/src/lints/notifier_extends.dart index 198ae2aa0..5dff21726 100644 --- a/packages/riverpod_lint/lib/src/lints/notifier_extends.dart +++ b/packages/riverpod_lint/lib/src/lints/notifier_extends.dart @@ -1,4 +1,7 @@ -import 'package:analyzer/error/error.dart' hide LintCode; +import 'package:analyzer/error/error.dart' + hide + // ignore: undefined_hidden_name, necessary to support lower analyzer version + LintCode; import 'package:analyzer/error/listener.dart'; import 'package:custom_lint_builder/custom_lint_builder.dart'; import 'package:riverpod_analyzer_utils/riverpod_analyzer_utils.dart'; diff --git a/packages/riverpod_lint/lib/src/lints/provider_dependencies.dart b/packages/riverpod_lint/lib/src/lints/provider_dependencies.dart index 4934e9ecf..49eeff65c 100644 --- a/packages/riverpod_lint/lib/src/lints/provider_dependencies.dart +++ b/packages/riverpod_lint/lib/src/lints/provider_dependencies.dart @@ -1,6 +1,9 @@ import 'dart:math'; -import 'package:analyzer/error/error.dart' hide LintCode; +import 'package:analyzer/error/error.dart' + hide + // ignore: undefined_hidden_name, necessary to support lower analyzer version + LintCode; import 'package:analyzer/error/listener.dart'; import 'package:collection/collection.dart'; import 'package:custom_lint_builder/custom_lint_builder.dart';