Skip to content

Commit 37afc93

Browse files
authored
ci: Fix lint (#451)
* Update action.yml * fix lint * dcm * Update space_tokens.dart * fix warnings * fix generator * Update helpers.dart
1 parent e354b5b commit 37afc93

File tree

123 files changed

+1141
-1435
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

123 files changed

+1141
-1435
lines changed

.github/actions/test/action.yml

+2-10
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,8 @@ runs:
6262
folders: packages/*/lib
6363

6464
- name: Run DCM
65-
if: ${{ inputs.run-dcm }}
66-
uses: CQLabs/dcm-action@v1
67-
with:
68-
github_token: ${{ inputs.token }}
69-
ci_key: oss
70-
email: oss
71-
folders: .
72-
fatal_style: true
73-
fatal_performance: true
74-
fatal_warnings: true
65+
run: dcm analyze .
66+
shell: bash
7567

7668
- name: Run melos fix
7769
run: melos run fix

lints.yaml

+2-46
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,9 @@
1+
include: package:flutter_lints/flutter.yaml
2+
13
analyzer:
24
exclude:
35
linter:
46
rules:
57
# TODO: Turn this to true when all public apis are documented
68
public_member_api_docs: false
79
prefer_relative_imports: true
8-
9-
dart_code_metrics:
10-
extends:
11-
- package:dart_code_metrics_presets/recommended.yaml
12-
- package:dart_code_metrics_presets/metrics_recommended.yaml
13-
metrics-exclude:
14-
- test/**
15-
rules-exclude:
16-
- test/**
17-
rules:
18-
# avoid-collection-mutating-methods: true
19-
newline-before-return: true
20-
avoid-importing-entrypoint-exports:
21-
only-in-src: true
22-
prefer-match-file-name: false
23-
prefer-overriding-parent-equality: false
24-
prefer-correct-callback-field-name: false
25-
prefer-single-widget-per-file: false
26-
match-getter-setter-field-names: false
27-
prefer-dedicated-media-query-methods: false
28-
avoid-shadowing: false
29-
enum-constants-ordering: false
30-
avoid-unsafe-collection-methods: false
31-
prefer-prefixed-global-constants: false
32-
avoid-returning-widgets: false
33-
arguments-ordering:
34-
child-last: true
35-
avoid-nested-conditional-expressions:
36-
acceptable-level: 3
37-
member-ordering:
38-
order:
39-
- public-fields
40-
- private-fields
41-
- constructors
42-
- static-methods
43-
- private-methods
44-
- private-getters
45-
- private-setters
46-
- public-getters
47-
- public-setters
48-
- public-methods
49-
- overridden-public-methods
50-
- overridden-public-getters
51-
- build-method
52-
prefer-named-boolean-parameters:
53-
ignore-single: true

lints_with_dcm.yaml

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
include: lints.yaml
2+
3+
dart_code_metrics:
4+
extends:
5+
- package:dart_code_metrics_presets/recommended.yaml
6+
- package:dart_code_metrics_presets/metrics_recommended.yaml
7+
metrics-exclude:
8+
- test/**
9+
rules-exclude:
10+
- test/**
11+
rules:
12+
# avoid-collection-mutating-methods: true
13+
newline-before-return: true
14+
avoid-importing-entrypoint-exports:
15+
only-in-src: true
16+
prefer-match-file-name: false
17+
prefer-overriding-parent-equality: false
18+
prefer-correct-callback-field-name: false
19+
prefer-single-widget-per-file: false
20+
match-getter-setter-field-names: false
21+
prefer-dedicated-media-query-methods: false
22+
avoid-shadowing: false
23+
enum-constants-ordering: false
24+
avoid-unsafe-collection-methods: false
25+
prefer-prefixed-global-constants: false
26+
avoid-returning-widgets: false
27+
arguments-ordering:
28+
child-last: true
29+
avoid-nested-conditional-expressions:
30+
acceptable-level: 3
31+
member-ordering:
32+
order:
33+
- public-fields
34+
- private-fields
35+
- constructors
36+
- static-methods
37+
- private-methods
38+
- private-getters
39+
- private-setters
40+
- public-getters
41+
- public-setters
42+
- public-methods
43+
- overridden-public-methods
44+
- overridden-public-getters
45+
- build-method
46+
prefer-named-boolean-parameters:
47+
ignore-single: true

packages/mix/analysis_options.yaml

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1 @@
1-
2-
includes:
3-
- ../../lints.yaml
4-
- package:flutter_lints/flutter.yaml
1+
include: ../../lints_with_dcm.yaml

packages/mix/lib/src/attributes/strut_style/strut_style_dto.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// ignore_for_file: avoid-importing-entrypoint-exports, avoid-unused-ignores, prefer_relative_imports
22

33
import 'package:flutter/material.dart';
4-
import 'package:mix/mix.dart';
4+
import '../../../mix.dart';
55
import 'package:mix_annotations/mix_annotations.dart';
66

77
part 'strut_style_dto.g.dart';

packages/mix/lib/src/core/helpers.dart

+1-2
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,10 @@ class MixHelpers {
3737

3838
static const lerpShadowList = ui.Shadow.lerpList;
3939

40+
const MixHelpers._();
4041
static bool get isWeb => isWebOverride ?? kIsWeb;
4142
static TargetPlatform get targetPlatform =>
4243
targetPlatformOverride ?? defaultTargetPlatform;
43-
44-
const MixHelpers._();
4544
}
4645

4746
P? _lerpSnap<P>(P? from, P? to, double t) {

packages/mix/lib/src/modifiers/transform_widget_modifier.dart

+9-8
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
// ignore_for_file: prefer-named-boolean-parameters
22

3+
import 'dart:math' as math;
4+
35
import 'package:flutter/foundation.dart';
46
import 'package:flutter/widgets.dart';
57
import 'package:mix_annotations/mix_annotations.dart';
6-
import 'dart:math' as math;
78

89
import '../core/attribute.dart';
910
import '../core/factory/mix_data.dart';
@@ -40,6 +41,13 @@ final class TransformModifierSpec
4041

4142
final class TransformModifierSpecUtility<T extends Attribute>
4243
extends MixUtility<T, TransformModifierSpecAttribute> {
44+
late final rotate = TransformRotateModifierSpecUtility(
45+
(value) => TransformModifierSpecAttribute(
46+
transform: value,
47+
alignment: Alignment.center,
48+
),
49+
);
50+
4351
TransformModifierSpecUtility(super.builder);
4452

4553
T _flip(bool x, bool y) => builder(
@@ -65,13 +73,6 @@ final class TransformModifierSpecUtility<T extends Attribute>
6573
alignment: Alignment.center,
6674
),
6775
);
68-
69-
late final rotate = TransformRotateModifierSpecUtility(
70-
(value) => TransformModifierSpecAttribute(
71-
transform: value,
72-
alignment: Alignment.center,
73-
),
74-
);
7576
}
7677

7778
final class TransformRotateModifierSpecUtility<T extends Attribute>

packages/mix/lib/src/theme/material/material_theme.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ final materialMixTheme = MixThemeData(
1818
_md.colorScheme.secondary: ColorResolver((c) => c.color.secondary),
1919
_md.colorScheme.tertiary: ColorResolver((c) => c.color.tertiary),
2020
_md.colorScheme.surface: ColorResolver((c) => c.color.surface),
21-
_md.colorScheme.background: ColorResolver((c) => c.color.background),
21+
_md.colorScheme.background: ColorResolver((c) => c.color.surface),
2222
_md.colorScheme.error: ColorResolver((c) => c.color.error),
2323
_md.colorScheme.onPrimary: ColorResolver((c) => c.color.onPrimary),
2424
_md.colorScheme.onSecondary: ColorResolver((c) => c.color.onSecondary),
2525
_md.colorScheme.onTertiary: ColorResolver((c) => c.color.onTertiary),
2626
_md.colorScheme.onSurface: ColorResolver((c) => c.color.onSurface),
2727
_md.colorScheme.onBackground:
28-
ColorResolver((context) => context.color.onBackground),
28+
ColorResolver((context) => context.color.onSurface),
2929
_md.colorScheme.onError: ColorResolver((context) => context.color.onError),
3030
},
3131
textStyles: {

packages/mix/lib/src/variants/context_variant_util/on_platform_util.dart

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import 'package:flutter/material.dart';
2-
import 'package:mix/mix.dart';
2+
3+
import '../../core/helpers.dart';
4+
import '../context_variant.dart';
35

46
class OnPlatformVariant extends ContextVariant {
57
final TargetPlatform platform;
@@ -22,5 +24,5 @@ class OnWebVariant extends ContextVariant {
2224
const OnWebVariant();
2325

2426
@override
25-
bool when(_) => MixHelpers.isWeb;
27+
bool when(BuildContext context) => MixHelpers.isWeb;
2628
}

packages/mix/lib/src/variants/context_variant_util/on_util.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import 'package:flutter/foundation.dart';
22
import 'package:flutter/widgets.dart';
3-
import 'package:mix/src/variants/context_variant_util/on_platform_util.dart';
3+
import 'on_platform_util.dart';
44

55
import '../../theme/tokens/breakpoints_token.dart';
66
import '../widget_state_variant.dart';

packages/mix/pubspec.yaml

-3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,3 @@ dev_dependencies:
2020
sdk: flutter
2121
mix_generator: ^0.2.2+1
2222

23-
# flutter:
24-
# assets:
25-
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
includes:
2-
- ../../lints.yaml
3-
- package:lints/recommended.yaml
1+
include: ../../lints_with_dcm.yaml

packages/mix_annotations/lib/src/annotations.dart

+2-7
Original file line numberDiff line numberDiff line change
@@ -196,19 +196,14 @@ class MixableClassUtility {
196196
/// Map you should use to map the field utilities
197197
final Type? type;
198198
final bool generateCallMethod;
199-
const MixableClassUtility({
200-
this.type,
201-
this.generateCallMethod = true,
202-
});
199+
const MixableClassUtility({this.type, this.generateCallMethod = true});
203200
}
204201

205202
class MixableEnumUtility {
206203
/// Map you should use to map the field utilities
207204
208205
final bool generateCallMethod;
209-
const MixableEnumUtility({
210-
this.generateCallMethod = true,
211-
});
206+
const MixableEnumUtility({this.generateCallMethod = true});
212207
}
213208

214209
sealed class MixDeprecated {

packages/mix_annotations/pubspec.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ environment:
77
sdk: ">=3.3.0 <4.0.0"
88

99
dev_dependencies:
10-
lints: ^3.0.0
1110
test: ^1.21.0
11+
dart_code_metrics_presets: ^2.14.0
12+
flutter_lints: ^4.0.0
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
includes:
2-
- ../../lints.yaml
3-
- package:lints/recommended.yaml
1+
include: ../../lints_with_dcm.yaml
+10-8
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,32 @@
1+
// ignore_for_file: avoid-unused-parameters
2+
13
import 'package:build/build.dart';
2-
import 'package:mix_generator/src/mixable_class_utility_generator.dart';
3-
import 'package:mix_generator/src/mixable_dto_generator.dart';
4-
import 'package:mix_generator/src/mixable_enum_utility_generator.dart';
5-
import 'package:mix_generator/src/mixable_spec_generator.dart';
4+
import 'src/mixable_class_utility_generator.dart';
5+
import 'src/mixable_dto_generator.dart';
6+
import 'src/mixable_enum_utility_generator.dart';
7+
import 'src/mixable_spec_generator.dart';
68
import 'package:source_gen/source_gen.dart';
79

810
Builder specDefinition(BuilderOptions options) => SharedPartBuilder(
9-
[MixableSpecGenerator()],
11+
[const MixableSpecGenerator()],
1012
'spec',
1113
allowSyntaxErrors: true,
1214
);
1315

1416
Builder dtoDefinition(BuilderOptions options) => SharedPartBuilder(
15-
[MixableDtoGenerator()],
17+
[const MixableDtoGenerator()],
1618
'dto',
1719
allowSyntaxErrors: true,
1820
);
1921

2022
Builder classUtilityDefinition(BuilderOptions options) => SharedPartBuilder(
21-
[MixableClassUtilityGenerator()],
23+
[const MixableClassUtilityGenerator()],
2224
'class_utility',
2325
allowSyntaxErrors: true,
2426
);
2527

2628
Builder enumUtilityDefinition(BuilderOptions options) => SharedPartBuilder(
27-
[MixableEnumUtilityGenerator()],
29+
[const MixableEnumUtilityGenerator()],
2830
'enum_utility',
2931
allowSyntaxErrors: true,
3032
);

packages/mix_generator/lib/src/builders/dto/class_utility_dto.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import 'package:mix_annotations/mix_annotations.dart';
2-
import 'package:mix_generator/src/builders/utility_class_builder.dart';
3-
import 'package:mix_generator/src/helpers/field_info.dart';
2+
import '../utility_class_builder.dart';
3+
import '../../helpers/field_info.dart';
44

55
String dtoUtilityClass(ClassBuilderContext<MixableDto> context) {
66
final className = context.name;

packages/mix_generator/lib/src/builders/dto/extension_value.dart

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import 'package:mix_annotations/mix_annotations.dart';
2-
import 'package:mix_generator/src/helpers/field_info.dart';
2+
import '../../helpers/field_info.dart';
33

44
String toDtoExtension(ClassBuilderContext<MixableDto> context) {
55
final resolvedType = context.referenceClass;
@@ -14,20 +14,23 @@ String toDtoExtension(ClassBuilderContext<MixableDto> context) {
1414

1515
final fieldStatements = context.fields.map((field) {
1616
final fieldName = field.name;
17-
final paramIsNullable = params[fieldName]?.nullable ?? false;
18-
final fieldNameRef = paramIsNullable ? '$fieldName?' : fieldName;
1917

2018
if (field.hasDto) {
19+
final paramIsNullable = params[fieldName]?.nullable ?? false;
20+
final fieldNameRef = paramIsNullable ? '$fieldName?' : fieldName;
21+
2122
if (field.isListType) {
2223
return '$fieldName: $fieldNameRef.map((e) => e.toDto()).toList(),';
2324
}
25+
2426
return '$fieldName: $fieldNameRef.toDto(),';
2527
}
2628

2729
return '$fieldName: $fieldName,';
2830
}).join('\n');
2931

3032
final resolvedTypeName = resolvedType.name;
33+
3134
return '''
3235
extension ${resolvedTypeName}MixExt on $resolvedTypeName {
3336
$className toDto() {

packages/mix_generator/lib/src/builders/dto/mixin_dto.dart

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import 'package:mix_annotations/mix_annotations.dart';
2-
import 'package:mix_generator/src/builders/getter_self_reference.dart';
3-
import 'package:mix_generator/src/builders/method_equality.dart';
4-
import 'package:mix_generator/src/builders/method_merge.dart';
5-
import 'package:mix_generator/src/builders/method_resolve.dart';
6-
import 'package:mix_generator/src/helpers/field_info.dart';
2+
import '../getter_self_reference.dart';
3+
import '../method_equality.dart';
4+
import '../method_merge.dart';
5+
import '../method_resolve.dart';
6+
import '../../helpers/field_info.dart';
77

88
String dtoMixin(ClassBuilderContext<MixableDto> context) {
99
final mixinName = context.generatedName;
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import 'package:mix_generator/src/helpers/field_info.dart';
1+
import '../helpers/field_info.dart';
22

33
String getterSelfBuilder(ClassInfo instance) {
44
final className = instance.name;
5+
56
return '$className get ${ParameterInfo.internalRefPrefix} => this as $className;';
67
}

0 commit comments

Comments
 (0)