summaryrefslogtreecommitdiff
path: root/modules/gdscript/gdscript_parser.cpp
AgeCommit message (Collapse)Author
2022-07-26Fix Vector4 parse errorkobewi
2022-07-23Implement Vector4, Vector4i, Projectionreduz
Implement built-in classes Vector4, Vector4i and Projection. * Two versions of Vector4 (float and integer). * A Projection class, which is a 4x4 matrix specialized in projection types. These types have been requested for a long time, but given they were very corner case they were not added before. Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity. **Q**: Why Projection and not Matrix4? **A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-18GDScript: Fix brief/long description doc comments.Vladimir Savin
2022-07-13Merge pull request #62901 from ↵George Marques
cdemirer/prevent-unnecessary-additional-parser-error
2022-07-13Merge pull request #62900 from cdemirer/fix-parser-stuck-in-an-error-loopGeorge Marques
2022-07-13Merge pull request #62918 from cdemirer/parser-properly-set-node-extentsGeorge Marques
2022-07-13Merge pull request #62922 from YuriSizov/gdscript-annotation-defaultsGeorge Marques
2022-07-13Merge pull request #62578 from MinusKube/editor-print-crashGeorge Marques
Fix GDScript parser sometimes crashing when issuing warning for unreachable pattern
2022-07-11Add default argument bindings to GDScript annotationsYuri Sizov
2022-07-11Parser: Properly set node extentscdemirer
2022-07-11Prevent unnecessary additional parser errorcdemirer
2022-07-11Fix parser stuck in an error loopcdemirer
2022-07-06Merge pull request #62701 from cdemirer/for-variable-conflictRémi Verschelde
2022-07-06Merge pull request #62713 from YuriSizov/docs-scripting-annotationsRémi Verschelde
2022-07-05Add grouping annotations for class properties in GDScriptYuri Sizov
2022-07-04Add support for documenting built-in annotationsYuri Sizov
2022-07-04Do error when for variable conflicts with a variable in scopecdemirer
2022-07-01Fix GDScript parser sometimes crashing when issuing warning for unreachable ↵MinusKube
pattern
2022-06-27GDScript: Enable exporting nodes to the inspectorGeorge Marques
Also fix an small issue in the property editor for NodePath trying to use the meta property when not needed.
2022-06-23Implement varargs in Methodinforeduz
Variadic templates are an awful thing. Implements #62233 using them in MethodInfo so less changes are required.
2022-06-19Allow autocompletion of "noslider" in export_rangeMarcus Elg
2022-05-31Merge pull request #61440 from vnen/gdscript-scene-unique-nodesRémi Verschelde
GDScript: Support `%` in shorthand for `get_node`
2022-05-27GDScript: Support `%` in shorthand for `get_node`George Marques
The `%` is used in scene unique nodes. Now `%` can also be used instead of `$` for the shorthand, besides being allowed generally anywhere in the path as the prefix for a node name.
2022-05-26Merge pull request #59943 from jordigcs/gdscript_warning_enumsRémi Verschelde
Add enum values (Ignore, Warn, Error) to GDScript warnings
2022-05-25Use blank line instead of `@desc:` for doc commentsDanil Alexeev
2022-05-23GDScript: Fix lambda captures in default argument valuesGeorge Marques
2022-05-23GDScript: Fix `if` after lambda being seen as ternaryGeorge Marques
2022-05-23GDScript: Do not allow standalone lambdasGeorge Marques
They cannot be accessed in this case, so an error is shown to avoid misleading the uses, especially in case of named lambdas.
2022-05-18Merge pull request #55201 from Scony/fix-unreachable-code-false-positiveRémi Verschelde
2022-05-16Replace most uses of Map by HashMapreduz
* 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!
2022-05-12Fix first value updateJoJoX
2022-05-12Add a new HashMap implementationreduz
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<>
2022-05-12Fix incorrect precedence of pow operator in GDScript Yuri Rubinsky
2022-05-11Implement exponential operator (**) to GDScript/ExpressionsYuri Roubinsky
2022-05-11Merge pull request #59863 from cdemirer/fix-match-multiple-bind-single-patternRémi Verschelde
Fix issues with multiple bind patterns in match statement
2022-04-24GDScript: Allow using self in lambdasGeorge Marques
2022-04-06Add enum values (Ignore, Warn, Error) to GDScript warningsjordi
2022-04-04Fix issues with multiple bind patterns in match statementcdemirer
2022-03-30Merge pull request #59694 from vnen/gdscript-better-call-superRémi Verschelde
2022-03-30GDScript: Fix issues with completion and `super` callsGeorge Marques
- Make call errors use the call node instead of the calle, which will be empty on super calls. - Don't allow `super()` to be used within lambdas.
2022-03-30Fix autocompletion of static methods in built-in types in GDScriptYuri Roubinsky
2022-03-22Merge pull request #58971 from Chaosus/gds_multiline_annotationYuri Rubinsky
2022-03-16Add an error emitting when the `@export_flags` arg count is exceededYuri Roubinsky
2022-03-10Allow making multiline annotations in GDScriptYuri Roubinsky
2022-02-18Make 'is_attribute' false during parse error to prevent crashSaracenOne
2022-02-08Refactor some object type checking code with `cast_to`Rémi Verschelde
Less stringly typed logic, and less String allocations and comparisons.
2022-02-04Merge pull request #57591 from vnen/gdscript-enum-fixesRémi Verschelde
2022-02-03GDScript: Consolidate behavior for assigning enum typesGeorge Marques
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.
2022-01-22Merge pull request #55433 from V-Sekai/prev_operand_nullptr_checkRémi Verschelde
Check for nullptr expression in parse_precedence function
2022-01-22Merge pull request #55214 from Scony/fix-gdscript-crash-2Rémi Verschelde
Fix GDScript parser crash on 'dollar mixed with assignment' expression