Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add dotted relationships arrows #66

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
11 changes: 10 additions & 1 deletion .vscode/C4.code-snippets
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,15 @@
],
"description": "Add unidirectional Relationship to C4 diagram"
},
"C4_Relationship_Dotted": {
"scope": "diagram",
"prefix": "Relationship Dotted",
"body": [
"Rel_Dotted(${1:from_alias}, ${2:to_alias}, \"${3:label}\")",
"$0"
],
"description": "Add unidirectional dotted Relationship to C4 diagram"
},
"C4_Relationship_Techn": {
"scope": "diagram",
"prefix": "Relationship with Technology",
Expand Down Expand Up @@ -216,4 +225,4 @@
],
"description": "Add a generic boundary to C4 diagram."
}
}
}
38 changes: 35 additions & 3 deletions C4.puml
Original file line number Diff line number Diff line change
Expand Up @@ -68,39 +68,71 @@ center footer <font color=red>Warning:</font> Created for discussion, needs to b
!define Rel(e_from,e_to, e_label) Rel_(e_from,e_to, e_label, "-->")
!define Rel(e_from,e_to, e_label, e_techn) Rel_(e_from,e_to, e_label, e_techn, "-->")

!define Rel_Dotted(e_from,e_to, e_label) Rel_(e_from,e_to, e_label, "..>")
!define Rel_Dotted(e_from,e_to, e_label, e_techn) Rel_(e_from,e_to, e_label, e_techn, "..>")

!define Rel_Back(e_to, e_from, e_label) Rel_(e_to, e_from, e_label, "<--")
!define Rel_Back(e_to, e_from, e_label, e_techn) Rel_(e_to, e_from, e_label, e_techn, "<--")

!define Rel_Neighbor(e_from,e_to, e_label) Rel_(e_from,e_to, e_label, "->")
!define Rel_Neighbor(e_from,e_to, e_label, e_techn) Rel_(e_from,e_to, e_label, e_techn, "->")
!define Rel_Back_Dotted(e_to, e_from, e_label) Rel_(e_to, e_from, e_label, "<..")
!define Rel_Back_Dotted(e_to, e_from, e_label, e_techn) Rel_(e_to, e_from, e_label, e_techn, "<..")

!define Rel_Neighbor(e_from,e_to, e_label) Rel_(e_from,e_to, e_label, ".>")
!define Rel_Neighbor(e_from,e_to, e_label, e_techn) Rel_(e_from,e_to, e_label, e_techn, ".>")

!define Rel_Neighbor_Dotted(e_from,e_to, e_label) Rel_(e_from,e_to, e_label, ".>")
!define Rel_Neighbor_Dotted(e_from,e_to, e_label, e_techn) Rel_(e_from,e_to, e_label, e_techn, ".>")

!define Rel_Back_Neighbor(e_to, e_from, e_label) Rel_(e_to, e_from, e_label, "<-")
!define Rel_Back_Neighbor(e_to, e_from, e_label, e_techn) Rel_(e_to, e_from, e_label, e_techn, "<-")

!define Rel_Back_Neighbor_Dotted(e_to, e_from, e_label) Rel_(e_to, e_from, e_label, "<.")
!define Rel_Back_Neighbor_Dotted(e_to, e_from, e_label, e_techn) Rel_(e_to, e_from, e_label, e_techn, "<.")

!define Rel_D(e_from,e_to, e_label) Rel_(e_from,e_to, e_label, "-DOWN->")
!define Rel_D(e_from,e_to, e_label, e_techn) Rel_(e_from,e_to, e_label, e_techn, "-DOWN->")
!define Rel_Down(e_from,e_to, e_label) Rel_D(e_from,e_to, e_label)
!define Rel_Down(e_from,e_to, e_label, e_techn) Rel_D(e_from,e_to, e_label, e_techn)

!define Rel_D_Dotted(e_from,e_to, e_label) Rel_(e_from,e_to, e_label, ".DOWN.>")
!define Rel_D_Dotted(e_from,e_to, e_label, e_techn) Rel_(e_from,e_to, e_label, e_techn, ".DOWN.>")
!define Rel_Down_Dotted(e_from,e_to, e_label) Rel_D_Dotted(e_from,e_to, e_label)
!define Rel_Down_Dotted(e_from,e_to, e_label, e_techn) Rel_D_Dotted(e_from,e_to, e_label, e_techn)

!define Rel_U(e_from,e_to, e_label) Rel_(e_from,e_to, e_label, "-UP->")
!define Rel_U(e_from,e_to, e_label, e_techn) Rel_(e_from,e_to, e_label, e_techn, "-UP->")
!define Rel_Up(e_from,e_to, e_label) Rel_U(e_from,e_to, e_label)
!define Rel_Up(e_from,e_to, e_label, e_techn) Rel_U(e_from,e_to, e_label, e_techn)

!define Rel_U_Dotted(e_from,e_to, e_label) Rel_(e_from,e_to, e_label, ".UP.>")
!define Rel_U_Dotted(e_from,e_to, e_label, e_techn) Rel_(e_from,e_to, e_label, e_techn, ".UP.>")
!define Rel_Up_Dotted(e_from,e_to, e_label) Rel_U_Dotted(e_from,e_to, e_label)
!define Rel_Up_Dotted(e_from,e_to, e_label, e_techn) Rel_U_Dotted(e_from,e_to, e_label, e_techn)

!define Rel_L(e_from,e_to, e_label) Rel_(e_from,e_to, e_label, "-LEFT->")
!define Rel_L(e_from,e_to, e_label, e_techn) Rel_(e_from,e_to, e_label, e_techn, "-LEFT->")
!define Rel_Left(e_from,e_to, e_label) Rel_L(e_from,e_to, e_label)
!define Rel_Left(e_from,e_to, e_label, e_techn) Rel_L(e_from,e_to, e_label, e_techn)

!define Rel_L_Dotted(e_from,e_to, e_label) Rel_(e_from,e_to, e_label, ".LEFT.>")
!define Rel_L_Dotted(e_from,e_to, e_label, e_techn) Rel_(e_from,e_to, e_label, e_techn, ".LEFT.>")
!define Rel_Left_Dotted(e_from,e_to, e_label) Rel_L_Dotted(e_from,e_to, e_label)
!define Rel_Left_Dotted(e_from,e_to, e_label, e_techn) Rel_L_Dotted(e_from,e_to, e_label, e_techn)

!define Rel_R(e_from,e_to, e_label) Rel_(e_from,e_to, e_label, "-RIGHT->")
!define Rel_R(e_from,e_to, e_label, e_techn) Rel_(e_from,e_to, e_label, e_techn, "-RIGHT->")
!define Rel_Right(e_from,e_to, e_label) Rel_R(e_from,e_to, e_label)
!define Rel_Right(e_from,e_to, e_label, e_techn) Rel_R(e_from,e_to, e_label, e_techn)

!define Rel_R_Dotted(e_from,e_to, e_label) Rel_(e_from,e_to, e_label, ".RIGHT.>")
!define Rel_R_Dotted(e_from,e_to, e_label, e_techn) Rel_(e_from,e_to, e_label, e_techn, ".RIGHT.>")
!define Rel_Right_Dotted(e_from,e_to, e_label) Rel_R_Dotted(e_from,e_to, e_label)
!define Rel_Right_Dotted(e_from,e_to, e_label, e_techn) Rel_R_Dotted(e_from,e_to, e_label, e_techn)

' Layout Helpers
' ##################################

!define Lay_D(e_from, e_to) e_from -[hidden]D- e_to
!define Lay_U(e_from, e_to) e_from -[hidden]U- e_to
!define Lay_R(e_from, e_to) e_from -[hidden]R- e_to
!define Lay_L(e_from, e_to) e_from -[hidden]L- e_to
!define Lay_L(e_from, e_to) e_from -[hidden]L- e_to