fix id/idval

This commit is contained in:
Alexander Wang 2024-11-23 20:41:57 -08:00
parent b1a318631b
commit 96288dd369
No known key found for this signature in database
GPG key ID: D89FA31966BDBECE
6 changed files with 23 additions and 17 deletions

View file

@ -2113,7 +2113,7 @@ b
tassert.Equal(t, 5, len(g.Objects)) tassert.Equal(t, 5, len(g.Objects))
tassert.Equal(t, "a", g.Objects[0].ID) tassert.Equal(t, "a", g.Objects[0].ID)
tassert.Equal(t, "b", g.Objects[1].ID) tassert.Equal(t, "b", g.Objects[1].ID)
tassert.Equal(t, `04:20,11:20`, g.Objects[2].ID) tassert.Equal(t, `"04:20,11:20"`, g.Objects[2].ID)
tassert.Equal(t, `loop through each table`, g.Objects[3].ID) tassert.Equal(t, `loop through each table`, g.Objects[3].ID)
tassert.Equal(t, 1, len(g.Objects[0].ChildrenArray)) tassert.Equal(t, 1, len(g.Objects[0].ChildrenArray))
tassert.Equal(t, 0, len(g.Objects[1].ChildrenArray)) tassert.Equal(t, 0, len(g.Objects[1].ChildrenArray))

View file

@ -694,7 +694,10 @@ func (obj *Object) Text() *d2target.MText {
} }
} }
func (obj *Object) newObject(id string) *Object { func (obj *Object) newObject(ids d2ast.String) *Object {
id := d2format.Format(&d2ast.KeyPath{
Path: []*d2ast.StringBox{d2ast.MakeValueBox(d2ast.RawString(ids.ScalarString(), true)).StringBox()},
})
idval := id idval := id
k, _ := d2parser.ParseKey(id) k, _ := d2parser.ParseKey(id)
if k != nil && len(k.Path) > 0 { if k != nil && len(k.Path) > 0 {
@ -901,9 +904,12 @@ func (obj *Object) EnsureChild(ida []d2ast.String) *Object {
return obj.Parent.EnsureChild(ida) return obj.Parent.EnsureChild(ida)
} }
child, ok := obj.Children[strings.ToLower(id.ScalarString())] head := d2format.Format(&d2ast.KeyPath{
Path: []*d2ast.StringBox{d2ast.MakeValueBox(d2ast.RawString(id.ScalarString(), true)).StringBox()},
})
child, ok := obj.Children[strings.ToLower(head)]
if !ok { if !ok {
child = obj.newObject(id.ScalarString()) child = obj.newObject(id)
} }
if len(ida) >= 1 { if len(ida) >= 1 {

View file

@ -56,8 +56,8 @@
"edges": null, "edges": null,
"objects": [ "objects": [
{ {
"id": "b\nb", "id": "\"b\\nb\"",
"id_val": "b", "id_val": "b\nb",
"references": [ "references": [
{ {
"key": { "key": {
@ -82,7 +82,7 @@
], ],
"attributes": { "attributes": {
"label": { "label": {
"value": "b" "value": "b\nb"
}, },
"labelDimensions": { "labelDimensions": {
"width": 0, "width": 0,

View file

@ -291,8 +291,8 @@
"zIndex": 0 "zIndex": 0
}, },
{ {
"id": "D.E", "id": "\"D.E\"",
"id_val": "D", "id_val": "D.E",
"references": [ "references": [
{ {
"key": { "key": {
@ -317,7 +317,7 @@
], ],
"attributes": { "attributes": {
"label": { "label": {
"value": "D" "value": "D.E"
}, },
"labelDimensions": { "labelDimensions": {
"width": 0, "width": 0,

View file

@ -56,7 +56,7 @@
"edges": null, "edges": null,
"objects": [ "objects": [
{ {
"id": "null", "id": "'null'",
"id_val": "null", "id_val": "null",
"references": [ "references": [
{ {

View file

@ -442,8 +442,8 @@
"zIndex": 0 "zIndex": 0
}, },
{ {
"id": "04:20,11:20", "id": "\"04:20,11:20\"",
"id_val": "04", "id_val": "04:20,11:20",
"references": [ "references": [
{ {
"key": { "key": {
@ -468,7 +468,7 @@
], ],
"attributes": { "attributes": {
"label": { "label": {
"value": "04" "value": "04:20,11:20"
}, },
"labelDimensions": { "labelDimensions": {
"width": 0, "width": 0,
@ -532,8 +532,8 @@
"zIndex": 0 "zIndex": 0
}, },
{ {
"id": "start_time = datetime.datetime.now", "id": "\"start_time = datetime.datetime.now\"",
"id_val": "start_time = datetime", "id_val": "start_time = datetime.datetime.now",
"references": [ "references": [
{ {
"key": { "key": {
@ -569,7 +569,7 @@
], ],
"attributes": { "attributes": {
"label": { "label": {
"value": "start_time = datetime" "value": "start_time = datetime.datetime.now"
}, },
"labelDimensions": { "labelDimensions": {
"width": 0, "width": 0,