Added comment support to inja templates in links and tooltips

This commit is contained in:
Bartek Kryza
2022-03-23 21:59:02 +01:00
parent 8c0486240f
commit eed9fcaf66
7 changed files with 145 additions and 22 deletions

View File

@@ -3,30 +3,50 @@
namespace clanguml {
namespace t00002 {
/// This is class A
class A {
public:
/// Abstract foo_a
virtual void foo_a() = 0;
/// Abstract foo_c
virtual void foo_c() = 0;
};
/// This is class B
class B : public A {
public:
virtual void foo_a() override { }
};
/// @brief This is class C - class C has a long comment
///
/// Vivamus integer non suscipit taciti mus etiam at primis tempor sagittis sit,
/// euismod libero facilisi aptent elementum felis blandit cursus gravida sociis
/// erat ante, eleifend lectus nullam dapibus netus feugiat curae curabitur est
/// ad.
class C : public A {
public:
/// Do nothing unless override is provided
virtual void foo_c() override { }
};
/// This is class D
/// which is a little like B
/// and a little like C
class D : public B, public C {
public:
/**
* Forward foo_a
*/
void foo_a() override
{
for (auto a : as)
a->foo_a();
}
/**
* Forward foo_c
*/
void foo_c() override
{
for (auto a : as)
@@ -34,6 +54,7 @@ public:
}
private:
/// All the A pointers
std::vector<A *> as;
};
@@ -44,12 +65,18 @@ private:
//
class E : virtual public B, virtual public C {
public:
///
/// Forward foo_a
///
void foo_a() override
{
for (auto a : as)
a->foo_a();
}
///
/// Forward foo_c
///
void foo_c() override
{
for (auto a : as)
@@ -57,6 +84,7 @@ public:
}
private:
/// All the A pointers
std::vector<A *> as;
};
}

View File

@@ -24,9 +24,8 @@ void inject_diagram_options(std::shared_ptr<clanguml::config::diagram> diagram)
{
// Inject links config to all test cases
clanguml::config::generate_links_config links_config{
"https://github.com/bkryza/clang-uml/blob/{{ git.commit }}/{{ "
"element.source.path }}#L{{ element.source.line }}",
"{{ element.name }}"};
R"(https://github.com/bkryza/clang-uml/blob/{{ git.commit }}/{{ element.source.path }}#L{{ element.source.line }})",
R"({% if "comment" in element %}{{ abbrv(trim(replace(element.comment, "\n+", " ")), 256) }}{% else %}{{ element.name }}{% endif %})"};
diagram->generate_links.set(links_config);
}