From 160b0c49d2adc378ef721b9e121afadacd5febe0 Mon Sep 17 00:00:00 2001 From: Yaraslau Tamashevich Date: Sat, 26 Oct 2024 13:20:40 +0300 Subject: [PATCH] Transform camelCase into snake_case for docs --- src/contour/Config.h | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/contour/Config.h b/src/contour/Config.h index 2d38929ecb..3c41a3b254 100644 --- a/src/contour/Config.h +++ b/src/contour/Config.h @@ -1382,10 +1382,23 @@ struct DocumentationWriter: Writer template std::string process(std::string_view doc, std::string_view name, T... val) { - return format("### `{}`\n" - "{}\n", - name, - format(replaceCommentPlaceholder(std::string { doc }), val...)); + return format( + "### `{}`\n" + "{}\n", + [](std::string_view name) -> std::string { + // camelCase into snake_case + auto result = std::string { name }; + for (auto i = 0u; i < result.size(); ++i) + { + if (std::isupper(result[i])) + { + result.insert(i, 1, '_'); + result[i + 1] = static_cast(std::tolower(result[i + 1])); + } + } + return result; + }(name), + format(replaceCommentPlaceholder(std::string { doc }), val...)); } template