Skip to content
This repository was archived by the owner on Jul 16, 2023. It is now read-only.

Commit 0768d8a

Browse files
authored
feat: change rules, metrics and anti-patterns doc urls for website urls (#414)
* feat: change rules, metrics and anti-patterns doc urls for website urls * fix: change rule type for new rule
1 parent 12bffdf commit 0768d8a

File tree

39 files changed

+172
-87
lines changed

39 files changed

+172
-87
lines changed

lib/src/analyzers/lint_analyzer/anti_patterns/pattern_utils.dart

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,11 @@ Issue createIssue({
2424
/// Returns a url of a page containing documentation associated with [pattern]
2525
Uri documentation(Pattern pattern) => Uri(
2626
scheme: 'https',
27-
host: 'github.com',
27+
host: 'dartcodemetrics.dev',
2828
pathSegments: [
29-
'dart-code-checker',
30-
'dart-code-metrics',
31-
'blob',
32-
'master',
33-
'doc',
29+
'docs',
3430
'anti-patterns',
35-
'${pattern.id}.md',
31+
pattern.id,
3632
],
3733
);
3834

lib/src/analyzers/lint_analyzer/metrics/metric_utils.dart

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,11 @@ import 'models/metric_value_level.dart';
33
/// Returns the url of a page containing documentation associated with [metricId]
44
Uri documentation(String metricId) => Uri(
55
scheme: 'https',
6-
host: 'github.com',
6+
host: 'dartcodemetrics.dev',
77
pathSegments: [
8-
'dart-code-checker',
9-
'dart-code-metrics',
10-
'blob',
11-
'master',
12-
'doc',
8+
'docs',
139
'metrics',
14-
'$metricId.md',
10+
metricId,
1511
],
1612
);
1713

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import '../../models/severity.dart';
2+
import 'rule.dart';
3+
import 'rule_documentation.dart';
4+
import 'rule_type.dart';
5+
6+
abstract class AngularRule extends Rule {
7+
const AngularRule({
8+
required String id,
9+
required RuleDocumentation documentation,
10+
required Severity severity,
11+
required Iterable<String> excludes,
12+
}) : super(
13+
id: id,
14+
type: RuleType.angular,
15+
documentation: documentation,
16+
severity: severity,
17+
excludes: excludes,
18+
);
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import '../../models/severity.dart';
2+
import 'rule.dart';
3+
import 'rule_documentation.dart';
4+
import 'rule_type.dart';
5+
6+
abstract class CommonRule extends Rule {
7+
const CommonRule({
8+
required String id,
9+
required RuleDocumentation documentation,
10+
required Severity severity,
11+
required Iterable<String> excludes,
12+
}) : super(
13+
id: id,
14+
type: RuleType.common,
15+
documentation: documentation,
16+
severity: severity,
17+
excludes: excludes,
18+
);
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import '../../models/severity.dart';
2+
import 'rule.dart';
3+
import 'rule_documentation.dart';
4+
import 'rule_type.dart';
5+
6+
abstract class FlutterRule extends Rule {
7+
const FlutterRule({
8+
required String id,
9+
required RuleDocumentation documentation,
10+
required Severity severity,
11+
required Iterable<String> excludes,
12+
}) : super(
13+
id: id,
14+
type: RuleType.flutter,
15+
documentation: documentation,
16+
severity: severity,
17+
excludes: excludes,
18+
);
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import '../../models/severity.dart';
2+
import 'rule.dart';
3+
import 'rule_documentation.dart';
4+
import 'rule_type.dart';
5+
6+
abstract class IntlRule extends Rule {
7+
const IntlRule({
8+
required String id,
9+
required RuleDocumentation documentation,
10+
required Severity severity,
11+
required Iterable<String> excludes,
12+
}) : super(
13+
id: id,
14+
type: RuleType.intl,
15+
documentation: documentation,
16+
severity: severity,
17+
excludes: excludes,
18+
);
19+
}

lib/src/analyzers/lint_analyzer/rules/models/rule.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import '../../models/internal_resolved_unit_result.dart';
22
import '../../models/issue.dart';
33
import '../../models/severity.dart';
44
import 'rule_documentation.dart';
5+
import 'rule_type.dart';
56

67
/// An interface to communicate with a rules
78
///
@@ -10,6 +11,9 @@ abstract class Rule {
1011
/// The id of the rule.
1112
final String id;
1213

14+
/// The type of the rule.
15+
final RuleType type;
16+
1317
/// The documentation associated with the rule
1418
final RuleDocumentation documentation;
1519

@@ -22,6 +26,7 @@ abstract class Rule {
2226
/// Initialize a newly created [Rule].
2327
const Rule({
2428
required this.id,
29+
required this.type,
2530
required this.documentation,
2631
required this.severity,
2732
required this.excludes,
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/// Represents a rule type. Used by documentation path construction.
2+
class RuleType {
3+
final String value;
4+
5+
const RuleType._(this.value);
6+
7+
static const common = RuleType._('common');
8+
static const flutter = RuleType._('flutter');
9+
static const intl = RuleType._('intl');
10+
static const angular = RuleType._('angular');
11+
}

lib/src/analyzers/lint_analyzer/rules/rule_utils.dart

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,12 @@ Issue createIssue({
2828
/// Returns a url of a page containing documentation associated with [rule]
2929
Uri documentation(Rule rule) => Uri(
3030
scheme: 'https',
31-
host: 'github.com',
31+
host: 'dartcodemetrics.dev',
3232
pathSegments: [
33-
'dart-code-checker',
34-
'dart-code-metrics',
35-
'blob',
36-
'master',
37-
'doc',
33+
'docs',
3834
'rules',
39-
'${rule.id}.md',
35+
rule.type.value,
36+
rule.id,
4037
],
4138
);
4239

lib/src/analyzers/lint_analyzer/rules/rules_list/always_remove_listener/always_remove_listener.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ import '../../../models/internal_resolved_unit_result.dart';
99
import '../../../models/issue.dart';
1010
import '../../../models/severity.dart';
1111
import '../../flutter_rule_utils.dart';
12-
import '../../models/rule.dart';
12+
import '../../models/flutter_rule.dart';
1313
import '../../models/rule_documentation.dart';
1414
import '../../rule_utils.dart';
1515

1616
part 'visitor.dart';
1717

18-
class AlwaysRemoveListenerRule extends Rule {
18+
class AlwaysRemoveListenerRule extends FlutterRule {
1919
static const String ruleId = 'always-remove-listener';
2020

2121
static const _warningMessage =

0 commit comments

Comments
 (0)