You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Godot does support external editors for scripts, and with the added support for the Language Server Protocol (see godotengine/godot#29780 and godotengine/godot#35864) it also provides a standardized way for those external editors to support autocompletion and the like, greatly improving usability.
There is still no way though to debug your game from the external editor, and this proposal aims to provide minimal debugging capabilities to those editors, via the Debugger Adapter Protocol (DAP)
Describe the feature
The idea is to provide a Godot Debug Adapter integrated in the editor like the GDScript language server that is able to at least:
start the editor debug server (EditorDebuggerNode::start).
run an instance of the currently opened project (hooking up EditorNode::_run I guess, and possibly more than one instance, now that the editor debugger supports it)
set breakpoints debugging them (ScriptEditorDebugger methods and signals).
For the conceptual placement of the middleware consider same level of the Python debug adapter. Our editor will not use the DAP protocol itself only expose it to external tools:
In protocol terms, this boils down to supporting initialize, set_breakpoints, launch, attach, stacktrace and stack info related requests, basic attached/detached/break signals, handling termination.
Can it be worked around with a few lines of script? Why not an add-on in the asset library?
While this is not in the basic user workflow, it would be a great quality improvement for most of the people using external editors, and while this is mostly doable in GDScript via an EditorDebuggerPlugin, including this in Godot Editor would complement well the LSP implementation already in-place, and do it in a standard way (that until a new standard comes out ;-) ).
Note: I didn't add the GDScript tag, because this could conceptually be language independent, being also beneficial to users of other scripting language which will most likely use external editors.
We will have to see during the implementation how actually feasible it is, but I'm confident it will come natural.
The text was updated successfully, but these errors were encountered:
Calinou
changed the title
Implement DAP-complaint middlewere to interact with Editor Debugger.
Implement DAP-compliant middleware to interact with Editor Debugger
Mar 22, 2021
Faless
added a commit
to Faless/godot-roadmap
that referenced
this issue
Mar 22, 2021
Describe the problem
Godot does support external editors for scripts, and with the added support for the Language Server Protocol (see godotengine/godot#29780 and godotengine/godot#35864) it also provides a standardized way for those external editors to support autocompletion and the like, greatly improving usability.
There is still no way though to debug your game from the external editor, and this proposal aims to provide minimal debugging capabilities to those editors, via the Debugger Adapter Protocol (DAP)
Describe the feature
The idea is to provide a Godot Debug Adapter integrated in the editor like the GDScript language server that is able to at least:
EditorDebuggerNode::start
).EditorNode::_run
I guess, and possibly more than one instance, now that the editor debugger supports it)ScriptEditorDebugger
methods and signals).For the conceptual placement of the middleware consider same level of the
Python debug adapter
.Our editor will not use the DAP protocol itself only expose it to external tools:
In protocol terms, this boils down to supporting
initialize
,set_breakpoints
,launch
,attach
,stacktrace
and stack info related requests, basicattached
/detached
/break
signals, handling termination.Can it be worked around with a few lines of script? Why not an add-on in the asset library?
While this is not in the basic user workflow, it would be a great quality improvement for most of the people using external editors, and while this is mostly doable in GDScript via an
EditorDebuggerPlugin
, including this in Godot Editor would complement well the LSP implementation already in-place, and do it in a standard way (that until a new standard comes out ;-) ).Supersedes #1308
Note: I didn't add the GDScript tag, because this could conceptually be language independent, being also beneficial to users of other scripting language which will most likely use external editors.
We will have to see during the implementation how actually feasible it is, but I'm confident it will come natural.
The text was updated successfully, but these errors were encountered: