From 05f1f6005ecf0b2689c59ce2211de4be0894c374 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Tue, 20 Jun 2023 11:34:15 -0700 Subject: [PATCH] fix primary setting --- d2oracle/edit.go | 33 +- d2oracle/edit_test.go | 57 ++ .../scenarios-label-primary-missing.exp.json | 598 ++++++++++++++++++ .../TestSet/scenarios-label-primary.exp.json | 577 +++++++++++++++++ 4 files changed, 1258 insertions(+), 7 deletions(-) create mode 100644 testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json create mode 100644 testdata/d2oracle/TestSet/scenarios-label-primary.exp.json diff --git a/d2oracle/edit.go b/d2oracle/edit.go index 2171438c1..4120240c9 100644 --- a/d2oracle/edit.go +++ b/d2oracle/edit.go @@ -353,13 +353,25 @@ func _set(g *d2graph.Graph, baseAST *d2ast.Map, key string, tag, value *string) } obj = o - if obj.Map == nil { + var maybeNewScope *d2ast.Map + if baseAST != g.AST { + writeableRefs := getWriteableRefs(obj, baseAST) + for _, ref := range writeableRefs { + if ref.MapKey != nil && ref.MapKey.Value.Map != nil { + maybeNewScope = ref.MapKey.Value.Map + } + } + } else { + maybeNewScope = obj.Map + } + + if maybeNewScope == nil { // If we find a deeper obj.Map we need to skip this key too. toSkip++ continue } - scope = obj.Map + scope = maybeNewScope mk.Key.Path = mk.Key.Path[toSkip:] toSkip = 1 if len(mk.Key.Path) == 0 { @@ -369,11 +381,9 @@ func _set(g *d2graph.Graph, baseAST *d2ast.Map, key string, tag, value *string) var objK *d2ast.Key if baseAST != g.AST { - for i, ref := range obj.References { - if ref.ScopeAST == baseAST { - objK = obj.References[i].MapKey - break - } + writeableRefs := getWriteableRefs(obj, baseAST) + if len(writeableRefs) > 0 { + objK = writeableRefs[0].MapKey } if objK == nil { appendMapKey(scope, mk) @@ -2915,3 +2925,12 @@ func filterReservedPath(path []*d2ast.StringBox) (filtered []*d2ast.StringBox) { } return } + +func getWriteableRefs(obj *d2graph.Object, writeableAST *d2ast.Map) (out []d2graph.Reference) { + for i, ref := range obj.References { + if ref.ScopeAST == writeableAST { + out = append(out, obj.References[i]) + } + } + return +} diff --git a/d2oracle/edit_test.go b/d2oracle/edit_test.go index 7c1432e1d..7fead42c1 100644 --- a/d2oracle/edit_test.go +++ b/d2oracle/edit_test.go @@ -1808,6 +1808,63 @@ scenarios: { a.style.opacity: 0.2 } } +`, + }, + { + name: "scenarios-label-primary", + + text: `a: { + style.opacity: 0.2 +} +scenarios: { + x: { + a: { + style.opacity: 0.3 + } + } +} +`, + key: `a`, + value: go2.Pointer(`b`), + boardPath: []string{"root", "scenarios", "x"}, + + exp: `a: { + style.opacity: 0.2 +} +scenarios: { + x: { + a: b { + style.opacity: 0.3 + } + } +} +`, + }, + { + name: "scenarios-label-primary-missing", + + text: `a: { + style.opacity: 0.2 +} +scenarios: { + x: { + b + } +} +`, + key: `a`, + value: go2.Pointer(`b`), + boardPath: []string{"root", "scenarios", "x"}, + + exp: `a: { + style.opacity: 0.2 +} +scenarios: { + x: { + b + a: b + } +} `, }, } diff --git a/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json b/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json new file mode 100644 index 000000000..3fe022577 --- /dev/null +++ b/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json @@ -0,0 +1,598 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-9:0:69", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-2:1:27", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:3:3-2:1:27", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,1:2:7-1:20:25", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,1:2:7-1:15:20", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,1:2:7-1:7:12", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,1:8:13-1:15:20", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,1:17:22-1:20:25", + "raw": "0.2", + "value": "1/5" + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,3:0:28-8:1:68", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,3:0:28-3:9:37", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,3:0:28-3:9:37", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,3:11:39-8:1:68", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:2:43-7:3:66", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:2:43-4:3:44", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:2:43-4:3:44", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:5:46-7:3:66", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:8:62", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:7:61-6:8:62", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "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": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": { + "opacity": { + "value": "0.2" + } + }, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "scenarios": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:7:61-6:8:62", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + }, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "style" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "opacity" + } + ] + } + } + ] + }, + "primary": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,1:17:22-1:20:25", + "raw": "0.2", + "value": "1/5" + } + }, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:5:46-7:3:66", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:8:62", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:7:61-6:8:62", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + } + } + ] + }, + "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": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": { + "opacity": { + "value": "0.2" + } + }, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json b/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json new file mode 100644 index 000000000..2a3f1d82f --- /dev/null +++ b/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json @@ -0,0 +1,577 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-10:0:96", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-2:1:27", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:3:3-2:1:27", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,1:2:7-1:20:25", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,1:2:7-1:15:20", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,1:2:7-1:7:12", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,1:8:13-1:15:20", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,1:17:22-1:20:25", + "raw": "0.2", + "value": "1/5" + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,3:0:28-9:1:95", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,3:0:28-3:9:37", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,3:0:28-3:9:37", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,3:11:39-9:1:95", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:2:43-8:3:93", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:2:43-4:3:44", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:2:43-4:3:44", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:5:46-8:3:93", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-7:5:89", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:7:55-5:8:56", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + }, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:9:57-7:5:89", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:24:83", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:19:78", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:11:70", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:12:71-6:19:78", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:21:80-6:24:83", + "raw": "0.3", + "value": "3/10" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "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": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": { + "opacity": { + "value": "0.2" + } + }, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "scenarios": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:7:55-5:8:56", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + }, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "style" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "opacity" + } + ] + } + } + ] + }, + "primary": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:21:80-6:24:83", + "raw": "0.3", + "value": "3/10" + } + }, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:5:46-8:3:93", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-7:5:89", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:7:55-5:8:56", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + }, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:9:57-7:5:89", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:24:83", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:19:78", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:11:70", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:12:71-6:19:78", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:21:80-6:24:83", + "raw": "0.3", + "value": "3/10" + } + } + } + } + ] + } + } + } + } + ] + }, + "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": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": { + "opacity": { + "value": "0.3" + } + }, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +}