summaryrefslogtreecommitdiff
path: root/modules/mono/editor
AgeCommit message (Collapse)Author
2021-03-13Merge pull request #46954 from neikeq/reggr-46307Rémi Verschelde
C#: Fix StringName leak warnings after generating bindings
2021-03-13C#: Fix StringName leak warnings after generating bindingsIgnacio Etcheverry
`Main::cleanup()` prints warnings if it finds `StringName`s still alive. We need the `BindingsGenerator` to be destructed before calling cleanup.
2021-03-13C#: Fix ScriptPathAttribute generator with none or nested namespacesIgnacio Etcheverry
The following two bugs were fixed: - For classes without namespace we were still generating `namespace {` without a namespace identifier, causing a syntax error. - For classes with nested namespaces we were generating only the innermost part of the namespace was being generated, e.g.: for `Foo.Bar` we were generating `namespace Bar {` instead of `namespace Foo.Bar {`. This wasn't causing any build error, but because of the wrong namespace Godot wasn't able to find the class associated with the script.
2021-03-07Merge pull request #46713 from neikeq/csharp-source-generators-initRémi Verschelde
Add C# source generator for ScriptPathAttribute
2021-03-06Add C# source generator for a new ScriptPath attributeIgnacio Etcheverry
This source generator adds a newly introduced attribute, `ScriptPath` to all classes that: - Are top-level classes (not inner/nested). - Have the `partial` modifier. - Inherit `Godot.Object`. - The class name matches the file name. A build error is thrown if the generator finds a class that meets these conditions but is not declared `partial`, unless the class is annotated with the `DisableGodotGenerators` attribute. We also generate an `AssemblyHasScripts` assembly attribute which Godot uses to get all the script classes in the assembly, eliminating the need for Godot to search them. We can also avoid searching in assemblies that don't have this attribute. This will be good for performance in the future once we support multiple assemblies with Godot script classes. This is an example of what the generated code looks like: ``` using Godot; namespace Foo { [ScriptPathAttribute("res://Player.cs")] // Multiple partial declarations are allowed [ScriptPathAttribute("res://Foo/Player.cs")] partial class Player {} } [assembly:AssemblyHasScripts(new System.Type[] { typeof(Foo.Player) })] ``` The new attributes replace script metadata which we were generating by determining the namespace of script classes with a very simple parser. This fixes several issues with the old approach related to parser errors and conditional compilation. It also makes the task part of the MSBuild project build, rather than a separate step executed by the Godot editor.
2021-02-25Fix C# bindings generator for default value typesAaron Franke
2021-02-22Make glue generation shutdown more gracefulPedro J. Estébanez
2021-02-20Merge pull request #45158 from aaronfranke/cs-packedarrayRémi Verschelde
Add C# array features from core PackedArrays
2021-02-18Merge pull request #45032 from neikeq/classdb-tests-for-44856Rémi Verschelde
Add ClassDB tests to look for core API deps on editor API
2021-02-16Add C# array features from core PackedArraysAaron Franke
2021-02-04[Mono] Use the same search logic for both `MSBuild` and `dotnet`, add custom ↵bruvzg
search paths on macOS.
2021-01-28Fix off by one error navigating to line number in RiderIvan Shakhov
Fixes https://github.com/JetBrains/godot-support/issues/61
2021-01-19Cleanup: Remove executable bit from files which don't need itRémi Verschelde
Drop unused xpmfix.sh script.
2021-01-13Merge pull request #45136 from akien-mga/clang-format-11Rémi Verschelde
CI: Update to clang-format 11 and apply ternary operator changes
2021-01-13Update Mono module to use new execute method.Marcel Admiraal
2021-01-12CI: Update to clang-format 11 and apply ternary operator changesRémi Verschelde
2021-01-09Add ClassDB tests to look for core API deps on editor APIIgnacio Etcheverry
The ClassDB tests will detect when the core API has dependencies on the editor API, which is not allowed. This should prevent or warn early about issues like #44856
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2020-12-28Rename empty() to is_empty()Marcel Admiraal
2020-12-17Merge pull request #44105 from neikeq/mono-wasm-m2n-hookRémi Verschelde
Mono: Make Godot provide its own WASM m2n trampolines
2020-12-14Mono: Make Godot provide its own WASM m2n trampolinesIgnacio Etcheverry
This depends on a custom Mono patch from this commit: godotengine/godot-mono-builds@0e312939bd0dc4b807cc15dbe76a7b65456ab928
2020-12-14Mono: Add extra WASM framework assemblies on game exportIgnacio Etcheverry
This is needed with newer Mono versions, at least with Mono 6.12+ Depends on the following commit from our build scripts: godotengine/godot-mono-builds@9d75cff174fa3599a9d90f9bce53f0a86154db1e
2020-12-08Merge pull request #43742 from qarmin/editor_modules_default_valuesRémi Verschelde
Initialize class/struct variables with default values in platform/ and editor/
2020-12-05Merge pull request #44107 from neikeq/fix-slow-build-log-updateRémi Verschelde
C#: Fix very slow build log update in the editor
2020-12-05C#: Fix very slow build log update in the editorIgnacio Etcheverry
2020-12-02Initialize class/struct variables with default values in platform/ and editor/Rafał Mikrut
2020-12-02Refactor DocData into core and editor (DocTools) partsThakee Nathees
2020-11-26[Complex Text Layouts] Refactor Font class, default themes and controls to ↵bruvzg
use Text Server interface. Implement interface mirroring. Add TextLine and TextParagraph classes. Handle UTF-16 input on macOS and Windows.
2020-11-16Remove empty lines around braces with the formatting scriptAaron Franke
2020-11-09Variant: Rename Type::_RID to Type::RIDRémi Verschelde
The underscore prefix was used to avoid the conflict between the `RID` class name and the matching enum value in `Variant::Type`. This can be fixed differently by prefixing uses of the `RID` class in `Variant` with the scope resolution operator, as done already for `AABB`.
2020-11-07Reorganized core/ directory, it was too fatty alreadyreduz
-Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
2020-10-27Merge pull request #43029 from neikeq/offline-nuget-fallbackRémi Verschelde
C#: Make editor create NuGet fallback folder for Godot packages
2020-10-26C#: Fix custom event signals crash on hot-reloadIgnacio Etcheverry
Cleanup and re-initialization of event signals before and after hot-reload should be working correctly now.
2020-10-23C#: Make editor create NuGet fallback folder for Godot packagesIgnacio Etcheverry
Main benefits: - Projects can be built offline. Previously you needed internet access the first time building to download the packages. - Changes to packages like Godot.NET.Sdk can be easily tested before publishing. This was already possible but required too many manual steps. - First time builds are a bit faster, as the Sdk package doesn't need to be downloaded. In practice, the package is very small so it makes little difference. Bumped Godot.NET.Sdk to 4.0.0-dev3 in order to enable the recent changes regarding '.mono/' -> '.godot/mono/'.
2020-10-23C#: Re-work solution build output panelIgnacio Etcheverry
- Removed item list that displayed multiple build configurations launched. Now we only display the last build that was launched. - Display build output next to the issues list. Its visibility can be toggled off/on. This build output is obtained from the MSBuild process rather than the MSBuild logger. As such it displays some MSBuild fatal errors that previously couldn't be displayed. - Added a context menu to the issues list with the option to copy the issue text. - Replaced the 'Build Project' button in the panel with a popup menu with the options: - Build Solution - Rebuild Solution - Clean Solution - The bottom panel button was renamed from 'Mono' to 'MSBuild' and now display an error/warning icon if the last build had issues.
2020-10-09Mono: Fix typo in Godot.NET.Sdk.nuspecRémi Verschelde
Fixes #42666.
2020-10-08Adressed ReviewLorenz Junglas
Identifier "macOS" => "MacOS" Platform/SDK name reverted to "osx"
2020-10-08C# GodotTools: Replace platform Identifier "OSX" with "macOS"Lorenz Junglas
Because `Strings OS_OSX::get_name() const` now returns "macOS" (15a9f94346c211b7afe96af500cb3405aabcf6b8) The C# GodotTools were still using "OSX" as identifier a few things were borken (e.g. dotnet/msbuild detection).
2020-09-23Rename the ".mono" folder to ".godot/mono"Aaron Franke
2020-09-18Fix typos with codespellRémi Verschelde
Using codespell 1.17.1. Method: ``` $ cat > ../godot-word-whitelist.txt << EOF ang curvelinear dof doubleclick fave findn leapyear lod merchantibility nd numer ois ony que seeked synching te uint unselect webp EOF $ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po" $ git diff // undo unwanted changes ```
2020-09-13C#: Fix csproj not synced on file move/removal from FS dockIgnacio Etcheverry
When NormalizePath was called with an absolute path (with drive letter) on Windows, it would prepend a file path separator to the path, e.g.: '\C:\Program Files\'. Apparently this was still accepted as a valid path by DotNetGlob and it stopped working when we switched to MSBuildGlob.
2020-09-08C#: Use BOM when creating a solutionIgnacio Etcheverry
At least on Windows there seems to be issues if the solution has no BOM and contains a project with cyrillic chars.
2020-09-06Handle csproj "Remove" globsAlex de la Mare
MSBuild Item returns empty strings if an attribute isn't set (which caused an IndexOutOfRangeException in NormalizePath). We were treating Excludes incorrectly, Remove directives provide the intended behaviour in the auto-including csproj format.
2020-09-04Merge pull request #41753 from neikeq/csharp-hide-build-button-if-no-projRémi Verschelde
C#: Hide Build button if there's no solution to build
2020-09-04Merge pull request #41747 from neikeq/issue-41446Rémi Verschelde
Fix parsing of C# files with spaces in the path
2020-09-04Merge pull request #41750 from neikeq/issue-41745Rémi Verschelde
C#: Fix Godot failing to find class namespace
2020-09-04C#: Hide Build button if there's no solution to buildIgnacio Etcheverry
Same as we do with the bottom panel. Mainly to avoid bothering if the project is not using C#.
2020-09-04C#: Fix Godot failing to find class namespaceIgnacio Etcheverry
2020-09-04Fix parsing of C# files with spaces in the pathIgnacio Etcheverry
2020-09-03[Complex Test Layouts] Change `String` to use UTF-32 encoding on all platforms.bruvzg