Initial mermaid class diagram support

This commit is contained in:
Bartek Kryza
2023-09-05 00:04:05 +02:00
parent e8235805f8
commit 6822930a12
13 changed files with 1747 additions and 1 deletions

View File

@@ -19,6 +19,7 @@
#include "class_diagram/generators/json/class_diagram_generator.h"
#include "class_diagram/generators/plantuml/class_diagram_generator.h"
#include "class_diagram/generators/mermaid/class_diagram_generator.h"
#include "cli/cli_handler.h"
#include "common/compilation_database.h"
#include "common/generators/generators.h"
@@ -105,6 +106,9 @@ struct plantuml_generator_tag {
struct json_generator_tag {
inline static const std::string extension = "json";
};
struct mermaid_generator_tag {
inline static const std::string extension = "mmd";
};
/** @} */
/** @defgroup diagram_generator_t Diagram generator selector
@@ -114,6 +118,7 @@ struct json_generator_tag {
*
* @{
*/
// plantuml
template <typename DiagramConfig, typename GeneratorType>
struct diagram_generator_t;
template <>
@@ -136,6 +141,7 @@ struct diagram_generator_t<clanguml::config::include_diagram,
plantuml_generator_tag> {
using type = clanguml::include_diagram::generators::plantuml::generator;
};
// json
template <>
struct diagram_generator_t<clanguml::config::class_diagram,
json_generator_tag> {
@@ -156,6 +162,27 @@ struct diagram_generator_t<clanguml::config::include_diagram,
json_generator_tag> {
using type = clanguml::include_diagram::generators::json::generator;
};
// mermaid
template <>
struct diagram_generator_t<clanguml::config::class_diagram,
mermaid_generator_tag> {
using type = clanguml::class_diagram::generators::mermaid::generator;
};
//template <>
//struct diagram_generator_t<clanguml::config::sequence_diagram,
// mermaid_generator_tag> {
// using type = clanguml::sequence_diagram::generators::mermaid::generator;
//};
//template <>
//struct diagram_generator_t<clanguml::config::package_diagram,
// mermaid_generator_tag> {
// using type = clanguml::package_diagram::generators::mermaid::generator;
//};
//template <>
//struct diagram_generator_t<clanguml::config::include_diagram,
// mermaid_generator_tag> {
// using type = clanguml::include_diagram::generators::mermaid::generator;
//};
/** @} */
/**