fix again

This commit is contained in:
Alexander Wang 2024-02-26 20:08:44 -08:00
parent edc3088c3c
commit 9444a632eb
No known key found for this signature in database
GPG key ID: BE3937D0D52D8927
4 changed files with 720 additions and 0 deletions

View file

@ -647,8 +647,14 @@ func _set(g *d2graph.Graph, baseAST *d2ast.Map, key string, tag, value *string)
case "source-arrowhead", "target-arrowhead":
var arrowhead *d2graph.Attributes
if reservedKey == "source-arrowhead" {
if edge.SrcArrowhead != nil {
attrs = *edge.SrcArrowhead
}
arrowhead = edge.SrcArrowhead
} else {
if edge.DstArrowhead != nil {
attrs = *edge.DstArrowhead
}
arrowhead = edge.DstArrowhead
}
if arrowhead != nil {
@ -669,6 +675,12 @@ func _set(g *d2graph.Graph, baseAST *d2ast.Map, key string, tag, value *string)
arrowhead.Label.MapKey.SetScalar(mk.Value.ScalarBox())
return nil
}
case "style":
reservedTargetKey = mk.Key.Path[len(mk.Key.Path)-1].Unbox().ScalarString()
if inlined(attrs.Style.Filled) {
attrs.Style.Filled.MapKey.SetScalar(mk.Value.ScalarBox())
return nil
}
}
}
case "style":

View file

@ -1562,6 +1562,42 @@ a.b -> a.c: {style.animated: true}
target-arrowhead.shape: diamond
target-arrowhead.style.filled: true
}
`,
},
{
name: "edge-arrowhead-filled/4",
text: `x -> y: {
target-arrowhead.shape: diamond
target-arrowhead.style.filled: true
}
`,
key: `(x -> y)[0].target-arrowhead.style.filled`,
value: go2.Pointer(`false`),
exp: `x -> y: {
target-arrowhead.shape: diamond
target-arrowhead.style.filled: false
}
`,
},
{
name: "edge-arrowhead-filled/5",
text: `x -> y: {
target-arrowhead.shape: diamond
target-arrowhead.style: {
filled: false
}
}
`,
key: `(x -> y)[0].target-arrowhead.style.filled`,
value: go2.Pointer(`true`),
exp: `x -> y: {
target-arrowhead.shape: diamond
target-arrowhead.style: {
filled: true
}
}
`,
},
{

View file

@ -0,0 +1,327 @@
{
"graph": {
"name": "",
"isFolderOnly": false,
"ast": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,0:0:0-4:0:85",
"nodes": [
{
"map_key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,0:0:0-3:1:84",
"edges": [
{
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,0:0:0-0:6:6",
"src": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,0:0:0-0:1:1",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,0:0:0-0:1:1",
"value": [
{
"string": "x",
"raw_string": "x"
}
]
}
}
]
},
"src_arrow": "",
"dst": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,0:5:5-0:6:6",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,0:5:5-0:6:6",
"value": [
{
"string": "y",
"raw_string": "y"
}
]
}
}
]
},
"dst_arrow": ">"
}
],
"primary": {},
"value": {
"map": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,0:8:8-3:1:84",
"nodes": [
{
"map_key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,1:2:12-1:33:43",
"key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,1:2:12-1:24:34",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,1:2:12-1:18:28",
"value": [
{
"string": "target-arrowhead",
"raw_string": "target-arrowhead"
}
]
}
},
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,1:19:29-1:24:34",
"value": [
{
"string": "shape",
"raw_string": "shape"
}
]
}
}
]
},
"primary": {},
"value": {
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,1:26:36-1:33:43",
"value": [
{
"string": "diamond",
"raw_string": "diamond"
}
]
}
}
}
},
{
"map_key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,2:2:46-2:38:82",
"key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,2:2:46-2:31:75",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,2:2:46-2:18:62",
"value": [
{
"string": "target-arrowhead",
"raw_string": "target-arrowhead"
}
]
}
},
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,2:19:63-2:24:68",
"value": [
{
"string": "style",
"raw_string": "style"
}
]
}
},
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,2:25:69-2:31:75",
"value": [
{
"string": "filled",
"raw_string": "filled"
}
]
}
}
]
},
"primary": {},
"value": {
"boolean": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,2:33:77-2:38:82",
"value": false
}
}
}
}
]
}
}
}
}
]
},
"root": {
"id": "",
"id_val": "",
"attributes": {
"label": {
"value": ""
},
"labelDimensions": {
"width": 0,
"height": 0
},
"style": {},
"near_key": null,
"shape": {
"value": ""
},
"direction": {
"value": ""
},
"constraint": null
},
"zIndex": 0
},
"edges": [
{
"index": 0,
"isCurve": false,
"src_arrow": false,
"dst_arrow": true,
"dstArrowhead": {
"label": {
"value": ""
},
"labelDimensions": {
"width": 0,
"height": 0
},
"style": {
"filled": {
"value": "false"
}
},
"near_key": null,
"shape": {
"value": "diamond"
},
"direction": {
"value": ""
},
"constraint": null
},
"references": [
{
"map_key_edge_index": 0
}
],
"attributes": {
"label": {
"value": ""
},
"labelDimensions": {
"width": 0,
"height": 0
},
"style": {},
"near_key": null,
"shape": {
"value": ""
},
"direction": {
"value": ""
},
"constraint": null
},
"zIndex": 0
}
],
"objects": [
{
"id": "x",
"id_val": "x",
"references": [
{
"key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,0:0:0-0:1:1",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,0:0:0-0:1:1",
"value": [
{
"string": "x",
"raw_string": "x"
}
]
}
}
]
},
"key_path_index": 0,
"map_key_edge_index": 0
}
],
"attributes": {
"label": {
"value": "x"
},
"labelDimensions": {
"width": 0,
"height": 0
},
"style": {},
"near_key": null,
"shape": {
"value": "rectangle"
},
"direction": {
"value": ""
},
"constraint": null
},
"zIndex": 0
},
{
"id": "y",
"id_val": "y",
"references": [
{
"key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,0:5:5-0:6:6",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/4.d2,0:5:5-0:6:6",
"value": [
{
"string": "y",
"raw_string": "y"
}
]
}
}
]
},
"key_path_index": 0,
"map_key_edge_index": 0
}
],
"attributes": {
"label": {
"value": "y"
},
"labelDimensions": {
"width": 0,
"height": 0
},
"style": {},
"near_key": null,
"shape": {
"value": "rectangle"
},
"direction": {
"value": ""
},
"constraint": null
},
"zIndex": 0
}
]
},
"err": "<nil>"
}

View file

@ -0,0 +1,345 @@
{
"graph": {
"name": "",
"isFolderOnly": false,
"ast": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,0:0:0-6:0:95",
"nodes": [
{
"map_key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,0:0:0-5:1:94",
"edges": [
{
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,0:0:0-0:6:6",
"src": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,0:0:0-0:1:1",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,0:0:0-0:1:1",
"value": [
{
"string": "x",
"raw_string": "x"
}
]
}
}
]
},
"src_arrow": "",
"dst": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,0:5:5-0:6:6",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,0:5:5-0:6:6",
"value": [
{
"string": "y",
"raw_string": "y"
}
]
}
}
]
},
"dst_arrow": ">"
}
],
"primary": {},
"value": {
"map": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,0:8:8-5:1:94",
"nodes": [
{
"map_key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,1:2:12-1:33:43",
"key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,1:2:12-1:24:34",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,1:2:12-1:18:28",
"value": [
{
"string": "target-arrowhead",
"raw_string": "target-arrowhead"
}
]
}
},
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,1:19:29-1:24:34",
"value": [
{
"string": "shape",
"raw_string": "shape"
}
]
}
}
]
},
"primary": {},
"value": {
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,1:26:36-1:33:43",
"value": [
{
"string": "diamond",
"raw_string": "diamond"
}
]
}
}
}
},
{
"map_key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,2:2:46-4:3:92",
"key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,2:2:46-2:24:68",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,2:2:46-2:18:62",
"value": [
{
"string": "target-arrowhead",
"raw_string": "target-arrowhead"
}
]
}
},
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,2:19:63-2:24:68",
"value": [
{
"string": "style",
"raw_string": "style"
}
]
}
}
]
},
"primary": {},
"value": {
"map": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,2:26:70-4:3:92",
"nodes": [
{
"map_key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,3:4:76-3:16:88",
"key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,3:4:76-3:10:82",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,3:4:76-3:10:82",
"value": [
{
"string": "filled",
"raw_string": "filled"
}
]
}
}
]
},
"primary": {},
"value": {
"boolean": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,3:12:84-3:16:88",
"value": true
}
}
}
}
]
}
}
}
}
]
}
}
}
}
]
},
"root": {
"id": "",
"id_val": "",
"attributes": {
"label": {
"value": ""
},
"labelDimensions": {
"width": 0,
"height": 0
},
"style": {},
"near_key": null,
"shape": {
"value": ""
},
"direction": {
"value": ""
},
"constraint": null
},
"zIndex": 0
},
"edges": [
{
"index": 0,
"isCurve": false,
"src_arrow": false,
"dst_arrow": true,
"dstArrowhead": {
"label": {
"value": ""
},
"labelDimensions": {
"width": 0,
"height": 0
},
"style": {
"filled": {
"value": "true"
}
},
"near_key": null,
"shape": {
"value": "diamond"
},
"direction": {
"value": ""
},
"constraint": null
},
"references": [
{
"map_key_edge_index": 0
}
],
"attributes": {
"label": {
"value": ""
},
"labelDimensions": {
"width": 0,
"height": 0
},
"style": {},
"near_key": null,
"shape": {
"value": ""
},
"direction": {
"value": ""
},
"constraint": null
},
"zIndex": 0
}
],
"objects": [
{
"id": "x",
"id_val": "x",
"references": [
{
"key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,0:0:0-0:1:1",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,0:0:0-0:1:1",
"value": [
{
"string": "x",
"raw_string": "x"
}
]
}
}
]
},
"key_path_index": 0,
"map_key_edge_index": 0
}
],
"attributes": {
"label": {
"value": "x"
},
"labelDimensions": {
"width": 0,
"height": 0
},
"style": {},
"near_key": null,
"shape": {
"value": "rectangle"
},
"direction": {
"value": ""
},
"constraint": null
},
"zIndex": 0
},
{
"id": "y",
"id_val": "y",
"references": [
{
"key": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,0:5:5-0:6:6",
"path": [
{
"unquoted_string": {
"range": "d2/testdata/d2oracle/TestSet/edge-arrowhead-filled/5.d2,0:5:5-0:6:6",
"value": [
{
"string": "y",
"raw_string": "y"
}
]
}
}
]
},
"key_path_index": 0,
"map_key_edge_index": 0
}
],
"attributes": {
"label": {
"value": "y"
},
"labelDimensions": {
"width": 0,
"height": 0
},
"style": {},
"near_key": null,
"shape": {
"value": "rectangle"
},
"direction": {
"value": ""
},
"constraint": null
},
"zIndex": 0
}
]
},
"err": "<nil>"
}