Added initial Doxygen config
This commit is contained in:
@@ -1,5 +1,20 @@
|
||||
@mainpage clang-uml
|
||||
|
||||
# Documentation
|
||||
|
||||
`clang-uml` is an automatic C++ to UML class, sequence, package and include diagram generator, driven by
|
||||
YAML configuration files. The main idea behind the
|
||||
project is to easily maintain up-to-date diagrams within a code-base or document
|
||||
legacy code. The configuration file or files for `clang-uml` define the
|
||||
types and contents of each generated diagram.
|
||||
The diagrams can be generated in [PlantUML](https://plantuml.com) and JSON formats.
|
||||
|
||||
`clang-uml` currently supports C++ up to version 17 with partial support for C++ 20.
|
||||
|
||||
To see what `clang-uml` can do, checkout the diagrams generated for unit
|
||||
test cases [here](./test_cases.md) or examples in
|
||||
[clang-uml-examples](https://github.com/bkryza/clang-uml-examples) repository.
|
||||
|
||||
* [Quick start](./quick_start.md)
|
||||
* [Installation](./installation.md)
|
||||
* Generating diagrams
|
||||
@@ -18,3 +33,6 @@
|
||||
* [Doxygen integration](./doxygen_integration.md)
|
||||
* [Test cases documentation](./test_cases.md)
|
||||
* [Troubleshooting](./troubleshooting.md)
|
||||
* Development
|
||||
* [Architecture](./architecture.md)
|
||||
* [Contributing](../CONTRIBUTING.md)
|
||||
|
||||
@@ -2,18 +2,18 @@
|
||||
|
||||
<!-- toc -->
|
||||
|
||||
* [`namespaces` _[string or regex]_](#namespaces-_string-or-regex_)
|
||||
* [`elements` _[string or regex]_](#elements-_string-or-regex_)
|
||||
* [`element_types`](#element_types)
|
||||
* [`paths` _[string or glob]_](#paths-_string-or-glob_)
|
||||
* [`context` _[string or regex]_](#context-_string-or-regex_)
|
||||
* [`relationships`](#relationships)
|
||||
* [`subclasses` _[string or regex]_](#subclasses-_string-or-regex_)
|
||||
* [`parents` _[string or regex]_](#parents-_string-or-regex_)
|
||||
* [`specializations` _[string or regex]_](#specializations-_string-or-regex_)
|
||||
* [`access`](#access)
|
||||
* [`method_types`](#method_types)
|
||||
* [`dependants` and `dependencies` _[string or regex]_](#dependants-and-dependencies-_string-or-regex_)
|
||||
* [namespaces](#namespaces)
|
||||
* [elements](#elements)
|
||||
* [element_types](#element_types)
|
||||
* [paths](#paths)
|
||||
* [context](#context)
|
||||
* [relationships](#relationships)
|
||||
* [subclasses](#subclasses)
|
||||
* [parents](#parents)
|
||||
* [specializations](#specializations)
|
||||
* [access](#access)
|
||||
* [method_types](#method_types)
|
||||
* [dependants and dependencies](#dependants-and-dependencies)
|
||||
|
||||
<!-- tocstop -->
|
||||
|
||||
@@ -55,29 +55,29 @@ exclude:
|
||||
|
||||
The following table specifies the values allowed in each filter:
|
||||
|
||||
| Filter name | Possible values | Example values |
|
||||
|-------------------|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `namespaces` | Qualified name or regex | - `ns1::ns2::ClassA` <br/>- `r: '.*detail.*'` |
|
||||
| `elements` | Qualified name or regex | - `ns1::ns2::ClassA` <br/>- `r: '.*detail.*'` |
|
||||
| `element_types` | Types of diagram elements | - `class`<br/>- `enum`<br/>- `concept` |
|
||||
| `paths` | File or dir path or glob pattern | - `src/dir1`<br/>- `src/dir2/a.cpp`<br/>- `src/dir3/*.cpp` |
|
||||
| `context` | Qualified name or regex | - `ns1::ns2::ClassA`<br/>- `r: 'ns1::ns2::ClassA.+'` |
|
||||
| `relationships` | Type of relationship | - `inheritance`<br/>- `composition`<br/>- `aggregation`<br/>- `ownership`<br/>- `association`<br/>- `instantiation`<br/>- `friendship`<br/>- `dependency` |
|
||||
| `subclasses` | Qualified name or regex | - `ns1::ns2::ClassA`<br/>- `r: 'ns1::ns2::ClassA.+'` |
|
||||
| `parents` | Qualified name or regex | - `ns1::ns2::ClassA`<br/>- `r: 'ns1::ns2::ClassA.+'` |
|
||||
| `specializations` | Qualified name or regex | - `ns1::ns2::ClassA`<br/>- `r: 'ns1::ns2::ClassA.+'` |
|
||||
| `access` | Method or member access scope | - `public`<br/>- `protected`<br/>- `private` |
|
||||
| `method_types` | Type of class method | - `constructor`<br/>- `destructor`<br/>- `assignment`<br/>- `operator`<br/>- `defaulted`<br/>- `deleted`<br/>- `static` |
|
||||
| `dependants` | Qualified name or regex | - `ns1::ns2::ClassA`<br/>- `r: 'ns1::ns2::ClassA.+'` |
|
||||
| `dependencies` | Qualified name or regex | - `ns1::ns2::ClassA`<br/>- `r: 'ns1::ns2::ClassA.+'` |
|
||||
| Filter name | Possible values | Example values |
|
||||
|-------------------|----------------------------------|------------------------------------------------------------------------------------------------------------------------|
|
||||
| `namespaces` | Qualified name or regex | `ns1::ns2::ClassA`, `r: '.*detail.*'` |
|
||||
| `elements` | Qualified name or regex | `ns1::ns2::ClassA`,`r: '.*detail.*'` |
|
||||
| `element_types` | Types of diagram elements | `class`, `enum`, `concept` |
|
||||
| `paths` | File or dir path or glob pattern | `src/dir1`, `src/dir2/a.cpp`, `src/dir3/*.cpp` |
|
||||
| `context` | Qualified name or regex | `ns1::ns2::ClassA`, `r: 'ns1::ns2::ClassA.+'` |
|
||||
| `relationships` | Type of relationship | `inheritance`, `composition`, `aggregation`, `ownership`, `association`, `instantiation`, `friendship`, `dependency` |
|
||||
| `subclasses` | Qualified name or regex | `ns1::ns2::ClassA`, `r: 'ns1::ns2::ClassA.+'` |
|
||||
| `parents` | Qualified name or regex | `ns1::ns2::ClassA`, `r: 'ns1::ns2::ClassA.+'` |
|
||||
| `specializations` | Qualified name or regex | `ns1::ns2::ClassA`, `r: 'ns1::ns2::ClassA.+'` |
|
||||
| `access` | Method or member access scope | `public`, `protected`, `private` |
|
||||
| `method_types` | Type of class method | `constructor`, `destructor`, `assignment`, `operator`, `defaulted`, `deleted`, `static` |
|
||||
| `dependants` | Qualified name or regex | `ns1::ns2::ClassA`, `r: 'ns1::ns2::ClassA.+'` |
|
||||
| `dependencies` | Qualified name or regex | `ns1::ns2::ClassA`, `r: 'ns1::ns2::ClassA.+'` |
|
||||
|
||||
The following filters are available.
|
||||
|
||||
## `namespaces` _[string or regex]_
|
||||
## namespaces
|
||||
|
||||
Allows to include or exclude entities from specific namespaces.
|
||||
|
||||
## `elements` _[string or regex]_
|
||||
## elements
|
||||
|
||||
Allows to directly include or exclude specific entities from the diagrams, for instance to exclude a specific class
|
||||
from an included namespace:
|
||||
@@ -91,7 +91,7 @@ from an included namespace:
|
||||
- ns1::ns2::MyClass
|
||||
```
|
||||
|
||||
## `element_types`
|
||||
## element_types
|
||||
|
||||
Allows to include or exclude elements of specific type from the diagram, for instance
|
||||
to remove all enums from a diagram add the following:
|
||||
@@ -102,7 +102,7 @@ to remove all enums from a diagram add the following:
|
||||
- enum
|
||||
```
|
||||
|
||||
## `paths` _[string or glob]_
|
||||
## paths
|
||||
|
||||
This filter allows to include or exclude from the diagram elements declared
|
||||
in specific files.
|
||||
@@ -122,7 +122,7 @@ diagrams:
|
||||
Currently, this filter does not allow any globbing or wildcards, however
|
||||
paths to directories can be specified.
|
||||
|
||||
## `context` _[string or regex]_
|
||||
## context
|
||||
|
||||
This filter allows to limit the diagram elements only to classes which are in direct relationship (of any kind) with
|
||||
the specified class:
|
||||
@@ -134,7 +134,7 @@ the specified class:
|
||||
```
|
||||
|
||||
|
||||
## `relationships`
|
||||
## relationships
|
||||
|
||||
This filter allows to include or exclude specific types of relationships from the diagram, for instance to only
|
||||
include inheritance and template specialization/instantiation relationships add the following to the diagram:
|
||||
@@ -156,19 +156,19 @@ The following relationships can be used in this filter:
|
||||
* friendship
|
||||
* dependency
|
||||
|
||||
## `subclasses` _[string or regex]_
|
||||
## subclasses
|
||||
|
||||
This filter allows to include or exclude all subclasses of a given class in the diagram.
|
||||
|
||||
## `parents` _[string or regex]_
|
||||
## parents
|
||||
|
||||
This filter allows to include or exclude all parents (base classes) of a given class in the diagram.
|
||||
|
||||
## `specializations` _[string or regex]_
|
||||
## specializations
|
||||
|
||||
This filter allows to include or exclude specializations and instantiations of a specific template from the diagram.
|
||||
|
||||
## `access`
|
||||
## access
|
||||
|
||||
This filter allows to include or exclude class methods and members based on their access scope, allowed values ar:
|
||||
|
||||
@@ -176,7 +176,7 @@ This filter allows to include or exclude class methods and members based on thei
|
||||
* `protected`
|
||||
* `private`
|
||||
|
||||
## `method_types`
|
||||
## method_types
|
||||
|
||||
This filter allows to include or exclude various method types from the class diagram, allowed values ar:
|
||||
* constructor
|
||||
@@ -190,7 +190,7 @@ This filter allows to include or exclude various method types from the class dia
|
||||
This filter is independent of the `access` filter, which controls which methods
|
||||
are included based on access scope (e.g. `public`).
|
||||
|
||||
## `dependants` and `dependencies` _[string or regex]_
|
||||
## dependants and dependencies
|
||||
|
||||
These filters allow to specify that only dependants or dependencies of a given class should be included in the diagram.
|
||||
This can be useful for analyzing what classes in your project depend on some other class, which could have impact for
|
||||
|
||||
Reference in New Issue
Block a user