From 7129c929eb00aa371900fa6ffebc204b82a3e513 Mon Sep 17 00:00:00 2001 From: Brett Date: Sun, 23 Feb 2025 23:41:34 -0500 Subject: [PATCH] some update --- CMakeLists.txt | 2 +- src/blt/parse/argparse_v2.cpp | 67 ++++++++++++++++++++++++++++------- 2 files changed, 56 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 43e57f2..23807ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.20) include(cmake/color.cmake) -set(BLT_VERSION 4.0.24) +set(BLT_VERSION 4.0.25) set(BLT_TARGET BLT) diff --git a/src/blt/parse/argparse_v2.cpp b/src/blt/parse/argparse_v2.cpp index 058495b..370a36e 100644 --- a/src/blt/parse/argparse_v2.cpp +++ b/src/blt/parse/argparse_v2.cpp @@ -91,7 +91,45 @@ namespace blt::argparse return std::vector{"./program", strings...}; } - template + class printer_mark_t + { + public: + void reset() + { + + } + + void next() + { + + } + + template + printer_mark_t& operator+=(T&& t) + { + + return *this; + } + private: + + }; + + class aligned_printer_t + { + public: + explicit aligned_printer_t(const size_t max_line_size = 60, const size_t spaces_per_tab = 4): max_line_size(max_line_size), + spaces_per_tab(spaces_per_tab) + { + } + + private: + std::string buffer; + size_t last_newline = 0; + size_t max_line_size; + size_t spaces_per_tab; + }; + + template void add(std::string& out, T&& value, size_t line_size = 60) { const auto lines = string::split(out, '\n'); @@ -243,7 +281,8 @@ namespace blt::argparse singleFlags[arg.get_flag()].emplace_back(arg.get_name()); else compoundFlags.emplace_back(arg, value); - } else + } + else compoundFlags.emplace_back(arg, value); } @@ -269,15 +308,18 @@ namespace blt::argparse add(usage, " "); add(usage, builder->m_metavar.value_or(string::toUpperCase(name.get_name()))); }; - std::visit(lambda_visitor{[&](const nargs_t) - { - lambda(); - }, [&](const int argc) - { - if (argc == 0) - return; - lambda(); - }}, builder->m_nargs); + std::visit(lambda_visitor{ + [&](const nargs_t) + { + lambda(); + }, + [&](const int argc) + { + if (argc == 0) + return; + lambda(); + } + }, builder->m_nargs); add(usage, "]"); if (i != compoundFlags.size() - 1) add(usage, " "); @@ -1153,7 +1195,8 @@ namespace blt::argparse { parser.parse(a6); BLT_ASSERT(false && "Subparser should throw an error when first positional is not a valid subparser"); - } catch (const std::exception&) + } + catch (const std::exception&) { }