diff --git a/d2compiler/compile.go b/d2compiler/compile.go index 4dd2badbb..66940ce56 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -368,8 +368,8 @@ func (c *compiler) compileReserved(attrs *d2graph.Attributes, f *d2ir.Field) { c.errorf(scalar, "non-integer rows %#v: %s", scalar.ScalarString(), err) return } - if v < 0 { - c.errorf(scalar, "rows must be a non-negative integer: %#v", scalar.ScalarString()) + if v <= 0 { + c.errorf(scalar, "rows must be a positive integer: %#v", scalar.ScalarString()) return } attrs.Rows = &d2graph.Scalar{} @@ -381,8 +381,8 @@ func (c *compiler) compileReserved(attrs *d2graph.Attributes, f *d2ir.Field) { c.errorf(scalar, "non-integer columns %#v: %s", scalar.ScalarString(), err) return } - if v < 0 { - c.errorf(scalar, "columns must be a non-negative integer: %#v", scalar.ScalarString()) + if v <= 0 { + c.errorf(scalar, "columns must be a positive integer: %#v", scalar.ScalarString()) return } attrs.Columns = &d2graph.Scalar{} diff --git a/d2compiler/compile_test.go b/d2compiler/compile_test.go index 7dc218cae..2d6e63a95 100644 --- a/d2compiler/compile_test.go +++ b/d2compiler/compile_test.go @@ -2286,7 +2286,7 @@ obj { columns: -200 } `, - expErr: `d2/testdata/d2compiler/TestCompile/grid_negative.d2:3:11: columns must be a non-negative integer: "-200"`, + expErr: `d2/testdata/d2compiler/TestCompile/grid_negative.d2:3:11: columns must be a positive integer: "-200"`, }, } diff --git a/d2layouts/d2grid/grid.go b/d2layouts/d2grid/grid.go index 29853fc8a..cd5e4ec8f 100644 --- a/d2layouts/d2grid/grid.go +++ b/d2layouts/d2grid/grid.go @@ -29,15 +29,9 @@ func newGrid(root *d2graph.Object) *grid { // TODO consider making this based on node dimensions if g.rows == 0 { // set rows based on number of columns - if g.columns == 0 { - // 0,0: put everything in one row - g.rows = 1 - g.columns = len(g.nodes) - } else { - g.rows = len(g.nodes) / g.columns - if len(g.nodes)%g.columns != 0 { - g.rows++ - } + g.rows = len(g.nodes) / g.columns + if len(g.nodes)%g.columns != 0 { + g.rows++ } } else if g.columns == 0 { // set columns based on number of rows diff --git a/testdata/d2compiler/TestCompile/grid_negative.exp.json b/testdata/d2compiler/TestCompile/grid_negative.exp.json index ff17efc56..5551871da 100644 --- a/testdata/d2compiler/TestCompile/grid_negative.exp.json +++ b/testdata/d2compiler/TestCompile/grid_negative.exp.json @@ -5,7 +5,7 @@ "errs": [ { "range": "d2/testdata/d2compiler/TestCompile/grid_negative.d2,2:10:28-2:14:32", - "errmsg": "d2/testdata/d2compiler/TestCompile/grid_negative.d2:3:11: columns must be a non-negative integer: \"-200\"" + "errmsg": "d2/testdata/d2compiler/TestCompile/grid_negative.d2:3:11: columns must be a positive integer: \"-200\"" } ] }