restrict edges in grid diagrams to between direct children (nested not implemented yet)
This commit is contained in:
parent
f4b153d059
commit
64313e1787
3 changed files with 33 additions and 3 deletions
|
|
@ -1074,9 +1074,16 @@ func (c *compiler) validateEdges(g *d2graph.Graph) {
|
||||||
for _, edge := range g.Edges {
|
for _, edge := range g.Edges {
|
||||||
srcGrid := edge.Src.Parent.ClosestGridDiagram()
|
srcGrid := edge.Src.Parent.ClosestGridDiagram()
|
||||||
dstGrid := edge.Dst.Parent.ClosestGridDiagram()
|
dstGrid := edge.Dst.Parent.ClosestGridDiagram()
|
||||||
if (srcGrid != nil || dstGrid != nil) && srcGrid != dstGrid {
|
if srcGrid != nil || dstGrid != nil {
|
||||||
|
if srcGrid != dstGrid {
|
||||||
c.errorf(edge.GetAstEdge(), "edges into grid diagrams are not supported yet")
|
c.errorf(edge.GetAstEdge(), "edges into grid diagrams are not supported yet")
|
||||||
continue
|
continue
|
||||||
|
} else {
|
||||||
|
if srcGrid != edge.Src.Parent || dstGrid != edge.Dst.Parent {
|
||||||
|
c.errorf(edge.GetAstEdge(), "grid diagrams can only have edges between children right now")
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2488,6 +2488,18 @@ d2/testdata/d2compiler/TestCompile/grid_gap_negative.d2:3:16: vertical-gap must
|
||||||
d2/testdata/d2compiler/TestCompile/grid_edge.d2:6:2: edges into grid diagrams are not supported yet
|
d2/testdata/d2compiler/TestCompile/grid_edge.d2:6:2: edges into grid diagrams are not supported yet
|
||||||
d2/testdata/d2compiler/TestCompile/grid_edge.d2:7:2: edges into grid diagrams are not supported yet`,
|
d2/testdata/d2compiler/TestCompile/grid_edge.d2:7:2: edges into grid diagrams are not supported yet`,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "grid_deeper_edge",
|
||||||
|
text: `hey: {
|
||||||
|
grid-rows: 1
|
||||||
|
a -> b: ok
|
||||||
|
b: {
|
||||||
|
c -> d: not yet
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
expErr: `d2/testdata/d2compiler/TestCompile/grid_deeper_edge.d2:5:3: grid diagrams can only have edges between children right now`,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "grid_nested",
|
name: "grid_nested",
|
||||||
text: `hey: {
|
text: `hey: {
|
||||||
|
|
|
||||||
11
testdata/d2compiler/TestCompile/grid_deeper_edge.exp.json
generated
vendored
Normal file
11
testdata/d2compiler/TestCompile/grid_deeper_edge.exp.json
generated
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"graph": null,
|
||||||
|
"err": {
|
||||||
|
"errs": [
|
||||||
|
{
|
||||||
|
"range": "d2/testdata/d2compiler/TestCompile/grid_deeper_edge.d2,4:2:41-4:8:47",
|
||||||
|
"errmsg": "d2/testdata/d2compiler/TestCompile/grid_deeper_edge.d2:5:3: grid diagrams can only have edges between children right now"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue