-
-
Notifications
You must be signed in to change notification settings - Fork 174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Debugger fixes for Godot 4.0 #400
Conversation
It uses an array of parameters now
I think it's fine to remove WebSockets support in a future release of this extension, as the LSP only used WebSockets until Godot 3.3 or so. Every version since Godot 3.3 should be using TCP now. |
Uses code from NodeJS. Can't update Node without also increasing minimum VSCode version.
@Calinou Isn't it still needed for debugging HTML5 games (disclaimer: I haven't done this in the past either)? I still see references in the WS module and the javascript platform. |
True, although I don't think you can connect an external editor to the HTML5 editor (as a web browser cannot listen for incoming connections IIRC, even on LAN only). |
Also how will versioning be realized for this extension? Since there are multiple breaking changes done here (such as new variants being added), making this code no longer backwards compatible. Ideas:
IIRC there's an option to tell Godot to start a temporary webserver for hosting the game. Not sure if that also handles remote debugging, or if it can be triggered externally using launch parameters (so that the VSCode extension can start it). But technically, this is certainly possible (browser connects to |
I think this would be the best approach, as a lot of Godot users will be hopping between Godot 3.x and 4.x for a while. Having to publish two extensions adds a lot of maintenance work, and they'll probably conflict with each other when activated at the same time (which is required if you want to hop quickly between projects). |
Not sure about the state of websocket debugging for HTML5 games, so this may not be necessary...
Currently, any JS variant (except bigint) is encoded without this flag.
@RedMser Is there anything I can do to help finish this PR? This is valuable work and I'd like to get it merged. |
@DaelonSuzuka I don't really have enough time or motivation to work on this right now. The main thing holding this back, besides some issues with the debugger, is compat with 3.x. Keeping compatibility with multiple Godot versions will probably double the size of this PR, due to having to create duplicates of every system (debugger, connection, etc.) which must be interchangeable. Not to speak of automatic version detection, which I'm not sure how it should be done just yet. If you (or anyone else) is interested in continuing this, I'll gladly give push permissions (or you can create your own PR using this as a basis). |
I think we're all pretty busy right now, so I definitely understand.
Sounds like a good place to hand it off, tbh. I already have some ideas about 3/4 interop since I'm about to port one of projects to 4beta3.
Since I'm barely git-literate, I think the safest thing will be for me to create a new branch based on yours. Thanks for your contribution. I'll make sure it gets put to use. |
Is it possible to infer 3 vs 4 from |
pr workable as is? |
Dunno, but I think I figured out how to detect Godot version at least for 3 Vs 4: the |
Work on this PR is continuing in #452. |
Closes #389
See TODO list below for missing features. Changes include:
--remote-debug
launch parameterTODO:
project.godot
)ENCODE_FLAG_64
tcp://
orws://
orwss://
depending on settings