Limit code block checking to only when not ignored (#2917)
diff --git a/lib/src/model/documentation_comment.dart b/lib/src/model/documentation_comment.dart
index 5aa082b..c940951 100644
--- a/lib/src/model/documentation_comment.dart
+++ b/lib/src/model/documentation_comment.dart
@@ -735,7 +735,15 @@
/// Analyze fenced code blocks present in the documentation comment,
/// warning if there is no language specified.
void _analyzeCodeBlocks(String docs) {
+ if (config.packageWarningOptions
+ .warningModes[PackageWarning.missingCodeBlockLanguage] ==
+ PackageWarningMode.ignore) {
+ return;
+ }
final results = _codeBlockPattern.allMatches(docs).toList(growable: false);
+ if (results.isEmpty) {
+ return;
+ }
final firstOfPair = <Match>[];
for (var i = 0; i < results.length; i++) {
if (i.isEven && i != results.length - 1) {
diff --git a/test/documentation_comment_test.dart b/test/documentation_comment_test.dart
index 1f722d1..aee4869 100644
--- a/test/documentation_comment_test.dart
+++ b/test/documentation_comment_test.dart
@@ -57,9 +57,6 @@
messageForMissingPackageMeta:
PubPackageMeta.messageForMissingPackageMeta,
);
- var optionSet = await DartdocOptionRoot.fromOptionGenerators(
- 'dartdoc', [createDartdocOptions], packageMetaProvider);
- optionSet.parseArguments([]);
packageConfigProvider = FakePackageConfigProvider();
// To build the package graph, we always ask package_config for a
// [PackageConfig] for the SDK directory. Put a dummy entry in.
@@ -69,12 +66,24 @@
projectRoot = utils.writePackage(
packageName, resourceProvider, packageConfigProvider);
projectRoot
+ .getChildAssumingFile('dartdoc_options.yaml')
+ .writeAsStringSync('''
+ dartdoc:
+ warnings:
+ - missing-code-block-language
+ ''');
+
+ projectRoot
.getChildAssumingFolder('lib')
.getChildAssumingFile('a.dart')
.writeAsStringSync('''
/// Documentation comment.
int x;
''');
+
+ var optionSet = await DartdocOptionRoot.fromOptionGenerators(
+ 'dartdoc', [createDartdocOptions], packageMetaProvider);
+ optionSet.parseArguments([]);
packageGraph = await utils.bootBasicPackage(
projectRoot.path, packageMetaProvider, packageConfigProvider,
additionalArguments: []);