class
Lapis::CrystalIntegrationPlugin
Defined in:
libgodot/editor.crConstant Summary
-
CRYSTAL_ICON_SVG =
"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 193.2 206.7' width='16' height='16'><path fill='#e0e0e0' d='m165.4 122-50 49.9c-.2.2-.5.3-.7.2l-68.3-18.3c-.3-.1-.5-.3-.5-.5L27.5 85.1c-.1-.3 0-.5.2-.7l50-49.9c.2-.2.5-.3.7-.2l68.3 18.3c.3.1.5.3.5.5l18.3 68.2c.2.3.1.5-.1.7zm-67-54.3L31.3 85.6c-.1 0-.2.2-.1.3l49.1 49c.1.1.3.1.3-.1l18-67c.1 0-.1-.2-.2-.1z'/></svg>"
Constructors
Class Method Summary
- ._godot_has_virtual_method(method_name : String) : Bool
- ._godot_module_constants : Array(Godot::ConstantInfo)
- ._godot_module_properties : Array(Godot::PropertyInfo)
- ._godot_module_signals : Array(Godot::SignalInfo)
-
.apply_headless_editor_settings : Void
Disables type-safe line highlighting in EditorSettings to avoid engine asserts in headless editor mode
- .apply_highlighter_if_needed : Void
-
.build_compiler_env : Hash(String, String)
Builds an environment Hash with properly configured CRYSTAL_PATH ensuring libgodot and local shards can be resolved from anywhere.
- .building? : Bool
-
.check_test_build_button_flow : Void
Automated verification workflow for the Build Crystal toolbar button and GDExtension reload
- .cleanup : Void
- .cleanup_on_shutdown : Void
- .clear_theme_icons : Void
-
.ensure_editor_setup : Void
Ensures all editor integration components are active when running inside the Godot Editor.
-
.ensure_highlighter_registered : Void
Ensures syntax highlighter is registered with ScriptEditor
-
.ensure_project_bindings : Void
Automatically generates project bindings for custom GDScript nodes if present
-
.ensure_theme_icons : Void
Registers Crystal icons into Godot's EditorIcons theme so ScriptCreateDialog and FileSystem dock display proper icons
-
.execute_crystal_build : Bool
Compiles project Crystal code into shared library
-
.execute_crystal_build_with_options(is_release : Bool = false) : Bool
Compiles project Crystal code with optional release optimizations
- .get_crystal_icon_texture : Godot::Texture2D | Nil
- .godot_class_name : String
- .godot_parent_class_name : String
- .has_editor_interface? : Bool
- .headless? : Bool
- .link_scripts_in_edited_scene : Void
- .link_scripts_recursive(node : Godot::Node) : Void
- .on_cleanup : Proc(Void) | Nil
- .on_cleanup=(on_cleanup : Proc(Void) | Nil)
-
.on_compile_button_pressed : Void
Handles toolbar compile button press to trigger manual Crystal rebuild
- .on_poll : Proc(Void) | Nil
- .on_poll=(on_poll : Proc(Void) | Nil)
- .quit_editor(exit_code : Int64) : Void
-
.recompile_modified_addons_silent : Void
Scans project addons/ directory and recompiles any Crystal addons whose source code changed
-
.refresh_inspector_deferred : Void
Defers a property list notification on edited scene root to refresh inspector after reload
- .reload_pending=(val : Bool) : Void
- .reload_pending? : Bool
-
.report_build_failure(context : String, out_msg : String, err_msg : String, exit_code : Int32) : Void
Formats and bubbles up compilation failures into the Godot Editor UI: - Outputs clean formatted error banner in the bottom panel - Emits EditorToaster notification (toast in status bar) - Pops up centered AcceptDialog in the editor viewport - Jumps to the offending line in ScriptEditor if file/line is detected
- .reset_toolbar_button : Void
-
.run_in_editor_tool_tests : Void
Executes in-editor @tool tests, Lapis::Test::Registry suites, and dynamic ClassDB verification in 100% pure Crystal
-
.save_open_editor_files : Void
Saves all open scripts and scenes in the editor before compiling so modifications on disk are up to date
-
.schedule_fresh_test_exit : Void
Automated exit workflow for fresh editor open tests
-
.schedule_in_editor_tool_tests : Void
Schedules pure-Crystal in-editor test suite execution
- .schedule_test_button_press(delay_sec : Float64, cycle : Int64, total_cycles : Int64) : Void
-
.setup_debugger_plugin : Void
Registers and configures the native radare2 debugger plugin
-
.setup_main_screen_panel : Void
Docks the CrystalPanel into Godot Editor's main screen and makes it available to the editor
- .setup_new_script_button : Void
- .setup_toolbar_button : Void
- .show_build_error_dialog(context : String, summary : String, full_error : String, file_path : String = "", line_num : Int32 = -1) : Void
- .show_create_script_dialog : Void
-
.sync_script_file(base_ed : Godot::Object, path : String) : Void
Synchronizes a script editor buffer with the file on disk.
Instance Method Summary
-
#_build : Bool
Invoked by Godot editor before running project (F5 / F6)
-
#_enter_tree : Void
Lifecycle callback called when the node enters the tree hierarchy.
-
#_exit_tree : Void
Lifecycle callback called when the node exits the tree hierarchy.
- #_get_plugin_icon : Texture2D | Nil
- #_get_plugin_name : String
-
#_godot_call_tool_button(button_name : String) : Void
Dispatches inspector tool button clicks on this object.
-
#_godot_call_virtual(method_name : String, delta : Float64) : Void
Virtual method and property dispatch hooks overridden by class registration macros.
-
#_godot_call_virtual_with_data(method_name : String, args : Pointer(Pointer(Void)), ret : Pointer(Void)) : Void
Dispatches generic virtual methods with raw arguments and return buffer.
-
#_godot_get_property(prop_name : String, ret_ptr : Pointer(Void)) : Void
Invoked by the GDExtension bridge when retrieving an exposed
@exportproperty. -
#_godot_set_property(prop_name : String, val_ptr : Pointer(Void)) : Void
Invoked by the GDExtension bridge when setting an exposed
@exportproperty. - #_has_main_screen : Bool
- #_make_visible(visible : Bool) : Void
-
#_process(delta : Float64) : Void
Per-frame process callback receiving delta timestep in seconds (
Float64). -
#active : Bool
Active status of the compiled Crystal editor integration
- #apply_highlighter_if_needed : Void
-
#call(method : String, *args) : Pointer(Void)
Calls the named method on the object with variable arguments.
- #check_test_build_button_flow : Void
- #configure_code_editor : Void
- #deferred_setup_editor_ui : Void
-
#emit_ready_in_editor : Void
Type-safe emission helper
- #execute_crystal_build : Bool
- #execute_crystal_build_with_options(is_release : Bool = false) : Bool
- #get_crystal_plugin_icon : Texture2D | Nil
- #make_crystal_panel_visible(visible : Bool) : Void
- #on_compile_button_pressed : Void
-
#on_ready_in_editor(&block : -> Void) : Godot::SignalSubscription
Type-safe signal listener
-
#on_ready_in_editor_once(&block : -> Void) : Godot::SignalSubscription
One-shot type-safe signal listener that automatically disconnects after firing once
-
#ready_in_editor : Godot::TypedSignal()
Bound signal accessor for idiomatic
await(node.ready_in_editor)or `node.ready_in_editor.connect { ... - #recompile_modified_addons_silent : Void
- #run_in_editor_tool_tests : Void
- #setup_code_completion : Void
- #setup_debugger_plugin : Void
- #setup_main_screen_panel : Void
- #setup_new_script_button : Void
- #setup_toolbar_button : Void
-
#status_message : String
Status message visible in inspector or tooling
- #verify_godot_version : Void
- #verify_required_tools : Void
-
#version : String
Version of the compiled Lapis library
Instance methods inherited from class Godot::EditorPlugin
add_autoload_singleton(name : String, path : String) : Void
add_autoload_singleton,
add_context_menu_plugin(slot : Godot::EditorContextMenuPlugin::ContextMenuSlot | Int, plugin : EditorContextMenuPlugin) : Void
add_context_menu_plugin,
add_control_to_bottom_panel(control : Control, title : String, shortcut : Shortcut | Nil = nil) : Button
add_control_to_bottom_panel,
add_control_to_container(container : CustomControlContainer | Int, control : Control) : Void
add_control_to_container,
add_control_to_dock(slot : DockSlot | Int, control : Control, shortcut : Shortcut | Nil = nil) : Void
add_control_to_dock,
add_custom_type(get_type : String, base : String, script : Script, icon : Texture2D) : Void
add_custom_type,
add_debugger_plugin(script : EditorDebuggerPlugin) : Void
add_debugger_plugin,
add_dock(dock : EditorDock) : Void
add_dock,
add_export_platform(platform : EditorExportPlatform) : Void
add_export_platform,
add_export_plugin(plugin : EditorExportPlugin) : Void
add_export_plugin,
add_import_plugin(importer : EditorImportPlugin, first_priority : Bool = false) : Void
add_import_plugin,
add_inspector_plugin(plugin : EditorInspectorPlugin) : Void
add_inspector_plugin,
add_node_3d_gizmo_plugin(plugin : EditorNode3DGizmoPlugin) : Void
add_node_3d_gizmo_plugin,
add_resource_conversion_plugin(plugin : EditorResourceConversionPlugin) : Void
add_resource_conversion_plugin,
add_scene_format_importer_plugin(scene_format_importer : EditorSceneFormatImporter, first_priority : Bool = false) : Void
add_scene_format_importer_plugin,
add_scene_post_import_plugin(scene_import_plugin : EditorScenePostImportPlugin, first_priority : Bool = false) : Void
add_scene_post_import_plugin,
add_tool_menu_item(name : String, callable : Pointer(Void)) : Void
add_tool_menu_item,
add_tool_submenu_item(name : String, submenu : PopupMenu) : Void
add_tool_submenu_item,
add_translation_parser_plugin(parser : EditorTranslationParserPlugin) : Void
add_translation_parser_plugin,
add_undo_redo_inspector_hook_callback(callable : Pointer(Void)) : Void
add_undo_redo_inspector_hook_callback,
emit_main_screen_changed(*args) : Void
emit_main_screen_changed,
emit_project_settings_changed : Void
emit_project_settings_changed,
emit_resource_saved(*args) : Void
emit_resource_saved,
emit_scene_changed(*args) : Void
emit_scene_changed,
emit_scene_closed(*args) : Void
emit_scene_closed,
emit_scene_saved(*args) : Void
emit_scene_saved,
get_editor_interface : EditorInterface
get_editor_interface,
get_export_as_menu : PopupMenu
get_export_as_menu,
get_plugin_version : String
get_plugin_version,
get_script_create_dialog : ScriptCreateDialog
get_script_create_dialog,
get_undo_redo : EditorUndoRedoManager
get_undo_redo,
hide_bottom_panel : Void
hide_bottom_panel,
main_screen_changed : Godot::TypedSignal(String)
main_screen_changed,
make_bottom_panel_item_visible(item : Control) : Void
make_bottom_panel_item_visible,
project_settings_changed : Godot::TypedSignal()
project_settings_changed,
queue_save_layout : Void
queue_save_layout,
remove_autoload_singleton(name : String) : Void
remove_autoload_singleton,
remove_context_menu_plugin(plugin : EditorContextMenuPlugin) : Void
remove_context_menu_plugin,
remove_control_from_bottom_panel(control : Control) : Void
remove_control_from_bottom_panel,
remove_control_from_container(container : CustomControlContainer | Int, control : Control) : Void
remove_control_from_container,
remove_control_from_docks(control : Control) : Void
remove_control_from_docks,
remove_custom_type(get_type : String) : Void
remove_custom_type,
remove_debugger_plugin(script : EditorDebuggerPlugin) : Void
remove_debugger_plugin,
remove_dock(dock : EditorDock) : Void
remove_dock,
remove_export_platform(platform : EditorExportPlatform) : Void
remove_export_platform,
remove_export_plugin(plugin : EditorExportPlugin) : Void
remove_export_plugin,
remove_import_plugin(importer : EditorImportPlugin) : Void
remove_import_plugin,
remove_inspector_plugin(plugin : EditorInspectorPlugin) : Void
remove_inspector_plugin,
remove_node_3d_gizmo_plugin(plugin : EditorNode3DGizmoPlugin) : Void
remove_node_3d_gizmo_plugin,
remove_resource_conversion_plugin(plugin : EditorResourceConversionPlugin) : Void
remove_resource_conversion_plugin,
remove_scene_format_importer_plugin(scene_format_importer : EditorSceneFormatImporter) : Void
remove_scene_format_importer_plugin,
remove_scene_post_import_plugin(scene_import_plugin : EditorScenePostImportPlugin) : Void
remove_scene_post_import_plugin,
remove_tool_menu_item(name : String) : Void
remove_tool_menu_item,
remove_translation_parser_plugin(parser : EditorTranslationParserPlugin) : Void
remove_translation_parser_plugin,
remove_undo_redo_inspector_hook_callback(callable : Pointer(Void)) : Void
remove_undo_redo_inspector_hook_callback,
resource_saved : Godot::TypedSignal(Resource)
resource_saved,
scene_changed : Godot::TypedSignal(Node)
scene_changed,
scene_closed : Godot::TypedSignal(String)
scene_closed,
scene_saved : Godot::TypedSignal(String)
scene_saved,
set_dock_tab_icon(control : Control, icon : Texture2D) : Void
set_dock_tab_icon,
set_force_draw_over_forwarding_enabled : Void
set_force_draw_over_forwarding_enabled,
set_input_event_forwarding_always_enabled : Void
set_input_event_forwarding_always_enabled,
update_overlays : Int64
update_overlays
Constructor methods inherited from class Godot::EditorPlugin
new(pointer : Pointer(Void) = Pointer(Void).null)
new
Instance methods inherited from class Godot::Node
%(unique_name : String | NodePath) : Node%(type : T.class) : T forall T %, /(path : String | NodePath) : Node
/(type : T.class) : T forall T /, [](path : String | NodePath, type : T.class) : T forall T
[](type : T.class, path : String | NodePath) : T forall T
[](path : String) : Node
[](path : NodePath) : Node
[](type : T.class) : T forall T [], []?(path : String | NodePath, type : T.class) : T | Nil forall T
[]?(type : T.class, path : String | NodePath) : T | Nil forall T
[]?(path : String) : Node | Nil
[]?(path : NodePath) : Node | Nil
[]?(type : T.class) : T | Nil forall T []?, _enter_tree : Void _enter_tree, _exit_tree : Void _exit_tree, _physics_process(delta : Float64) : Void _physics_process, _process(delta : Float64) : Void _process, _ready : Void _ready, ~ : self ~, add_child(node : Node, force_readable_name : Bool = false, internal : InternalMode | Int = 0) : Void add_child, add_sibling(sibling : Node, force_readable_name : Bool = false) : Void add_sibling, add_to_group(group : String, persistent : Bool = false) : Void add_to_group, ancestor_of?(node : Node) : Bool ancestor_of?, atr(message : String, context : String = "") : String atr, atr_n(message : String, plural_message : String, n : Int64, context : String = "") : String atr_n, auto_translate_mode auto_translate_mode, auto_translate_mode=(val : Int) auto_translate_mode=, can_auto_translate : Bool can_auto_translate, can_auto_translate? : Bool can_auto_translate?, can_process : Bool can_process, can_process? : Bool can_process?, child_count : Int32 child_count, child_entered_tree : Godot::TypedSignal(Node) child_entered_tree, child_exiting_tree : Godot::TypedSignal(Node) child_exiting_tree, child_order_changed : Godot::TypedSignal() child_order_changed, children(include_internal : Bool = false) : Array(Node) children, clear_children(include_internal : Bool = false) : Void clear_children, create_tween : Tween create_tween, defer_add_child(node : Node, force_readable_name : Bool = false, internal : InternalMode | Int = 0) : Void defer_add_child, defer_move_child(child_node : Node, to_position : Int64 | Int32) : Void defer_move_child, defer_queue_free : Void defer_queue_free, defer_remove_child(node : Node) : Void defer_remove_child, defer_reparent(new_parent : Node, keep_global_transform : Bool = true) : Void defer_reparent, destroy : Void destroy, displayed_folded? : Bool displayed_folded?, duplicate(flags : Int64 = 15_i64) : Node duplicate, each_child(include_internal : Bool = false, &block : Node -> Void) : Void each_child, editable_instance?(node : Node) : Bool editable_instance?, editor_description editor_description, editor_description=(val) editor_description=, editor_description_changed : Godot::TypedSignal(Node) editor_description_changed, editor_state_changed : Godot::TypedSignal() editor_state_changed, emit_child_entered_tree(*args) : Void emit_child_entered_tree, emit_child_exiting_tree(*args) : Void emit_child_exiting_tree, emit_child_order_changed : Void emit_child_order_changed, emit_editor_description_changed(*args) : Void emit_editor_description_changed, emit_editor_state_changed : Void emit_editor_state_changed, emit_ready : Void emit_ready, emit_renamed : Void emit_renamed, emit_replacing_by(*args) : Void emit_replacing_by, emit_tree_entered : Void emit_tree_entered, emit_tree_exited : Void emit_tree_exited, emit_tree_exiting : Void emit_tree_exiting, find_child(pattern : String, recursive : Bool = true, owned : Bool = true) : Node find_child, find_child?(pattern : String, recursive : Bool = true, owned : Bool = false) : Node | Nil find_child?, find_child_as(type : T.class, pattern : String, recursive : Bool = true, owned : Bool = false) : T | Nil forall T find_child_as, find_children(pattern : String, get_type : String = "", recursive : Bool = true, owned : Bool = true) : Pointer(Void) find_children, find_parent(pattern : String) : Node find_parent, get_accessibility_element : Int64 get_accessibility_element, get_auto_translate_mode : AutoTranslateMode get_auto_translate_mode, get_child(idx : Int64, include_internal : Bool = false) : Node get_child, get_child?(idx : Int, include_internal : Bool = false) : Node | Nil get_child?, get_child_as(type : T.class, idx : Int, include_internal : Bool = false) : T | Nil forall T get_child_as, get_child_count(include_internal : Bool = false) : Int64 get_child_count, get_children(include_internal : Bool = false) : Array(Node) get_children, get_children_as(type : T.class, include_internal : Bool = false) : Array(T) forall T get_children_as, get_editor_description : String get_editor_description, get_groups : Pointer(Void) get_groups, get_index(include_internal : Bool = false) : Int64 get_index, get_last_exclusive_window : Window get_last_exclusive_window, get_multiplayer : MultiplayerAPI get_multiplayer, get_multiplayer_authority : Int64 get_multiplayer_authority, get_name : String get_name, get_node(path : String) : Node
get_node(path : NodePath) : Node
get_node(path : NodePath | String) : Node get_node, get_node?(path : String) : Node | Nil
get_node?(path : NodePath) : Node | Nil get_node?, get_node_and_resource(path : NodePath | String) : Pointer(Void) get_node_and_resource, get_node_as(path : String | NodePath, type : T.class) : T forall T get_node_as, get_node_as?(path : String | NodePath, type : T.class) : T | Nil forall T get_node_as?, get_node_or_null(path : String) : Node | Nil
get_node_or_null(path : NodePath) : Node | Nil
get_node_or_null(path : NodePath | String) : Node get_node_or_null, get_node_rpc_config : Pointer(Void) get_node_rpc_config, get_orphan_node_ids : Pointer(Void) get_orphan_node_ids, get_owner : Node get_owner, get_parent : Node get_parent, get_parent? : Node | Nil get_parent?, get_parent_as(type : T.class) : T | Nil forall T get_parent_as, get_path : NodePath get_path, get_path_to(node : Node, use_unique_path : Bool = false) : NodePath get_path_to, get_physics_interpolation_mode : PhysicsInterpolationMode get_physics_interpolation_mode, get_physics_process_delta_time : Float64 get_physics_process_delta_time, get_physics_process_priority : Int64 get_physics_process_priority, get_process_delta_time : Float64 get_process_delta_time, get_process_mode : ProcessMode get_process_mode, get_process_priority : Int64 get_process_priority, get_process_thread_group : ProcessThreadGroup get_process_thread_group, get_process_thread_group_order : Int64 get_process_thread_group_order, get_process_thread_messages : ProcessThreadMessages get_process_thread_messages, get_scene_file_path : String get_scene_file_path, get_scene_instance_load_placeholder : Bool get_scene_instance_load_placeholder, get_scene_instance_load_placeholder? : Bool get_scene_instance_load_placeholder?, get_tree : SceneTree get_tree, get_tree_string : String get_tree_string, get_tree_string_pretty : String get_tree_string_pretty, get_unique_node_as(unique_name : String, type : T.class) : T | Nil forall T get_unique_node_as, get_viewport : Viewport get_viewport, get_window : Window get_window, greater_than?(node : Node) : Bool greater_than?, has_node(path : NodePath | String) : Bool has_node, has_node?(path : NodePath | String) : Bool has_node?, has_node_and_resource(path : NodePath | String) : Bool has_node_and_resource, has_node_and_resource?(path : NodePath | String) : Bool has_node_and_resource?, in_group?(group_name : String) : Bool in_group?, inside_tree? : Bool inside_tree?, is_ancestor_of(node : Node) : Bool is_ancestor_of, is_ancestor_of?(node : Node) : Bool is_ancestor_of?, is_displayed_folded : Bool is_displayed_folded, is_displayed_folded? : Bool is_displayed_folded?, is_editable_instance(node : Node) : Bool is_editable_instance, is_editable_instance?(node : Node) : Bool is_editable_instance?, is_greater_than(node : Node) : Bool is_greater_than, is_greater_than?(node : Node) : Bool is_greater_than?, is_in_group(group : String) : Bool is_in_group, is_in_group?(group : String) : Bool is_in_group?, is_inside_tree : Bool is_inside_tree, is_inside_tree? : Bool is_inside_tree?, is_multiplayer_authority : Bool is_multiplayer_authority, is_multiplayer_authority? : Bool is_multiplayer_authority?, is_node_ready : Bool is_node_ready, is_node_ready? : Bool is_node_ready?, is_part_of_edited_scene : Bool is_part_of_edited_scene, is_part_of_edited_scene? : Bool is_part_of_edited_scene?, is_physics_interpolated : Bool is_physics_interpolated, is_physics_interpolated? : Bool is_physics_interpolated?, is_physics_interpolated_and_enabled : Bool is_physics_interpolated_and_enabled, is_physics_interpolated_and_enabled? : Bool is_physics_interpolated_and_enabled?, is_physics_processing : Bool is_physics_processing, is_physics_processing? : Bool is_physics_processing?, is_physics_processing_internal : Bool is_physics_processing_internal, is_physics_processing_internal? : Bool is_physics_processing_internal?, is_processing : Bool is_processing, is_processing? : Bool is_processing?, is_processing_input : Bool is_processing_input, is_processing_input? : Bool is_processing_input?, is_processing_internal : Bool is_processing_internal, is_processing_internal? : Bool is_processing_internal?, is_processing_shortcut_input : Bool is_processing_shortcut_input, is_processing_shortcut_input? : Bool is_processing_shortcut_input?, is_processing_unhandled_input : Bool is_processing_unhandled_input, is_processing_unhandled_input? : Bool is_processing_unhandled_input?, is_processing_unhandled_key_input : Bool is_processing_unhandled_key_input, is_processing_unhandled_key_input? : Bool is_processing_unhandled_key_input?, is_unique_name_in_owner : Bool is_unique_name_in_owner, is_unique_name_in_owner? : Bool is_unique_name_in_owner?, local_groups : Set(String) local_groups, move_child(child_node : Node, to_index : Int64) : Void
move_child(child_node : Node, to_index : Int | Int64) : Void move_child, multiplayer multiplayer, multiplayer_authority? : Bool multiplayer_authority?, name : String name, name=(val : String) name=, node_as(path : String | NodePath, type : T.class) : T forall T node_as, node_as?(path : String | NodePath, type : T.class) : T | Nil forall T node_as?, node_ready? : Bool node_ready?, notify_deferred_thread_group(what : Int64) : Void notify_deferred_thread_group, notify_thread_safe(what : Int64) : Void notify_thread_safe, owner : Node | Nil owner, owner=(o : Node | Nil) owner=, part_of_edited_scene? : Bool part_of_edited_scene?, physics_interpolated? : Bool physics_interpolated?, physics_interpolated_and_enabled? : Bool physics_interpolated_and_enabled?, physics_interpolation_mode physics_interpolation_mode, physics_interpolation_mode=(val : Int) physics_interpolation_mode=, physics_processing? : Bool physics_processing?, physics_processing_internal? : Bool physics_processing_internal?, print_orphan_nodes : Void print_orphan_nodes, print_tree : Void print_tree, print_tree_pretty : Void print_tree_pretty, process_mode process_mode, process_mode=(val : Int) process_mode=, process_physics_priority process_physics_priority, process_physics_priority=(val : Int) process_physics_priority=, process_priority process_priority, process_priority=(val : Int) process_priority=, process_thread_group process_thread_group, process_thread_group=(val : Int) process_thread_group=, process_thread_group_order process_thread_group_order, process_thread_group_order=(val : Int) process_thread_group_order=, process_thread_messages process_thread_messages, process_thread_messages=(val : Int) process_thread_messages=, processing? : Bool processing?, processing_input? : Bool processing_input?, processing_internal? : Bool processing_internal?, processing_shortcut_input? : Bool processing_shortcut_input?, processing_unhandled_input? : Bool processing_unhandled_input?, processing_unhandled_key_input? : Bool processing_unhandled_key_input?, propagate_call(method : String, args : Pointer(Void), parent_first : Bool = false) : Void propagate_call, propagate_notification(what : Int64) : Void propagate_notification, queue_accessibility_update : Void queue_accessibility_update, queue_free : Void queue_free, ready : Godot::TypedSignal() ready, remove_child(node : Node) : Void remove_child, remove_from_group(group : String) : Void remove_from_group, remove_from_tree : Void remove_from_tree, renamed : Godot::TypedSignal() renamed, reparent(new_parent : Node, keep_global_transform : Bool = true) : Void reparent, replace_by(node : Node, keep_groups : Bool = false) : Void replace_by, replacing_by : Godot::TypedSignal(Node) replacing_by, request_ready : Void request_ready, reset_physics_interpolation : Void reset_physics_interpolation, rpc(method : String | Symbol, *args) : Godot::Error rpc, rpc_config(method : String, config : Pointer(Void)) : Void rpc_config, rpc_id(peer_id : Int32 | Int64, method : String | Symbol, *args) : Godot::Error rpc_id, safe_queue_free : Void safe_queue_free, scene_file_path scene_file_path, scene_file_path=(val) scene_file_path=, set_auto_translate_mode(mode : AutoTranslateMode | Int) : Void set_auto_translate_mode, set_deferred_thread_group(property : String, value : Pointer(Void)) : Void set_deferred_thread_group, set_display_folded(fold : Bool) : Void set_display_folded, set_editable_instance(node : Node, is_editable : Bool) : Void set_editable_instance, set_editor_description(editor_description : String) : Void set_editor_description, set_multiplayer_authority(id : Int64, recursive : Bool = true) : Void set_multiplayer_authority, set_name(name : String) : Void set_name, set_owner(owner : Node) : Void set_owner, set_physics_interpolation_mode(mode : PhysicsInterpolationMode | Int) : Void set_physics_interpolation_mode, set_physics_process(enable : Bool) : Void set_physics_process, set_physics_process_internal(enable : Bool) : Void set_physics_process_internal, set_physics_process_priority(priority : Int64) : Void set_physics_process_priority, set_process(enable : Bool) : Void set_process, set_process_input(enable : Bool) : Void set_process_input, set_process_internal(enable : Bool) : Void set_process_internal, set_process_mode(mode : ProcessMode | Int) : Void set_process_mode, set_process_priority(priority : Int64) : Void set_process_priority, set_process_shortcut_input(enable : Bool) : Void set_process_shortcut_input, set_process_thread_group(mode : ProcessThreadGroup | Int) : Void set_process_thread_group, set_process_thread_group_order(order : Int64) : Void set_process_thread_group_order, set_process_thread_messages(flags : ProcessThreadMessages | Int) : Void set_process_thread_messages, set_process_unhandled_input(enable : Bool) : Void set_process_unhandled_input, set_process_unhandled_key_input(enable : Bool) : Void set_process_unhandled_key_input, set_scene_file_path(scene_file_path : String) : Void set_scene_file_path, set_scene_instance_load_placeholder(load_placeholder : Bool) : Void set_scene_instance_load_placeholder, set_thread_safe(property : String, value : Pointer(Void)) : Void set_thread_safe, set_translation_domain_inherited : Void set_translation_domain_inherited, set_unique_name_in_owner(enable : Bool) : Void set_unique_name_in_owner, tree_entered : Godot::TypedSignal() tree_entered, tree_exited : Godot::TypedSignal() tree_exited, tree_exiting : Godot::TypedSignal() tree_exiting, unique_as(name : String | NodePath, type : T.class) : T forall T unique_as, unique_as?(name : String | NodePath, type : T.class) : T | Nil forall T unique_as?, unique_name_in_owner unique_name_in_owner, unique_name_in_owner=(val) unique_name_in_owner=, unique_name_in_owner? : Bool unique_name_in_owner?, update_configuration_warnings : Void update_configuration_warnings, with_context(&) with_context
Constructor methods inherited from class Godot::Node
~ : self
~,
new(pointer : Pointer(Void) = Pointer(Void).null)
new
Class methods inherited from class Godot::Node
decompose_node_path(raw_path : String) : Tuple(Bool, String, String | Nil)
decompose_node_path,
get_orphan_node_ids : Pointer(Void)
get_orphan_node_ids,
print_orphan_nodes : Void
print_orphan_nodes
Instance methods inherited from class Godot::Object
==(other : Godot::Object) : Bool==(other : Nil) : Bool ==, _enter_tree : Void _enter_tree, _exit_tree : Void _exit_tree, _godot_call_tool_button(button_name : String) : Void _godot_call_tool_button, _godot_call_virtual(method_name : String, delta : Float64) : Void _godot_call_virtual, _godot_call_virtual_with_data(method_name : String, args : Pointer(Pointer(Void)), ret : Pointer(Void)) : Void _godot_call_virtual_with_data, _godot_get_property(prop_name : String, ret_ptr : Pointer(Void)) : Void _godot_get_property, _godot_set_property(prop_name : String, val_ptr : Pointer(Void)) : Void _godot_set_property, _physics_process(delta : Float64) : Void _physics_process, _process(delta : Float64) : Void _process, _ready : Void _ready, add_user_signal(signal : String, arguments : Pointer(Void)) : Void add_user_signal, alive? : Bool alive?, await_signal(signal_name : String, timeout_sec : Float64 | Nil = nil) : Array(Variant) await_signal, blocking_signals? : Bool blocking_signals?, call(method : String, *args) : Pointer(Void) call, call_bool(method : String, *args) : Bool call_bool, call_deferred(method : String, *args) : Pointer(Void) call_deferred, call_f64(method : String, *args) : Float64 call_f64, call_i64(method : String, *args) : Int64 call_i64, call_obj(method : String, *args) : Node | Nil call_obj, call_obj_as(type : T.class, method : String, *args) : T | Nil forall T call_obj_as, call_str(method : String, *args) : String call_str, callv(method : String, arg_array : Pointer(Void)) : Pointer(Void) callv, can_translate_messages : Bool can_translate_messages, can_translate_messages? : Bool can_translate_messages?, cancel_free : Void cancel_free, check_alive! : Void check_alive!, class?(godot_class : String) : Bool class?, connect(signal_name : String, flags : Godot::ConnectFlags = ::Godot::ConnectFlags::None, callback : Proc(Array(Variant), Void) | Nil = nil) : SignalSubscription
connect(signal_name : String, flags : Godot::ConnectFlags = ::Godot::ConnectFlags::None, &block : Array(Variant) -> Void) : SignalSubscription
connect(signal_name : Symbol, flags : Godot::ConnectFlags = ::Godot::ConnectFlags::None, &block : Array(Variant) -> Void) : SignalSubscription
connect(signal_name : String, listener_target : Godot::Object, method_name : Symbol, flags : Godot::ConnectFlags = ::Godot::ConnectFlags::None) : SignalSubscription
connect(signal : String, callable : Pointer(Void), flags : Int64 = 0_i64) : Godot::Error connect, connect_one_shot(signal_name : String, &block : Array(Variant) -> Void) : SignalSubscription connect_one_shot, connected?(signal : String, callable : Pointer(Void)) : Bool connected?, destroy : Void destroy, destroyed? : Bool destroyed?, disconnect(signal : String, callable : Pointer(Void)) : Void
disconnect(signal_name : String) : Void disconnect, editor_hint? : Bool editor_hint?, emit_property_list_changed : Void emit_property_list_changed, emit_script_changed : Void emit_script_changed, emit_signal(name : String) : Void
emit_signal(name : String, *args) : Void emit_signal, explicitly_freed? : Bool explicitly_freed?, free : Void free, get(property : String) : Pointer(Void) get, get_class : String get_class, get_incoming_connections : Pointer(Void) get_incoming_connections, get_indexed(property_path : NodePath | String) : Pointer(Void) get_indexed, get_instance_id : Int64 get_instance_id, get_meta(name : String, default : Pointer(Void) | Nil = nil) : Pointer(Void) get_meta, get_meta_list : Pointer(Void) get_meta_list, get_method_argument_count(method : String) : Int64 get_method_argument_count, get_method_list : Pointer(Void) get_method_list, get_property_list : Pointer(Void) get_property_list, get_script : Pointer(Void) get_script, get_signal_connection_list(signal : String) : Pointer(Void) get_signal_connection_list, get_signal_list : Pointer(Void) get_signal_list, get_translation_domain : String get_translation_domain, has_connections(signal : String) : Bool has_connections, has_connections?(signal : String) : Bool has_connections?, has_meta(name : String) : Bool has_meta, has_meta?(name : String) : Bool has_meta?, has_method(method : String) : Bool has_method, has_method?(method : String) : Bool has_method?, has_signal(signal : String) : Bool has_signal, has_signal?(signal_name : String) : Bool has_signal?, has_user_signal(signal : String) : Bool has_user_signal, has_user_signal?(signal : String) : Bool has_user_signal?, hash(hasher) hash, if_alive : self | Nil if_alive, instance_id : UInt64 instance_id, is_blocking_signals : Bool is_blocking_signals, is_blocking_signals? : Bool is_blocking_signals?, is_class(godot_class : String) : Bool is_class, is_class?(godot_class : String) : Bool is_class?, is_connected(signal : String, callable : Pointer(Void)) : Bool is_connected, is_connected?(signal : String, callable : Pointer(Void)) : Bool is_connected?, is_queued_for_deletion : Bool is_queued_for_deletion, is_queued_for_deletion? : Bool is_queued_for_deletion?, is_valid? : Bool is_valid?, link_class_script : Void link_class_script, notification(what : Int64, reversed : Bool = false) : Void notification, notify_property_list_changed : Void notify_property_list_changed, pointer : Pointer(Void) pointer, pointer=(val : Pointer(Void)) pointer=, print(*args) print, printerr(*args) printerr, property_can_revert(property : String) : Bool property_can_revert, property_can_revert?(property : String) : Bool property_can_revert?, property_get_revert(property : String) : Pointer(Void) property_get_revert, property_list_changed : Godot::TypedSignal() property_list_changed, puts(*args) puts, queued_for_deletion? : Bool queued_for_deletion?, remove_meta(name : String) : Void remove_meta, remove_user_signal(signal : String) : Void remove_user_signal, script_changed : Godot::TypedSignal() script_changed, set(property : String, value : Pointer(Void)) : Void set, set_block_signals(enable : Bool) : Void set_block_signals, set_deferred(property : String, value : Pointer(Void)) : Void set_deferred, set_indexed(property_path : NodePath | String, value : Pointer(Void)) : Void set_indexed, set_message_translation(enable : Bool) : Void set_message_translation, set_meta(name : String, value : Pointer(Void)) : Void set_meta, set_script(script : Pointer(Void)) : Void set_script, set_translation_domain(domain : String) : Void set_translation_domain, signal(name : String) : Godot::BoundSignal
signal(sym : Symbol) : Godot::BoundSignal signal, signal_connection_count(signal_name : String) : Int32 signal_connection_count, signal_target_id : UInt64 signal_target_id, to_s(io : IO) : Void to_s, to_string : String to_string, to_unsafe : Pointer(Void) to_unsafe, tr(message : String, context : String = "") : String tr, tr_n(message : String, plural_message : String, n : Int64, context : String = "") : String tr_n
Constructor methods inherited from class Godot::Object
new(pointer : Pointer(Void) = Pointer(Void).null)
new
Class methods inherited from class Godot::Object
_godot_has_virtual_method(method_name : String) : Bool
_godot_has_virtual_method,
find_script_path_for_class(target_cls : String) : String
find_script_path_for_class,
is_instance_id_valid(id : Int | UInt64) : Bool
is_instance_id_valid
Constructor Detail
Class Method Detail
Disables type-safe line highlighting in EditorSettings to avoid engine asserts in headless editor mode
Builds an environment Hash with properly configured CRYSTAL_PATH ensuring libgodot and local shards can be resolved from anywhere.
Automated verification workflow for the Build Crystal toolbar button and GDExtension reload
Ensures all editor integration components are active when running inside the Godot Editor. Safe to call both on startup and after GDExtension reloads.
Ensures syntax highlighter is registered with ScriptEditor
Automatically generates project bindings for custom GDScript nodes if present
Registers Crystal icons into Godot's EditorIcons theme so ScriptCreateDialog and FileSystem dock display proper icons
Compiles project Crystal code with optional release optimizations
Handles toolbar compile button press to trigger manual Crystal rebuild
Scans project addons/ directory and recompiles any Crystal addons whose source code changed
Defers a property list notification on edited scene root to refresh inspector after reload
Formats and bubbles up compilation failures into the Godot Editor UI:
- Outputs clean formatted error banner in the bottom panel
- Emits EditorToaster notification (toast in status bar)
- Pops up centered AcceptDialog in the editor viewport
- Jumps to the offending line in ScriptEditor if file/line is detected
Executes in-editor @tool tests, Lapis::Test::Registry suites, and dynamic ClassDB verification in 100% pure Crystal
Saves all open scripts and scenes in the editor before compiling so modifications on disk are up to date
Schedules pure-Crystal in-editor test suite execution
Docks the CrystalPanel into Godot Editor's main screen and makes it available to the editor
Synchronizes a script editor buffer with the file on disk. If the file on disk was modified externally (or on initial load), disk changes take precedence. If the buffer was modified in-editor inside Godot, changes are flushed to disk.
Instance Method Detail
Lifecycle callback called when the node enters the tree hierarchy.
Lifecycle callback called when the node exits the tree hierarchy.
Virtual method and property dispatch hooks overridden by class registration macros.
Delta timestep is received with 64-bit precision (Float64).
Dispatches generic virtual methods with raw arguments and return buffer.
Invoked by the GDExtension bridge when retrieving an exposed @export property.
Invoked by the GDExtension bridge when setting an exposed @export property.
Per-frame process callback receiving delta timestep in seconds (Float64).
Calls the named method on the object with variable arguments.
One-shot type-safe signal listener that automatically disconnects after firing once
Bound signal accessor for idiomatic await(node.ready_in_editor) or node.ready_in_editor.connect { ... }