From b8a649ff9314ddcf6f6ef1769d1962406cda81f3 Mon Sep 17 00:00:00 2001 From: Bartek Kryza Date: Wed, 6 Mar 2024 17:53:29 +0100 Subject: [PATCH] Updated clang-uml diagrams --- .clang-uml | 5 +++- uml/class/architecture_visitors_class.yml | 5 ++++ uml/class/class_model_class.yml | 4 +++ uml/class/diagram_element_hierarchy_class.yml | 5 +++- .../class_diagram_generator_sequence.yml | 8 ++++++ uml/sequence/cli_handle_options_sequence.yml | 4 ++- .../diagram_generate_generic_sequence.yml | 10 ++++++- uml/sequence/load_config_sequence.yml | 2 ++ uml/sequence/main_sequence.yml | 2 ++ ...ml_sequence_diagram_generator_sequence.yml | 28 +++++++++++++++++++ uml/sequence/template_builder_sequence.yml | 4 ++- 11 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 uml/sequence/plantuml_sequence_diagram_generator_sequence.yml diff --git a/.clang-uml b/.clang-uml index ec0124c5..ceef3fe2 100644 --- a/.clang-uml +++ b/.clang-uml @@ -2,6 +2,7 @@ compilation_database_dir: debug output_directory: docs/diagrams comment_parser: clang add_compile_flags: + - -fparse-all-comments - -Wno-deprecated-declarations remove_compile_flags: - -Wno-class-memaccess @@ -37,7 +38,7 @@ diagrams: include!: uml/class/stylable_element_hierarchy_class.yml source_location_hierarchy_class: include!: uml/class/source_location_hierarchy_class.yml - "filter_visitor_hierarchy_class": + filter_visitor_hierarchy_class: include!: uml/class/filter_visitor_hierarchy_class.yml diagram_filter_context_class: include!: uml/class/diagram_filter_context_class.yml @@ -76,6 +77,8 @@ diagrams: include!: uml/sequence/diagram_generate_generic_sequence.yml class_diagram_generator_sequence: include!: uml/sequence/class_diagram_generator_sequence.yml + plantuml_sequence_diagram_generator_sequence: + include!: uml/sequence/plantuml_sequence_diagram_generator_sequence.yml template_builder_sequence: include!: uml/sequence/template_builder_sequence.yml # Package diagrams diff --git a/uml/class/architecture_visitors_class.yml b/uml/class/architecture_visitors_class.yml index b12d9740..8b1ac9b2 100644 --- a/uml/class/architecture_visitors_class.yml +++ b/uml/class/architecture_visitors_class.yml @@ -12,3 +12,8 @@ include: exclude: access: [ public, protected, private ] relationships: [ dependency ] +plantuml: + style: + inheritance: up + before: + - left to right direction diff --git a/uml/class/class_model_class.yml b/uml/class/class_model_class.yml index b288516d..ee51c881 100644 --- a/uml/class/class_model_class.yml +++ b/uml/class/class_model_class.yml @@ -13,5 +13,9 @@ include: exclude: relationships: - dependency + access: + - public + - protected + - private using_namespace: - clanguml \ No newline at end of file diff --git a/uml/class/diagram_element_hierarchy_class.yml b/uml/class/diagram_element_hierarchy_class.yml index 97b4c691..72e0ed0a 100644 --- a/uml/class/diagram_element_hierarchy_class.yml +++ b/uml/class/diagram_element_hierarchy_class.yml @@ -23,4 +23,7 @@ exclude: - private - protected using_namespace: - - clanguml \ No newline at end of file + - clanguml +plantuml: + before: + - left to right direction diff --git a/uml/sequence/class_diagram_generator_sequence.yml b/uml/sequence/class_diagram_generator_sequence.yml index db9b8f7a..13990088 100644 --- a/uml/sequence/class_diagram_generator_sequence.yml +++ b/uml/sequence/class_diagram_generator_sequence.yml @@ -2,10 +2,18 @@ type: sequence title: PlantUML diagram generator sequence diagram glob: - src/class_diagram/generators/plantuml/*.cc +generate_condition_statements: true +generate_message_comments: true include: namespaces: - clanguml using_namespace: - clanguml::class_diagram::generators::plantuml +exclude: + elements: + - r: "clanguml::config::option.*" + - r: "clanguml::common::optional_ref.*" + namespaces: + - clanguml::util from: - function: "clanguml::common::generators::plantuml::generator::generate(std::ostream &) const" \ No newline at end of file diff --git a/uml/sequence/cli_handle_options_sequence.yml b/uml/sequence/cli_handle_options_sequence.yml index 0f326f36..48d04383 100644 --- a/uml/sequence/cli_handle_options_sequence.yml +++ b/uml/sequence/cli_handle_options_sequence.yml @@ -2,7 +2,8 @@ type: sequence title: CLI options handling sequence diagram combine_free_functions_into_file_participants: true generate_method_arguments: none -debug_mode: true +generate_condition_statements: true +generate_message_comments: true glob: - src/cli/cli_handler.cc - src/config/config.cc @@ -14,6 +15,7 @@ include: exclude: elements: - r: "clanguml::config::option.*" + - "clanguml::config::config" paths: - src/util/util.h callee_types: diff --git a/uml/sequence/diagram_generate_generic_sequence.yml b/uml/sequence/diagram_generate_generic_sequence.yml index 9463ed3d..c96c5623 100644 --- a/uml/sequence/diagram_generate_generic_sequence.yml +++ b/uml/sequence/diagram_generate_generic_sequence.yml @@ -1,7 +1,9 @@ type: sequence -title: Common sequence diagram generator sequence diagram +title: PlantUML sequence diagram generator sequence diagram combine_free_functions_into_file_participants: true generate_method_arguments: none +generate_condition_statements: true +generate_message_comments: true glob: - src/common/generators/generators.cc using_namespace: @@ -10,6 +12,12 @@ include: namespaces: - clanguml::common::generators exclude: + elements: + - r: ".*json.*" + - r: ".*mermaid.*" + - r: ".*class_diagram.*" + - r: ".*package_diagram.*" + - r: ".*include_diagram.*" paths: - src/common/model/source_location.h from: diff --git a/uml/sequence/load_config_sequence.yml b/uml/sequence/load_config_sequence.yml index 5ae1cb19..a3eac6c1 100644 --- a/uml/sequence/load_config_sequence.yml +++ b/uml/sequence/load_config_sequence.yml @@ -2,6 +2,8 @@ type: sequence title: Configuration file loading sequence diagram combine_free_functions_into_file_participants: true generate_method_arguments: none +generate_condition_statements: true +generate_message_comments: true glob: - src/config/config.cc - src/config/yaml_decoders.cc diff --git a/uml/sequence/main_sequence.yml b/uml/sequence/main_sequence.yml index c0721a0f..3d4e655f 100644 --- a/uml/sequence/main_sequence.yml +++ b/uml/sequence/main_sequence.yml @@ -4,6 +4,8 @@ title: main() function sequence diagram combine_free_functions_into_file_participants: true # Do not generate method or function arguments generate_method_arguments: none +generate_condition_statements: true +generate_message_comments: true # Parse only 1 translation unit for this diagram glob: - src/main.cc diff --git a/uml/sequence/plantuml_sequence_diagram_generator_sequence.yml b/uml/sequence/plantuml_sequence_diagram_generator_sequence.yml new file mode 100644 index 00000000..7997b7f2 --- /dev/null +++ b/uml/sequence/plantuml_sequence_diagram_generator_sequence.yml @@ -0,0 +1,28 @@ +type: sequence +title: PlantUML sequence diagram generator sequence diagram +combine_free_functions_into_file_participants: true +generate_method_arguments: none +generate_condition_statements: true +generate_message_comments: true +glob: + - src/sequence_diagram/generators/plantuml/sequence_diagram_generator.cc +using_namespace: + - clanguml +include: + namespaces: + - clanguml + elements: + - r: ".*generators.*" +exclude: + elements: + - r: ".*json.*" + - r: ".*mermaid.*" + - r: ".*class_diagram.*" + - r: ".*package_diagram.*" + - r: ".*include_diagram.*" + - r: "clanguml::config::option.*" + - r: "clanguml::common::optional_ref.*" + paths: + - src/common/model/source_location.h +from: + - function: "clanguml::sequence_diagram::generators::plantuml::generator::generate_diagram(std::ostream &) const" diff --git a/uml/sequence/template_builder_sequence.yml b/uml/sequence/template_builder_sequence.yml index 305bf45e..57f3d499 100644 --- a/uml/sequence/template_builder_sequence.yml +++ b/uml/sequence/template_builder_sequence.yml @@ -2,6 +2,8 @@ type: sequence title: Diagram element template builder sequence diagram combine_free_functions_into_file_participants: true generate_method_arguments: none +generate_condition_statements: true +generate_message_comments: true glob: - src/common/visitor/template_builder.cc include: @@ -16,4 +18,4 @@ exclude: using_namespace: - clanguml from: - - function: "clanguml::common::visitor::template_builder::build(common::model::template_element &,const clang::NamedDecl *,const clang::TemplateSpecializationType &,std::optional)" + - function: "clanguml::common::visitor::template_builder::build(common::model::template_element &,const clang::NamedDecl *,const clang::TemplateDecl *,const clang::ArrayRef,std::string,std::optional)"