diff --git a/src/Logger.hpp b/src/Logger.hpp index 0b3ad0b8c..9a2270c39 100644 --- a/src/Logger.hpp +++ b/src/Logger.hpp @@ -25,6 +25,27 @@ enum class Level : uint8_t { Trace = 5, // -vv }; +// FIXME: duplicate code in Rustify/Tests.hpp but don't want to include it here. +// Maybe wait for modules to be stable? +constexpr std::string_view +prettifyFuncName(std::string_view func) noexcept { + if (func.empty()) { + return func; + } + + const size_t end = func.find_last_of('('); + if (end == std::string_view::npos) { + return func; + } + func = func.substr(0, end); + + const size_t start = func.find_last_of(' '); + if (start == std::string_view::npos) { + return func; + } + return func.substr(start + 1); +} + template concept HeadProcessor = std::is_nothrow_invocable_v && Display>; @@ -118,7 +139,8 @@ class Logger { level, [lvlStr](const std::string_view func) noexcept { return fmt::format( - "{}Poac {} {}{} ", gray("["), lvlStr, func, gray("]") + "{}Poac {} {}{} ", gray("["), lvlStr, prettifyFuncName(func), + gray("]") ); }, func, fmt, std::forward(args)...