diff options
author | Raul Santos <raulsntos@gmail.com> | 2024-02-05 02:49:57 +0100 |
---|---|---|
committer | Raul Santos <raulsntos@gmail.com> | 2024-02-08 18:31:13 +0100 |
commit | 5815d1c8c821bab204caf46caf650a3cd009efa4 (patch) | |
tree | 5f7c073cfa7399511413b8abac9acb3072591c63 /modules/gdscript/language_server/gdscript_language_server.cpp | |
parent | 41564aaf7708b0bf594f745dd2448a54dd687cc5 (diff) | |
download | redot-engine-5815d1c8c821bab204caf46caf650a3cd009efa4.tar.gz |
Improve handling of generic C# types
- Create CSharpScript for generic C# types.
- `ScriptPathAttributeGenerator` registers the path for the generic type definition.
- `ScriptManagerBridge` lookup uses the generic type definition that was registered by the generator.
- Constructed generic types use a virtual `csharp://` path so they can be registered in the map and loaded as if there was a different file for each constructed type, even though they all share the same real path.
- This allows getting the base type for a C# type that derives from a generic type.
- Shows base scripts in the _Add Node_ and _Create Resource_ dialogs even when they are generic types.
- `get_global_class_name` implementation was moved to C# and now always returns the base type even if the script is not a global class (this behavior matches GDScript).
- Create `CSharpScript::TypeInfo` struct to hold all the type information about the C# type that corresponds to the `CSharpScript`, and use it as the parameter in `UpdateScriptClassInfo` to avoid adding more parameters.
Diffstat (limited to 'modules/gdscript/language_server/gdscript_language_server.cpp')
0 files changed, 0 insertions, 0 deletions