From bbb2b2e4b6fa75ae7d81c03991ad855c8c50100d Mon Sep 17 00:00:00 2001 From: Ryota Sasaki <92205270+philip82148@users.noreply.github.com> Date: Tue, 4 Jun 2024 11:51:25 +0900 Subject: [PATCH] Improve readme (#39) * rename show_* -> * * update dump tests * rename cont_index -> index * update dump & color tests * update README.md * update readme test * update README.md * remove int_style10() manipulator * update dump test * update README.md * use CPP_DUMP_SET_OPTION() in readme code * update customize-dump.png * update test * fix conflict * tweak --- README.md | 1 - readme/auto-indent.cpp | 11 +++++- readme/customizable-colors.cpp | 44 +++++++++++++++--------- readme/customize-dump.cpp | 13 +++++-- readme/customize-dump.png | Bin 17791 -> 18054 bytes readme/formatting-with-manipulators.cpp | 11 ++++-- readme/introduction.cpp | 9 +++++ readme/no-es.cpp | 11 +++++- readme/supports-various-types.cpp | 9 +++++ readme/user-defined-class.cpp | 10 ++++++ readme/user-defined-class2.cpp | 10 ++++++ readme/user-defined-class3.cpp | 9 +++++ readme/user-defined-enum.cpp | 10 ++++++ test/txt/readme_customize-dump.txt | 12 +++---- 14 files changed, 131 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 968331d5..3b658083 100644 --- a/README.md +++ b/README.md @@ -251,7 +251,6 @@ log_label_func_t fixed_length(int min_width, int max_width, /** * Set a value to a variable in cpp_dump namespace. * You can also assign values to the variables directly. - * (See 'For competitive programming use' for details.) */ #define CPP_DUMP_SET_OPTION(variable, value) ``` diff --git a/readme/auto-indent.cpp b/readme/auto-indent.cpp index 7c1982c9..6604889a 100644 --- a/readme/auto-indent.cpp +++ b/readme/auto-indent.cpp @@ -1,12 +1,21 @@ #include #include +#define DEBUGGING +#ifdef DEBUGGING + #include "../dump.hpp" +namespace cp = cpp_dump; + +#else +#define cpp_dump(...) +#define CPP_DUMP_SET_OPTION(...) +#endif int main() { std::clog << std::endl; - cpp_dump::max_line_width = 100; + CPP_DUMP_SET_OPTION(max_line_width, 100); std::vector my_vector{ "This is a test string.", "This is a test string.", "This is a test string."}; diff --git a/readme/customizable-colors.cpp b/readme/customizable-colors.cpp index bb296094..d556d6cd 100644 --- a/readme/customizable-colors.cpp +++ b/readme/customizable-colors.cpp @@ -12,25 +12,37 @@ #include #include +#define DEBUGGING +#ifdef DEBUGGING + #include "../dump.hpp" +namespace cp = cpp_dump; + +#else +#define cpp_dump(...) +#define CPP_DUMP_SET_OPTION(...) +#endif int main() { - cpp_dump::es_value = { - "\x1b[02m", // log: dark - "\x1b[34m", // expression: blue - "\x1b[36m", // reserved: cyan - "\x1b[36m", // number: cyan - "\x1b[36m", // character: cyan - "\x1b[02m", // op: dark - "\x1b[32m", // identifier: green - "\x1b[36m", // member: cyan - "", // unsupported: default - { - "\x1b[33m", // bracket_by_depth[0]: yellow - "\x1b[35m", // bracket_by_depth[1]: magenta - "\x1b[36m", // bracket_by_depth[2]: cyan - }, - }; + CPP_DUMP_SET_OPTION( + es_value, + (cp::es_value_t{ + "\x1b[02m", // log: dark + "\x1b[34m", // expression: blue + "\x1b[36m", // reserved: cyan + "\x1b[36m", // number: cyan + "\x1b[36m", // character: cyan + "\x1b[02m", // op: dark + "\x1b[32m", // identifier: green + "\x1b[36m", // member: cyan + "", // unsupported: default + { + "\x1b[33m", // bracket_by_depth[0]: yellow + "\x1b[35m", // bracket_by_depth[1]: magenta + "\x1b[36m", // bracket_by_depth[2]: cyan + }, + }) + ); int my_int = 15; int *ptr = &my_int; diff --git a/readme/customize-dump.cpp b/readme/customize-dump.cpp index f5c44bd0..f689964b 100644 --- a/readme/customize-dump.cpp +++ b/readme/customize-dump.cpp @@ -3,7 +3,16 @@ #include #include +#define DEBUGGING +#ifdef DEBUGGING + #include "../dump.hpp" +namespace cp = cpp_dump; + +#else +#define cpp_dump(...) +#define CPP_DUMP_SET_OPTION(...) +#endif void my_func() { std::map my_map{{2, 6}, {4, 6}, {5, 3}}; @@ -18,7 +27,7 @@ int main() { std::vector> my_vector{{3, 5, 8, 9, 7}, {9, 3, 2, 3, 8}}; std::clog << "// Print the filename and line instead of [dump]" << std::endl; - cpp_dump::log_label_func = cpp_dump::log_label::filename(); + CPP_DUMP_SET_OPTION(log_label_func, cp::log_label::filename()); cpp_dump(my_vector); my_func(); @@ -26,7 +35,7 @@ int main() { std::clog << std::endl; std::clog << "// Print along with the function name" << std::endl; - cpp_dump::log_label_func = cpp_dump::log_label::filename(true); + CPP_DUMP_SET_OPTION(log_label_func, cp::log_label::filename(true)); cpp_dump(my_vector); my_func(); diff --git a/readme/customize-dump.png b/readme/customize-dump.png index 6920fae2d8f4d1507292e52cbc92b67ba4c92cc7..71307602ac6b09e34aa4ea76e71117ac3b38fd9a 100644 GIT binary patch literal 18054 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ØK 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 ruz&T%{9%dy(HsB2f`)R;o{6rSVLA*g>;at`1d #include -#include "../dump.hpp" +#define DEBUGGING +#ifdef DEBUGGING +#include "../dump.hpp" namespace cp = cpp_dump; +#else +#define cpp_dump(...) +#define CPP_DUMP_SET_OPTION(...) +#endif + int main() { std::clog << std::endl; @@ -37,7 +44,7 @@ int main() { std::clog << std::endl; // cont-index.png - cp::max_iteration_count = 5; + CPP_DUMP_SET_OPTION(max_iteration_count, 5); cpp_dump(some_huge_vector | cp::dec(2) | cp::index()); std::clog << std::endl; diff --git a/readme/introduction.cpp b/readme/introduction.cpp index 5287d4fd..a23f14f7 100644 --- a/readme/introduction.cpp +++ b/readme/introduction.cpp @@ -1,7 +1,16 @@ #include #include +#define DEBUGGING +#ifdef DEBUGGING + #include "../dump.hpp" +namespace cp = cpp_dump; + +#else +#define cpp_dump(...) +#define CPP_DUMP_SET_OPTION(...) +#endif int main() { std::clog << std::endl; diff --git a/readme/no-es.cpp b/readme/no-es.cpp index 5445ce56..fb645ad9 100644 --- a/readme/no-es.cpp +++ b/readme/no-es.cpp @@ -12,10 +12,19 @@ #include #include +#define DEBUGGING +#ifdef DEBUGGING + #include "../dump.hpp" +namespace cp = cpp_dump; + +#else +#define cpp_dump(...) +#define CPP_DUMP_SET_OPTION(...) +#endif int main() { - cpp_dump::es_style = cpp_dump::es_style_t::no_es; + CPP_DUMP_SET_OPTION(es_style, cp::es_style_t::no_es); int my_int = 15; int *ptr = &my_int; diff --git a/readme/supports-various-types.cpp b/readme/supports-various-types.cpp index 8b9fb7a4..8c3badd0 100644 --- a/readme/supports-various-types.cpp +++ b/readme/supports-various-types.cpp @@ -12,7 +12,16 @@ #include #include +#define DEBUGGING +#ifdef DEBUGGING + #include "../dump.hpp" +namespace cp = cpp_dump; + +#else +#define cpp_dump(...) +#define CPP_DUMP_SET_OPTION(...) +#endif int main() { int my_int = 15; diff --git a/readme/user-defined-class.cpp b/readme/user-defined-class.cpp index b9b1502c..59516e58 100644 --- a/readme/user-defined-class.cpp +++ b/readme/user-defined-class.cpp @@ -1,6 +1,16 @@ #include +#define DEBUGGING +#ifdef DEBUGGING + #include "../dump.hpp" +namespace cp = cpp_dump; + +#else +#define cpp_dump(...) +#define CPP_DUMP_SET_OPTION(...) +#define CPP_DUMP_DEFINE_EXPORT_OBJECT(...) +#endif struct class_A { int i; diff --git a/readme/user-defined-class2.cpp b/readme/user-defined-class2.cpp index f228de1c..21ebc972 100644 --- a/readme/user-defined-class2.cpp +++ b/readme/user-defined-class2.cpp @@ -1,6 +1,16 @@ #include +#define DEBUGGING +#ifdef DEBUGGING + #include "../dump.hpp" +namespace cp = cpp_dump; + +#else +#define cpp_dump(...) +#define CPP_DUMP_SET_OPTION(...) +#define CPP_DUMP_DEFINE_DANGEROUS_EXPORT_OBJECT(...) +#endif CPP_DUMP_DEFINE_DANGEROUS_EXPORT_OBJECT(i, str()); diff --git a/readme/user-defined-class3.cpp b/readme/user-defined-class3.cpp index d5d7a386..633c67b6 100644 --- a/readme/user-defined-class3.cpp +++ b/readme/user-defined-class3.cpp @@ -1,6 +1,15 @@ #include +#define DEBUGGING +#ifdef DEBUGGING + #include "../dump.hpp" +namespace cp = cpp_dump; + +#else +#define cpp_dump(...) +#define CPP_DUMP_SET_OPTION(...) +#endif struct class_A { int i; diff --git a/readme/user-defined-enum.cpp b/readme/user-defined-enum.cpp index 1f2638ac..58fa19df 100644 --- a/readme/user-defined-enum.cpp +++ b/readme/user-defined-enum.cpp @@ -1,6 +1,16 @@ #include +#define DEBUGGING +#ifdef DEBUGGING + #include "../dump.hpp" +namespace cp = cpp_dump; + +#else +#define cpp_dump(...) +#define CPP_DUMP_SET_OPTION(...) +#define CPP_DUMP_DEFINE_EXPORT_ENUM(...) +#endif enum class enum_A { a, b, c }; CPP_DUMP_DEFINE_EXPORT_ENUM(enum_A, enum_A::a, enum_A::b, enum_A::c); diff --git a/test/txt/readme_customize-dump.txt b/test/txt/readme_customize-dump.txt index ad7ca14d..32170dd0 100644 --- a/test/txt/readme_customize-dump.txt +++ b/test/txt/readme_customize-dump.txt @@ -1,17 +1,17 @@ // Print the filename and line instead of [dump] -[customize-dump.cpp:23] my_vector => [ +[customize-dump.cpp:32] my_vector => [ [ 3, 5, 8, 9, 7 ], [ 9, 3, 2, 3, 8 ] ] -[customize-dump.cpp:11] my_map => { 2: 6, 4: 6, 5: 3 } -[customize-dump.cpp:12] my_set => { 'A', 'e', 'l', 'p' } +[customize-dump.cpp:20] my_map => { 2: 6, 4: 6, 5: 3 } +[customize-dump.cpp:21] my_set => { 'A', 'e', 'l', 'p' } // Print along with the function name -[customize-dump.cpp:31 (main)] my_vector => [ +[customize-dump.cpp:40 (main)] my_vector => [ [ 3, 5, 8, 9, 7 ], [ 9, 3, 2, 3, 8 ] ] -[customize-dump.cpp:11 (my_func)] my_map => { 2: 6, 4: 6, 5: 3 } -[customize-dump.cpp:12 (my_func)] my_set => { 'A', 'e', 'l', 'p' } +[customize-dump.cpp:20 (my_func)] my_map => { 2: 6, 4: 6, 5: 3 } +[customize-dump.cpp:21 (my_func)] my_set => { 'A', 'e', 'l', 'p' }