editorPanel
local edui = require("@builtin::editor.edui.framework")
return {
title = "My Tab", -- the tab's label
order = 60, -- sort position in the Window menu
dock = "bottom", -- seed area: left | right | bottom | center
startClosed = true, -- registered closed; opened from the Window menu
build = function() -- the tab's body, rebuilt on the shell's cadence
return edui.panel{ body = edui.text{ text = "hello" } }
end,
}
The tab id defaults to the folder stem (myTab.editorPanel -> myTab); an
explicit id overrides it. An init may return a LIST of specs when one asset
carries several tabs.
The type's onRegister lifecycle registers every instance into the editor
shell: live on asset.create, in the world-load sweep for the open world's
panels, and from the boot prelude for the built-in library's. Adding a tab to
a project is authoring one of these folders under /source/editorPanels/;
saving it makes the tab appear, editing it re-registers it, deleting it
removes it. Nothing registers panels by name anywhere.