diff --git a/d2oracle/edit.go b/d2oracle/edit.go index 1d3103a28..9fe1c5389 100644 --- a/d2oracle/edit.go +++ b/d2oracle/edit.go @@ -2066,7 +2066,13 @@ func hasSpace(tag string) bool { } func getMostNestedRefs(obj *d2graph.Object) []d2graph.Reference { - most := obj.References[0] + var most d2graph.Reference + for _, ref := range obj.References { + if len(ref.MapKey.Edges) == 0 { + most = ref + break + } + } for _, ref := range obj.References { if len(ref.MapKey.Edges) != 0 { continue diff --git a/d2oracle/edit_test.go b/d2oracle/edit_test.go index 02669c453..4c6a16cae 100644 --- a/d2oracle/edit_test.go +++ b/d2oracle/edit_test.go @@ -2001,6 +2001,32 @@ c: { assert.JSON(t, len(g.Objects), 3) }, }, + { + name: "underscore-connection", + + text: `a: { + b + + _.c.d -> b +} + +c: { + d +} +`, + key: `a.b`, + newKey: `c.b`, + + exp: `a: { + _.c.d -> _.c.b +} + +c: { + d + b +} +`, + }, { name: "flat_middle_container",