EditorDebuggerPlugin¶
Inherits: RefCounted < Object
A base class to implement debugger plugins.
Description¶
EditorDebuggerPlugin provides functions related to the editor side of the debugger.
To interact with the debugger, an instance of this class must be added to the editor via EditorPlugin.add_debugger_plugin.
Once added, the _setup_session callback will be called for every EditorDebuggerSession available to the plugin, and when new ones are created (the sessions may be inactive during this stage).
You can retrieve the available EditorDebuggerSessions via get_sessions or get a specific one via get_session.
@tool
extends EditorPlugin
class ExampleEditorDebugger extends EditorDebuggerPlugin:
func _has_capture(prefix):
# Return true if you wish to handle message with this prefix.
return prefix == "my_plugin"
func _capture(message, data, session_id):
if message == "my_plugin:ping":
get_session(session_id).send_message("my_plugin:echo", data)
func _setup_session(session_id):
# Add a new tab in the debugger session UI containing a label.
var label = Label.new()
label.name = "Example plugin"
label.text = "Example plugin"
var session = get_session(session_id)
# Listens to the session started and stopped signals.
session.started.connect(func (): print("Session started"))
session.stopped.connect(func (): print("Session stopped"))
session.add_session_tab(label)
var debugger = ExampleEditorDebugger.new()
func _enter_tree():
add_debugger_plugin(debugger)
func _exit_tree():
remove_debugger_plugin(debugger)
Methods¶
_capture ( String message, Array data, int session_id ) virtual |
|
_has_capture ( String capture ) virtual const |
|
void |
_setup_session ( int session_id ) virtual |
get_session ( int id ) |
|
get_sessions ( ) |
Method Descriptions¶
bool _capture ( String message, Array data, int session_id ) virtual
Override this method to process incoming messages. The session_id
is the ID of the EditorDebuggerSession that received the message (which you can retrieve via get_session).
bool _has_capture ( String capture ) virtual const
Override this method to enable receiving messages from the debugger. If capture
is "my_message" then messages starting with "my_message:" will be passes to the _capture method.
void _setup_session ( int session_id ) virtual
Override this method to be notified whenever a new EditorDebuggerSession is created (the session may be inactive during this stage).
EditorDebuggerSession get_session ( int id )
Returns the EditorDebuggerSession with the given id
.
Array get_sessions ( )
Returns an array of EditorDebuggerSession currently available to this debugger plugin.
Note: Sessions in the array may be inactive, check their state via EditorDebuggerSession.is_active.