diff --git a/include/aidge/utils/DynamicAttributes.hpp b/include/aidge/utils/DynamicAttributes.hpp index be3bc1a97caa9062308396e378c5ec38c80126e4..352ea0f50af6613dd89ea129472cb2ba35ce424e 100644 --- a/include/aidge/utils/DynamicAttributes.hpp +++ b/include/aidge/utils/DynamicAttributes.hpp @@ -19,7 +19,6 @@ #include <cassert> #include <string> #include <typeindex> -#include <regex> #include "aidge/utils/future_std/any.hpp" #include "aidge/utils/Attributes.hpp" @@ -486,14 +485,24 @@ struct fmt::formatter<T, Char, std::enable_if_t<std::is_convertible<T*, Aidge:: template<typename FormatContext> inline auto format(const Aidge::Attributes& attrs, FormatContext& ctx) const { + auto indent = [](const std::string& subAttrs, const std::string& prefix = " ") { + std::string result(prefix); + for (size_t i = 0; i < subAttrs.length(); ++i) { + result += subAttrs[i]; + if (subAttrs[i] == '\n') { + result += prefix; + } + } + return result; + }; + std::string attrsStr; for (const auto& attr : attrs.getAttrs()) { const auto anyUtilsIt = Aidge::DynamicAttributes::mAnyUtils.find(attr.second.type()); if (attr.second.type() == typeid(Aidge::DynamicAttributes)) { auto subAttrs = anyUtilsIt->second->str(attr.second); - subAttrs = std::regex_replace(subAttrs, std::regex("(^|\n)"), "$1 "); - attrsStr += fmt::format("{}:\n{}\n", attr.first, subAttrs); + attrsStr += fmt::format("{}:\n{}\n", attr.first, indent(subAttrs)); } else { if (anyUtilsIt != Aidge::DynamicAttributes::mAnyUtils.end()) {