From c9f7663bc339f04425da42af7141ac0665b1c2f2 Mon Sep 17 00:00:00 2001 From: alandefreitas Date: Tue, 28 Jan 2025 12:03:56 -0300 Subject: [PATCH] trace log level #feat --- CMakeLists.txt | 4 ++-- docs/mrdocs.schema.json | 2 +- include/mrdocs/Support/Error.hpp | 18 +++++++++++++++--- src/lib/AST/ASTVisitor.cpp | 2 +- src/lib/AST/ClangHelpers.hpp | 2 +- src/lib/Lib/ConfigOptions.json | 2 +- src/lib/Support/Error.cpp | 6 ++++-- src/lib/Support/Error.hpp | 6 ++---- 8 files changed, 27 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a31af70c0..1c6f9cb86 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -401,7 +401,7 @@ if (MRDOCS_BUILD_TESTS) "--stdlib-includes=${LIBCXX_DIR}" "--stdlib-includes=${STDLIB_INCLUDE_DIR}" "--libc-includes=${CMAKE_SOURCE_DIR}/share/mrdocs/headers/libc-stubs" - --report=2 + --report=3 ) foreach (action IN ITEMS test create update) add_custom_target( @@ -416,7 +416,7 @@ if (MRDOCS_BUILD_TESTS) "--stdlib-includes=${LIBCXX_DIR}" "--stdlib-includes=${STDLIB_INCLUDE_DIR}" "--libc-includes=${CMAKE_SOURCE_DIR}/share/mrdocs/headers/libc-stubs" - --report=2 + --report=3 DEPENDS mrdocs-test ) endforeach () diff --git a/docs/mrdocs.schema.json b/docs/mrdocs.schema.json index f92abfd40..6b6bdc21e 100644 --- a/docs/mrdocs.schema.json +++ b/docs/mrdocs.schema.json @@ -239,7 +239,7 @@ "report": { "default": 1, "description": "The reporting level determines the amount of information displayed during the generation of the documentation. The levels are: 0 - no output, 1 - errors only, 2 - errors and warnings, 3 - errors, warnings, and information, 4 - errors, warnings, information, and debug information.", - "maximum": 4, + "maximum": 5, "minimum": 0, "title": "The minimum reporting level: 0 to 4", "type": "integer" diff --git a/include/mrdocs/Support/Error.hpp b/include/mrdocs/Support/Error.hpp index 65450e4ba..475f1ea82 100644 --- a/include/mrdocs/Support/Error.hpp +++ b/include/mrdocs/Support/Error.hpp @@ -2665,7 +2665,8 @@ namespace report { */ enum class Level { - debug = 0, + trace = 0, + debug, info, warn, error, @@ -2676,6 +2677,7 @@ enum class Level */ struct Results { + std::size_t traceCount; std::size_t debugCount; std::size_t infoCount; std::size_t warnCount; @@ -2699,8 +2701,7 @@ results; */ MRDOCS_DECL void -setMinimumLevel( - Level level) noexcept; +setMinimumLevel(Level level) noexcept; MRDOCS_DECL Level @@ -2825,6 +2826,17 @@ log( std::forward(args)...); } +/** Report a message to the console. +*/ +template +void +trace( + Located format, + Args&&... args) +{ + return log(Level::trace, format, std::forward(args)...); +} + /** Report a message to the console. */ template diff --git a/src/lib/AST/ASTVisitor.cpp b/src/lib/AST/ASTVisitor.cpp index 150f1d2ea..5b02b8a87 100644 --- a/src/lib/AST/ASTVisitor.cpp +++ b/src/lib/AST/ASTVisitor.cpp @@ -2594,7 +2594,7 @@ checkFileFilters(std::string_view const symbolPath) const ASTVisitor::ExtractionInfo ASTVisitor:: -checkSymbolFilters(Decl const* D, bool AllowParent) +checkSymbolFilters(Decl const* D, bool const AllowParent) { // Use the cache if (auto const it = extraction_.find(D); it != extraction_.end()) diff --git a/src/lib/AST/ClangHelpers.hpp b/src/lib/AST/ClangHelpers.hpp index b99c71b65..f48e3d71f 100644 --- a/src/lib/AST/ClangHelpers.hpp +++ b/src/lib/AST/ClangHelpers.hpp @@ -972,7 +972,7 @@ namespace detail { #define MRDOCS_SYMBOL_TRACE(D, C) \ SmallString<256> MRDOCS_SYMBOL_TRACE_UNIQUE_NAME; \ detail::printTraceName(D, C, MRDOCS_SYMBOL_TRACE_UNIQUE_NAME); \ - report::debug("{}", std::string_view(MRDOCS_SYMBOL_TRACE_UNIQUE_NAME.str())) + report::trace("{}", std::string_view(MRDOCS_SYMBOL_TRACE_UNIQUE_NAME.str())) #endif } // clang::mrdocs diff --git a/src/lib/Lib/ConfigOptions.json b/src/lib/Lib/ConfigOptions.json index 436499958..b4beca61e 100644 --- a/src/lib/Lib/ConfigOptions.json +++ b/src/lib/Lib/ConfigOptions.json @@ -368,7 +368,7 @@ "type": "unsigned", "default": 1, "min-value": 0, - "max-value": 4 + "max-value": 5 }, { "name": "ignore-map-errors", diff --git a/src/lib/Support/Error.cpp b/src/lib/Support/Error.cpp index 70a3fb2c3..9a79a281b 100644 --- a/src/lib/Support/Error.cpp +++ b/src/lib/Support/Error.cpp @@ -186,8 +186,7 @@ print_impl( } void -setMinimumLevel( - Level level) noexcept +setMinimumLevel(Level const level) noexcept { level_ = level; } @@ -288,6 +287,9 @@ call_impl( } switch(level) { + case Level::trace: + ++results.traceCount; + break; case Level::debug: ++results.debugCount; break; diff --git a/src/lib/Support/Error.hpp b/src/lib/Support/Error.hpp index 423e97d64..897558236 100644 --- a/src/lib/Support/Error.hpp +++ b/src/lib/Support/Error.hpp @@ -20,8 +20,7 @@ #include #include -namespace clang { -namespace mrdocs { +namespace clang::mrdocs { namespace report { @@ -129,8 +128,7 @@ call( } // report -} // mrdocs -} // clang +} // clang::mrdocs template<> struct fmt::formatter