EditorIntegration

gdext.internal.register.editor.EditorIntegration

Editor-side integration for typed scene (Tscn[T]) exports.

Installs an EditorInspectorPlugin; for Tscn[T] properties (recorded in SceneExportRegistry) it knows the required root node type T. Registered at the EDITOR init level (tool classes, isRuntime=false).

Status — the plugin pipeline (editor registration → editor_add_plugin → EditorPlugin._enter_tree → add_inspector_plugin → _can_handle/ _parse_property) is wired and the reusable primitives for a custom picker exist (Callable, Signals.connect, SignalRegistration.callDeferred, MethodRegistration.registerAction, a custom EditorProperty that renders).

Follow-up (deferred): a custom property editor that filters the scene picker by root type. Two blockers remain: (1) a child Control (e.g. a Button) added to an extension-created EditorProperty segfaults reading its theme on enter-tree ("theme items too early") — unresolved across pre-tree / _ready / call_deferred / minimal-addChild attempts; likely a theme-owner propagation issue for extension EditorPropertys. (2) The picker UI also needs engine methods absent from the curated codegen (PopupMenu.popup, DirAccess/PackedStringArray for scanning, EditorProperty.emit_changed). Until then the plugin stays inert and the default (unfiltered) PackedScene picker is used.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

def registerAtEditorLevel(): Unit

Register the editor tool classes and add the plugin. Reload-safe.

Register the editor tool classes and add the plugin. Reload-safe.

Attributes

Remove the editor plugin during the old image's deinitialize(EDITOR) so a hot-reload's new image can re-add it cleanly. Without this, every reload re-runs editor_add_plugin while the previous plugin is still registered → "Editor plugin already added for class: ScalaExportPlugin".

Remove the editor plugin during the old image's deinitialize(EDITOR) so a hot-reload's new image can re-add it cleanly. Without this, every reload re-runs editor_add_plugin while the previous plugin is still registered → "Editor plugin already added for class: ScalaExportPlugin".

Attributes