add top, left keywords
This commit is contained in:
parent
c3b6eeabd6
commit
641a6741ff
3 changed files with 38 additions and 2 deletions
|
|
@ -285,6 +285,24 @@ func (c *compiler) compileReserved(attrs *d2graph.Attributes, f *d2ir.Field) {
|
||||||
attrs.Height = &d2graph.Scalar{}
|
attrs.Height = &d2graph.Scalar{}
|
||||||
attrs.Height.Value = scalar.ScalarString()
|
attrs.Height.Value = scalar.ScalarString()
|
||||||
attrs.Height.MapKey = f.LastPrimaryKey()
|
attrs.Height.MapKey = f.LastPrimaryKey()
|
||||||
|
case "top":
|
||||||
|
_, err := strconv.Atoi(scalar.ScalarString())
|
||||||
|
if err != nil {
|
||||||
|
c.errorf(scalar, "non-integer top %#v: %s", scalar.ScalarString(), err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
attrs.Top = &d2graph.Scalar{}
|
||||||
|
attrs.Top.Value = scalar.ScalarString()
|
||||||
|
attrs.Top.MapKey = f.LastPrimaryKey()
|
||||||
|
case "left":
|
||||||
|
_, err := strconv.Atoi(scalar.ScalarString())
|
||||||
|
if err != nil {
|
||||||
|
c.errorf(scalar, "non-integer left %#v: %s", scalar.ScalarString(), err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
attrs.Left = &d2graph.Scalar{}
|
||||||
|
attrs.Left.Value = scalar.ScalarString()
|
||||||
|
attrs.Left.MapKey = f.LastPrimaryKey()
|
||||||
case "link":
|
case "link":
|
||||||
attrs.Link = scalar.ScalarString()
|
attrs.Link = scalar.ScalarString()
|
||||||
case "direction":
|
case "direction":
|
||||||
|
|
@ -364,6 +382,10 @@ func compileStyleFieldInit(attrs *d2graph.Attributes, f *d2ir.Field) {
|
||||||
attrs.Width = &d2graph.Scalar{MapKey: f.LastPrimaryKey()}
|
attrs.Width = &d2graph.Scalar{MapKey: f.LastPrimaryKey()}
|
||||||
case "height":
|
case "height":
|
||||||
attrs.Height = &d2graph.Scalar{MapKey: f.LastPrimaryKey()}
|
attrs.Height = &d2graph.Scalar{MapKey: f.LastPrimaryKey()}
|
||||||
|
case "top":
|
||||||
|
attrs.Top = &d2graph.Scalar{MapKey: f.LastPrimaryKey()}
|
||||||
|
case "left":
|
||||||
|
attrs.Left = &d2graph.Scalar{MapKey: f.LastPrimaryKey()}
|
||||||
case "double-border":
|
case "double-border":
|
||||||
attrs.Style.DoubleBorder = &d2graph.Scalar{MapKey: f.LastPrimaryKey()}
|
attrs.Style.DoubleBorder = &d2graph.Scalar{MapKey: f.LastPrimaryKey()}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,6 @@ x: {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
name: "dimensions_on_nonimage",
|
name: "dimensions_on_nonimage",
|
||||||
|
|
||||||
|
|
@ -114,6 +113,17 @@ x: {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "positions",
|
||||||
|
text: `hey: {
|
||||||
|
top: 200
|
||||||
|
left: 230
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
assertions: func(t *testing.T, g *d2graph.Graph) {
|
||||||
|
tassert.Equal(t, "200", g.Objects[0].Attributes.Top.Value)
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "equal_dimensions_on_circle",
|
name: "equal_dimensions_on_circle",
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -98,10 +98,12 @@ type Attributes struct {
|
||||||
Tooltip string `json:"tooltip,omitempty"`
|
Tooltip string `json:"tooltip,omitempty"`
|
||||||
Link string `json:"link,omitempty"`
|
Link string `json:"link,omitempty"`
|
||||||
|
|
||||||
// Only applicable for images right now
|
|
||||||
Width *Scalar `json:"width,omitempty"`
|
Width *Scalar `json:"width,omitempty"`
|
||||||
Height *Scalar `json:"height,omitempty"`
|
Height *Scalar `json:"height,omitempty"`
|
||||||
|
|
||||||
|
Top *Scalar `json:"top,omitempty"`
|
||||||
|
Left *Scalar `json:"left,omitempty"`
|
||||||
|
|
||||||
// TODO consider separate Attributes struct for shape-specific and edge-specific
|
// TODO consider separate Attributes struct for shape-specific and edge-specific
|
||||||
// Shapes only
|
// Shapes only
|
||||||
NearKey *d2ast.KeyPath `json:"near_key"`
|
NearKey *d2ast.KeyPath `json:"near_key"`
|
||||||
|
|
@ -1442,6 +1444,8 @@ var SimpleReservedKeywords = map[string]struct{}{
|
||||||
"width": {},
|
"width": {},
|
||||||
"height": {},
|
"height": {},
|
||||||
"direction": {},
|
"direction": {},
|
||||||
|
"top": {},
|
||||||
|
"left": {},
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReservedKeywordHolders are reserved keywords that are meaningless on its own and exist solely to hold a set of reserved keywords
|
// ReservedKeywordHolders are reserved keywords that are meaningless on its own and exist solely to hold a set of reserved keywords
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue