-
-
Notifications
You must be signed in to change notification settings - Fork 28
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
Add support for Godot 4.0 #56
base: master
Are you sure you want to change the base?
Conversation
- Changes extension version to 0.3.0. - Updates extension dependencies and add `semver` package. - Add basic Godot version detection. - Uses the `.mono` directory with Godot 3, and the `.godot/mono` directory with Godot 4. - The `Play in Editor` configuration is unsupported in Godot 4. - Generate standard coreclr debug configuration for Godot 4. - The `-q` argument has been repurposed, now `--quit` should be used.
What is the status on this PR? Would be nice to get completions out of the box. Found a simple workaround though. I just copied the |
neikeq hasn't appeared for a long time. I suggest someone else merge this PR first. |
I quickly checked the contributors and didn't find the second one who has permission to review. I'm wonder if there is anyone else from Godot maintaining this repo... |
This PR needs to be tested and reviewed before it can be merged. Anyone can review PRs, not just Godot maintainers, and it's appreciated.
I'm a maintainer, let me explain the current situation with this repo. With Godot 4.0, this extension is not as useful as it was in 3.x, because now you can use the debugger from the Microsoft C# extension. This currently requires manually setting up the debugging configuration, but it's documented. Other features, such as autocompletion for scene node paths is something we'd like to provide as a NuGet package so it can be used everywhere instead of having to be implemented for each IDE (see godotengine/godot-csharp-visualstudio#18). So as a result, adding support for 4.0 does not have a big priority. |
I have tested the supplied approach using
Not only is the documentation a bit short but it relies on external information linked in through a github issue. We should include a minimal working example that users of VSCode can add to Furthermore, the README and description of this package detail that at least 3.5 needs to be used but the limitation that it does not work for 4.0 and above is mentioned nowhere. Looking on how to debug C# in Godot easily lands you on this repository. I have personally wasted some hours trying to get this extension to work. The In short I think the following are in order, aren't to much work and have clear and large community benefits:
The following we could do to go the extra mile and make Godot even more awesome:
I'd be more then happy to work on all of this but am new to Godot so some pointers to repo's and potential CLA's I need to sign or other contributor documentation would be appreciated. I want to leave on the note that I think it is really important to ensure even old documentation stays at least accurate so that it does not leave newcomers frustrated and looking elsewhere. |
Is there any way I can implement this PR right now? I would love to have autocomplete in Godot 4, how do I use this modified version of the extension? It looks like I can't just download the branch and add it to my vscode extensions folder |
semver
package..mono
directory with Godot 3, and the.godot/mono
directory with Godot 4.Play in Editor
configuration is unsupported in Godot 4.-q
argument has been repurposed, now--quit
should be used.Since the extension uses the Mono debugger, for Godot 4 it just generates configuration to use the coreclr debugger (provided by the Omnisharp C# extension), which means it won't use the extension for debugging but at least it provides a convenient way to generate the configuration to debug a Godot game.
The Play in Editor configuration won't be generated for Godot 4 projects since it doesn't work. And by this I mean, as long as the metadata file is read from the correct path (which is different in Godot 3 than in 4), and if the version handshake passes (the
GodotTools.IdeMessaging
package likely needs to be updated, I tested with a local build), it builds and launches the game but the debugger won't attach since we are using Mono).Other features such as the completion provider seem to work fine so until godotengine/godot-csharp-visualstudio#18 is implemented, this would allow users to keep getting autocompletion from the extension.