class
Godot::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
- .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
-
.recompile_modified_addons_silent : Void
Scans project addons/ directory and recompiles any Crystal addons whose source code changed
- .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
-
.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_test_button_press(delay_sec : Float64, cycle : Int64, total_cycles : Int64) : Void
-
.setup_debugger_plugin : Void
Registers and configures the native LLDB debugger plugin
-
.setup_main_screen_panel : Void
Docks the CrystalPanel into Godot Editor's main screen
- .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
- #_exit_tree : Void
- #_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.
-
#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
- #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
-
#version : String
Version of the compiled LibGodot library
Instance methods inherited from class Godot::EditorPlugin
add_autoload_singleton(name : String, path : String) : Void
add_autoload_singleton,
add_context_menu_plugin(slot : Int64, plugin : EditorContextMenuPlugin) : Void
add_context_menu_plugin,
add_control_to_bottom_panel(control : Control, title : String, shortcut : Shortcut) : Button
add_control_to_bottom_panel,
add_control_to_container(container : Int64, control : Control) : Void
add_control_to_container,
add_control_to_dock(slot : Int64, control : Control, shortcut : Shortcut) : 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) : 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) : Void
add_scene_format_importer_plugin,
add_scene_post_import_plugin(scene_import_plugin : EditorScenePostImportPlugin, first_priority : Bool) : 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,
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,
make_bottom_panel_item_visible(item : Control) : Void
make_bottom_panel_item_visible,
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 : Int64, 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,
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
[](path : String) : Node
[],
[]?(path : String) : Node | Nil
[]?,
_physics_process(delta : Float64) : Void
_physics_process,
_process(delta : Float64) : Void
_process,
_ready : Void
_ready,
add_child(node : Node, force_readable_name : Bool = false, internal : Int64 = 0_i64) : Void
add_child,
add_sibling(sibling : Node, force_readable_name : Bool) : Void
add_sibling,
add_to_group(group : String, persistent : Bool) : Voidadd_to_group(group : String) : Void add_to_group, 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_process : Bool can_process, create_tween : Tween create_tween, duplicate(flags : Int64) : Node duplicate, each_child(include_internal : Bool = false, &block : Node -> Void) : Void each_child, editor_description editor_description, editor_description=(val) editor_description=, 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, owned : Bool) : Godot::Array find_children, find_parent(pattern : String) : Node find_parent, get_accessibility_element : Int64 get_accessibility_element, get_auto_translate_mode : Int64 get_auto_translate_mode, get_child(idx : Int64, include_internal : Bool) : Node
get_child(idx : Int, 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 : Godot::Array get_groups, get_index(include_internal : Bool) : 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, get_node?(path : String) : Node | Nil get_node?, get_node_and_resource(path : NodePath) : Godot::Array get_node_and_resource, get_node_as(type : T.class, path : String) : T forall T get_node_as, get_node_as?(type : T.class, path : String) : T | Nil forall T get_node_as?, get_node_or_null(path : String) : Node | Nil
get_node_or_null(path : NodePath) : Node get_node_or_null, get_node_rpc_config : Pointer(Void) get_node_rpc_config, get_orphan_node_ids : Godot::Array 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) : NodePath get_path_to, get_physics_interpolation_mode : Int64 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 : Int64 get_process_mode, get_process_priority : Int64 get_process_priority, get_process_thread_group : Int64 get_process_thread_group, get_process_thread_group_order : Int64 get_process_thread_group_order, get_process_thread_messages : Int64 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_tree : SceneTree get_tree, get_tree_string : String get_tree_string, get_tree_string_pretty : String get_tree_string_pretty, get_unique_node_as(type : T.class, unique_name : String) : T | Nil forall T get_unique_node_as, get_viewport : Viewport get_viewport, get_window : Window get_window, has_node(path : NodePath) : Bool has_node, has_node_and_resource(path : NodePath) : 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_displayed_folded : Bool is_displayed_folded, is_editable_instance(node : Node) : Bool is_editable_instance, is_greater_than(node : Node) : Bool is_greater_than, is_in_group(group : String) : Bool is_in_group, is_inside_tree : Bool is_inside_tree, is_multiplayer_authority : Bool is_multiplayer_authority, is_node_ready : Bool is_node_ready, is_part_of_edited_scene : Bool is_part_of_edited_scene, is_physics_interpolated : Bool is_physics_interpolated, is_physics_interpolated_and_enabled : Bool is_physics_interpolated_and_enabled, is_physics_processing : Bool is_physics_processing, is_physics_processing_internal : Bool is_physics_processing_internal, is_processing : Bool is_processing, is_processing_input : Bool is_processing_input, is_processing_internal : Bool is_processing_internal, is_processing_shortcut_input : Bool is_processing_shortcut_input, is_processing_unhandled_input : Bool is_processing_unhandled_input, is_processing_unhandled_key_input : Bool is_processing_unhandled_key_input, is_queued_for_deletion : Bool is_queued_for_deletion, 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, multiplayer multiplayer, name : String name, name=(val : String) name=, node_as(type : T.class, path : String) : T forall T node_as, node_as?(type : T.class, path : String) : T | Nil forall T node_as?, 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=, physics_interpolation_mode physics_interpolation_mode, physics_interpolation_mode=(val : Int) physics_interpolation_mode=, 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=, propagate_call(method : String, args : Godot::Array, parent_first : Bool) : Void propagate_call, propagate_notification(what : Int64) : Void propagate_notification, queue_accessibility_update : Void queue_accessibility_update, queue_free : Void queue_free, remove_child(node : Node) : Void remove_child, remove_from_group(group : String) : Void remove_from_group, reparent(new_parent : Node, keep_global_transform : Bool = true) : Void reparent, replace_by(node : Node, keep_groups : Bool) : Void replace_by, request_ready : Void request_ready, reset_physics_interpolation : Void reset_physics_interpolation, rpc_config(method : String, config : Pointer(Void)) : Void rpc_config, scene_file_path scene_file_path, scene_file_path=(val) scene_file_path=, set_auto_translate_mode(mode : Int64) : 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) : Void set_multiplayer_authority, set_name(name : String) : Void set_name, set_owner(owner : Node) : Void set_owner, set_physics_interpolation_mode(mode : Int64) : 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 : Int64) : 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 : Int64) : Void set_process_thread_group, set_process_thread_group_order(order : Int64) : Void set_process_thread_group_order, set_process_thread_messages(flags : Int64) : 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, unique_name_in_owner unique_name_in_owner, unique_name_in_owner=(val) unique_name_in_owner=, unique_name_in_owner? unique_name_in_owner?, update_configuration_warnings : Void update_configuration_warnings
Constructor methods inherited from class Godot::Node
new(pointer : Pointer(Void) = Pointer(Void).null)
new
Instance methods inherited from class Godot::Object
==(other : Godot::Object) : Bool==(other : Nil) : Bool ==, _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, add_user_signal(signal : String, arguments : Godot::Array) : Void add_user_signal, alive? : Bool alive?, await_signal(signal_name : String, timeout_sec : Float64 | Nil = nil) : Array(Variant) await_signal, 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 : Godot::Array) : Pointer(Void) callv, can_translate_messages : Bool can_translate_messages, cancel_free : Void cancel_free, check_alive! : Void check_alive!, 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 : String, listener_target : Godot::Object, method_name : Symbol, flags : Godot::ConnectFlags = ::Godot::ConnectFlags::None) : SignalSubscription
connect(signal : String, callable : Pointer(Void), flags : Int64) : Int64 connect, connect_one_shot(signal_name : String, &block : Array(Variant) -> Void) : SignalSubscription connect_one_shot, 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_signal(name : String) : Void
emit_signal(name : String, *args) : Void emit_signal, free : Void free, get(property : String) : Pointer(Void) get, get_class : String get_class, get_incoming_connections : Godot::Array get_incoming_connections, get_indexed(property_path : NodePath) : Pointer(Void) get_indexed, get_instance_id : Int64 get_instance_id, get_meta(name : String, default : Pointer(Void)) : Pointer(Void) get_meta, get_meta_list : Godot::Array get_meta_list, get_method_argument_count(method : String) : Int64 get_method_argument_count, get_method_list : Godot::Array get_method_list, get_property_list : Godot::Array get_property_list, get_script : Pointer(Void) get_script, get_signal_connection_list(signal : String) : Godot::Array get_signal_connection_list, get_signal_list : Godot::Array get_signal_list, get_translation_domain : String get_translation_domain, has_connections(signal : String) : Bool has_connections, has_meta(name : String) : Bool has_meta, 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, hash(hasher) hash, if_alive : self | Nil if_alive, instance_id : UInt64 instance_id, is_blocking_signals : Bool is_blocking_signals, is_class(godot_class : String) : Bool is_class, is_connected(signal : String, callable : Pointer(Void)) : Bool is_connected, 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) : 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_get_revert(property : String) : Pointer(Void) property_get_revert, puts(*args) puts, remove_meta(name : String) : Void remove_meta, remove_user_signal(signal : String) : Void remove_user_signal, 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, 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, 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,
is_instance_id_valid(id : Int | UInt64) : Bool
is_instance_id_valid
Constructor Detail
Class Method Detail
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
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
Saves all open scripts and scenes in the editor before compiling so modifications on disk are up to date
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
Dispatches inspector tool button clicks on this object.
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 { ... }