Thaddeus Crews
9853a69144
Implement typed dictionaries
2024-09-04 10:27:26 -05:00
Rémi Verschelde
13a90e938f
Merge pull request #70096 from rune-scape/stringname-dict
...
StringName Dictionary keys
2024-09-03 17:38:06 +02:00
rune-scape
154049ce17
StringName Dictionary keys
...
also added 'is_string()' method to Variant
and refactored many String type comparisons to use it instead
2024-08-29 13:39:27 -07:00
Danil Alexeev
c1322d41e6
GDScript: Replace `assert()` with `Utils.check()` in tests
2024-08-28 17:41:52 +03:00
Danil Alexeev
68898dbcc9
GDScript: Add `CONFUSABLE_CAPTURE_REASSIGNMENT` warning
2024-06-28 11:12:01 +03:00
Danil Alexeev
24b6edcd38
GDScript: Fix non-global class export
2024-06-20 14:30:12 +03:00
PreslavPetrov
653a8b113a
Register the export info correctly when a global class script is used as the variable type for Node
2024-06-03 13:28:17 +01:00
Danil Alexeev
76b2d85c9f
GDScript: Fix some export annotation issues
2024-05-13 17:49:06 +03:00
Rémi Verschelde
7d03b1de0b
Style: Trim trailing whitespace and ensure newline at EOF
...
Found by apply the file_format checks again via #91597 .
2024-05-08 10:12:46 +02:00
K. S. Ernest (iFire) Lee
f9b488508c
Add PackedVector4Array Variant type
...
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-05-03 00:58:27 +02:00
George Marques
a3b3a20ac0
GDScript: Suppress unused constant warning with underscore
...
The warning message mentions that local constants prefixed with `_` does
not generate the warning. This commit actually implements this warning
suppression.
2024-04-18 09:58:23 -03:00
Rémi Verschelde
684e7aa37a
Merge pull request #89472 from dalexeev/gds-fix-bin-tokenizer-continuation-lines
...
GDScript: Fix continuation lines in `GDScriptTokenizerBuffer`
2024-04-15 18:14:38 +02:00
Aiden Storey
74177d79c9
Fix multiline array/dictionary match statements
...
Currently array and dictionary expressions cannot be spread over
multiple lines in match statements.
Adding mutliline push/pop while parsing the pattern for bracket and
brace enables the ability for these to be multiline. This enables more
complex patterns to be matched without exceeding line limits.
Fixes #90372
2024-04-12 10:59:28 +02:00
Danil Alexeev
02253b6b91
GDScript: Fix continuation lines in `GDScriptTokenizerBuffer`
2024-04-10 08:51:02 +03:00
Danil Alexeev
ef1909fca3
GDScript: Fix `@warning_ignore` annotation issues
2024-03-12 19:00:06 +03:00
Abel Toy
882441a0ad
Support Array and PackedArray in @export_*
2024-03-06 16:17:54 +09:00
Rémi Verschelde
21ee3716c2
Merge pull request #82122 from dalexeev/gds-add-export-hidden-annotation
...
GDScript: Add `@export_storage` annotation
2024-02-27 21:22:49 +01:00
George Marques
b4d0a09f15
GDScript: Reintroduce binary tokenization on export
...
This adds back a function available in 3.x: exporting the GDScript
files in a binary form by converting the tokens recognized by the
tokenizer into a data format.
It is enabled by default on export but can be manually disabled. The
format helps with loading times since, the tokens are easily
reconstructed, and with hiding the source code, since recovering it
would require a specialized tool. Code comments are not stored in this
format.
The `--test` command can also include a `--use-binary-tokens` flag
which will run the GDScript tests with the binary format instead of the
regular source code by converting them in-memory before the test runs.
2024-02-08 11:20:05 -03:00
Danil Alexeev
2bf25954b4
GDScript: Add `is not` operator
2024-02-04 17:36:53 +03:00
Rémi Verschelde
745f8e112f
Revert "Add UID support to GDScript files"
...
This reverts commit c7f68a27ec
.
We still think GDScript files need UIDs to allow safe refactoring,
but we're still debating what form those should take exactly.
So far there seems to be agreement that it shouldn't be done via an
annotation as implemented here, so we're reverting this one for now,
to revisit the feature in a future PR.
2024-01-29 21:00:26 +01:00
kobewi
c7f68a27ec
Add UID support to GDScript files
2024-01-17 22:30:56 +01:00
Danil Alexeev
3a3a2011f4
GDScript: Add `@export_storage` annotation
2023-12-19 20:56:30 +03:00
Danil Alexeev
668ba2d1a5
GDScript: Allow empty parentheses for property getter declaration
2023-10-11 09:54:17 +03:00
Danil Alexeev
9e2273abc7
GDScript: Add error when exporting node in non [Node]-derived classes
2023-10-05 13:50:26 +03:00
Yuri Sizov
813cd1dfc8
Merge pull request #80085 from vnen/gdscript-pattern-guards
...
GDScript: Implement pattern guards for match statement
2023-09-28 20:03:57 +02:00
George Marques
54a1414500
GDScript: Implement pattern guards for match statement
...
Within a match statement, it is now possible to add guards in each
branch:
var a = 0
match a:
0 when false: print("does not run")
0 when true: print("but this does")
This allows more complex logic for deciding which branch to take.
2023-09-27 11:25:25 -03:00
Danil Alexeev
e8696f9961
GDScript: Improve call analysis
...
* Add missing `UNSAFE_CALL_ARGUMENT` warning.
* Fix `Object` constructor.
* Display an error for non-existent static methods.
2023-09-21 13:36:39 +03:00
Danil Alexeev
2964c7d51c
GDScript: Add raw string literals (r-strings)
2023-09-11 18:34:33 +03:00
Danil Alexeev
00ad9e484e
GDScript: Allow mixed indentation on blank lines
2023-08-17 10:54:43 +03:00
今井きなみ
bf04c55175
Fix lambda parsing continuing on subsequent lines #73273
2023-06-21 12:56:57 +02:00
Rémi Verschelde
1ce2425c0e
Merge pull request #73363 from dalexeev/gds-fix-min-int-not-representable
...
GDScript: Fix `MIN_INT` not representable as numeric literal
2023-06-18 16:27:16 +02:00
Danil Alexeev
fba8cbe6db
GDScript: Fix repeated `_` are allowed after decimal point
2023-06-14 21:47:12 +03:00
Danil Alexeev
13310f3557
GDScript: Reorganize and unify warnings
2023-04-28 18:25:11 +03:00
Yuri Sizov
6596a6c1b5
Merge pull request #72979 from dalexeev/gds-annotation-parsing
...
GDScript: Fix and improve annotation parsing
2023-04-17 17:14:58 +02:00
ajreckof
ab9f60dd1a
fix access to identifiers that are reserved keywords
2023-04-14 20:37:24 +02:00
Danil Alexeev
5038a336be
GDScript: Fix and improve annotation parsing
2023-04-14 21:28:46 +03:00
Danil Alexeev
ea5fd3d732
Fix GDScript code style regarding colon
2023-03-05 17:03:20 +03:00
Rémi Verschelde
491ded1898
Minor typo and docs URL fixes
2023-02-28 13:38:01 +01:00
Dmitrii Maganov
b0b1eaeb6d
GDScript: Fix parsing unexpected break/continue in lambda
2023-02-23 10:49:06 +02:00
Danil Alexeev
d15511725a
GDScript: Fix `MIN_INT` not representable as numeric literal
2023-02-15 17:41:46 +03:00
Rémi Verschelde
dc7f08b556
Merge pull request #72971 from vnen/gdscript-multiline-comment
...
GDScript: Allow strings as multiline comments
2023-02-09 16:19:03 +01:00
George Marques
03ea77407c
GDScript: Be more lenient with identifiers
...
- Allow identifiers similar to keywords if they are in ASCII range.
- Allow constants to be treated as regular identifiers.
- Allow keywords that can be used as identifiers in expressions.
2023-02-09 11:19:05 -03:00
George Marques
f95967c299
GDScript: Allow strings as multiline comments
...
Bring back the behavior in 3.x that was left out by oversight.
2023-02-09 10:16:00 -03:00
Rémi Verschelde
98921d8fba
Revert "Remove script class checks when getting function signature"
...
This reverts commit 0fef203b1f
.
This introduced some other issues, as discussed in #72144 .
2023-02-07 16:28:52 +01:00
Adam Scott
0fef203b1f
Remove script class checks when getting function signature
2023-02-07 11:48:10 +01:00
Danil Alexeev
d4b78c352f
GDScript: Fix `@export_enum` works only with `int`
2023-01-30 12:30:37 +03:00
George Marques
c68b2358d5
GDScript: Allow variables in match patterns
...
To restore an ability available in 3.x and reduce compatibility changes.
2023-01-28 19:53:27 -03:00
Danil Alexeev
b004f8180e
GDScript: Allow constant expressions in annotations
2023-01-25 18:43:56 +03:00
Rémi Verschelde
81fe3715b8
Merge pull request #71914 from vnen/gdscript-no-continue-match
...
GDScript: Remove function of `continue` for match statement
2023-01-23 15:35:55 +01:00
George Marques
9462ae4783
GDScript: Remove function of `continue` for match statement
...
The keyword is confusing and rarely is used in the intended way. It is
removed now in favor of a future feature (pattern guards) to avoid
breaking compatibility later.
2023-01-22 18:45:24 -03:00