I don't know why I have such an almighty struggle with this stuff.
5UJNSNQR7MRKERR4PPQ2KRRQBTPDNBAYLKVMUGSL5WXXBQ4YHLUAC
UAF7N7MIAMHGEVSGXMQZGVJ7YNVWICYJYJGE3NQMUEHKATSH74WAC
UGBHJVB6C2WY7ZGV4L77L24DR5YG3AYWV7MIZSHN4PTMS2QVERSAC
FWCILHZLHSMW2RQF4ZTJVABMHTD6IR4KPCHUEJFTQT2MXHV75XDQC
NYQUJUQ3I47Q4SOP5K4MT5UJUNUVZKURBCZ4VIL55KJ5FPQJ32JQC
TZNPEHB3BRUHATVYAODURZUR45TYV62HYWQK5SUXHAOLVGYJVP7AC
JIBCE66ZTWM5WEHEHNKKTRWBJQSQWBDDWPMOJIJR5Q676OSHYCNAC
print('node', node.y)
local cursor_sy = node.y + y_of_schema1(node.editor, node.editor.cursor1)
print('node', node.y, node.y/Viewport.zoom)
--? 0 608 vs 38*20 = 760
local cursor_sy = node.y + y_of_schema1(node.editor, node.editor.cursor1)/Viewport.zoom
--? 608 0 775 968.75 968.75 928.75
print(cursor_sy, Viewport.y, App.screen.height, App.screen.height/Viewport.zoom, Viewport.y + App.screen.height/Viewport.zoom, Viewport.y + App.screen.height/Viewport.zoom - safety_margin)