summaryrefslogtreecommitdiff
path: root/modules/mono/editor
AgeCommit message (Collapse)Author
2021-12-05Bump Godot.NET.Sdk and SourceGenerators versionsRaul Santos
Bump `Godot.NET.Sdk` to version 4.0.0-dev6. Bump `Godot.SourceGenerators` to version 4.0.0-dev3. Use floating version 4.0.*-* for package references in Sdk.
2021-12-05Fix Godot.SourceGenerators for generic classesRaul Santos
Fix invalid C# generated by source generators for generic classes and add generic classes to the Sample project for testing.
2021-11-30Don't return reference on copy assignment operatorsRémi Verschelde
We prefer to prevent using chained assignment (`T a = b = c = T();`) as this can lead to confusing code and subtle bugs. According to https://en.wikipedia.org/wiki/Assignment_operator_(C%2B%2B), C++ allows any arbitrary return type, so this is standard compliant. This could be re-assessed if/when we have an actual need for a behavior more akin to that of the C++ STL, for now this PR simply changes a handful of cases which were inconsistent with the rest of the codebase (`void` return type was already the most common case prior to this commit).
2021-10-28clang-format: Enable `BreakBeforeTernaryOperators`Rémi Verschelde
clang-format keeps breaking the way it handles break *after* ternary operators, so I give up and go with the only style they seem to actually test.
2021-10-28clang-format: Disable alignment of operands, too unreliableRémi Verschelde
Sets `AlignOperands` to `DontAlign`. `clang-format` developers seem to mostly care about space-based indentation and every other version of clang-format breaks the bad mismatch of tabs and spaces that it seems to use for operand alignment. So it's better without, so that it respects our two-tabs `ContinuationIndentWidth`.
2021-10-18Restrict the project data directory configurationne0fhyk
2021-10-05Merge pull request #52711 from m4gr3d/provide_getter_for_project_data_dir_masterRémi Verschelde
2021-09-15Provide a getter for the project data directory.ne0fhyk
2021-09-14Add editor keyboard shortcut for Mono Build solution buttonLewis James
Apply suggestions from code review Merging @akien-mga's suggestion with the matching change to the CS project Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-09-12Fix autoloads iterationRaul Santos
Removes the range iterator usage in the autoloads map since `OrderedHashMap` does not implement range iterators.
2021-09-08Fix properties arrays in C# bindings generatorRaul Santos
2021-09-03Fix constant tag documentation in C# bindings generatorRaul Santos
2021-09-03Fix PackedInt64Array typo in bindings_generator.hRaul Santos
2021-09-02Some more C# formattingAaron Franke
2021-08-26Use OrderedHashMap for autoloads to preserve orderLyuma
2021-08-20C#: Fix bindings generator for Callable argument default valueIgnacio Roldán Etcheverry
Previously there weren't any Callable arguments with a default value, but d4dd859991205e6cecfa9a0553b89db47c983d0b introduced one.
2021-08-17Namespaces instead of underscore prefix for bindsMax Hilbrunner
Thanks to neikeq for the initial work. Co-authored-by: Ignacio Roldán Etcheverry <neikeq@users.noreply.github.com>
2021-08-12Use real_t and double where appropriate in ParticlesAaron Franke
2021-08-06Ensure MSBuildPanel buttons are instantiatedRaul Santos
2021-08-03Fix the editor theme application for the Mono build logYuri Sizov
2021-07-27Merge pull request #50917 from raulsntos/more-iteratorsRémi Verschelde
2021-07-27Ignore paths with invalid chars in PathWhichRaul Santos
2021-07-27Use C++ iterators in the Mono moduleRaul Santos
2021-07-26Use Array.Empty instead of allocating a every timeRaul Santos
Use `System.Array.Empty<T>` to get an empty array instead of allocating a new one every time. Since arrays are immutable there is no need to allocate them every time.
2021-07-25Fix bindings generator range iterator errorsRaul Santos
2021-07-25Use const references where possible for List range iteratorsRémi Verschelde
2021-07-24Merge pull request #50757 from aaronfranke/simple-cs-editorconfigIgnacio Roldán Etcheverry
Add a simple C# `.editorconfig`
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke
2021-07-23Add a simple C# .editorconfigAaron Franke
2021-07-18Optimize StringName usagereduz
* Added a new macro SNAME() that constructs and caches a local stringname. * Subsequent usages use the cached version. * Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time. * Replaced all theme usages by this new macro. * Replace all signal emission usages by this new macro. * Replace all call_deferred usages by this new macro. This is part of ongoing work to optimize GUI and the editor.
2021-07-15Mono: Remove info dialog discouraging use in productionRémi Verschelde
While there are still various bugs to solve and features to implement, the C# support as of Godot 3.4 is fairly mature and already used by a number of users in production. Now that we default to dotnet CLI as build tool, it also seems to be more reliable than MSBuild. The documentation can (and does for the most part) point out some caveats that users should be aware of, but this info dialog has outlived its intended purpose.
2021-06-23Fixing mono build after instance() -> instanciate() name changeGrzegorz Puławski
2021-06-19Rename `instance()`->`instantiate()` when it's a verbLightning_A
2021-06-18Fix a typo in C# bindings generator for default value typesAaron Franke
2021-06-13Merge pull request #34668 from aaronfranke/to-stringRémi Verschelde
[Core] Reformat structure string operators
2021-06-13Improve & fix Mono buildPedro J. Estébanez
- Fix C++ compile errors about pending variable renames after the `Reference` to `RefCount` change. - Fix C# compile errors due to the recent rename of `EnablePlugin()` and `Build()`, which are now underscore-prefixed in bindings. - Additional rename: `godot_icall_Reference_Dtor` to `godot_icall_RefCounted_Dtor`.
2021-06-11Rename Reference to RefCountedPedro J. Estébanez
2021-06-11Reformat structure string operatorsAaron Franke
The order of numbers is not changed except for Transform2D. All logic is done inside of their structures (and not in Variant). For the number of decimals printed, they now use String::num_real which works best with real_t, except for Color which is fixed at 4 decimals (this is a reliable number of float digits when converting from 16-bpc so it seems like a good choice)
2021-06-11Core: Move DirAccess and FileAccess to `core/io`Rémi Verschelde
File handling APIs are typically considered part of I/O, and we did have most `FileAccess` implementations in `core/io` already.
2021-06-04Rename Quat to QuaternionMarcel Admiraal
2021-06-03Rename files and the exposed name for Transform3DAaron Franke
2021-06-03Rename Variant TRANSFORM to TRANSFORM3DAaron Franke
Also _transform to _transform3d
2021-06-03Rename Transform to Transform3D in coreAaron Franke
2021-04-29Replace remaining uses of `NULL` with `nullptr`Rémi Verschelde
Follow-up to #38736 (these uses were likely added after this PR was merged).
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