Programming environment for editing various of my live apps without restarting them.
load_definition = function(name)
	move_candidate_to_front_of_manifest(name)
	if Cursor_node then
		Cursor_node.show_cursor = false
	end
	-- just one copy per definition for now
	if Definitions[name] == nil then
		local p = spawn_point()
		Definitions[name] = {
			type='text',
			data=load_from_iterator(get_definition_from_app(name):gmatch("[^\r\n]+")),
			x=p.x, y=p.y,
			width=600,
			bg=definition_background_color(name),
		}
	else
		Viewport.x = Definitions[name].x-30
		Viewport.y = Definitions[name].y-30
	end
	Cursor_node = Definitions[name]
	Cursor_node.show_cursor = true
end