Skip to content

Commit 7669da0

Browse files
committed
warn-if-undoc-enum-val option
#feat
1 parent bc809d5 commit 7669da0

File tree

5 files changed

+41
-0
lines changed

5 files changed

+41
-0
lines changed

docs/mrdocs.schema.json

+10
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,16 @@
460460
"title": "Warn if documentation has errors",
461461
"type": "boolean"
462462
},
463+
"warn-if-undoc-enum-val": {
464+
"default": true,
465+
"description": "When set to `true`, MrDocs outputs a warning message if an enum value is not documented.",
466+
"enum": [
467+
true,
468+
false
469+
],
470+
"title": "Warn if enum values are not documented",
471+
"type": "boolean"
472+
},
463473
"warn-if-undocumented": {
464474
"default": true,
465475
"description": "When set to `true`, MrDocs outputs a warning message if a symbol that passes all filters is not documented.",

src/lib/Lib/ConfigOptions.json

+7
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,13 @@
499499
"details": "When set to `true`, MrDocs outputs a warning message if a named function parameter is not documented.",
500500
"type": "bool",
501501
"default": true
502+
},
503+
{
504+
"name": "warn-if-undoc-enum-val",
505+
"brief": "Warn if enum values are not documented",
506+
"details": "When set to `true`, MrDocs outputs a warning message if an enum value is not documented.",
507+
"type": "bool",
508+
"default": true
502509
}
503510
]
504511
},

src/lib/Metadata/Finalizers/JavadocFinalizer.cpp

+20
Original file line numberDiff line numberDiff line change
@@ -517,6 +517,7 @@ emitWarnings() const
517517
warnUndocumented();
518518
warnDocErrors();
519519
warnNoParamDocs();
520+
warnUndocEnumValues();
520521
}
521522

522523
void
@@ -683,5 +684,24 @@ warnNoParamDocs(FunctionInfo const& I) const
683684
}
684685
}
685686

687+
void
688+
JavadocFinalizer::
689+
warnUndocEnumValues() const
690+
{
691+
MRDOCS_CHECK_OR(corpus_.config->warnIfUndocEnumVal);
692+
for (auto const& I : corpus_.info_)
693+
{
694+
MRDOCS_CHECK_OR_CONTINUE(I->isEnumConstant());
695+
MRDOCS_CHECK_OR_CONTINUE(I->Extraction == ExtractionMode::Regular);
696+
MRDOCS_CHECK_OR_CONTINUE(!I->javadoc);
697+
auto primaryLoc = getPrimaryLocation(*I);
698+
warn(
699+
"{}:{}\n"
700+
"{}: Missing documentation for enum value",
701+
primaryLoc->FullPath,
702+
primaryLoc->LineNumber,
703+
corpus_.Corpus::qualifiedName(*I));
704+
}
705+
}
686706

687707
} // clang::mrdocs

src/lib/Metadata/Finalizers/JavadocFinalizer.hpp

+3
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,9 @@ class JavadocFinalizer
187187

188188
void
189189
warnNoParamDocs(FunctionInfo const& I) const;
190+
191+
void
192+
warnUndocEnumValues() const;
190193
};
191194

192195
} // clang::mrdocs
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
warn-if-undoc-enum-val: false

0 commit comments

Comments
 (0)