little tool for building Wardley maps
on.text_input = function(t)
	if Cursor_node then
		local old_top = {line=Cursor_node.editor.screen_top1.line, pos=Cursor_node.editor.screen_top1.pos}
		edit.text_input(Cursor_node.editor, t)
		if not eq(Cursor_node.editor.screen_top1, old_top) then
			Viewport.y = Cursor_node.y + y_of_schema1(Cursor_node.editor, Cursor_node.editor.screen_top1)
		end
		A(--[[preserve screen_top of cursor node]] true)
	end
end