class
Godot::CrystalDebuggerPlugin
- Godot::CrystalDebuggerPlugin
- Godot::EditorDebuggerPlugin
- Godot::RefCounted
- Godot::Object
- Reference
- Object
Defined in:
editor/debugger/crystal_debugger_plugin.cr:14editor/debugger/crystal_debugger_plugin.cr:19
Constructors
Class Method Summary
-
._godot_has_virtual_method(method_name : String) : Bool
Virtual method check for GDExtension dispatch
- ._godot_register_node_class : Void
- .godot_class_name : String
- .godot_parent_class_name : String
- .instance : CrystalDebuggerPlugin | Nil
Macro Summary
-
autoload(*args, **kwargs)
DSL directives for in-body autoload configuration
- autoload_node(*args, **kwargs)
- build(**kwargs, &block)
- create(**kwargs, &block)
Instance Method Summary
-
#_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 virtual method calls from Godot engine
-
#_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. - #active_breakpoints : Hash(String, Set(Int32))
- #all_sessions_paused? : Bool
- #all_sessions_running? : Bool
- #auto_attach : Bool
- #auto_attach=(auto_attach : Bool)
-
#broadcast_lockstep(origin_id : Int32, is_paused : Bool) : Void
Broadcasts lockstep pause or resume across all peer sessions
- #broadcast_lockstep_pause(origin_id : Int32) : Void
- #broadcast_lockstep_resume(origin_id : Int32) : Void
-
#cleanup : Void
Cleans up all active debugger sessions and resets singleton
-
#client_sessions : Array(DebuggerSessionController)
Returns all sessions acting as multiplayer Clients
-
#handle_breakpoint_toggle(res_path : String, line : Int32, enabled : Bool) : Void
Handles gutter breakpoint click events from Godot's Script Editor Godot's EditorDebuggerNode passes 1-based line numbers (p_row + 1)
-
#handle_breakpoints_cleared : Void
Clears all breakpoints across all active sessions
-
#handle_capture(message : String, session_id : Int32) : Bool
Handles incoming TCP messages from running game instances
-
#poll : Void
Polling hook called from plugin _process
- #r2_path : String
- #r2_path=(r2_path : String)
-
#register_addon(addon_name : String, binary_name : String | Nil = nil) : Void
Registers an addon across all active sessions for smart context-aware inspection
-
#register_session_controller(controller : DebuggerSessionController) : Void
Directly registers a controller into plugin (ideal for headless specs, multi-peer tests, & mocks)
-
#server_session : DebuggerSessionController | Nil
Returns the session acting as the multiplayer Server/Host
- #sessions : Hash(Int32, DebuggerSessionController)
-
#sessions_for_role(role : String) : Array(DebuggerSessionController)
Returns all sessions matching a specific role name
-
#setup_session_controller(session_id : Int32, explicit_session : EditorDebuggerSession | Nil = nil) : DebuggerSessionController | Nil
Called whenever Godot creates a new debug session (e.g.
-
#sync_editor_breakpoints : Void
Harmonizes breakpoints between Godot's ScriptEditor/CodeEdit and radare2 active breakpoints
Instance methods inherited from class Godot::EditorDebuggerPlugin
get_session(id : Int64) : EditorDebuggerSession
get_session,
get_sessions : Pointer(Void)
get_sessions
Constructor methods inherited from class Godot::EditorDebuggerPlugin
new(pointer : Pointer(Void) = Pointer(Void).null)
new
Instance methods inherited from class Godot::RefCounted
destroy : Void
destroy,
ensure_ref_initialized! : Void
ensure_ref_initialized!,
get_reference_count : Int64
get_reference_count,
init_ref : Bool
init_ref,
init_ref? : Bool
init_ref?,
reference : Bool
reference,
reference? : Bool
reference?,
unreference : Bool
unreference,
unreference? : Bool
unreference?
Constructor methods inherited from class Godot::RefCounted
new(pointer : Pointer(Void) = Pointer(Void).null)
new
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_bind_static_signals(force : Bool = false) : Void _godot_bind_static_signals, _godot_bind_static_signals_impl(tid : UInt64) : Void _godot_bind_static_signals_impl, _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, _mark_destroyed_by_engine! : Void _mark_destroyed_by_engine!, _physics_process(delta : Float64) : Void _physics_process, _process(delta : Float64) : Void _process, _ready : Void _ready, ~ : self ~, active? : Bool active?, add_user_signal(signal : String, arguments : Pointer(Void)) : Void add_user_signal, alive? : Bool alive?, as_a(type : T.class) : T forall T as_a, as_a?(type : T.class) : T | Nil forall T as_a?, as_g(type : T.class) : T forall T as_g, as_g?(type : T.class) : T | Nil forall T as_g?, as_t(type : T.class) : T forall T as_t, as_t?(type : T.class) : T | Nil forall T as_t?, await_signal(signal_name : String | Symbol, timeout_sec : Float64 | Nil = nil) : AwaitStatus(Array(Variant))
await_signal(signal_name : String | Symbol, timeout_sec : Number) : AwaitStatus(Array(Variant)) await_signal, await_signal!(signal_name : String | Symbol, timeout_sec : Float64 | Nil = nil) : Array(Variant)
await_signal!(signal_name : String | Symbol, timeout_sec : Number) : Array(Variant) await_signal!, await_signal?(signal_name : String | Symbol, timeout_sec : Float64 | Nil = nil) : Array(Variant) | Nil
await_signal?(signal_name : String | Symbol, timeout_sec : Number) : Array(Variant) | Nil await_signal?, bind_property_list_changed(callback : Proc(R), once : Bool = false) : UInt64 forall R
bind_property_list_changed(once : Bool = false, &block : -> Void) : UInt64 bind_property_list_changed, bind_script_changed(callback : Proc(R), once : Bool = false) : UInt64 forall R
bind_script_changed(once : Bool = false, &block : -> Void) : UInt64 bind_script_changed, bind_static_signal(signal_name : String, callback : Proc(*T, R), once : Bool = false) : UInt64 forall T, R
bind_static_signal(signal_name : Symbol, callback : Proc(*T, R), once : Bool = false) : UInt64 forall T, R bind_static_signal, blocking_signals? : Bool blocking_signals?, build(&block : self -> Void) : self build, call(method : String, args : Array(Variant)) : Pointer(Void)
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, cast_to(type : T.class) : T forall T cast_to, cast_to?(type : T.class) : T | Nil forall T cast_to?, check_alive! : Void check_alive!, class?(godot_class : String) : Bool class?, configure(&block : self -> Void) : self configure, connect(signal_name : String, flags : Godot::ConnectFlags = ::Godot::ConnectFlags::None, callback : Proc(Array(Variant), Void) | Nil = nil, receiver : Godot::Object | Nil = nil) : SignalSubscription
connect(signal_name : String, flags : Godot::ConnectFlags = ::Godot::ConnectFlags::None, receiver : Godot::Object | Nil = nil, &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(signal_name : Symbol) : Void disconnect, disconnect_all(signal_name : String | Symbol) : self
disconnect_all : self disconnect_all, editor_hint? : Bool editor_hint?, emit(signal_name : String | Symbol, *args) : self
emit(signal : BoundSignal, *args) : self emit, 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, emit_static_signal(signal_name : String, *args : *T) : Int32 forall T
emit_static_signal(signal_name : Symbol, *args : *T) : Int32 forall T emit_static_signal, explicitly_freed? : Bool explicitly_freed?, frame_arena : Lapis::Core::FrameArena frame_arena, frame_buffer(type : T.class, max_elements : Int32) : Lapis::Core::ArenaBuffer(T) forall T frame_buffer, frame_scope(&block : Lapis::Core::FrameArena -> _) frame_scope, frame_slice(type : T.class, count : Int32) : Slice(T) forall T frame_slice, 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(key : Symbol, default : Pointer(Void) | Nil = nil) : Pointer(Void)
get_meta(name : String, default : Pointer(Void) | Nil = nil) : Pointer(Void)
get_meta(name : String, default : Pointer(Void) | Nil = nil) : Pointer(Void)
get_meta(key : Symbol, default : Pointer(Void) | Nil = nil) : Pointer(Void)
get_meta(name : String, default : Pointer(Void) | Nil = nil) : Pointer(Void) get_meta, get_meta_color(key : String | Symbol) : Color get_meta_color, get_meta_f64(key : String | Symbol) : Float64 get_meta_f64, get_meta_i64(key : String | Symbol) : Int64 get_meta_i64, get_meta_list : Pointer(Void) get_meta_list, get_meta_str(key : String | Symbol) : String get_meta_str, get_meta_transform3d(key : String | Symbol) : Transform3D get_meta_transform3d, get_meta_vector2(key : String | Symbol) : Vector2 get_meta_vector2, get_meta_vector3(key : String | Symbol) : Vector3 get_meta_vector3, 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, godot_as(type : T.class) : T forall T godot_as, godot_as?(type : T.class) : T | Nil forall T godot_as?, has_connections(signal : String) : Bool has_connections, has_connections?(signal : String) : Bool has_connections?, has_meta(name : String) : Bool
has_meta(key : String | Symbol) : 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, inspect(io : IO) : Void inspect, 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, not_null? : Bool not_null?, notification(what : Int64, reversed : Bool = false) : Void notification, notify_property_list_changed : Void notify_property_list_changed, null? : Bool null?, 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, property_list_changed=(val : Godot::BoundSignal) : Godot::BoundSignal property_list_changed=, property_list_changed_signal_hash : UInt64 property_list_changed_signal_hash, property_list_changed_slot : Lapis::Core::StaticSignalSlot() property_list_changed_slot, puts(*args) puts, queued_for_deletion? : Bool queued_for_deletion?, queued_for_deletion_fast? : Bool queued_for_deletion_fast?, rebind_static_signals! : Void rebind_static_signals!, remove_meta(name : String) : Void
remove_meta(key : String | Symbol) : Void remove_meta, remove_user_signal(signal : String) : Void remove_user_signal, script_changed : Godot::TypedSignal() script_changed, script_changed=(val : Godot::BoundSignal) : Godot::BoundSignal script_changed=, script_changed_signal_hash : UInt64 script_changed_signal_hash, script_changed_slot : Lapis::Core::StaticSignalSlot() script_changed_slot, set(property : String, value : Pointer(Void)) : Void
set(property : String | Symbol, value : T) : Void forall T 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(key : String | Symbol, value : String | Int32 | Int64 | Float32 | Float64 | Bool | Symbol | Vector2 | Vector2i | Vector3 | Vector3i | Color | Transform3D | Basis | AABB | Quaternion | Plane | Rect2) : Void
set_meta(key : String | Symbol, value : Godot::Object) : Void
set_meta(name : String, value : Pointer(Void)) : Void
set_meta(key : Symbol, value : Pointer(Void)) : Void
set_meta(key : String | Symbol, value : Variant) : 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, static_signal_slot(signal_name : String, *types : *T) forall T
static_signal_slot(signal_name : Symbol, *types : *T) forall T static_signal_slot, 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, try? : self | Nil
try?(&) try?, unbind_property_list_changed(callback : Proc(R)) : Bool forall R
unbind_property_list_changed(token : UInt64) : Bool unbind_property_list_changed, unbind_script_changed(callback : Proc(R)) : Bool forall R
unbind_script_changed(token : UInt64) : Bool unbind_script_changed, unbind_static_signal(signal_name : String, callback : Proc(*T, R)) : Bool forall T, R
unbind_static_signal(signal_name : Symbol, callback : Proc(*T, R)) : Bool forall T, R
unbind_static_signal(token : UInt64) : Bool unbind_static_signal
Constructor methods inherited from class Godot::Object
~ : self
~,
create : selfcreate(&block : self -> ) : self create, new(pointer : Pointer(Void) = Pointer(Void).null)
new(&block : self -> ) : self new
Class methods inherited from class Godot::Object
_godot_has_virtual_method(method_name : String) : Bool
_godot_has_virtual_method,
cast_to(obj : Object, type : T.class) : T forall T
cast_to,
cast_to?(obj : Object, type : T.class) : T | Nil forall T
cast_to?,
find_script_info_for_node(node : Godot::Object) : NamedTuple(path: String, line: Int32, class_name: String, parent_name: String, is_tool: Bool) | Nil
find_script_info_for_node,
find_script_location_for_class(target_cls : String) : Tuple(String, Int32)
find_script_location_for_class,
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,
is_internal_or_brush_class?(cls_name : String) : Bool
is_internal_or_brush_class?
Instance methods inherited from class Object
try?(&)try? try?
Constructor Detail
Class Method Detail
Virtual method check for GDExtension dispatch
Macro Detail
Instance Method Detail
Virtual method and property dispatch hooks overridden by class registration macros.
Delta timestep is received with 64-bit precision (Float64).
Dispatches virtual method calls from Godot engine
Invoked by the GDExtension bridge when retrieving an exposed @export property.
Invoked by the GDExtension bridge when setting an exposed @export property.
Broadcasts lockstep pause or resume across all peer sessions
Returns all sessions acting as multiplayer Clients
Handles gutter breakpoint click events from Godot's Script Editor Godot's EditorDebuggerNode passes 1-based line numbers (p_row + 1)
Handles incoming TCP messages from running game instances
Registers an addon across all active sessions for smart context-aware inspection
Directly registers a controller into plugin (ideal for headless specs, multi-peer tests, & mocks)
Returns the session acting as the multiplayer Server/Host
Returns all sessions matching a specific role name
Called whenever Godot creates a new debug session (e.g. Session 0 for Server, Session 1 for Client)
Harmonizes breakpoints between Godot's ScriptEditor/CodeEdit and radare2 active breakpoints