Fixed skipping using_namespace when generating packages
This commit is contained in:
@@ -281,9 +281,14 @@ void generator::generate(
|
|||||||
void generator::generate(const package &p, std::ostream &ostr,
|
void generator::generate(const package &p, std::ostream &ostr,
|
||||||
std::ostream &relationships_ostr) const
|
std::ostream &relationships_ostr) const
|
||||||
{
|
{
|
||||||
|
const auto &uns = m_config.using_namespace();
|
||||||
|
|
||||||
if (m_config.generate_packages()) {
|
if (m_config.generate_packages()) {
|
||||||
LOG_DBG("Generating package {}", p.name());
|
LOG_DBG("Generating package {}", p.name());
|
||||||
|
|
||||||
|
// Don't generate packages from namespaces filtered out by
|
||||||
|
// using_namespace
|
||||||
|
if (!uns.starts_with(p.full_name(false))) {
|
||||||
ostr << "package [" << p.name() << "] ";
|
ostr << "package [" << p.name() << "] ";
|
||||||
ostr << "as " << p.alias();
|
ostr << "as " << p.alias();
|
||||||
|
|
||||||
@@ -295,6 +300,7 @@ void generator::generate(const package &p, std::ostream &ostr,
|
|||||||
|
|
||||||
ostr << " {" << '\n';
|
ostr << " {" << '\n';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (const auto &subpackage : p) {
|
for (const auto &subpackage : p) {
|
||||||
if (dynamic_cast<package *>(subpackage.get())) {
|
if (dynamic_cast<package *>(subpackage.get())) {
|
||||||
@@ -316,8 +322,12 @@ void generator::generate(const package &p, std::ostream &ostr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (m_config.generate_packages()) {
|
if (m_config.generate_packages()) {
|
||||||
|
// Don't generate packages from namespaces filtered out by
|
||||||
|
// using_namespace
|
||||||
|
if (!uns.starts_with(p.full_name(false))) {
|
||||||
ostr << "}" << '\n';
|
ostr << "}" << '\n';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
generate_notes(ostr, p);
|
generate_notes(ostr, p);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,9 +41,8 @@ std::string method_parameter::to_string(
|
|||||||
const common::model::namespace_ &using_namespace) const
|
const common::model::namespace_ &using_namespace) const
|
||||||
{
|
{
|
||||||
using namespace clanguml::util;
|
using namespace clanguml::util;
|
||||||
auto type_ns = common::model::namespace_{type()}
|
auto type_ns =
|
||||||
.relative_to(using_namespace)
|
using_namespace.relative(common::model::namespace_{type()}.to_string());
|
||||||
.to_string();
|
|
||||||
if (default_value().empty())
|
if (default_value().empty())
|
||||||
return fmt::format("{} {}", type_ns, name());
|
return fmt::format("{} {}", type_ns, name());
|
||||||
|
|
||||||
|
|||||||
@@ -66,6 +66,9 @@ void generator::generate(const package &p, std::ostream &ostr) const
|
|||||||
|
|
||||||
const auto &uns = m_config.using_namespace();
|
const auto &uns = m_config.using_namespace();
|
||||||
|
|
||||||
|
// Don't generate packages from namespaces filtered out by
|
||||||
|
// using_namespace
|
||||||
|
if (!uns.starts_with(p.full_name(false))) {
|
||||||
ostr << "package [" << p.name() << "] ";
|
ostr << "package [" << p.name() << "] ";
|
||||||
ostr << "as " << p.alias();
|
ostr << "as " << p.alias();
|
||||||
|
|
||||||
@@ -76,12 +79,15 @@ void generator::generate(const package &p, std::ostream &ostr) const
|
|||||||
ostr << " " << p.style();
|
ostr << " " << p.style();
|
||||||
|
|
||||||
ostr << " {" << '\n';
|
ostr << " {" << '\n';
|
||||||
|
}
|
||||||
|
|
||||||
for (const auto &subpackage : p) {
|
for (const auto &subpackage : p) {
|
||||||
generate(dynamic_cast<const package &>(*subpackage), ostr);
|
generate(dynamic_cast<const package &>(*subpackage), ostr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!uns.starts_with(p.full_name(false))) {
|
||||||
ostr << "}" << '\n';
|
ostr << "}" << '\n';
|
||||||
|
}
|
||||||
|
|
||||||
generate_notes(ostr, p);
|
generate_notes(ostr, p);
|
||||||
}
|
}
|
||||||
@@ -92,12 +98,10 @@ void generator::generate(std::ostream &ostr) const
|
|||||||
|
|
||||||
generate_plantuml_directives(ostr, m_config.puml().before);
|
generate_plantuml_directives(ostr, m_config.puml().before);
|
||||||
|
|
||||||
if (m_config.should_include_entities("packages")) {
|
|
||||||
for (const auto &p : m_model) {
|
for (const auto &p : m_model) {
|
||||||
generate(dynamic_cast<package &>(*p), ostr);
|
generate(dynamic_cast<package &>(*p), ostr);
|
||||||
ostr << '\n';
|
ostr << '\n';
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Process package relationships
|
// Process package relationships
|
||||||
for (const auto &p : m_model) {
|
for (const auto &p : m_model) {
|
||||||
|
|||||||
Reference in New Issue
Block a user