Skip to content

Commit 069fee6

Browse files
authored
"removed" rule doc codegen WIP (dart-archive/linter#4000)
* "removed" rule doc codegen WIP * + style * review feedback * reflow * revert remove
1 parent 48a2101 commit 069fee6

File tree

1 file changed

+32
-17
lines changed

1 file changed

+32
-17
lines changed

tool/doc.dart

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,11 @@ ${parser.usage}
270270
''');
271271
}
272272

273-
String qualify(LintRule r) => r.name + describeState(r);
273+
String qualify(LintRule r) {
274+
var name = r.name;
275+
var label = r.state.isRemoved ? '<s>$name</s>' : name;
276+
return label + describeState(r);
277+
}
274278

275279
class CountBadger {
276280
Iterable<LintRule> rules;
@@ -580,6 +584,15 @@ class RuleHtmlGenerator {
580584

581585
String get details => rule.details;
582586

587+
String get detailsHeader {
588+
if (state.isRemoved) {
589+
var since = state.since;
590+
var sinceDetail = since != null ? ' in Dart $since.' : '';
591+
return '<p style="font-size:30px"><strong>Removed$sinceDetail</strong></p>';
592+
}
593+
return '';
594+
}
595+
583596
String get group => rule.group.name;
584597

585598
String get humanReadableName => rule.name;
@@ -603,18 +616,6 @@ class RuleHtmlGenerator {
603616
return sb.toString();
604617
}
605618

606-
State get state => rule.state;
607-
608-
String get stateString {
609-
if (state.isDeprecated) {
610-
return '<span style="color:orangered;font-weight:bold;" >${state.label}</span>';
611-
}
612-
if (state.isExperimental) {
613-
return '<span style="color:hotpink;font-weight:bold;" >${state.label}</span>';
614-
}
615-
return state.label;
616-
}
617-
618619
String get name => rule.name;
619620

620621
String get since {
@@ -628,6 +629,20 @@ class RuleHtmlGenerator {
628629
return 'Dart SDK: $sdkVersion • <small>(Linter $linterVersion)</small>';
629630
}
630631

632+
State get state => rule.state;
633+
634+
String get stateString {
635+
if (state.isDeprecated) {
636+
return '<span style="color:orangered;font-weight:bold;" >${state.label}</span>';
637+
} else if (state.isRemoved) {
638+
return '<span style="color:darkgray;font-weight:bold;" >${state.label}</span>';
639+
} else if (state.isExperimental) {
640+
return '<span style="color:hotpink;font-weight:bold;" >${state.label}</span>';
641+
} else {
642+
return state.label;
643+
}
644+
}
645+
631646
void generate([String? filePath]) {
632647
var generated = _generate();
633648
if (filePath != null) {
@@ -670,7 +685,7 @@ class RuleHtmlGenerator {
670685
<p><a class="overflow-link" href="https://dart.dev/guides/language/analysis-options#enabling-linter-rules">Using the <strong>Linter</strong></a></p>
671686
</header>
672687
<section>
673-
688+
$detailsHeader
674689
${markdownToHtml(details)}
675690
$incompatibleRuleDetails
676691
</section>
@@ -693,8 +708,6 @@ class RuleMarkdownGenerator {
693708

694709
String get group => rule.group.name;
695710

696-
String get maturity => describeState(rule);
697-
698711
String get name => rule.name;
699712

700713
String get since {
@@ -707,13 +720,15 @@ class RuleMarkdownGenerator {
707720
return 'Dart SDK: $sdkVersion • _(Linter $linterVersion)_';
708721
}
709722

723+
String get state => describeState(rule);
724+
710725
void generate({String? filePath, String? fixStatus}) {
711726
var buffer = StringBuffer();
712727

713728
buffer.writeln('# Rule $name');
714729
buffer.writeln();
715730
buffer.writeln('**Group**: $group\\');
716-
buffer.writeln('**Maturity**: $maturity\\');
731+
buffer.writeln('**State**: $state\\');
717732
buffer.writeln('**Since**: $since\\');
718733
buffer.writeln();
719734

0 commit comments

Comments
 (0)