Skip to content

Commit 56cf68d

Browse files
authored
Remove the missing-code-block-language warning (#4028)
1 parent 04c27de commit 56cf68d

File tree

4 files changed

+14
-134
lines changed

4 files changed

+14
-134
lines changed

lib/src/model/documentation_comment.dart

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@ mixin DocumentationComment
116116
// them unprocessed causes #2272.
117117
docs = _stripHtmlAndAddToIndex(docs);
118118
}
119-
_analyzeCodeBlocks(docs);
120119
return docs;
121120
}
122121

@@ -132,7 +131,6 @@ mixin DocumentationComment
132131
// would need to be processed by `processCommentDirectives`.
133132
docs = await _evaluateTools(docs);
134133
docs = processCommentDirectives(docs);
135-
_analyzeCodeBlocks(docs);
136134
return docs;
137135
}
138136

@@ -699,37 +697,6 @@ mixin DocumentationComment
699697
});
700698
}
701699

702-
static final _codeBlockPattern =
703-
RegExp(r'^[ ]{0,3}(`{3,}|~{3,})(.*)$', multiLine: true);
704-
705-
/// Analyze fenced code blocks present in the documentation comment,
706-
/// warning if there is no language specified.
707-
void _analyzeCodeBlocks(String docs) {
708-
if (config.packageWarningOptions
709-
.warningModes[PackageWarning.missingCodeBlockLanguage] ==
710-
PackageWarningMode.ignore) {
711-
return;
712-
}
713-
final results = _codeBlockPattern.allMatches(docs).toList(growable: false);
714-
if (results.isEmpty) {
715-
return;
716-
}
717-
final firstOfPair = <Match>[];
718-
for (var i = 0; i < results.length; i++) {
719-
if (i.isEven && i != results.length - 1) {
720-
firstOfPair.add(results[i]);
721-
}
722-
}
723-
for (var e in firstOfPair) {
724-
final result = e.group(2)!.trim();
725-
if (result.isEmpty) {
726-
warn(PackageWarning.missingCodeBlockLanguage,
727-
message:
728-
'A fenced code block in Markdown should have a language specified');
729-
}
730-
}
731-
}
732-
733700
bool _documentationLocalIsSet = false;
734701

735702
/// Returns the documentation for this element.

lib/src/model/package_graph.dart

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -170,15 +170,14 @@ class PackageGraph with CommentReferable, Nameable {
170170
e.canonicalModelElement == null ||
171171
e is Library ||
172172
e.enclosingElement!.isCanonical) {
173-
for (var d in e.documentationFrom
174-
.where((d) => d.hasDocumentationComment)) {
173+
for (var d
174+
in e.documentationFrom.where((d) => d.hasDocumentationComment)) {
175175
if (d.needsPrecache && !precachedElements.contains(d)) {
176176
precachedElements.add(d as ModelElement);
177177
futures.add(d.precacheLocalDocs());
178178
// [TopLevelVariable]s get their documentation from getters and
179179
// setters, so should be precached if either has a template.
180-
if (e is TopLevelVariable &&
181-
!precachedElements.contains(e)) {
180+
if (e is TopLevelVariable && !precachedElements.contains(e)) {
182181
precachedElements.add(e);
183182
futures.add(e.precacheLocalDocs());
184183
}
@@ -468,8 +467,7 @@ class PackageGraph with CommentReferable, Nameable {
468467
PackageWarning.typeAsHtml ||
469468
PackageWarning.invalidParameter ||
470469
PackageWarning.toolError ||
471-
PackageWarning.deprecated ||
472-
PackageWarning.missingCodeBlockLanguage =>
470+
PackageWarning.deprecated =>
473471
kind.messageFor([message])
474472
};
475473

@@ -647,7 +645,8 @@ class PackageGraph with CommentReferable, Nameable {
647645
checkAndAddContainer(modelElement, container);
648646
}
649647
} else if (container is Mixin) {
650-
for (var modelElement in container.superclassConstraints.modelElements) {
648+
for (var modelElement
649+
in container.superclassConstraints.modelElements) {
651650
checkAndAddContainer(modelElement, container);
652651
}
653652
}
@@ -752,8 +751,7 @@ class PackageGraph with CommentReferable, Nameable {
752751
// TODO(keertip): Find a better way to exclude members of extensions
753752
// when libraries are specified using the "--include" flag.
754753
if (library != null && library.isDocumented) {
755-
return getModelFor(e, library,
756-
enclosingContainer: preferredClass);
754+
return getModelFor(e, library, enclosingContainer: preferredClass);
757755
}
758756
}
759757
// TODO(jcollins-g): The data structures should be changed to eliminate
@@ -778,8 +776,7 @@ class PackageGraph with CommentReferable, Nameable {
778776
var setterElement = setter2 == null
779777
? null
780778
: getModelFor(setter2, library) as Accessor;
781-
canonicalModelElement = getModelForPropertyInducingElement(
782-
e, library,
779+
canonicalModelElement = getModelForPropertyInducingElement(e, library,
783780
getter: getterElement, setter: setterElement);
784781
} else {
785782
canonicalModelElement = getModelFor(e, library);
@@ -791,8 +788,7 @@ class PackageGraph with CommentReferable, Nameable {
791788
}
792789
}
793790
// Prefer fields and top-level variables.
794-
if (e is PropertyAccessorElement2 &&
795-
canonicalModelElement is Accessor) {
791+
if (e is PropertyAccessorElement2 && canonicalModelElement is Accessor) {
796792
canonicalModelElement = canonicalModelElement.enclosingCombo;
797793
}
798794
return canonicalModelElement;
@@ -804,8 +800,8 @@ class PackageGraph with CommentReferable, Nameable {
804800
var elem = modelElement.element;
805801
var candidates = <ModelElement>{};
806802
if (lib != null) {
807-
var constructedWithKey = allConstructedModelElements[
808-
ConstructedModelElementsKey(elem, null)];
803+
var constructedWithKey =
804+
allConstructedModelElements[ConstructedModelElementsKey(elem, null)];
809805
if (constructedWithKey != null) {
810806
candidates.add(constructedWithKey);
811807
}

lib/src/warnings.dart

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ List<DartdocOption<Object?>> createPackageWarningOptions(
9595
/// Something that package warnings can be reported on. Optionally associated
9696
/// with an analyzer [element].
9797
mixin Warnable implements CommentReferable, Documentable, Locatable {
98-
9998
Element2? get element;
10099

101100
void warn(
@@ -272,20 +271,6 @@ enum PackageWarning implements Comparable<PackageWarning> {
272271
'deprecated',
273272
'deprecated dartdoc usage: {0}',
274273
shortHelp: 'A dartdoc directive has a deprecated format.',
275-
),
276-
// TODO(kallentu): Remove this warning.
277-
missingCodeBlockLanguage(
278-
'missing-code-block-language',
279-
'missing code block language: {0}',
280-
shortHelp: '(Deprecated: Use `missing_code_block_language_in_doc_comment` '
281-
'lint) A fenced code block is missing a specified language.',
282-
longHelp: '(Deprecated: Use `missing_code_block_language_in_doc_comment` '
283-
'lint) To enable proper syntax highlighting of Markdown code blocks, '
284-
'Dartdoc requires code blocks to specify the language used after the '
285-
'initial declaration. As an example, to specify Dart you would open '
286-
'the Markdown code block with ```dart or ~~~dart.',
287-
defaultWarningMode: PackageWarningMode.ignore,
288-
isDeprecated: true,
289274
);
290275

291276
/// The name which can be used at the command line to enable this warning.
@@ -542,8 +527,7 @@ class PackageWarningCounter {
542527

543528
/// Whether we've already warned for this combination of [e], [kind],
544529
/// and [messageFragment].
545-
bool hasWarning(
546-
Warnable? e, PackageWarning kind, String messageFragment) {
530+
bool hasWarning(Warnable? e, PackageWarning kind, String messageFragment) {
547531
if (e == null) {
548532
return false;
549533
}
@@ -558,9 +542,8 @@ class PackageWarningCounter {
558542

559543
/// Adds the warning to the counter, and writes out the fullMessage string
560544
/// if configured to do so.
561-
void addWarning(Warnable? e
562-
, PackageWarning kind, String message,
563-
String fullMessage) {
545+
void addWarning(
546+
Warnable? e, PackageWarning kind, String message, String fullMessage) {
564547
assert(!hasWarning(e, kind, message));
565548
// TODO(jcollins-g): Make addWarning not accept nulls for element.
566549
PackageWarningOptionContext config =

test/documentation_comment_test.dart

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -763,72 +763,6 @@ Text.
763763
);
764764
}
765765

766-
void test_fencedCodeBlockDoesNotSpecifyLanguage() async {
767-
await writePackageWithCommentedLibrary('''
768-
/// ```
769-
/// void main() {}
770-
/// ```
771-
''');
772-
773-
expect(
774-
packageGraph.packageWarningCounter.hasWarning(
775-
libraryModel,
776-
PackageWarning.missingCodeBlockLanguage,
777-
'A fenced code block in Markdown should have a language specified'),
778-
isTrue,
779-
);
780-
}
781-
782-
void test_squigglyFencedCodeBlockDoesNotSpecifyLanguage() async {
783-
await writePackageWithCommentedLibrary('''
784-
/// ~~~
785-
/// void main() {}
786-
/// ~~~
787-
''');
788-
789-
expect(
790-
packageGraph.packageWarningCounter.hasWarning(
791-
libraryModel,
792-
PackageWarning.missingCodeBlockLanguage,
793-
'A fenced code block in Markdown should have a language specified'),
794-
isTrue,
795-
);
796-
}
797-
798-
void test_fencedCodeBlockDoesSpecifyLanguage() async {
799-
await writePackageWithCommentedLibrary('''
800-
/// ```dart
801-
/// void main() {}
802-
/// ```
803-
''');
804-
805-
expect(
806-
packageGraph.packageWarningCounter.hasWarning(
807-
libraryModel,
808-
PackageWarning.missingCodeBlockLanguage,
809-
'A fenced code block in Markdown should have a language specified'),
810-
isFalse,
811-
);
812-
}
813-
814-
void test_fencedBlockIsNotClosed() async {
815-
await writePackageWithCommentedLibrary('''
816-
/// ```
817-
/// A not closed fenced code block
818-
''');
819-
820-
expect(
821-
packageGraph.packageWarningCounter.hasWarning(
822-
libraryModel,
823-
PackageWarning.missingCodeBlockLanguage,
824-
'A fenced code block in Markdown should have a language specified'),
825-
isFalse,
826-
);
827-
}
828-
829-
Matcher hasDeprecatedWarning(String message) =>
830-
_HasWarning(PackageWarning.deprecated, message);
831-
832766
Matcher hasInvalidParameterWarning(String message) =>
833767
_HasWarning(PackageWarning.invalidParameter, message);
834768

0 commit comments

Comments
 (0)