George Marques
b8fdeb6467
Merge pull request #51671 from RandomShaper/fix_gdscript_crash
...
Fix some GDScript bugs
2021-09-17 12:29:40 -03:00
George Marques
4e69341c01
GDScript: Avoid inferred types from giving hard errors
2021-09-17 11:52:30 -03:00
Hugo Locurcio
c6ca09dc6f
Add more integration tests to the GDScript test suite
...
This also fixes a typo in the `bitwise_float_right_operand.gd` test.
2021-09-15 19:57:39 +02:00
Rémi Verschelde
a4187c9235
Merge pull request #52706 from vnen/gdscript-ternary-operator-crash
...
GDScript: Show error when missing expression after ternary else
2021-09-15 17:20:52 +02:00
Rémi Verschelde
ed11d03b56
Merge pull request #52705 from vnen/gdscript-error-unary-no-arg
...
GDScript: Show error on unary operators without argument
2021-09-15 16:43:38 +02:00
George Marques
107af38fd1
GDScript: Show error when missing expression after ternary else
2021-09-15 11:43:36 -03:00
George Marques
a5c299630d
Merge pull request #50456 from Blackiris/fix-extends-parent-relative
...
Fix extends with relative path to parent script
2021-09-15 11:12:24 -03:00
George Marques
d49046938a
GDScript: Show error on unary operators without argument
2021-09-15 11:08:59 -03:00
George Marques
5a612d61b9
Merge pull request #49765 from Blackiris/fix-assignment-with-operator-on-type-member
...
Fix assignment with operator on type member
2021-09-15 10:56:20 -03:00
Rémi Verschelde
c23823ac54
Merge pull request #52582 from jmb462/Prevent-non-explicit-inferring-parameter-from-null
2021-09-15 15:50:42 +02:00
George Marques
5d31ce4b16
GDScript: Allow string keys on Lua-style dictionaries
...
Which is useful when the key isn't a valid identifier, such as keys with
spaces or numeric keys.
2021-09-15 09:56:24 -03:00
Rémi Verschelde
32f8f74d83
Merge pull request #48029 from Calinou/gdscript-add-integration-tests
...
Add dozens of new integration tests to the GDScript test suite
2021-09-15 14:00:41 +02:00
Rémi Verschelde
1c7aec9d9c
Merge pull request #51094 from RandomShaper/error_cast_freed_object
...
Complain if casting a freed object in a debug session
2021-09-14 21:48:10 +02:00
Pedro J. Estébanez
ddc7d7ee66
Complain if casting a freed object in a debug session
...
The idea is to give the user a chance to realize a mistake that will cause a crash in a release build (or with no debugger attached).
2021-09-14 21:07:00 +02:00
Hugo Locurcio
c0083c0f90
Add dozens of new integration tests to the GDScript test suite
...
This also ignores `.out` files in the file format static checks.
2021-09-14 18:42:08 +02:00
ThreeRhinosInAnElephantCostume
2c71134aa4
Fix an undefined behaviour
2021-09-13 22:59:28 +02:00
Rémi Verschelde
f6022d2aa8
Merge pull request #52362 from vnen/gdscript-lambda-completion-crash
...
GDScript: Do not complete lambda arguments from parent class
2021-09-13 21:13:40 +02:00
Rémi Verschelde
45d9df2e63
Merge pull request #52632 from vnen/autoload-global-script-class-conflict
...
Disallow class names to be the same as global names
2021-09-13 21:10:50 +02:00
Rémi Verschelde
ffe8412291
Merge pull request #52323 from vnen/gdscript-singleton-interdependence-fix
...
Fix loading of interdependent autoloads
2021-09-13 21:10:34 +02:00
George Marques
e9186cfebf
Fix GDScript test cases
2021-09-13 15:02:01 -03:00
Rémi Verschelde
0c2ab55a58
Merge pull request #52100 from vnen/gdscript-access-outer-constants
...
GDScript: Allow access to outer constant and enum values
2021-09-13 18:04:35 +02:00
Rémi Verschelde
4059cf2f02
Merge pull request #52068 from ThreeRhinosInAnElephantCostume/fixgdscript
...
Fix parse error on statement-less files with only newlines, add a warning for empty files.
2021-09-13 17:30:31 +02:00
George Marques
2e5fa124f4
Disallow class names to be the same as global names
...
Also forbid autoloads to have the same name as global script class.
2021-09-13 10:51:29 -03:00
jmb462
b9219bedf7
Prevent non explicit inferring parameter from null
2021-09-11 21:11:10 +02:00
ThreeRhinosInAnElephantCostume
e99730340b
Fix error on parsing statement-less GDScript files,
...
add an empty file warning,
add relevant tests.
2021-09-11 20:38:15 +02:00
Pedro J. Estébanez
10c9c2ccd4
Avoid crash after a parsing error in GDScript
2021-09-11 11:35:25 +02:00
Pedro J. Estébanez
7c79e361f5
Fix parameter type resolution in GDScript
2021-09-11 11:35:25 +02:00
Pedro J. Estébanez
d72f12a561
Implement iterator variable typing in GDScript
2021-09-11 11:35:25 +02:00
ZuBsPaCe
1d1aa7a02f
GDScript: Removed spurious UNASSIGNED_VARIABLE warning for locals
...
Variable->assignment needs to be incremented when assigned a value.
Also fixed and improved unit test 'variable_declaration.gd'.
Fixes #52551
2021-09-10 22:26:50 +02:00
George Marques
6423e891a6
Merge pull request #52063 from KoBeWi/double_comma_of_doom
...
Fix crash with consecutive commas in Dictionary
2021-09-10 11:24:51 -03:00
George Marques
6da061faf5
Merge pull request #49897 from Blackiris/fix-dollar-point-crash-on-editor
...
Fix crash when writing $. in the editor
2021-09-10 10:55:11 -03:00
George Marques
0b484c5f5f
Merge pull request #51456 from SaracenOne/super_init_fix
...
Call _init on base class if one does not exist.
2021-09-10 10:40:32 -03:00
kobewi
c7452a9940
Fix crash with consecutive commas in Dictionary
2021-09-10 15:38:24 +02:00
George Marques
11e457e594
Merge pull request #51593 from KoBeWi/if
...
Prevent crash when awaiting in a getter/setter
2021-09-10 10:36:25 -03:00
George Marques
1234c2bdd9
Merge pull request #52081 from ThreeRhinosInAnElephantCostume/fixmatchfreeze
...
Fix gdscript pattern matching expressions
2021-09-10 09:28:18 -03:00
Max Hilbrunner
886ad727f8
Merge pull request #52267 from williamd67/lookup-symbol-builtin-functions
...
Show help for built-in functions (@GlobalScope)
2021-09-07 21:05:09 +02:00
Fabio Alessandrelli
bf9aae09ba
[Net] Move multiplayer to core subdir, split RPCManager.
...
Move multiplayer classes to "core/multiplayer" subdir.
Move the RPCConfig and enums (TransferMode, RPCMode) to a separate
file (multiplayer.h), and bind them to the global namespace.
Move the RPC handling code to its own class (RPCManager).
Renames "get_rpc_sender_id" to "get_remote_sender_id".
2021-09-07 11:14:30 +02:00
Julien Nguyen
a92d2c447b
Fix extends with relative path to parent script
2021-09-05 00:11:04 +02:00
Max Hilbrunner
8c82e305ba
Merge pull request #52329 from ZuBsPaCe/gdscript-unused-private-class-variable-fix
...
GDScript: Fix for UNUSED_PRIVATE_CLASS_VARIABLE
2021-09-03 10:04:11 +02:00
ZuBsPaCe
c76ad6b158
GDScript: Count usages of member variables.
...
Otherwise private member variables will always lead to UNUSED_PRIVATE_CLASS_VARIABLE.
2021-09-03 07:44:46 +02:00
ThreeRhinosInAnElephantCostume
15ccd83ada
Added tests for expression matching
2021-09-03 06:59:13 +02:00
Jonathan Gollnick
b0c807c75a
Fix auto reload scripts on external change
2021-09-02 20:28:02 -05:00
George Marques
da9daf4c3a
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.
2021-09-02 19:54:55 -03:00
SaracenOne
84852585b9
Check for GDScript member and class naming conflicts in a variety of conditions.
2021-09-02 07:16:06 +01:00
George Marques
3d13588057
GDScript: Fix loading of interdependent autoloads
...
Move the autoload resolution to runtime by loading it into the stack
with an extra instruction. This allows an autoload to use another
autoload singleton independent of load order.
2021-09-01 16:06:30 -03:00
Juan Linietsky
bcd73fc00a
Merge pull request #52240 from Rubonnek/rename-rel-path
...
Rename `String::is_rel_path` to `String::is_relative_path`
2021-08-30 20:45:45 -03:00
William Deurwaarder
b2f858870d
Show help for built-in functions (@GlobalScope)
2021-08-30 21:51:56 +02:00
Wilson E. Alvarez
d11c1afc04
Rename String::is_rel_path to String::is_relative_path
2021-08-29 20:41:29 -04:00
Fabio Alessandrelli
fafddbc143
[GDScript] [Net] Allow mixing rpc annotation paramters.
...
The strings no longer needs to be in order.
The last parameter (channel), still requires all the other parameters to
be present.
2021-08-30 00:54:38 +02:00
Fabio Alessandrelli
64b9f30b92
[Net] Rename RPC "puppet" to "auth" (authority). Drop "master".
...
This commit completely removes the RPC_MODE_MASTER ("master" keyword),
and renames the RPC_MODE_PUPPET to RPC_MODE_AUTHORITY ("auth" keyword).
This commit also renames the "Node.[get|set]_network_master" methods to
"Node.[get|set]_network_authority".
This commit also renames the RPC_MODE_REMOTE constant to RPC_MODE_ANY.
RPC_MODE_MASTER in Godot 3.x meant that a given RPC would be callable by
any puppet peer on the master, while RPC_MODE_PUPPET meant that it would
be callable by the master on any puppet.
Beside proving to be very confusing to the user (referring to where it
could be called instead of who can call it) the RPC_MODE_MASTER is quite
useless. It is almost the same as RPC_MODE_REMOTE (anyone can call) with
the exception that the network master cannot. While this could be useful
to check in some case, in such a function you would anyway need to check
in code who is the caller via get_rpc_sender_id(), so adding the check
there for those rare cases does not warrants a dedicated mode.
2021-08-30 00:54:38 +02:00
Hugo Locurcio
4f9509e6ba
Merge pull request #52085 from williamd67/fix-await-without-argument
...
Print error message when await is not followed by signal or coroutine
2021-08-28 23:01:34 +02:00
Max Hilbrunner
5d2c4faa89
Merge pull request #52164 from mhilbrunner/gd-style-fixup
...
GDScript test style fix
2021-08-28 20:16:17 +02:00
William Deurwaarder
e77338978f
Print error message when await is not followed by signal or coroutine
...
When await was not followed by a signal or coroutine the GDScript parser would
crash.
This fix will check if await is followed by a signal or coroutine in case that
isn't true (element == nullptr) then an error message is printed.
2021-08-28 17:29:35 +02:00
K. S. Ernest (iFire) Lee
d04aa9a114
Merge pull request #52122 from V-Sekai/autoload_list
...
Use sorted map for autoloads in ProjectSettings to preserve order.
2021-08-27 14:41:40 -07:00
Max Hilbrunner
f126634434
GDScript test style fix
2021-08-27 21:11:46 +02:00
Max Hilbrunner
4e67e9bca6
Merge pull request #52090 from balloonpopper/bug52060
...
Correct null and boolean values being capitalised by the str command
2021-08-27 21:05:47 +02:00
Hugo Locurcio
33773a24dc
Merge pull request #52105 from ldmnt/master
2021-08-27 19:28:59 +02:00
Lyuma
31f790299c
Use OrderedHashMap for autoloads to preserve order
2021-08-26 21:55:26 -07:00
Balloonpopper
4fae7ae9dc
Correct null and boolean values being capitalised by the str command
2021-08-26 17:11:34 +10:00
Louis Dumont
79578a5625
Fixed crash when parsing an empty assignment.
...
Resolves #51620 .
2021-08-25 18:48:08 +02:00
Hugo Locurcio
9c2ec6e697
Add a README to link to the GDScript integration tests documentation
...
This makes the documentation about creating and running GDScript
integration tests more discoverable.
2021-08-25 16:51:28 +02:00
ThreeRhinosInAnElephantCostume
6c258a89de
Fixed pattern matching with expressions
2021-08-25 15:30:41 +02:00
George Marques
4918df4527
GDScript: Allow access to outer constant and enum values
2021-08-24 14:45:51 -03:00
Max Hilbrunner
583b6a594a
Merge pull request #51971 from aaronfranke/https
...
Replace HTTP URLs with HTTPS for sites with HTTPS versions
2021-08-23 15:58:54 +02:00
Michael Alexsander
88db541705
Merge pull request #51947 from AnilBK/redundant-assignments
...
[cppcheck] Remove some redundant assignments.
2021-08-23 13:23:45 +00:00
Aaron Franke
ae1702bee5
Replace HTTP links with HTTPS for sites with HTTPS versions
2021-08-22 20:13:11 -05:00
reduz
3682978aee
Replace BIND_VMETHOD by new GDVIRTUAL syntax
...
* New syntax is type safe.
* New syntax allows for type safe virtuals in native extensions.
* New syntax permits extremely fast calling.
Note: Everything was replaced where possible except for `_gui_input` `_input` and `_unhandled_input`.
These will require API rework on a separate PR as they work different than the rest of the functions.
Added a new method flag METHOD_FLAG_OBJECT_CORE, used internally. Allows to not dump the core virtuals like `_notification` to the json API, since each language will implement those as it is best fits.
2021-08-22 08:23:58 -03:00
Julien Nguyen
9bc5119d4e
Fix assignment with operator on type member
2021-08-21 21:56:11 +02:00
Anilforextra
c86db8b710
Remove redundant assignments.
...
Use used_in_transfer instead of used_in_compute twice.
2021-08-21 19:20:07 +05:45
Rémi Verschelde
f5422c55fc
Merge pull request #49105 from vnen/gdscript-inner-preload-type
...
GDScript: Fix inner classes and preloaded scripts as types
2021-08-20 17:07:18 +02:00
George Marques
2e84a46a0f
GDScript: Make singleton functions be seen as static
...
Since those can be called without an instance.
2021-08-20 10:52:58 -03:00
Rémi Verschelde
603502c11c
Merge pull request #51902 from vnen/variant-internal-constructor
...
Fix initialization of objects in VariantInternal
2021-08-20 08:10:38 +02:00
George Marques
a685535ad5
Fix initialization of objects in VariantInternal
2021-08-19 20:19:47 -03:00
George Marques
89695da337
GDScript: Fix memory leak when using self class as type
2021-08-18 18:58:45 -03:00
George Marques
1c8b076502
GDScript: Fix calling builtin static functions
2021-08-18 18:58:41 -03:00
George Marques
47545aeb1a
GDScript: Fix issue when calling `new()` on its own
2021-08-18 18:56:21 -03:00
George Marques
2ba4ee9198
GDScript: Fix inner classes and preloaded scripts as types
2021-08-18 18:56:21 -03:00
Mariano Suligoy
6207708607
GdScript: Use reduced constant expression result when doing binary operations. Fixes #50293
2021-08-18 09:19:09 -03:00
Mariano Suligoy
70c5feb32c
Accept non unnamed enums as valid values for enums. Fixes #49357
2021-08-17 19:44:27 -03:00
Mariano Suligoy
7f37e2987a
When analyzing GdScript sources, consider Enums as Dictionaries. Fixes #45558
2021-08-17 19:44:27 -03:00
Max Hilbrunner
5161c97c9c
Remove underscore hacks
...
Way less cruft. :)
Co-authored-by: Ignacio Roldán Etcheverry <neikeq@users.noreply.github.com>
2021-08-17 16:10:28 +02:00
Rémi Verschelde
21a0af2686
Merge pull request #51762 from nekomatata/fix-crash-gdscript-cache
...
Fix crash when failing to load script from cache
2021-08-17 13:34:07 +02:00
PouleyKetchoupp
9973bf93ed
Fix crash when failing to load script from cache
2021-08-16 16:27:25 -07:00
Paulb23
bcfc591f86
Reorganise text editor settings
2021-08-16 17:18:49 +01:00
Rémi Verschelde
81512a3732
Style: Cleanup code using `text_editor/completion/use_single_quotes`
2021-08-13 21:27:57 +02:00
kobewi
8a605d227d
Prevent crash when awaiting in a getter/setter
2021-08-13 00:19:55 +02:00
kobewi
e0572f7ef7
Fix crash when parsing Dictionary
2021-08-10 15:57:56 +02:00
SaracenOne
861bb3a488
Automatically call the _init function on base class if one does not exist.
2021-08-10 02:41:44 +01:00
Julien Nguyen
51b7179b5a
Fix infinite loop when creating a newly inherited GdScript file
2021-08-09 23:52:31 +02:00
Francois Belair
070d634966
Fix LSP completion crashing on scene-less scripts
2021-08-06 14:55:05 -04:00
Rémi Verschelde
6ded4f52e8
Merge pull request #51283 from Razoric480/lsp-parse-from
...
Fix LSP parsing get_node only from the scene root
2021-08-06 10:13:09 +02:00
Fabio Alessandrelli
d7dca072aa
[Net] Default @rpc annotation should be puppet, not master.
2021-08-06 02:39:22 +02:00
Francois Belair
03f8fa9f62
Fix LSP parsing get_node only from the scene root
2021-08-05 12:30:06 -04:00
Rémi Verschelde
a544e77822
Merge pull request #51247 from pycbouh/docs-extract-theme-items
...
Add theme item descriptions to the online documentation
2021-08-05 00:18:56 +02:00
Rémi Verschelde
73b1f5ac79
Merge pull request #48615 from Razoric480/lsp-rename
...
Implement LSP didSave notification and rename request
2021-08-05 00:18:31 +02:00
Yuri Sizov
bf2839ea3e
Add theme item descriptions to the online documentation
2021-08-04 22:27:10 +03:00
Fabio Alessandrelli
80fc90e82a
Merge pull request #50454 from Ev1lbl0w/gsoc21-dap
...
Implemented initial DAP support
2021-08-03 17:12:37 +02:00
Ev1lbl0w
7bccd5487e
Implemented initial DAP support
...
Implemented "output" event
Refactored "seq" field generation
Prevent debugging when editor and client are in different projects
Removed unneeded references to peer on the parser
Refactored way to detect project path
Implemented "setBreakpoints" request
Fix double events when terminating from client
Refactored "stopped" event
Implemented "stopped" with breakpoint event
Implemented "stackTrace", "scopes" and "variables" request
Report incoming number of stack dump variables
Implemented proper reporting of scopes and variables from stack frames
Prevent editor from grabbing focus when a DAP session is active
Implemented "next" and "stepIn" requests
Implemented "Source" checksum computing
Switched expected errors from macros to silent guards
Refactored message_id
Respect client settings regarding lines/columns behavior
Refactored nested DAP fields
Implement reporting of "Members" and "Globals" scopes as well
Fix error messages not being shown, and improved wrong path message
2021-08-02 10:43:35 +01:00
Rémi Verschelde
7adf4cc9b5
doc: Use self-closing tags for `return` and `argument`
...
For the time being we don't support writing a description for those, preferring
having all details in the method's description.
Using self-closing tags saves half the lines, and prevents contributors from
thinking that they should write the argument or return documentation there.
2021-07-30 15:29:52 +02:00
Francois Belair
41ef9cf789
Fix LSP reporting wrong types
2021-07-26 16:26:23 -04:00
Rémi Verschelde
92299989bd
Use Ref<T> references as iterators where relevant
...
And const when possible.
2021-07-26 19:27:11 +02:00
Julien Nguyen
6938dd72f2
Fix instantiate line class
2021-07-25 14:20:31 +02:00
Rémi Verschelde
ac3322b0af
Use const references where possible for List range iterators
2021-07-25 12:22:25 +02:00
Aaron Franke
4e6efd1b07
Use C++ iterators for Lists in many situations
2021-07-23 17:38:28 -04:00
Hugo Locurcio
8ff8c1e5f8
Improve documentation for GDScript constants
2021-07-22 09:50:24 +02:00
Hugo Locurcio
4bd5e4fd9b
Use the standard C `INFINITY` and `NAN` constants directly
...
The `Math_INF` and `Math_NAN` defines were just aliases for those
constants, so we might as well use them directly.
Some portions of the code were already using `INFINITY` directly.
2021-07-21 10:41:08 +02:00
Fabio Alessandrelli
ddb68f76ff
[Net] Single `rpc` annotation. "sync" no longer part of mode.
...
- Move the "sync" property for RPCs to RPCConfig.
- Unify GDScript annotations into a single one:
- `@rpc(master)` # default
- `@rpc(puppet)`
- `@rpc(any)` # former `@remote`
- Implement three additional `@rpc` options:
- The second parameter is the "sync" option (which also calls the
function locally when RPCing). One of "sync", "nosync".
- The third parameter is the transfer mode (reliable, unreliable,
ordered).
- The third parameter is the channel (unused for now).
2021-07-20 11:17:59 +02:00
reduz
6631f66c2a
Optimize StringName usage
...
* 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-18 21:20:02 -03:00
Francois Belair
7c5335081c
Implement didSave notification and rename request
2021-07-17 11:50:00 -04:00
Rémi Verschelde
06568bbfdf
Misc cleanup of header includes
...
Was looking for misuse of module headers without checking that the module is
actually enabled and got carried away...
2021-07-15 00:46:43 +02:00
reduz
5ad4f26659
Implement the ability to disable classes
...
* This PR adds the ability to disable classes when building.
* For now it's only possible to do this via command like:
`scons disable_classes=RayCast2D,Area3D`
* Eventually, a proper UI will be implemented to create a build config file to do this at large scale, as well as detect what is used in the project.
2021-07-13 09:25:14 -03:00
Fabio Alessandrelli
88d68346ee
[Net] Rename NetworkedMultiplayerPeer to MultiplayerPeer.
2021-07-12 16:36:34 +02:00
Francois Belair
9a8421aa05
Implement applyEdit in LSP for signal connecting
2021-07-11 16:17:49 -04:00
Julien Nguyen
bf8795c7af
Fix crash when writing $. in the editor
2021-07-08 20:49:57 +02:00
Francois Belair
10429019ad
Implement didClose notification in LSP
2021-07-08 11:40:15 -04:00
Rémi Verschelde
a02620f3a5
Merge pull request #50009 from reduz/fix-suffixes-and-degrees
...
Fix editor suffixes and degrees conversion
2021-06-30 18:47:40 +02:00
reduz
75688772b3
Fix editor suffixes and degrees conversion
...
* Functions to convert to/from degrees are all gone. Conversion is done by the editor.
* Use PROPERTY_HINT_ANGLE instead of PROPERTY_HINT_RANGE to edit radian angles in degrees.
* Added possibility to add suffixes to range properties, use "min,max[,step][,suffix:<something>]" example "0,100,1,suffix:m"
* In general, can add suffixes for EditorSpinSlider
Not covered by this PR, will have to be addressed by future ones:
* Ability to switch radians/degrees in the inspector for angle properties (if actually wanted).
* Animations previously made will most likely break, need to add a way to make old ones compatible.
* Only added a "px" suffix to 2D position and a "m" one to 3D position, someone needs to go through the rest of the engine and add all remaining suffixes.
* Likely also need to track down usage of EditorSpinSlider outside properties to add suffixes to it too.
2021-06-30 12:38:25 -03:00
K. S. Ernest (iFire) Lee
364416ecd8
Remove singleton variable shadowing.
2021-06-30 02:37:20 -07:00
Lightning_A
e28fd07b2b
Rename `instance()`->`instantiate()` when it's a verb
2021-06-19 20:49:18 -06:00
Rémi Verschelde
9b7c963d19
Merge pull request #48804 from EricEzaM/scripting-multi-error-support
...
Added support for scripts reporting multiple errors to ScriptTextEditor
2021-06-20 00:38:49 +02:00
Rémi Verschelde
d88be9b70c
Merge pull request #44806 from madmiraal/consolidate_json
...
Consolidate JSON, JSONParseResults and JSONParser into JSON
2021-06-19 21:45:34 +02:00
Eric M
d0e78c86d7
Added support for scripts reporting multiple errors to ScriptTextEditor
...
Scripts can now report multiple errors to the scripting editors in the engine. UI elements were added to support multiple errors.
2021-06-19 22:20:30 +10:00
Marcel Admiraal
2bafcd3422
Consolidate JSON, JSONParseResults and JSONParser into JSON
...
Renames JSON.parse_string() to parse()
Renames JSON.decode_data() to stringify()
2021-06-19 08:01:40 +01:00
Rémi Verschelde
a9c53fa599
Merge pull request #49287 from reduz/expose-variant-internal-binders
...
Make some Variant internal functions public.
2021-06-19 01:11:03 +02:00
George Marques
c4fcc678df
Merge pull request #49449 from SpectralDragon/fix-enum-equal-operation
...
Fix equal operation for typed enums
2021-06-18 17:18:44 -03:00
George Marques
b5f1e88b2e
GDScript: Fix setting type of operator return value
...
Also write type adjust when needed for binary operators.
2021-06-18 13:09:35 -03:00
Francois Belair
a56c2e459b
Translate file path to URI on LSP symbol requests
2021-06-17 10:36:41 -04:00
Rémi Verschelde
fed31b1827
Merge pull request #49616 from BastiaanOlij/more_rename_transform
...
Adding some more missing renames for Transform3D and Quaternion
2021-06-15 16:50:52 +02:00
Bastiaan Olij
2161fd117b
Adding some more missing renames for Transform3D and Quaternion
2021-06-15 16:01:50 +02:00
Rémi Verschelde
cbcdda60c0
Merge pull request #49570 from RandomShaper/fix_slow_scene_io
2021-06-15 14:51:24 +02:00
Julien Nguyen
d6ae7edd80
Fix "super" call when having at least one argument
2021-06-13 17:46:03 +02:00
Pedro J. Estébanez
2ca6b9c610
Fix slow load/save of scenes with many instances of the same script
2021-06-13 13:32:44 +02:00
Pedro J. Estébanez
04688b92ff
Rename Reference to RefCounted
2021-06-11 18:48:42 +02:00
Rémi Verschelde
8d4046929c
Merge pull request #49511 from akien-mga/core-diraccess-fileaccess-io
...
Core: Move DirAccess and FileAccess to `core/io`
2021-06-11 16:51:10 +02:00
Rémi Verschelde
6b0183ec89
Merge pull request #49279 from Calinou/rename-string-is-abs-path-method
...
Rename `String.is_abs_path()` to `String.is_absolute_path()`
2021-06-11 15:58:16 +02:00
Rémi Verschelde
6107d9e180
Merge pull request #34566 from Heikki00/34541_to_json_precision
...
Increased String::num default decimal precision
2021-06-11 15:56:59 +02:00
Rémi Verschelde
9e328bb5b7
Core: Move DirAccess and FileAccess to `core/io`
...
File handling APIs are typically considered part of I/O, and we did have most
`FileAccess` implementations in `core/io` already.
2021-06-11 14:52:39 +02:00
Lyuma
771190a9db
Fix regression from 160c260
causing export of non-@export properties.
2021-06-10 20:35:58 -07:00
Владислав Прусаков
6449c5f246
Fix equal operation for typed enums
2021-06-09 02:52:21 +03:00
Rémi Verschelde
69e6d65295
Merge pull request #49367 from Calinou/gdscript-highligher-add-annotations
...
Highlight annotations in the GDScript syntax highlighter
2021-06-07 17:20:11 +02:00
Rémi Verschelde
896aa94283
Merge pull request #49221 from Faless/mp/4.x_rpc_refactor
...
[Net] Refactor RPCs, remove RSETs
2021-06-07 17:00:08 +02:00
Hugo Locurcio
32e97cb805
Highlight annotations in the GDScript syntax highlighter
...
By default, a orange color is used to highlight annotations in the
script editor.
2021-06-06 21:33:23 +02:00
Marcel Admiraal
8acd13a456
Rename Quat to Quaternion
2021-06-04 18:14:32 +01:00
Hugo Locurcio
5ea1c75d63
Rename `String.is_abs_path()` to `String.is_absolute_path()`
...
This is more consistent with `NodePath.is_absolute()`.
2021-06-03 16:00:06 +02:00
Aaron Franke
08a85352fb
Rename Variant TRANSFORM to TRANSFORM3D
...
Also _transform to _transform3d
2021-06-03 07:30:01 -04:00
Aaron Franke
de3f6699a5
Rename Transform to Transform3D in core
2021-06-03 07:30:01 -04:00
Fabio Alessandrelli
d779b5aa3e
[Net] Refactor RPCs, remove RSETs
...
In this PR:
- Removed rset
- rpc_config can now optionally configure transfer mode
(reliable/unreliable/ordered) and channel (channels are not actually
implemented yet.)
- Refactor how the RPC id is computed to minimize the logic in Node and
scripts that now only needs a single `get_rpc_methods` function.
2021-06-01 17:24:21 +02:00
Rémi Verschelde
59b524ae4c
Merge pull request #49067 from JFonS/fix_gcc_warnings
...
Fix some warnings raised by GCC-11.1
2021-06-01 10:47:37 +02:00
Hugo Locurcio
1704be0a44
Rename the bundled text editor themes for consistency with themes
...
The Adaptive text editor theme is the default, and has therefore
been renamed Default for consistency with the Default theme preset.
It keeps its automatic dark/light switch status.
The Default text editor theme was actually a legacy Godot 2-style theme,
so it has been renamed to Godot 2 to match the theme preset.
Its background color has been changed to be a constant opaque color,
since the new editor theme made the theme look less good on a translucent
background. The previous background color on light theme also lacked
contrast.
2021-05-31 14:02:13 +02:00
Heikki Simojoki
09a905ca80
Increase String::num default decimal precision
...
Fixes #34541
Renamed MAX_DIGITS to MAX_DECIMALS, since it only changes the
amount of digits after the decimal point.
Increased MAX_DECIMALS to 32, and made String::num use
MAX_DECIMALS consistently. If -1 is passed as
decimal precision to String::num, it now gets changed to
the correct precision based on the number's magnitude,
instead of using printf default(which is 6)
String::num_real also calculates the correct precision now.
Also made the types used in floating-point math more
consistent in a few places.
2021-05-29 11:24:57 -04:00
Rémi Verschelde
364ea7f280
Merge pull request #49114 from vnen/gdscript-fix-self-function-type-check
...
GDScript: Fix function signature check for self calls
2021-05-26 20:59:17 +02:00
Rémi Verschelde
78bbb2cae1
Merge pull request #49112 from vnen/gdscript-assign-type-check
...
GDScript: Use analyzer data to decide assignment conversion
2021-05-26 20:34:43 +02:00
George Marques
a23fc45727
GDScript: Fix function signature check for self calls
2021-05-26 15:33:18 -03:00
George Marques
c7459e3855
GDScript: Use analyzer data to decide assignment conversion
...
Since there might be tricky cases in the analyzer (in the case of unsafe
lines) which would need to be properly checked again. Instead, this
splits the code generator in two functions and use information set by
the analyzer to tell which function to use, without a need to re-check.
2021-05-26 14:09:00 -03:00
jfons
f8e34209af
Fix some warnings raised by GCC-11.1
2021-05-25 17:23:53 +02:00
Marcel Admiraal
da5d7db610
Rename File::get_len() get_length()
2021-05-25 11:54:28 +01:00
Rémi Verschelde
215e43242c
Merge pull request #49037 from vnen/fix-callable-freed-crash
2021-05-24 19:52:32 +02:00
George Marques
ea44744e2d
Make Callable not crash on call when the object has been freed
...
Also add a GDScript test for this case.
2021-05-24 14:23:02 -03:00
George Marques
ffdb3cccd2
GDScript: Fix error handler for tests
...
This changes the error message to be more clear on the output files and
also fixes an issue with the relative path of the offending file that
was not trimmed correctly.
2021-05-24 14:17:20 -03:00
Tomasz Chabora
b1859510ab
Change behavior of String.right
2021-05-20 23:07:57 +02:00
Rémi Verschelde
4219a4cb6f
Fix typos with codespell
...
Using codespell 2.0.0.
Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
GIRD
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
```
2021-05-20 12:38:56 +02:00
Rémi Verschelde
169268ae20
Merge pull request #48657 from Calinou/test-add-gdscript
...
Add a unit test suite for GDScript
2021-05-19 20:49:03 +02:00
Yuri Roubinsky
7b261d1cb7
Show colored rects for autocompletion of Color constants in functions
2021-05-19 14:40:03 +03:00
George Marques
cdb3726fe6
Merge pull request #48347 from Blackiris/fix-temporary-key-not-released
...
GDScript: Fix temporary value not released when used as a dictionary key
2021-05-17 18:50:25 -03:00
Rémi Verschelde
2fcfc83da9
Merge pull request #48793 from vnen/gdscript-fix-temp-type-adjust
...
GDScript: Fix crash caused by uninitialized temp stack slots
2021-05-17 17:34:19 +02:00
George Marques
10a1f64968
GDScript: Fix crash caused by uninitialized temp stack slots
...
This adds initialization to every typed temporary stack slot at the
beginning of the function call instead of emitting instructions, since
those might be in a conditional branch and not be called.
2021-05-17 10:59:43 -03:00
Pedro J. Estébanez
469fa47e06
Make all file access 64-bit (uint64_t)
...
This changes the types of a big number of variables.
General rules:
- Using `uint64_t` in general. We also considered `int64_t` but eventually
settled on keeping it unsigned, which is also closer to what one would expect
with `size_t`/`off_t`.
- We only keep `int64_t` for `seek_end` (takes a negative offset from the end)
and for the `Variant` bindings, since `Variant::INT` is `int64_t`. This means
we only need to guard against passing negative values in `core_bind.cpp`.
- Using `uint32_t` integers for concepts not needing such a huge range, like
pages, blocks, etc.
In addition:
- Improve usage of integer types in some related places; namely, `DirAccess`,
core binds.
Note:
- On Windows, `_ftelli64` reports invalid values when using 32-bit MinGW with
version < 8.0. This was an upstream bug fixed in 8.0. It breaks support for
big files on 32-bit Windows builds made with that toolchain. We might add a
workaround.
Fixes #44363 .
Fixes godotengine/godot-proposals#400 .
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-05-17 15:06:19 +02:00
Rémi Verschelde
a7421612d0
Merge pull request #48767 from vnen/gdscript-builtin-static-methods
...
GDScript: Add support for builtin static method calls
2021-05-16 22:29:32 +02:00
George Marques
ec783dd885
GDScript: Add support for builtin static method calls
2021-05-16 11:54:33 -03:00
Hugo Locurcio
6c528e4fae
Add a unit test suite for GDScript
...
This tests run-time script loading.
2021-05-12 16:20:57 +02:00
Rémi Verschelde
8962d36bb1
Merge pull request #33577 from Calinou/highlight-control-flow-keywords
...
Highlight control flow keywords with a different color
2021-05-07 00:52:50 +02:00
Julien Nguyen
82522662f8
Fix temporary value not released when used as a dictionary key
2021-05-06 22:13:05 +02:00
Rémi Verschelde
ae2359fc1f
Merge pull request #47776 from Razoric480/foreport
...
Implement LSP didDeleteFiles & make parser aware of sub-nodes
2021-05-06 20:46:18 +02:00
Rémi Verschelde
ee4ef9709d
Merge pull request #46714 from HaSa1002/fix-gdscript-underscore-strict
...
Fix GDScript Tokenizer being very strict about the number of underscores
2021-05-06 20:19:45 +02:00
Hugo Locurcio
3f078c99f6
Rename `IP_Unix`, `IP_Address` and `TCP_Server` to remove underscores
2021-05-06 02:52:01 +02:00
Hugo Locurcio
e905e8f145
Highlight control flow keywords with a different color
...
This makes them easier to distinguish from other keywords.
2021-05-05 22:38:12 +02:00
Rémi Verschelde
302b6ef576
Merge pull request #47798 from ray90514/bug#47620
...
Fix constants at function scope are not defined as constants for completion
2021-05-04 08:20:03 +02:00
Rémi Verschelde
4e06731346
Merge pull request #47958 from Xrayez/gdscript-rename-test-scripts
...
Rename GDScript test script filenames to use `snake_case`
2021-05-03 15:44:46 +02:00
Rémi Verschelde
5b16020846
Replace remaining uses of `NULL` with `nullptr`
...
Follow-up to #38736 (these uses were likely added after this PR was merged).
2021-04-29 11:53:27 +02:00
George Marques
9ed0f0384c
GDScript: Fix crash when base of an attribute is invalid
...
In attribute expressions (`a.b`) it's possible that the base has an
incorrect syntax and thus become a nullptr expression in the tree. This
commit add the check for this case to fail gracefully instead of
crashing.
2021-04-28 11:09:40 -03:00
George Marques
c201b212c7
GDScript: Implement lambdas compilation and runtime
2021-04-28 11:09:38 -03:00
George Marques
3155368093
GDScript: Add lambdas to the type analyzer
...
- Lambdas are always callables (no specific signature match).
- Captures from the current context are evaluated.
2021-04-28 10:56:16 -03:00
George Marques
c6e66a43b0
GDScript: Add lambda syntax parsing
...
Lambda syntax is the same as a the function syntax (using the same
`func` keyword) except that the name is optional and it can be embedded
anywhere an expression is expected. E.g.:
func _ready():
var my_lambda = func(x):
print(x)
my_lambda.call("hello")
2021-04-28 10:56:16 -03:00
Rémi Verschelde
8247667a3e
Core: Drop custom `copymem`/`zeromem` defines
...
We've been using standard C library functions `memcpy`/`memset` for these since
2016 with 67f65f6639
.
There was still the possibility for third-party platform ports to override the
definitions with a custom header, but this doesn't seem useful anymore.
2021-04-27 16:26:27 +02:00
Hugo Locurcio
5d124c4a8f
Remove uses of `auto` for better readability and online code reviews
...
The current code style guidelines forbid the use of `auto`.
Some uses of `auto` are still present, such as in UWP code (which
can't be currently tested) and macros (where removing `auto` isn't
easy).
2021-04-26 14:59:28 +02:00
Rémi Verschelde
d1dc28e46c
Merge pull request #48139 from vnen/gdscript-dict-keys
...
Fix mismatch between String and StringName in dictionary keys
2021-04-24 19:46:59 +02:00
Rémi Verschelde
db90ab86b9
Merge pull request #47891 from Razoric480/lsp-update-filesystem
...
Make LSP update the filesystem for changed scripts
2021-04-24 13:17:31 +02:00
George Marques
1e4ff2ede6
GDScript: Make sure Lua-style dicts use StringName as keys
2021-04-23 16:00:23 -03:00
George Marques
c7511de02e
GDScript: Fix resolution of dictionary keys
...
There was a mixup between String and StringName keys. Now they're
clearly separated. This also means you have to consider which type
you're using for the dictionary keys and how you are accessing them.
2021-04-23 15:42:33 -03:00
Rémi Verschelde
a9ecf66342
Merge pull request #47956 from vnen/gdscript-double-stack
...
GDScript: Use special stack space for temporaries to reduce type changes
2021-04-20 17:39:09 +02:00
Andrii Doroshenko (Xrayez)
1e26bf23c2
Rename GDScript test script filenames to use `snake_case`
2021-04-16 22:16:19 +03:00
George Marques
9411bf05a4
GDScript: Adjust type of temporaries when needed
2021-04-16 12:04:08 -03:00
Rémi Verschelde
200d9a734c
Merge pull request #47701 from vnen/gdscript-test-runner
2021-04-16 10:34:39 +02:00
George Marques
40502a1689
GDScript: Pool temporary values by type on the stack
...
So the stack slots perform less type changes, which is useful for
future optimizations.
2021-04-14 14:35:51 -03:00
Francois Belair
b16bb33a5b
Make LSP update the filesystem of changed scripts
...
This updates global classes and exposes base member variables.
Fixes #39713
2021-04-14 13:12:39 -04:00
George Marques
8fc4a732de
Merge pull request #47330 from Blackiris/fix-corrupt-scene-when-export-has-setter
...
Fix corrupt scene when export var has setter
2021-04-14 10:00:57 -03:00
Julien Nguyen
79a16b8a44
Fix corrupt scene when export var has setter
2021-04-14 09:14:50 +02:00
Julien Nguyen
9936abb3d5
Fix type argument in is_builtin which was treated as an address
2021-04-11 20:34:48 +02:00
ray90514
1f9524bf57
Fix Constants at function scope are not defined as constants for autocompletion
2021-04-11 22:41:04 +08:00
Francois Belair
39f7408ccb
Implement LSP didDeleteFiles & make parser aware of sub-nodes
2021-04-10 15:21:59 -04:00
George Marques
cf4079cb5f
Reduce number of addressing modes in GDScript VM
...
There's now only 3 addressing modes: stack, constant, and member.
Self, class, and nil are now present respectively in the first 3 stack
slots. Global and class constants are moved to local constants when
compiling. Named globals is only present on editor to use on tool
singletons, so its use now emits a new instruction to copy the global to
the stack.
This allow us to further optimize the VM later by embedding the
addressing modes in the instructions themselves, which is better done
with less permutations.
2021-04-08 14:29:55 -03:00
George Marques
5f77f38573
Add runner for GDScript testing
...
This is meant for testing the GDScript implementation, not for testing
user scripts nor testing the engine using scripts.
Tests consists in a GDScript file and a .out file with the expected
output. The .out file format is: expected status (based on the enum
GDScriptTest::TestStatus) on the first line, followed by either an error
message or the resulting output. Warnings are added after the first
line, before the output (or compiler errors) if the parser pass without
any error.
The test script must have a function called `test()` which takes no
argument. Such function will be called by the test runner. The test
should not have any dependency unless it's part of the test too. Global
classes (using `class_name`) are registered before the runner starts, so
those should work if needed.
Use the command `godot --gdscript-generate-tests
godot-source/modules/gdscript/tests/scripts` to update the .out files
with the current output (make sure the output are the expected values
before committing).
The tests themselves are part of the doctest suite so those can be
executed with `godot --test`.
Co-authored-by: Andrii Doroshenko (Xrayez) <xrayez@gmail.com>
2021-04-08 09:34:59 -03:00
Rémi Verschelde
40dff7117a
Merge pull request #47648 from Blackiris/fix-gdscript-editor-hangs
...
Fix infinite loop when guessing argument type from parent class
2021-04-07 23:19:29 +02:00
Julien Nguyen
43c1c680f0
Fix stack overflow in setter
2021-04-06 19:00:08 +02:00
Julien Nguyen
20f18f1621
Fix infinite loop when guessing argument type from parent class
2021-04-05 16:39:41 +02:00
Rémi Verschelde
5b2c4ad91c
Merge pull request #47569 from vnen/gdscript-typed-return
...
GDScript: Properly validate return type
2021-04-05 15:16:43 +02:00
George Marques
35682d3079
GDScript: Properly validate return type
...
When the type cannot be validated at compile time, the runtime must do a
check to ensure type safety is kept, as the code might be assuming the
return type is correct in another place, leading to crashes if the
contract is broken.
2021-04-05 09:52:05 -03:00
Rémi Verschelde
d83761ba80
Style: Apply clang-tidy's `readability-braces-around-statements`
2021-04-05 14:09:59 +02:00
Rémi Verschelde
9bbe51dc27
Style: Apply clang-tidy's `modernize-use-nullptr`
2021-04-05 14:05:07 +02:00
Julien Nguyen
3168c2a513
Fix GDScript variables addresses getting mixed
2021-04-04 19:03:15 +02:00
Rémi Verschelde
4b6e9f3157
Merge pull request #46991 from madmiraal/rename-invert-reverse
...
Rename Array.invert() to Array.reverse()
2021-04-01 13:32:22 +02:00
Rémi Verschelde
737f09895d
Merge pull request #47131 from vnen/gdscript-export-fix
...
Fix a few issues with @export in GDScript
2021-03-30 15:12:04 +02:00
Rémi Verschelde
7c14e987b4
Merge pull request #47492 from vnen/gdscript-typed-arrays
...
GDScript: Fix array type check on constants
2021-03-30 14:37:42 +02:00
George Marques
5d9585d83b
GDScript: Fix array type check on constants
...
They mistakenly pointing to the wrong union member (variable instead of
constant).
2021-03-30 09:09:13 -03:00
George Marques
2b9be53243
GDScript: Implement export of typed arrays
2021-03-30 08:29:38 -03:00
George Marques
160c260495
GDScript: Allow export of enum variables
...
Also fix the enum type in variables to be integer.
2021-03-30 08:29:38 -03:00
George Marques
3e4ecd9669
GDScript: Show error on invalid initializer expression
2021-03-30 08:29:38 -03:00
George Marques
577a17980d
Move GDSript annotation application after type-checking
...
This ensures that annotations that rely on the datatype (such as
@export) can validated it timely, allowing compound expressions instead
of only literal values.
2021-03-30 08:29:36 -03:00
Rémi Verschelde
aba03110ba
Merge pull request #46830 from vnen/gdscript-typed-arrays
...
GDScript typed arrays
2021-03-29 16:47:38 +02:00
George Marques
85e316a5d5
Add typed arrays to GDScript
...
- Use `Array[type]` for type-hints. e.g.:
`var array: Array[int] = [1, 2, 3]`
- Array literals are typed if their storage is typed (variable
asssignment of as argument in function all). Otherwise they are
untyped.
2021-03-29 10:45:48 -03:00
Rémi Verschelde
eeba8d63f8
Merge pull request #44398 from RevoluPowered/unit-tests-for-export-templates
...
Add unit tests for export templates
2021-03-23 00:42:29 +01:00
Gordon MacPherson
6b4ff3b44b
Add unit tests for export templates
2021-03-22 18:57:08 +00:00
Marcel Admiraal
755c70b871
Rename Array.invert() to Array.reverse()
...
Does the same internally for List and Vector<>, which includes all
PackedArray types.
2021-03-21 10:20:08 +00:00
Alex Hirsch
d7ac5ba1c6
Fix missing quote in multiline GDScript string
...
fix #47117
2021-03-19 01:24:18 +01:00
Rémi Verschelde
6edb0a75ab
Merge pull request #46936 from DavidSichma/match_temp_header
...
Fixed match test expression for temporaries
2021-03-14 15:46:53 +01:00
David Sichma
762bb5843b
Fixed match test expression for temporaries
...
Fixed that a potentially popped temporary was used for the value in
match statements.
2021-03-12 15:04:45 +01:00
Anshul7sp1
91181c2086
Fixes small typos and grammar correction
2021-03-12 19:05:16 +05:30
Gilles Roudière
ba1344408f
Implement Navigation layers
2021-03-10 11:23:06 +01:00
Johannes
982a0ac348
Fix GDScript Tokenizer being very strict about the number of underscores
...
You can use multiple underscores in one number, just not two of them
together.
2021-03-06 01:57:37 +01:00
David Sichma
66a5002750
Fixed match for expression pattern
...
equality comparison now writes to right target address
2021-03-02 19:18:29 +01:00
George Marques
16e88f99e2
Merge pull request #42029 from ThakeeNathees/export-type-infer-bug-fix
...
GDScript export array/dictionary type infer bug fix
2021-03-02 12:14:57 -03:00
Rémi Verschelde
d86369b590
Merge pull request #46559 from asmaloney/fix-code-completion
...
Script editor: Fix two special cases not being checked in code completion
2021-03-02 15:39:13 +01:00
Rémi Verschelde
75bfb016f2
Merge pull request #41897 from strank/not-in-conditional-done
...
Add a "not in" operator to GDScript.
2021-03-02 15:16:52 +01:00
Andy Maloney
4e89cb330b
[script editor] Fix two special cases not being checked in code completion
...
When this code was changed for 4.0, a "break" statement inside a for loop in 3.x was changed to "return".
This means that the two special cases (autoloads and input actions) are never checked.
Removing the return lets these work properly in the editor.
(Also reorder conditionals to short-circuit and avoid expensive methods.)
2021-03-01 09:39:03 -05:00
Rémi Verschelde
b7b70004bc
Merge pull request #46379 from ThakeeNathees/signal-idf-not-found-fix
...
GDScript: False positive "Identifier not found" error on signals fixed
2021-02-25 22:30:22 +01:00
Rémi Verschelde
ee5ea64e83
Merge pull request #40276 from Taywee/master
...
remove invalid codeLensProvider value from lsp
2021-02-25 17:26:26 +01:00
Thakee Nathees
9869522e6a
false positive "Identifier not found" error or signals fixed
2021-02-24 19:34:01 +05:30
Vignesh1-art
a5d931033e
Fixed Invalid function bindings #46135
...
Fixed GDScriptLanguageProtocol::notify_client - have 3 arguments, but only 2 are binded
2021-02-18 11:12:54 +05:30
reduz
f8d03b98e7
Improve resource load cache
...
-Added a new method in Resource: reset_state , used for reloading the same resource from disk
-Added a new cache mode "replace" in ResourceLoader, which reuses existing loaded sub-resources but resets their data from disk (or replaces them if they chaged type)
-Because the correct sub-resource paths are always loaded now, this fixes bugs with subresource folding or subresource ordering when saving.
2021-02-11 15:44:28 -03:00
Rafał Mikrut
f7209b459b
Initialize class/struct variables with default values in modules/
2021-02-08 10:57:18 +01:00
Rémi Verschelde
5525cd85c6
Merge pull request #45315 from RandomShaper/modernize_thread
...
Modernize Thread
2021-01-31 15:24:56 +01:00
Pedro J. Estébanez
99fe462452
Modernize Thread
...
- Based on C++11's `thread` and `thread_local`
- No more need to allocate-deallocate or check for null
- No pointer anymore, just a member variable
- Platform-specific implementations no longer needed (except for the few cases of non-portable functions)
- Simpler for `NO_THREADS`
- Thread ids are now the same across platforms (main is 1; others follow)
2021-01-29 12:02:13 +01:00
Aaron Franke
e829b7aee4
Unify URI encoding/decoding and add to C#
...
http_escape and percent_encode have been unified into uri_encode, and http_unescape and percent_decode have been unified into uri_decode.
2021-01-28 07:45:01 -05:00
Lucas Van Mol
749d0c708c
Fix highlight color for class attributes that are also keywords
2021-01-26 15:17:18 +01:00
Rémi Verschelde
51992250e6
Merge pull request #43176 from mateosss/crash-uninit-const
...
Fix crash by adding nullcheck for uninitialized constants
2021-01-11 14:00:54 +01:00
Rémi Verschelde
6d48943768
Merge pull request #43980 from gvekan/fix-missing-function-hints
...
Fix missing function hints
2021-01-11 13:54:22 +01:00
Rémi Verschelde
c17413f159
Merge pull request #44104 from nekomatata/coroutine-await-fix
...
Fix error when calling coroutine with await in _ready
2021-01-11 13:54:04 +01:00
Rémi Verschelde
813bdb4941
Merge pull request #44005 from RandomShaper/gds_needless_check
...
Remove useless check in GDScript
2021-01-11 13:53:52 +01:00
Rémi Verschelde
3e9a40cdc0
Merge pull request #44604 from lyuma/gdscript_dictionary_crash
...
GDScript: Fix crash when iterating through empty dictionary.
2021-01-11 13:53:12 +01:00
Rémi Verschelde
8363c44265
Merge pull request #44719 from ThakeeNathees/assert-argument-bug-fixed
...
GDScript assert message parsing bug fixed
2021-01-11 13:51:44 +01:00
Rémi Verschelde
a2021588ca
Merge pull request #44672 from ThakeeNathees/array-dict-const-fold-bug-fix
...
Array/Dictionary marked as not safe to const fold
2021-01-11 13:51:31 +01:00
Rémi Verschelde
bcfb698fb4
Merge pull request #44818 from ThakeeNathees/const-crash-fix
...
GDScript crash at incomplete const bug fix
2021-01-11 13:51:18 +01:00
Rémi Verschelde
aaf6725150
Merge pull request #44889 from ThakeeNathees/builtin-invalid-call-crash-fix
...
GDScript invalid method call on built-in crash fix
2021-01-11 13:51:07 +01:00
Rémi Verschelde
0dba21a4d1
Merge pull request #45076 from ThakeeNathees/gdscript-operator-precedence-bug-fix
...
GDScript operator `+` `-` precedence bug fix
2021-01-11 13:50:00 +01:00
Thakee Nathees
0889f14af9
GDScript operator `+` `-` precedence bug fix
...
Fix : #43265
2021-01-10 18:33:05 +05:30
Rémi Verschelde
215d18814e
doc: Sync classref with current source
2021-01-04 14:33:44 +01:00
Thakee Nathees
01c11ec29b
GDScript builtin invalid function call crash fix
...
Fix : #44852
2021-01-03 18:44:01 +05:30
Rémi Verschelde
b5334d14f7
Update copyright statements to 2021
...
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 🎆
2021-01-01 20:19:21 +01:00
Thakee Nathees
18f30dda63
GDScript crash at incomplete const bug fix
2020-12-30 23:27:46 +05:30
Marcel Admiraal
b743a2ef3c
Rename Math::stepify to snapped
2020-12-28 13:01:30 +00:00
Marcel Admiraal
5b937d493f
Rename empty() to is_empty()
2020-12-28 10:39:56 +00:00
Thakee Nathees
ebade0e454
GDScript assert message parsing bug fixed
...
Fix : #43540
2020-12-27 13:13:50 +05:30
Thakee Nathees
16bb01adfb
Array/Dictionary marked as not safe to const fold
...
Fix : #44459
2020-12-25 12:33:55 +05:30
Lyuma
0d4b750051
Fix crash when iterating through empty dictionary.
2020-12-21 20:15:29 -08:00
PouleyKetchoupp
2e4ee06b7a
Fix error when calling coroutine with await in _ready
...
The code paths for calling async functions seemed to be missing in some
cases, causing a debug break and false positive error.
2020-12-17 09:01:39 -07:00
Rémi Verschelde
88b8c3ec00
Merge pull request #44424 from briansemrau/gdscript-fix-and
...
Fix gdscript `and` operator
2020-12-16 14:42:56 +01:00
Brian Semrau
61ac640aa0
Fix gdscript and operator
2020-12-16 07:41:10 -05:00
Jordan Schidlowsky
7d07e20bda
fixes crash in disassemlber for opcode OPCODE_ASSIGN_TYPED_NATIVE
2020-12-15 21:44:52 -06:00
Rémi Verschelde
94b15bfb89
Merge pull request #44275 from vnen/variant-function-arg-pointers
...
Use pointer parameters in Variant function pointers
2020-12-15 20:52:03 +01:00
Rémi Verschelde
abfc528439
Merge pull request #43890 from vnen/gdscript-builtin-functions-refactor
...
GDScript: Refactor builtin functions
2020-12-15 20:51:38 +01:00
skyace65
4fd20015f3
Pow method doc fix
2020-12-13 17:53:30 -05:00
George Marques
e4e9231420
Use pointer parameters in Variant function pointers
...
Instead of references. This is needed because those function pointers
are used in GDNative which needs to work with plain C, which doesn't
support passing parameters by reference.
2020-12-10 18:18:47 -03:00
Rémi Verschelde
cf62289d24
LSP: Fix iterator in enum API dump
2020-12-09 13:34:29 +01:00
bruvzg
644f739660
Static analyzer fixes:
...
Removes unused code in OS.
Fixes return types.
Fixes few typos.
2020-12-09 10:17:53 +02:00
Rémi Verschelde
90bdba576a
Merge pull request #43742 from qarmin/editor_modules_default_values
...
Initialize class/struct variables with default values in platform/ and editor/
2020-12-08 15:53:42 +01:00
Emmanuel Leblond
a211812932
Constify ScriptLanguage.can_inherit_from_file
2020-12-08 13:06:15 +01:00
PouleyKetchoupp
87d73faa66
Fix base script not initialized properly in some cases
...
Storing script references to pointer only in result.script_type could
lead to losing the last reference, causing further conversions from
Script* to Ref<Script> to fail.
Now result.script_type_ref is always set first, and then cleared in the
specific case of the script being the owner, to avoid cyclic reference
issues.
2020-12-06 08:20:33 -07:00
Rémi Verschelde
ea7dd1be36
Merge pull request #43328 from gvekan/better-keyword-completion
...
Add bracket or space to some keyword completions
2020-12-03 17:14:32 +01:00
Rémi Verschelde
9c30c83aee
Merge pull request #44011 from KoBeWi/red_roses_minus_blue_violets
...
Fix subtracting colors and quats
2020-12-03 14:44:52 +01:00
Tomasz Chabora
4c232e4222
Fix subtracting colors and quats
2020-12-03 14:22:12 +01:00
Rémi Verschelde
9a0610c1ff
Merge pull request #43959 from dalexeev/gds-doc
...
Several edits to the GDScript docs
2020-12-03 13:32:32 +01:00
Gustav
dff3875ae3
Add bracket or space to some keyword completions
2020-12-03 09:44:42 +01:00
Rafał Mikrut
e1811b689b
Initialize class/struct variables with default values in platform/ and editor/
2020-12-02 16:09:11 +01:00
Rémi Verschelde
d1231be1c8
Merge pull request #41095 from ThakeeNathees/GDScript-Documentation
...
GDScript(2.0) Documentation generation system
2020-12-02 14:15:38 +01:00
George Marques
0019aa940e
Merge pull request #41773 from ThakeeNathees/default-argument-override-buf-fix
...
GDScript default argument override bug fix
2020-12-02 09:54:47 -03:00
Thakee Nathees
42bfa16996
Refactor DocData into core and editor (DocTools) parts
2020-12-02 00:48:39 +05:30
Danil Alexeev
bf96056ad0
Several edits to the GDScript docs
2020-12-01 16:05:10 +03:00
Pedro J. Estébanez
86ece881e5
Remove useless check in GDScript
...
The removed check was adding a protection for the case where a `Reference` has not yet got its reference count initialized and a script is called on it. That would cause the object to be released after the call. The removed code was constructing the `Variant` via the `Object` constructor so it didn't deal with the reference count and so the release was prevented.
However, `Variant` no longer works that way so that check was useless. Now it's just illegal to run GDScript on a Reference whose reference count has not been initialized.
2020-12-01 12:28:52 +01:00
Rémi Verschelde
04bef80b42
Merge pull request #43992 from vnen/variant-internal-object-set
...
Fix VariantInternal initialization and setting of object
2020-11-30 20:22:15 +01:00
Rémi Verschelde
8f3dde18f1
Merge pull request #43504 from AndreaCatania/gds_fix_2
...
Implement proper error print, Fixes a crash when no error messages are generated by the analyser.
2020-11-30 19:10:38 +01:00
George Marques
029fd88adb
Fix VariantInternal initialization and setting of object
...
- Initialize Object pointer to nullptr so it's not used by mistake.
- When setting an Object check if it's a reference so refcounting works
as intended.
2020-11-30 14:49:52 -03:00
George Marques
a604e72dc9
GDScript: Don't construct ref values in compiler
...
Values that are passed by reference are not suited for being constructed
at compile time because in this case they would be shared across all the
construction statements.
2020-11-30 09:42:22 -03:00
Gustav
e995d5c378
Fix missing function hints
2020-11-30 09:26:32 +01:00
Thakee Nathees
d0e7d9b62f
Documentation generation for GDScript
...
- ClassDoc added to GDScript and property reflection data were extracted
from parse tree
- GDScript comments are collected from tokenizer for documentation and
applied to the ClassDoc by the GDScript compiler
- private docs were excluded (name with underscore prefix and doesn't
have any doc comments)
- default values (of non exported vars), arguments are extraced from the
parser
- Integrated with GDScript 2.0 and new enums were added.
- merge conflicts fixed
2020-11-29 19:45:36 +05:30
Thakee Nathees
d42b305377
GDScript default argument override bug fix
...
Fix : #41766
2020-11-28 20:42:57 +05:30
AndreaCatania
40403b02fb
Implement proper error print, Fixes a crash when no error messages are generated by the analyser.
2020-11-28 13:47:52 +01:00
Rémi Verschelde
d395f70828
Merge pull request #43500 from AndreaCatania/gds_fixes
...
Fixes crash when parse_expression returns nullptr.
2020-11-27 16:37:45 +01:00
Rémi Verschelde
9f9b269d32
Merge pull request #43914 from ThakeeNathees/range-argument-type-bug-fix
...
GDScript: range function type check bug fixed
2020-11-27 15:08:02 +01:00
George Marques
cf7a6be1db
Merge pull request #43226 from mateosss/unreachable-prop-crash
...
Fix crash due to unreachable code in properties
2020-11-27 11:03:20 -03:00
Thakee Nathees
f0613a91be
GDScript range function typecheck bug fixed
...
Fix : #43586
2020-11-27 18:23:35 +05:30
George Marques
fbb806fd68
Unregister GDScriptFunctionState class
...
This is not user accessible anymore so it does not need to be show in
documentation.
2020-11-26 21:39:54 -03:00
Rémi Verschelde
ed2f84735b
Merge pull request #43895 from vnen/gdscript-operators-fix
...
GDScript: Improve handling of operators
2020-11-26 21:19:31 +01:00
Rémi Verschelde
e5ff2d0ffd
Merge pull request #43894 from vnen/gdscript-some-fixes
...
Some GDScript fixes
2020-11-26 18:56:42 +01:00
George Marques
0cb185927c
GDScript: Improve handling of operators
...
- Use the new functions in Variant to determine the validity and resulting
type of operators.
- Split the operator function in codegen between binary and unary, since
the unary ones have now a special requirement of having the second
argument to be the NIL type when requesting info.
2020-11-26 14:41:55 -03:00
George Marques
627ca7f30e
GDScript: Don't clear depended parsers too soon
...
It can wait until the analyzer itself is destructed, otherwise other
phases might be using freed parsers.
2020-11-26 14:14:29 -03:00
George Marques
817fb3d702
GDScript: Give an error if dependency can't be parsed
...
Otherwise this may lead to a crash when the dependency is not present.
2020-11-26 12:27:48 -03:00
George Marques
c7b6a7adcc
GDScript: Refactor builtin functions
...
They are now called "utility functions" to avoid confusion with methods
of builtin types, and be consistent with the naming in Variant.
Core utility functions are now available in GDScript. The ones missing
in core are added specifically to GDScript as helpers for convenience.
Some functions were remove when there are better ways to do, reducing
redundancy and cleaning up the global scope.
2020-11-26 12:05:42 -03:00
Jordan Schidlowsky
afa15c5f15
fixes crash for OPCODE_CAST_TO_NATIVE opcode in gdscript disassemlber
2020-11-25 16:26:32 -06:00
Rémi Verschelde
fc28de64c4
Merge pull request #43856 from vnen/gdscript-some-fixes
...
A couple of GDScript fixes
2020-11-25 17:13:41 +01:00
George Marques
ed3d8f31df
GDScript: Fix return of cast expression on compilation
...
It was mistakenly returning the source instead of the result.
2020-11-25 11:37:51 -03:00
George Marques
fb3dc2670a
GDScript: Fix range() being treated as array when optimized out
...
The call of range() in a for loop is optimized to use int or vectors, to
avoid allocating an array, however the type was set as array still. With
the new typed VM this is an issue as the type mismatch the actual value,
resulting in wrong instructions to be selected.
2020-11-25 11:35:07 -03:00
George Marques
2e528ef382
GDScript: Fix mishandling of stack pointers
...
- Replace the for loop temporaries by locals. They cause conflicts with
the stack when being popped, while locals are properly handled in the
scope.
- Change the interface for the codegen so the for loop list doesn't live
through the whole block if it's a temporary.
- Keep track of the actual amount of local variables in the stack. Using
the size of the map is misleading in cases where multiple locals have
the same name (which is allowed when there's no shadowing).
- Added a few debug checks for temporaries, to avoid them being wrongly
manipulated in the future. They should not live more than a line of
code.
- Rearrange some of compiler code to make sure the temporaries don't
live across blocks.
2020-11-25 11:24:13 -03:00
George Marques
5518e2a68e
GDScript: Add faster instruction for validated constructor
...
Only for built-in types.
2020-11-21 13:30:17 -03:00
George Marques
e0dca3c6b6
GDScript: Add typed iterate instructions
2020-11-21 13:24:50 -03:00
George Marques
52ab64db69
GDScript: Add faster call instructions for builtin methods
...
Methods from builtin types can be called by using the function pointer
when the argument and base types are known at compile time.
2020-11-21 13:24:50 -03:00
George Marques
d8b22097f2
GDScript: Add faster call instructions for native methods
2020-11-21 13:24:50 -03:00
George Marques
5aeb390cd7
GDScript: Add speficic set/get instructions
...
When the base type is known at compile-time, we can get a direct
function pointer that is faster than the regular set/get paths.
2020-11-21 13:24:49 -03:00
George Marques
1ad5c926dc
GDScript: Add faster operator for known types
...
It now uses the direct operator function pointer, which increases
performance in evaluation.
2020-11-21 13:24:49 -03:00
George Marques
c707d6fe71
GDScript: Gather instructions arguments beforehand
...
Almost all instructions need variant arguments. With this change they
are loaded in an array before each instruction call. This makes the
addressing code be localized to less places, improving compilation
overhead and binary size by a small margin.
This should not affect performance.
2020-11-21 13:24:49 -03:00
George Marques
b6519d0d03
GDScript: Split Function code into multiple files
...
To improve organization and reduce the size of compilation units.
2020-11-21 13:24:49 -03:00
Aaron Franke
02161aad5a
Remove empty lines around braces with the formatting script
2020-11-16 23:38:11 -05:00
Andrea Catania
98daa0af6b
Fixes crash when returns .
2020-11-13 15:09:52 +01:00
George Marques
8bcd345782
GDScript: Fix native class not set with inheritance
2020-11-13 10:35:24 -03:00
reduz
635d33dc6c
Refactor variant built-in methods yet again.
...
* Using C-style function pointers now, InternalMethod is gone.
* This ensures much better performance in typed code.
* Renamed builtin_funcs to utility_funcs, to avoid naming confusion
2020-11-11 16:36:36 -03:00
Aaron Franke
ee79fc627c
Minor clamp and float fixes
2020-11-10 14:30:07 -05:00
Gustav
0ddd4097a6
Fix completion for built-in load function
2020-11-10 12:00:08 +01:00
Rémi Verschelde
68067b8d97
Merge pull request #43423 from Calinou/doc-assert-avoid-side-effects
...
Clarify that code in `assert()` should avoid side effects
2020-11-10 11:31:28 +01:00
Rémi Verschelde
0f249f5c0a
Variant: Sync docs with new constructors, fixups after #43403
...
Change DocData comparators for MethodDoc and ArgumentDoc to get a better
ordering of constructors.
2020-11-09 23:39:53 +01:00
Hugo Locurcio
d6c7073bd7
Clarify that code in `assert()` should avoid side effects
2020-11-09 21:48:24 +01:00
Rémi Verschelde
9d2e8f2f27
Variant: Rename Type::_RID to Type::RID
...
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-09 16:29:04 +01:00
reduz
221a2a1742
Refactored variant constructor logic
2020-11-09 08:54:43 -03:00
reduz
127458ed17
Reorganized core/ directory, it was too fatty already
...
-Removed FuncRef, since Callable makes it obsolete
-Removed int_types.h as its obsolete in c++11+
-Changed color names code
2020-11-07 20:17:12 -03:00
reduz
05de7ce6ca
Refactored variant setters/getters
...
-Discern between named, indexed and keyed
-Get direct access to functions for typed GDScript and GDNative bindings
-Small changes to some classes in order to work with the new setget binder
2020-11-07 15:16:15 -03:00
Yuri Roubinsky
38fb26794b
Exposed randi_range to global funcs + renamed rand_range to randf_range
2020-11-06 17:06:26 +03:00
Rémi Verschelde
c35517f07e
Merge pull request #42724 from theoway/error_message_fix_call_recursive
...
Fixes the misleading message when a non-existing function name is passed to TreeItem.call_recursive()
2020-11-05 00:46:28 +01:00
Rémi Verschelde
bd13e82080
Merge pull request #41516 from Lunatoid/allow-object-new
...
Fixed ParseError when calling Object.new()
2020-11-03 13:08:48 +01:00
Mateo de Mayo
531958b2f0
Fix crash due to unreachable code in properties
2020-10-30 22:21:50 -03:00
Mateo de Mayo
f388177aed
Fix crash by adding nullcheck for uninitialized constants
2020-10-29 01:11:19 -03:00
Hugo Locurcio
a1d9c67f43
Optimize SVG using `svgcleaner --multipass`
...
This decreases the editor binary size by about 8 KB.
2020-10-25 10:02:37 +01:00
Yuri Roubinsky
4c65dc975c
Shows ColorRect in Color constants autocompletion
2020-10-23 19:03:50 +03:00
Rémi Verschelde
ef62e93677
Merge pull request #42943 from vnen/gdscript-local-scope-fix
...
Fix handling of scope for local GDScript variables
2020-10-20 21:00:57 +02:00
George Marques
96884ef41e
Merge pull request #41983 from ThakeeNathees/array-const-folding-bug-fix
...
Array/Dictionary Nodes no more reduced to array/dictionary variant
2020-10-20 15:43:07 -03:00
George Marques
11c05642fe
GDScript: Fix handling of scope for local variables
2020-10-20 14:57:31 -03:00
George Marques
48b91b900d
GDScript: Add initialization for the language before debug tests
...
This ensures that the tests will use a full environment with correct
settings so global classes and autoloads can be properly found.
2020-10-20 10:07:03 -03:00
George Marques
5ddfc657ab
Merge pull request #42067 from ThakeeNathees/for-loop-stack-overriden-fix
...
GDScript: for loop override stack variable bug fix
2020-10-19 20:21:14 -03:00
Umang Kalra
c37f633216
Fixes the misleading error message for call_recursive method for TreeItems
2020-10-17 12:30:36 +05:30
Hugo Locurcio
802c1e4df1
Link the Random number generation tutorial in the class reference
2020-10-14 18:03:29 +02:00
George Marques
fe6109101f
Merge pull request #41881 from ThakeeNathees/crash-on-builtin-constructor
...
GDScript crash on builtin type constructor fix
2020-10-08 19:35:35 -03:00
Rémi Verschelde
3556bc48a1
Merge pull request #42439 from Xrayez/doc-gdscript-load-and-resloader-xref
...
Cross-reference GDScript `load` and `ResourceLoader.load` in classref
2020-10-04 20:48:07 +02:00
Paulb23
ee4a1c99a7
Switch from recursion to iterative for backfilling colour regions
2020-10-03 14:58:55 +01:00
Serhat
9f2cdfea82
Fixed padding bug of sprintf function
2020-10-02 00:25:42 +03:00
Rémi Verschelde
39ea52f36f
Merge pull request #41829 from RandomShaper/fix_40353
...
Avoid warning about harmless unfulfilled yields
2020-10-01 14:17:34 +02:00
Andrii Doroshenko (Xrayez)
a8404cf56c
Cross-reference GDScript `load` and `ResourceLoader.load` in classref
...
The GDScript `load` mention is moved from the class `ResourceLoader`
description to the `ResourceLoader.load` method description instead,
where it is more likely to be found.
2020-09-30 23:03:36 +03:00
Pedro J. Estébanez
de4e54dd91
Avoid infinite loop in GDScript at shutdown
2020-09-26 19:21:09 +02:00
Hugo Locurcio
50f3a8e312
Improve documentation related to printing error/warning messages
2020-09-24 14:23:53 +02:00
strank
409af31b55
Add a "not in" operator to GDScript.
2020-09-21 17:53:54 -04:00
Rémi Verschelde
cff43e5326
Merge pull request #41930 from RandomShaper/fix_gdscript_leaks
...
Fix leaks in GDScript
2020-09-18 16:18:57 +02:00
Rémi Verschelde
3e78963bb9
Fix typos with codespell
...
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-18 13:44:25 +02:00
Thakee Nathees
119936d939
GDScript: for loop override stack variable bug fix
...
Fix : #42050
2020-09-18 01:22:22 +05:30
Danil Alexeev
a4c5790350
Several documentation improvements
2020-09-14 20:02:19 +03:00
Thakee Nathees
e4d5393ecf
GDScript export array/dictionary type infer bug fix
...
Fix : #41980
2020-09-13 19:36:20 +05:30
Thakee Nathees
3886a2f9f6
Array/Dictinoary no more reduced to array/dictionary variant
...
Fix : #41377
Fix : #20436
Fix : #41953
2020-09-11 19:46:20 +05:30
Pedro J. Estébanez
e25f5e791e
Ensure cyclic dependencies between scripts are broken at exit
2020-09-10 01:34:42 +02:00
Pedro J. Estébanez
95828161d4
Prevent cyclic reference between script and its members
2020-09-10 01:26:07 +02:00
Rémi Verschelde
1c881c973b
GDScript: Fix MutexLock usage, fixes Clang 6 compat
...
Fixes #41852 .
2020-09-09 14:56:57 +02:00
Rémi Verschelde
2410016638
Merge pull request #41709 from ThakeeNathees/dictionary-indexing-bug-fix
...
Fixed parser error when indexing a dictionary.
2020-09-08 21:38:14 +02:00
Thakee Nathees
279a11bbda
GDScript crash on builtin type constructor fix
...
Fix : #41848
2020-09-08 18:33:53 +05:30
Rémi Verschelde
3c42d5789f
Merge pull request #38308 from bruvzg/sad_security_circus
...
Adds PCK encryption support (using script encryption key for export).
2020-09-07 17:12:01 +02:00
Pedro J. Estébanez
f76a13dea0
Avoid warning about harmless unfulfilled yields
2020-09-06 22:30:46 +02:00
Rémi Verschelde
859322343c
Merge pull request #41803 from ThakeeNathees/parameter-type-infer-bug-fix
...
GDScript: parameter infer type bug fix
2020-09-06 15:22:44 +02:00
Thakee Nathees
89489a3cac
GDScript: parameter infer type bug fix
...
Fix : #41772
2020-09-06 13:26:52 +05:30
bruvzg
f043eabdd8
Adds PCK encryption support (using script encryption key for export).
...
Change default encryption mode from ECB to CFB.
2020-09-05 14:53:39 +03:00
Rémi Verschelde
605d7b7e82
Merge pull request #41760 from ThakeeNathees/null-dereference-on-gdscript-function-fix
...
null pointer dereference at GDScriptFunction::call crash fix
2020-09-04 14:45:31 +02:00
Thakee Nathees
75d4511cb5
null pointer dereference at GDScriptFunction::call fix
2020-09-04 15:24:09 +05:30
bruvzg
80b8eff6aa
[Complex Test Layouts] Change `String` to use UTF-32 encoding on all platforms.
2020-09-03 19:56:24 +03:00
Thakee Nathees
4fc14e8e11
fixed parser error when indexing a dictionary.
...
Fix : #41707
2020-09-03 18:04:54 +05:30
Rémi Verschelde
d84954a281
Merge pull request #41459 from Paulb23/nested_color_regions
...
Fix colour region end key seach and start key order
2020-09-03 11:32:04 +02:00
bruvzg
d73609c774
Fix GDScript codegen leak.
2020-09-02 22:42:49 +03:00
Andrii Doroshenko (Xrayez)
0cc05c5a31
Register GDScript test tools as test commands to run via command-line
2020-09-02 01:43:26 +03:00
Lunatoid
07053d0c6a
Fixed ParseError when calling Object.new()
...
Fixes #41462 where calling Object.new() in GDScript gave an error.
I fixed it by adding exclusion when checking if the name is a builtin
type to exclude objects with a comment detailing why.
2020-09-02 00:11:58 +02:00
Andrii Doroshenko (Xrayez)
6b7e50ab34
Move GDScript tests to respective folder under modules
2020-09-02 01:09:32 +03:00
George Marques
635c6a0a18
Add GDScript disassembler
2020-09-01 14:36:30 -03:00
George Marques
745ca3059d
Change GDScript compiler to use codegen abstraction
2020-09-01 14:36:22 -03:00
George Marques
82273ebc01
Add GDScript code generation interface
...
Implement the abstraction by targeting the current VM.
2020-09-01 14:27:19 -03:00
George Marques
a889084864
GDScript: Don't mark function parameters as constant
...
They can be reassigned as if it were a local variable.
2020-09-01 09:26:28 -03:00
George Marques
c8e10aa20b
GDScript: Properly set class inheritance for global classes
2020-09-01 09:26:28 -03:00
George Marques
164cc8705b
GDScript: Check for missing exponent when parsing numbers
...
Also forbid multiple underscores in a row as numeric separator.
2020-09-01 09:26:28 -03:00
George Marques
f8fa5e4738
GDScript: Fix analysis of singleton dependencies
...
Sometimes a singleton might depend on another before they are fully
compiled so we can't rely on globals in this case.
2020-09-01 09:26:28 -03:00
George Marques
edb4caf24e
GDScript: Allow "extends" to be used inside inner class
2020-09-01 09:26:27 -03:00
George Marques
34dc689ad4
GDScript: Allow "self" to be used in class level
2020-09-01 09:26:27 -03:00
George Marques
1ddb9b1a52
GDScript: Don't try to parse constant scripts that aren't valid
...
Since it's likely that they won't parse correctly.
2020-09-01 09:26:27 -03:00
Hugo Locurcio
c4903a603b
Add link titles for all links in the class reference
...
This makes them display in a nicer way in the editor help.
(The title will display instead of the full URL.)
2020-08-31 14:22:07 +02:00
Hugo Locurcio
20d0f5bbd7
Cross-reference GDScript built-in rounding methods to ease discovery
...
This closes #19315 .
2020-08-28 17:04:22 +02:00
Rémi Verschelde
46809332dd
Merge pull request #41547 from vnen/gdscript-2-fixes
...
Some more GDScript fixes
2020-08-28 10:36:09 +02:00
George Marques
5033d5c71c
GDScript: Fix crash when parsing properties
2020-08-26 16:08:19 -03:00
George Marques
b2b45987d0
GDScript: Show error when there's an inheritance cycle
2020-08-26 16:01:08 -03:00
George Marques
4a3fca47e5
GDScript: Add recursion depth limit for completion
...
To avoid crashes when there's a dependency loop.
2020-08-26 15:38:23 -03:00
George Marques
ff16ba1eaa
GDScript: Fix crash when completing code with signals
2020-08-26 15:13:42 -03:00
George Marques
8ccf88a206
GDScript: Fix issues when deriving from other scripts
2020-08-26 14:50:27 -03:00
Rémi Verschelde
9d8f3496e8
Merge pull request #40443 from SkyLucilfer/PluralsSupport
...
Added plurals and context support to Translation
2020-08-25 12:11:56 +02:00
George Marques
722be9aaef
GDScript: Don't fail to load constants if they're not a literal
...
It's still okay as long as it's a constant value. This should already
been validated by the analyzer.
2020-08-24 09:15:33 -03:00
George Marques
ca90c9c9a9
GDScript: Properly resolve external inner classes from preload
...
This gets the correct parser and class node when resolving from a full
GDScript reference.
2020-08-23 12:55:27 -03:00
George Marques
d36d7e2a1c
GDScript: Use pointer instead of references in cache
...
They are not supposed to be kept alive and this is cleaner and less
error-prone than unreferencing the elements.
2020-08-23 12:55:27 -03:00
George Marques
58f5c2bab6
Merge pull request #41238 from MarianoGnu/gdscript-export-resource
...
Fix GdScript Analyzier not detecting Resource subclass correctly
2020-08-23 11:04:52 -03:00
Paulb23
6cdcdbc242
Fix color region end key seach and start key order
2020-08-22 19:55:44 +01:00
George Marques
a880f590e4
GDScript: Make subscript access be properly type checked
2020-08-19 14:35:26 -03:00
George Marques
846856728b
GDScript: Show error when function return type is missing
2020-08-19 14:09:45 -03:00
George Marques
15b16ec0ce
GDScript: Fix signal parameters not respecting commas
2020-08-19 11:32:48 -03:00
George Marques
cd3f51c67c
GDScript: Check duplicate keys in dictionaries and enums
2020-08-19 11:14:16 -03:00
George Marques
f9ad0b30fa
GDScript: Allow preload() to be used with constant expressions
2020-08-19 10:45:00 -03:00
George Marques
a52e457ada
GDScript: Allow keywords to be used in $ notation
2020-08-19 10:19:05 -03:00
SkyJJ
ce3461dc88
Update GDScriptTranslationParserPlugin to use GDSriptParser instead of RegEx.
2020-08-19 03:10:51 +02:00
SkyJJ
396f2eee82
Update POT generation to handle context and plurals
2020-08-19 03:01:52 +02:00
George Marques
35176247af
GDScript: Allow enum values to be set to constant expressions
...
Also allow them to access previous values wihout referencing the enum.
2020-08-18 17:44:20 -03:00
George Marques
99d4ea8c79
GDScript: Allow supertype objects to be assigned to a subtype variable
...
It allows `get_node()` to be used with typed variables
This is marked as unsafe to warn the user.
2020-08-18 15:12:51 -03:00
George Marques
8bc9b3a2ae
GDScript: Allow implicit type conversion when constructing variants
...
Incidentally fix error message when no valid constructor is found which
was missing an end parenthesis.
2020-08-18 13:12:18 -03:00
George Marques
8088e9e6ac
GDScript: Add script to cache on reload
...
This ensures that scripts created without a resource loader are properly
included in the cache (such as builtin scripts) and are not tried to be
loaded from the disk.
2020-08-18 11:21:09 -03:00
George Marques
0f9923e67f
GDScript: Allow empty files to be valid scripts
2020-08-17 21:32:49 -03:00
George Marques
3abb3c0d6e
GDScript: Fix crash when superclass file is non-existent
...
Incidentally, allow EOF to be an end of statement.
2020-08-17 21:30:39 -03:00
George Marques
fda6f3b600
GDScript: Fix LSP getting wrong union value on unnamed enums
2020-08-17 21:10:30 -03:00
George Marques
d06ce2f11e
GDScript: Fix editor crash when writing @tool annotation
2020-08-17 21:02:49 -03:00
George Marques
f374021d52
GDSript: Prevent crash when completing unary operators
2020-08-17 20:49:04 -03:00
George Marques
9ecd042e78
GDScript: Allow "match" to be used as an identifier
...
This is needed to call the String.match() function.
2020-08-17 20:14:46 -03:00
George Marques
d45e1befe3
GDScript: Fix wrong argument check for formatting operator
2020-08-17 19:49:54 -03:00
Mariano Suligoy
a8c01df647
Fix GdScript Analyzier not detecting Resource subclass correctly
2020-08-13 19:46:57 -03:00
George Marques
adc1f95d97
Merge pull request #41224 from ThakeeNathees/fix-ctrl+click-not-working
...
Fix: ctrl + click not working on script member
2020-08-13 10:25:46 -03:00
Thakee Nathees
c6dc73f9be
Fix: ctrl + click not working
2020-08-13 17:35:17 +05:30
George Marques
9413446b2d
Merge pull request #41104 from vnen/gdscript-assignment-tidy
...
Tidy up assignment operator check
2020-08-12 08:54:48 -03:00
Rémi Verschelde
cf05486d8e
Merge pull request #41055 from snichols/null-callee-fix
...
Fix crash with null callee
2020-08-11 15:15:43 +02:00
Paulb23
5cf2cf8646
Fix colour region continuation over blank lines, issue 41120
2020-08-08 15:36:46 +01:00
George Marques
69c81309cc
Merge pull request #40673 from ThakeeNathees/gdscript-op-eval-validation
...
GDScript operator evaluation validation bug fix
2020-08-08 10:52:40 -03:00
George Marques
1f14068727
Merge pull request #40951 from bruvzg/gds_cleanup
...
[GDScript] Add static HashMap cleanup.
2020-08-08 10:44:57 -03:00
George Marques
3aef60591b
GDScript: Tidy up assignment operator check
...
The operator is already gathered by the parser, no need to do it again
in the analyzer.
2020-08-08 10:37:51 -03:00
Thakee Nathees
38c7d080e8
GDScript: unsafe arithmetic assignment bug fix
...
Fix : #41051
2020-08-06 11:12:26 +05:30
Stephen Nichols
fbd07bf3bf
Adding error message for empty grouping expression
2020-08-05 14:42:33 -05:00
Stephen Nichols
8a13be50ab
Fixing null callee crash.
2020-08-05 14:41:46 -05:00
George Marques
9adf6d3441
Merge pull request #40690 from ThakeeNathees/arithmetic-assign-type-check-bug-fix
...
GDScript arithmetic assignment type check bug fix
2020-08-03 09:26:09 -03:00
unknown
561af0c17d
Fixed tiny grammar issues in error messages
2020-08-03 14:03:28 +05:30
bruvzg
ee973f5b90
[GDScript] Add static HashMap cleanup.
2020-08-01 22:08:12 +03:00
Rémi Verschelde
ba853f86af
Merge pull request #40903 from Calinou/doc-json
...
Improve JSON-related documentation
2020-07-31 10:39:56 +02:00
Hugo Locurcio
930e10ffff
Improve JSON-related documentation
...
This closes https://github.com/godotengine/godot-docs/issues/3848 .
2020-07-31 09:56:11 +02:00
Rémi Verschelde
9833f9cc11
doc: Fix typo in BBcode tag
2020-07-30 16:24:37 +02:00
SkyJJ
9cd1ef573c
Refix GDScriptTranslationParser leak
2020-07-29 23:17:58 +02:00
Lyuma
68566b7bec
GDScript: Fix crash caused by inconsistent get_member
2020-07-29 02:56:03 -07:00
Rémi Verschelde
a6916d1f17
Merge pull request #40678 from aaronfranke/string-float64
...
Make all String float conversion methods be 64-bit
2020-07-28 01:27:34 +02:00
Rémi Verschelde
932b75e247
doc: Sync classref with current source
2020-07-28 01:08:44 +02:00
Aaron Franke
56e2c6c704
Make all String float conversion methods be 64-bit
2020-07-27 18:38:53 -04:00
Rémi Verschelde
4e825539e5
Merge pull request #40762 from SkyLucilfer/PackedSceneLeak
...
Fix EditorTranslationParser leak
2020-07-28 00:31:46 +02:00
George Marques
04f46aea8d
GDScript: Fix crash on 'await' completion
2020-07-27 17:17:39 -03:00
SkyJJ
0e54ba0486
Fix EditorTranslationParser leak
2020-07-27 17:02:53 +02:00
Rémi Verschelde
3e99059129
Merge pull request #40714 from ThakeeNathees/Object-type-bug-fix
...
GDScript: "Object" datatype changed from BUILTIN to NATIVE
2020-07-27 08:50:16 +02:00
Rémi Verschelde
33d423e240
Merge pull request #39898 from Meriipu/master_gdscript
...
GDScript: Clarified/fixed inaccuracies in the built-in function docs.
2020-07-26 17:12:13 +02:00
Rémi Verschelde
b2096ba53e
Merge pull request #40670 from vnen/remove-multilevel-call
...
Remove multilevel calls
2020-07-26 17:09:41 +02:00
Thakee Nathees
194c2aa7e2
GDScript: "Object" datatype changed from BUILTIN to NATIVE
...
Fix : #40656
2020-07-26 08:00:55 +05:30
Thakee Nathees
5ba46ddf8e
GDScript arithmetic assignment type check bug fixed
...
Fix : #40686
2020-07-26 06:46:13 +05:30
Meriipu
7f9bfee0ac
GDScript: Clarified/fixed inaccuracies in the built-in function docs.
...
The input to smoothstep is not actually a weight, and the decscription
of smoothstep was pretty hard to understand and easy to misinterpret.
Clarified what it means to be approximately equal.
nearest_po2 does not do what the descriptions says it does. For one,
it returns the same power if the input is a power of 2. Second, it
returns 0 if the input is negative or 0, while the smallest possible
integral power of 2 actually is 1 (2^0 = 1). Due to the implementation
and how it is used in a lot of places, it does not seem wise to change
such a core function however, and I decided it is better to alter the
description of the built-in.
Added a few examples/clarifications/edge-cases.
2020-07-25 20:26:02 +02:00
Thakee Nathees
04dfb78d23
GDScript operator evaluation validation bug fix
...
Fix : #40665
2020-07-24 23:32:29 +05:30
George Marques
2b9d9bc364
Remove multilevel calls
...
In general they are more confusing to users because they expect
inheritance to fully override parent methods. This behavior can be
enabled by script writers using a simple super() call.
2020-07-24 14:13:58 -03:00
George Marques
e6b44b93c3
GDScript: Allow "new()" to be called in non-static functions
2020-07-24 13:45:23 -03:00
Rémi Verschelde
3811fb919e
Merge pull request #40598 from vnen/gdscript-2.0
...
GDScript 2.0 (again)
2020-07-24 01:04:57 +02:00
George Marques
a0f54cb95e
Wrap up GDScript 2.0 base implementation
2020-07-22 11:07:51 -03:00
Aaron Franke
83e324d670
Update core documentation to match recent C# changes
...
Also a few minor API changes like adding AABB.abs()
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2020-07-21 14:44:53 -04:00
George Marques
aa09b4f85d
Reintroduce code completion
2020-07-20 11:38:40 -03:00
George Marques
b6a2628c48
Reenable GDScript LSP server
2020-07-20 11:38:40 -03:00
George Marques
dadfcd8aba
Added support for enums to be used as types in GDScript
2020-07-20 11:38:40 -03:00
George Marques
95c0909290
Add warning checks in GDScript analyzer
...
Reenable checking those when validating code.
2020-07-20 11:38:40 -03:00
George Marques
9a76ab8b6a
Add new GDScript type checker
2020-07-20 11:38:40 -03:00
George Marques
17cd6347ba
Add better local variable detection in GDScript parser
...
Also store Variant operator to avoid needing to do it repeatedly in
later compiling stages.
2020-07-20 11:38:39 -03:00
George Marques
7adb0d77cc
Add GDScript cache singleton
2020-07-20 11:38:39 -03:00
George Marques
886732ac2b
Add support for properties
2020-07-20 11:38:39 -03:00
George Marques
34c28eb2b8
Fix comments in beginning of file
...
Also improve error for unknown characters.
2020-07-20 11:38:39 -03:00
George Marques
5d6e853806
New GDScript tokenizer and parser
...
Sometimes to fix something you have to break it first.
This get GDScript mostly working with the new tokenizer and parser but
a lot of things isn't working yet. It compiles and it's usable, and that
should be enough for now.
Don't worry: other huge commits will come after this.
2020-07-20 11:38:39 -03:00
Ryan Roden-Corrent
8dcc39ec91
Include gdscript warning name in LSP message.
...
My initial attempt changed this in the gdscript code, which resulted in
a duplicate warning name in the builtin editor. We should just append
the warning name in the LSP instead.
This uses parens to match what is shown in the builtin editor.
2020-07-14 07:11:16 -04:00
Ryan Roden-Corrent
d92fa3b547
Revert "Include gdscript warning name in the warning message."
...
This reverts commit de3ad3b30e
.
2020-07-14 06:43:58 -04:00
Paulb23
bc4cee4458
Extract Syntax highlighting from TextEdit and add EditorSyntaxHighlighter
...
- Extacted all syntax highlighting code from text edit
- Removed enable syntax highlighting from text edit
- Added line_edited_from signal to text_edit
- Renamed get/set_syntax_highlighting to get/set_syntax_highlighter
- Added EditorSyntaxHighligher
2020-07-11 17:09:58 +01:00
Paulb23
156daddaaf
Expose Syntax highlighter for editor plugins
2020-07-11 15:40:00 +01:00
Paulb23
2f1080be9b
Convert syntax highlighters into a resource
2020-07-11 15:26:58 +01:00
Taylor C. Richberger
91ce8d5fff
remove invalid codeLensProvider value from lsp
...
codeLensProvider was false, it may not be a boolean like some of the other providers can, only optionally present.
2020-07-11 00:57:32 -06:00
Marcel Admiraal
26fcf2b04c
Add override keywords.
2020-07-10 13:56:54 +01:00
SkyJJ
e9c8bf5e1b
Fix GDScriptEditorTranslationParserPlugin instance leak
2020-07-06 22:40:52 +02:00
Rémi Verschelde
a535b9160d
Merge pull request #40155 from rcorre/warning-names
...
Include gdscript warning name in the warning message.
2020-07-06 16:49:54 +02:00
Rémi Verschelde
80582d1f82
Merge pull request #40116 from ThakeeNathees/editor-crash-on-super-constructor
...
Fix: editor crash on super constructor called
2020-07-06 16:45:37 +02:00
Ryan Roden-Corrent
de3ad3b30e
Include gdscript warning name in the warning message.
...
Occasionally you want to ignore a warning with a `warning-ignore`
comment, and you have to go into the settings to look up what the
actual name of the warning is. This patch appends the warning name to
the end of the warning so you know what string to use to ignore it,
similar to other linters like pylint.
For example
```
"The signal 'blah' is declared but never emitted.";
```
is now
```
"The signal 'blah' is declared but never emitted. (UNUSED_SIGNAL)";
```
2020-07-06 07:22:34 -04:00
SkyJJ
cae6f0bda2
Change translation parser plugin API to parse_file()
2020-07-05 12:14:56 +02:00
Thakee Nathees
023b3f2786
Fix: editor crash on super constructor called
...
Fix : #39909
2020-07-04 16:06:07 +05:30
SkyJJ
efb4609425
Add translation parser plugin support
2020-07-02 14:47:35 +02:00
Rémi Verschelde
a8a2769bb6
Merge pull request #38713 from aaronfranke/string-64bit
...
Make all String integer conversion methods be 64-bit
2020-07-01 16:01:05 +02:00
Tomasz Chabora
13298ed873
Improve the preload and load descriptions
2020-06-28 20:51:46 +02:00
Rémi Verschelde
d341181f30
Merge pull request #38067 from ThakeeNathees/elif-error-line-fixed
...
GDScript debugger incorrect error line fixed
2020-06-17 19:17:44 +02:00
Thakee Nathees
9325671faa
GDScript debugger incorrect error line fixed
...
if the first line of an else or an elif throws a runtime error the
debugger shows incorrect line number.
2020-06-17 21:24:01 +05:30
Rémi Verschelde
697897cc61
Merge pull request #39275 from ThakeeNathees/shadowed-warning-for-loop-counter
...
Added shadowed var warning for `for` loop counter
2020-06-16 15:51:31 +02:00
Rémi Verschelde
6cefb8d368
Merge pull request #39314 from ThakeeNathees/debugger-incorrect-line-fix
...
GDScript debugger stepping to incorrect line fix
2020-06-16 09:26:49 +02:00
Rémi Verschelde
df0779acfd
Merge pull request #39315 from ThakeeNathees/ctrl-click-fix-for-subclasses
...
Fix: Ctrl + Click not working for subclasses
2020-06-16 09:26:15 +02:00
Rémi Verschelde
786f4ada35
GDScript LSP: Fix wrong error checks added in #39385
...
Reverts `latest_client_id` back to 0, as I misunderstood how the client
IDs are assigned and, without further testing and debugging, I can't
say if this was a bug or a valid default value.
Similarly, a `latest_client_id` of -1 is no longer raising an error.
Fixes #39548 .
2020-06-15 09:51:56 +02:00
Rémi Verschelde
e34f33711b
GDScript LSP: Fix crash in notify_client
...
`latest_client_id` now defaults to `-1` (invalid ID) instead of `0`.
Also fix typo in notification `gdscrip_client/changeWorkspace`,
and fix argument names in method binds.
Fixes #39375 .
2020-06-08 11:01:45 +02:00
Rémi Verschelde
36f6103026
Merge pull request #39301 from Calinou/fix-argument-parameter-confusion
...
Tweak the GDScript error message about passed argument type mismatch
2020-06-05 11:33:53 +02:00
Rémi Verschelde
150ba031de
Merge pull request #39276 from ThakeeNathees/predefined-check-for-loop-counter
...
Added predefined var check for `for` loop counter
2020-06-05 11:01:55 +02:00
Thakee Nathees
95b0a00d2c
Fix: Ctrl + Click not working for subclasses
2020-06-05 12:25:07 +05:30
Thakee Nathees
fc89c5c76d
Debugger stepping to incorrect line fix
...
Fix : #39296
2020-06-05 12:15:37 +05:30
Hugo Locurcio
30053de182
Tweak the GDScript error message about passed argument type mismatch
...
This makes it less confusing.
This closes https://github.com/godotengine/godot-proposals/issues/670 .
2020-06-04 22:31:37 +02:00
Thakee Nathees
e153772de2
predefined var check for `for` loop counter
2020-06-04 10:37:22 +05:30
Thakee Nathees
54835a5302
shodowed var warning for `for` loop counter
...
Fix : #39268
2020-06-04 10:28:09 +05:30
Aaron Franke
25c978730b
Rename String bin_to_int64 to bin_to_int
...
And also change String static to_int(const char *) to return int64_t
2020-06-03 00:04:15 -04:00
Aaron Franke
e5ae89775a
Remove 32-bit String hex_to_int method
2020-06-03 00:03:34 -04:00
Aaron Franke
bb8aa107fd
Remove 32-bit String to_int method
2020-06-03 00:03:34 -04:00
George Marques
0f1da72492
Actually set GDScript static reference
2020-05-29 11:01:48 -03:00
Rémi Verschelde
ab460e7a6f
Merge pull request #39074 from vnen/gdscript-assert-message
...
Fix assert message when no custom message is set
2020-05-27 08:23:17 +02:00
George Marques
f29a2e2606
GDScript: Fix assert message when no custom message is set
2020-05-26 20:40:59 -03:00
Rémi Verschelde
bfac9b3538
Merge pull request #39015 from ThakeeNathees/dict-key-autocomplete-regression-fix
...
regression: dictionary key no autocomplete fix
2020-05-25 15:58:08 +02:00
Thakee Nathees
13c372b522
regression: dictionary key no autocomplete fix
...
Fix : #38998
2020-05-24 16:52:44 +05:30
Rémi Verschelde
78e223569b
Merge pull request #33689 from jbuck3/signal-error
...
Trigger an error when trying to define a preexisting signal in GDScript
2020-05-21 11:01:23 +02:00
Rémi Verschelde
af366c7adf
Merge pull request #35900 from yamgent/unreachable
...
Fix false positive "Unreachable code" warning for loops
2020-05-21 10:59:59 +02:00
Pedro J. Estébanez
1f0548efd4
Fix too eager GDScriptFunctionState stack cleanup
2020-05-19 16:41:14 +02:00
Tan Wang Leng
7b1423a61e
gdscript_parser: Fix "unreachable code" false positive for loops
...
Depending on the conditional statements of the 'for' and 'while' loops,
their body may not even execute once. For example:
func a():
var arr = []
for i in arr:
return i
# can be reached, but analysis says cannot
return -1
func b():
var should_loop = false
while should_loop:
return 1
# can be reached, but analysis says cannot
return 0
The parser will complain that the statements after the comment cannot
be reached, but it is clearly possible for our scenario. This is
because the parser falsely assumes that the loop body will always
execute at least once.
Fix the code to remove this assumption for both of those loops.
2020-05-16 20:02:55 +08:00
Oliver Frank
6815bf42b3
Fix incorrect capabilities notification in LSP
...
(cherry picked from commit 2173d041af
)
2020-05-15 23:55:49 +02:00
Thakee Nathees
c076a2b7e9
break, continue outside of a loop, match statement handled
2020-05-15 03:16:50 +05:30
Rémi Verschelde
00949f0c5f
Merge pull request #38738 from akien-mga/cause-we-never-go-out-of-style
...
Style: Remove new line at block start, enforce line between functions, enforce braces in if and loop blocks
2020-05-14 23:09:03 +02:00
Rémi Verschelde
0ee0fa42e6
Style: Enforce braces around if blocks and loops
...
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14 21:57:34 +02:00
Rémi Verschelde
5046f666a1
Merge pull request #38610 from ThakeeNathees/infer-type-null-error
...
set parser error when infer type is null
2020-05-14 21:50:48 +02:00
Rémi Verschelde
07bc4e2f96
Style: Enforce separation line between function definitions
...
I couldn't find a tool that enforces it, so I went the manual route:
```
find -name "thirdparty" -prune \
-o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \
-o -name "*.glsl" > files
perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files)
misc/scripts/fix_style.sh -c
```
This adds a newline after all `}` on the first column, unless they
are followed by `#` (typically `#endif`). This leads to having lots
of places with two lines between function/class definitions, but
clang-format then fixes it as we enforce max one line of separation.
This doesn't fix potential occurrences of function definitions which
are indented (e.g. for a helper class defined in a .cpp), but it's
better than nothing. Also can't be made to run easily on CI/hooks so
we'll have to be careful with new code.
Part of #33027 .
2020-05-14 16:54:55 +02:00
Rémi Verschelde
0be6d925dc
Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
...
Which means that reduz' beloved style which we all became used to
will now be changed automatically to remove the first empty line.
This makes us lean closer to 1TBS (the one true brace style) instead
of hybridating it with some Allman-inspired spacing.
There's still the case of braces around single-statement blocks that
needs to be addressed (but clang-format can't help with that, but
clang-tidy may if we agree about it).
Part of #33027 .
2020-05-14 16:54:55 +02:00
Rémi Verschelde
963a27f8a2
Merge pull request #38611 from ThakeeNathees/shadow-var-warning-bug-fix
...
shadowed var warning in nested block bug fix
2020-05-14 16:48:56 +02:00
Rémi Verschelde
1a8167867b
Modernize remaining uses of 0/NULL instead of nullptr (C++11)
...
Using clang-tidy's `modernize-use-nullptr`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
2020-05-14 13:45:01 +02:00
Rémi Verschelde
1f6f364a56
Port member initialization from constructor to declaration (C++11)
...
Using `clang-tidy`'s `modernize-use-default-member-init` check and
manual review of the changes, and some extra manual changes that
`clang-tidy` failed to do.
Also went manually through all of `core` to find occurrences that
`clang-tidy` couldn't handle, especially all initializations done
in a constructor without using initializer lists.
2020-05-14 10:01:56 +02:00
Thakee Nathees
687b1941b4
set parser error when infer type is null
2020-05-13 22:12:23 +05:30
Rémi Verschelde
e7c9d81876
Merge pull request #38609 from ThakeeNathees/range-crash-with-non-numeric-const-fix
...
range() with non-numeric const argument crash fix
2020-05-13 15:42:29 +02:00
Rémi Verschelde
dc649684be
Merge pull request #38708 from ThakeeNathees/init-assign-type-parser-bug-fix
...
regression: var declaration type info parser bug fix
2020-05-13 15:41:28 +02:00
Thakee Nathees
e7f056dfac
regression: static func can't access const fix
2020-05-13 06:07:22 +05:30
Thakee Nathees
e5d735851d
regression: var declaration type info parser bug fix
2020-05-13 05:58:27 +05:30
Rémi Verschelde
69de7ce38c
Style: clang-format: Disable AllowShortCaseLabelsOnASingleLine
...
Part of #33027 .
2020-05-10 13:13:54 +02:00
Rémi Verschelde
e956e80c1f
Style: clang-format: Disable AllowShortIfStatementsOnASingleLine
...
Part of #33027 , also discussed in #29848 .
Enforcing the use of brackets even on single line statements would be
preferred, but `clang-format` doesn't have this functionality yet.
2020-05-10 13:12:16 +02:00
Rémi Verschelde
da898c116c
Merge pull request #37160 from ThakeeNathees/saveing-cyclic-inheritance-crash-fix
...
Fix: saving gdscript with cyclic inheritance crash the editor
2020-05-10 13:11:40 +02:00
Rémi Verschelde
a128dd97d6
Merge pull request #37020 from aaronfranke/range
...
Allow using integer vectors for iteration and make range() use them
2020-05-10 13:11:07 +02:00
Thakee Nathees
79eee93b9a
shadowed var warning in nested block bug fix
...
Fix : #38552
2020-05-10 10:54:23 +05:30
Thakee Nathees
3e10392d48
range() with non-numeric const argument crash fix
2020-05-10 10:07:23 +05:30
Thakee Nathees
c2ab35bdde
fixed: saving gdscript with cyclic inheritance crash the editor
...
Fix : #9609
2020-05-10 09:07:09 +05:30
Thakee Nathees
5758d87f09
more clearer unexpected statement end error messages
2020-05-10 02:35:27 +05:30
Rémi Verschelde
a4b829410c
Merge pull request #38481 from RandomShaper/improve_yield
...
Fix object leaks caused by unfulfilled yields
2020-05-09 22:02:52 +02:00
Rémi Verschelde
b61a496aa7
Merge pull request #38357 from ThakeeNathees/dict2inst-crash-fix
...
fix: dict2inst crash when constructor has arguments
2020-05-09 22:00:04 +02:00
Rémi Verschelde
cf0953fefa
Merge pull request #37598 from ThakeeNathees/GDScript-type-resolve-bug-fix
...
GDScript class var type resolve bug fixed
2020-05-09 21:59:26 +02:00
Rémi Verschelde
f5371bc6b8
Merge pull request #37033 from ThakeeNathees/python-like-str-escape
...
python like string escape implemented
2020-05-09 21:53:59 +02:00
Rémi Verschelde
c04cdc2bf1
Merge pull request #38412 from ThakeeNathees/static-func-var-access
...
parser error for static func access non-static variables
2020-05-09 21:32:28 +02:00
Aaron Franke
cf4482e8c4
Change get_completion_identifier_is_function to return a bool
...
A minor bugfix
2020-05-09 13:45:00 -04:00
Aaron Franke
f7b50992b5
Allow using integer vectors for iteration and make range() use them
2020-05-09 13:43:35 -04:00
Pedro J. Estébanez
46bfe4452f
Fix object leaks caused by unfulfilled yields
...
Now the stack saved in a `GDScriptFunctionState` is cleared as soon as the `yield()` operation is known not to be resumed because either the script, the instance or both are deleted.
This clears problems like leaked objects by eliminating cases of circular references between `GDScriptFunctionState`s preventing them and the objects they refer to in their saved stacks from being released. As an example, this makes using `SceneTreeTimer` safer.
Furthermore, with this change it's now possible to print early warnings about `yield()`s to released script/instances, as now we know they won't be successfully resumed as the condition for that happens. However, this PR doesn't add such messages, to keep the observed behavior the same for the time being.
Also, now a backup of the function name in `GDScriptFunctionState` is used, since the script may not be valid by the time the function name is needed for the resume-after-yield error messages.
2020-05-05 17:54:15 +02:00
Rémi Verschelde
4d50f747d5
Merge pull request #37293 from Janglee123/ctrl-click-improvements
...
Improved go-to definition (Ctrl + Click)
2020-05-05 16:49:15 +02:00
janglee
be7a353c70
Improved go-to definition (Ctrl + Click)
...
Co-Authored-By: Bojidar Marinov <bojidar.marinov.bg@gmail.com>
2020-05-05 10:46:12 +05:30
Rémi Verschelde
3c200b23fb
Merge pull request #32534 from Xrayez/fix-dict2inst-init
...
Make `dict2inst` to work with arbitrary `_init` parameters
2020-05-03 09:58:07 +02:00
Thakee Nathees
ce978517e0
parser error for static func access non-static variables
...
Fix : #38408
2020-05-03 11:45:11 +05:30
Steven Schoen
e6e5ba32cd
Mention offending function name in "Indented block expected" error
2020-05-02 17:10:34 -07:00