Fixed skipping using_namespace when generating packages
This commit is contained in:
@@ -281,19 +281,25 @@ 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());
|
||||||
|
|
||||||
ostr << "package [" << p.name() << "] ";
|
// Don't generate packages from namespaces filtered out by
|
||||||
ostr << "as " << p.alias();
|
// using_namespace
|
||||||
|
if (!uns.starts_with(p.full_name(false))) {
|
||||||
|
ostr << "package [" << p.name() << "] ";
|
||||||
|
ostr << "as " << p.alias();
|
||||||
|
|
||||||
if (p.is_deprecated())
|
if (p.is_deprecated())
|
||||||
ostr << " <<deprecated>>";
|
ostr << " <<deprecated>>";
|
||||||
|
|
||||||
if (!p.style().empty())
|
if (!p.style().empty())
|
||||||
ostr << " " << p.style();
|
ostr << " " << p.style();
|
||||||
|
|
||||||
ostr << " {" << '\n';
|
ostr << " {" << '\n';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const auto &subpackage : p) {
|
for (const auto &subpackage : p) {
|
||||||
@@ -316,7 +322,11 @@ void generator::generate(const package &p, std::ostream &ostr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (m_config.generate_packages()) {
|
if (m_config.generate_packages()) {
|
||||||
ostr << "}" << '\n';
|
// Don't generate packages from namespaces filtered out by
|
||||||
|
// using_namespace
|
||||||
|
if (!uns.starts_with(p.full_name(false))) {
|
||||||
|
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,22 +66,28 @@ void generator::generate(const package &p, std::ostream &ostr) const
|
|||||||
|
|
||||||
const auto &uns = m_config.using_namespace();
|
const auto &uns = m_config.using_namespace();
|
||||||
|
|
||||||
ostr << "package [" << p.name() << "] ";
|
// Don't generate packages from namespaces filtered out by
|
||||||
ostr << "as " << p.alias();
|
// using_namespace
|
||||||
|
if (!uns.starts_with(p.full_name(false))) {
|
||||||
|
ostr << "package [" << p.name() << "] ";
|
||||||
|
ostr << "as " << p.alias();
|
||||||
|
|
||||||
if (p.is_deprecated())
|
if (p.is_deprecated())
|
||||||
ostr << " <<deprecated>>";
|
ostr << " <<deprecated>>";
|
||||||
|
|
||||||
if (!p.style().empty())
|
if (!p.style().empty())
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
ostr << "}" << '\n';
|
if (!uns.starts_with(p.full_name(false))) {
|
||||||
|
ostr << "}" << '\n';
|
||||||
|
}
|
||||||
|
|
||||||
generate_notes(ostr, p);
|
generate_notes(ostr, p);
|
||||||
}
|
}
|
||||||
@@ -92,11 +98,9 @@ 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
|
||||||
|
|||||||
Reference in New Issue
Block a user