/// <summary> /// return the list of undocumented types. /// </summary> /// <param name="declaration">the method declaration.</param> /// <returns>a string containing the missing parameters.</returns> private string GetUndocumentedTypes(MethodDeclarationSyntax declaration) { var commentSyntax = declaration.GetDocumentationCommentTriviaSyntax(); var parameters = declaration .TypeParameterList ?.Parameters .Select(_ => _.Identifier.Text) .ToArray(); var documentedParameter = commentSyntax .GetTypeParameterDocumentationElements() .Where(_ => _.GetXmlTextSyntaxLines().Any()) .ToArray() .GetParameterNames(); // check missing parameters. var missing = parameters .Except(documentedParameter) .Select(_ => $"'{_}'") .ToArray(); if (missing.Any()) return $"missing {string.Join(", ", missing)}"; // check extra parameters. var extra = documentedParameter .Except(parameters) .Select(_ => $"'{_}'") .ToArray(); if (extra.Any()) return $"additional {string.Join(", ", extra)}"; if (!declaration.HasVoidReturnType() && commentSyntax.GetReturnDocumentationElement() == null) return "missing return value documentation"; return null; }
/// <summary> /// Validate that the return value is present if necessary. /// </summary> /// <param name="declaration">the method declaration syntax.</param> /// <returns>true if the return value is correctly documented.</returns> private bool ValidateReturnValue(MethodDeclarationSyntax declaration) { if (declaration.HasVoidReturnType()) return true; // void is valid regardless, return declaration .GetDocumentationCommentTriviaSyntax() .GetReturnDocumentationElement() != null; }