dump_state = function() print('===') print('zoom', Viewport.zoom) print('viewport', Viewport.y, 'spx') local node = Page.data[1] print('node', node.y, 'spx') print('line height', node.editor.line_height, 'vpx') print('node renders from', node.editor.top, 'vpx') print('screen top', node.editor.screen_top1.line) print('invariant', Viewport.y-node.y+node.editor.top - y_of_schema1(node.editor, node.editor.screen_top1)) local l = 25 print('y of line', l, y_of_schema1(node.editor, {line=l, pos=1}), 'spx') end