Group participants by parent in plantuml structurizr seq diagrams #429
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
It is quite hard currently to understand large sequence diagrams created using Structurizr, as the participants are not grouped by parent.
This PR is starting to resolve this. It may also be a first step towards adding more advanced sequence diagram features relevant to C4 in the future, e.g. allowing to collapse or expand sequence diagram participants using element parents.
group components in Plantuml structurizr sequence diagrams by parent containers and by grand-parent software systems.
group containers in Plantuml structurizr sequence diagrams by parent software systems.
group elements in Plantuml structurizr sequence diagrams by parent groups.
add plantuml.teoz property to allow nested boxes in sequence diagrams - see teoz layout engine details here
First example (components grouped by containers):
source (new test).
Before changes in this PR:
After changes in this PR - the elements with the same parent (f, g and h) are now grouped while they were not before. Also both parent and grand-parent elements are shown:
Second example (containers grouped by software systems):
source (new test).
Before changes this PR:
After changes in this PR - the parents Software Systems of the container participants are shown:
Third example: component inside group inside container
source
Before changes in this PR:
After changes in this PR - showing the group and the container:
Fourth example
source
Note: also includes changes in this PR
Before changes in this PR:
After changes - elements belonging to the same container are grouped:
Possible extensions / improvements to this PR - to be discussed
property
flag to be backward compatible.f
is not the first anymore).box
- use styling of relevant group / container / systemSoftware defined in the workspace.