diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/build_engine/expression/configuration.hpp | 2 | ||||
-rw-r--r-- | src/buildtool/build_engine/expression/expression.cpp | 3 | ||||
-rw-r--r-- | src/buildtool/build_engine/expression/expression.hpp | 1 |
3 files changed, 5 insertions, 1 deletions
diff --git a/src/buildtool/build_engine/expression/configuration.hpp b/src/buildtool/build_engine/expression/configuration.hpp index 5d0b9c2a..3306d293 100644 --- a/src/buildtool/build_engine/expression/configuration.hpp +++ b/src/buildtool/build_engine/expression/configuration.hpp @@ -47,10 +47,10 @@ class Configuration { size_t actual_width = width - prefix.size(); for (auto const& [key, value] : expr_->Map()) { std::string key_str = Expression{key}.ToString(); - std::string val_str = value->ToString(); if (actual_width > key_str.size() + 3) { ss << prefix << key_str << " : "; size_t remain = actual_width - key_str.size() - 3; + std::string val_str = value->ToAbbrevString(remain); if (val_str.size() >= remain) { ss << val_str.substr(0, remain - 3) << "..."; } diff --git a/src/buildtool/build_engine/expression/expression.cpp b/src/buildtool/build_engine/expression/expression.cpp index 6891d7ab..65077efe 100644 --- a/src/buildtool/build_engine/expression/expression.cpp +++ b/src/buildtool/build_engine/expression/expression.cpp @@ -147,6 +147,9 @@ auto Expression::ToString() const -> std::string { return ToJson().dump(); } +[[nodiscard]] auto Expression::ToAbbrevString(size_t len) const -> std::string { + return AbbreviateJson(ToJson(), len); +} // NOLINTNEXTLINE(misc-no-recursion) auto Expression::ToHash() const noexcept -> std::string { return hash_.SetOnceAndGet([this] { return ComputeHash(); }); diff --git a/src/buildtool/build_engine/expression/expression.hpp b/src/buildtool/build_engine/expression/expression.hpp index 68dddb10..334dfb0d 100644 --- a/src/buildtool/build_engine/expression/expression.hpp +++ b/src/buildtool/build_engine/expression/expression.hpp @@ -212,6 +212,7 @@ class Expression { -> nlohmann::json; [[nodiscard]] auto IsCacheable() const -> bool; [[nodiscard]] auto ToString() const -> std::string; + [[nodiscard]] auto ToAbbrevString(size_t len) const -> std::string; [[nodiscard]] auto ToHash() const noexcept -> std::string; [[nodiscard]] auto ToIdentifier() const noexcept -> std::string { return ToHexString(ToHash()); |