Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
* Intended to replace RBSet in most cases.
* Optimized for iteration speed
|
|
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
(order matters) but use is discouraged.
There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
|
|
|
|
Adds a new, cleaned up, HashMap implementation.
* Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing).
* Keeps elements in a double linked list for simpler, ordered, iteration.
* Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much
for performance vs keeping the key, but helps replace old code).
* Uses a more modern C++ iterator API, deprecates the old one.
* Supports custom allocator (in case there is a wish to use a paged one).
This class aims to unify all the associative template usage and replace it by this one:
* Map<> (whereas key order does not matter, which is 99% of cases)
* HashMap<>
* OrderedHashMap<>
* OAHashMap<>
|
|
These typedefs don't save much typing compared to the full `Ref<Resource>`
and `Ref<RefCounted>`, yet they sometimes introduce confusion among
new contributors.
|
|
Convert method signature parameters to const where it is possible
# Conflicts:
# drivers/gles3/rasterizer_canvas_gles3.cpp
# drivers/gles3/rasterizer_canvas_gles3.h
# editor/plugins/animation_state_machine_editor.cpp
# editor/plugins/animation_state_machine_editor.h
|
|
Co-authored-by: Gustav <gusan092@student.liu.se>
|
|
|
|
Improve sorting of Code Completion options.
|
|
Done by ordering options by their location in the code - e.g. local, parent class, global, etc.
|
|
|
|
Not a full refactor as it still goes through ScriptLanguage so it's hacky,
but at least it can now compile without this.
|
|
|
|
|
|
|
|
|
|
* Ability to create script languages from GDExtension
* Some additions to gdnative_extension.h to make this happen
* Moved the GDExtension binder to core
This now allows creating scripting languages from GDExtension, with the same ease as if it was a module. It replaces the old PluginScript from Godot 3.x.
Warning: GodotCPP will need to be updated to support this (it may be a bit of work as ScriptInstance needs to be created over there again).
|
|
Done by ordering options by their location in the code - e.g. local, parent class, global, etc.
|
|
|
|
autocomplete, and restricts initialization of variables from other variables which have not been declared above it in class body
|
|
Less stringly typed logic, and less String allocations and comparisons.
|
|
|
|
|
|
This makes sure that assigning values to enum-typed variables are
consistent. Same enum is always valid, different enum is always
invalid (without casting) and assigning `int` creates a warning
if there is no casting.
There are new test cases to ensure this behavior doesn't break in
the future.
|
|
|
|
Extended the _make_arguments_hint function to get default values for function arguments in hint
|
|
Format switch
Added a case for constant subscripts
Fixed default value hinting for the enum type
Removed is_null checking for value
Added a case for dictionary
|
|
|
|
Add annotation to ignore warnings
|
|
|
|
Happy new year to the wonderful Godot community!
|
|
Co-Authored-By: jmb462 <jmb462@gmail.com>
|
|
|
|
"Lookup Symbol" on global class members now does switch to the relevant script.
|
|
Also:
- Adds two stress tests to test_string.h
- Changes to .empty() on std::strings
|
|
|
|
|
|
`core` and `scene` shouldn't depend on `editor`, so they can't query this style
setting in `get_argument_options`. But we can handle it after the fact in
GDScript's completion code.
Also cleans up a couple extra unused invalid includes in `core`.
|
|
|
|
|
|
|
|
It was removed in 75688772b3efadb8a36b1bb7ccde9c08819bc58e to be replaced
by `@export_range` with an `"exp"` hint string.
|
|
GDScript: Do not complete lambda arguments from parent class
|
|
Since lambdas are not overriding methods from the parent class, they
should not try to check inheritance for signature matching.
|
|
|
|
|
|
Way less cruft. :)
Co-authored-by: Ignacio Roldán Etcheverry <neikeq@users.noreply.github.com>
|