From cfa8baa152625a75eee6b288f111b0d9bc790e5a Mon Sep 17 00:00:00 2001 From: Yeongjong Lee Date: Thu, 17 Oct 2019 14:32:29 -0300 Subject: [PATCH] mono: merge namespaces Summary: This patch merge namespaces to improve readablity. Before ``` namespace Efl { namespace Canvas { ``` After ``` namespace Efl.Canvas { ``` Test Plan: meson setup -Dbindings=mono,cxx -Dmono-beta=true Reviewers: lauromoura, Jaehyun_Cho Reviewed By: lauromoura Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10436 --- src/bin/eolian_mono/eolian/mono/name_helpers.hh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/bin/eolian_mono/eolian/mono/name_helpers.hh b/src/bin/eolian_mono/eolian/mono/name_helpers.hh index 08b2bc997a..df1405d9d4 100644 --- a/src/bin/eolian_mono/eolian/mono/name_helpers.hh +++ b/src/bin/eolian_mono/eolian/mono/name_helpers.hh @@ -501,15 +501,18 @@ bool open_namespaces(OutputIterator sink, std::vector namespaces, C { std::transform(namespaces.begin(), namespaces.end(), namespaces.begin(), managed_namespace); - auto open_namespace = *("namespace " << string << " {\n\n"); - return as_generator(open_namespace).generate(sink, namespaces, context); + std::string joined_namespace = join_namespaces(namespaces, '.'); + if (joined_namespace.empty()) return true; + joined_namespace.pop_back(); + + return as_generator("namespace " << string << " {\n").generate(sink, joined_namespace, context); } template bool close_namespaces(OutputIterator sink, std::vector const& namespaces, Context const& context) { - auto close_namespace = (lit("}") % "\n" ) << "\n\n"; - return as_generator(close_namespace).generate(sink, namespaces, context); + if (namespaces.empty()) return true; + return as_generator("}\n\n").generate(sink, attributes::unused, context); } std::string constructor_managed_name(std::string full_name)