Commit graph

2875 commits

Author SHA1 Message Date
Danil Alexeev
4b5daf06ef
Editor: Improve signal callback generation 2023-09-11 18:45:39 +03:00
Danil Alexeev
2964c7d51c
GDScript: Add raw string literals (r-strings) 2023-09-11 18:34:33 +03:00
ocean (they/them)
711ffabcfe GDScript: fix subclass methods not inheriting RPC info 2023-09-11 11:10:07 -04:00
BooksBaum
0202a36a7a Language Server: Improve hovered symbol resolution, fix renaming bugs, implement reference lookup
Co-Authored-By: Ryan Brue <56272643+ryanabx@users.noreply.github.com>
Co-Authored-By: BooksBaum <15612932+booksbaum@users.noreply.github.com>
2023-09-11 09:46:34 -05:00
ryanabx
14edf044af Add "untyped_declaration" warning 2023-09-11 09:39:10 -05:00
Rémi Verschelde
13f0ab88f2
Merge pull request #81079 from dalexeev/gds-fix-get-method-list
GDScript: Fix `get_*_list()` methods return incorrect info
2023-09-11 15:36:52 +02:00
Aaron Franke
6f7eccc758
Add a type conversion method to Variant Utility and expose to scripting 2023-09-08 10:12:48 -05:00
Yuri Sizov
d8ff69d53c Extract ScriptInstance to simplify includes
This allows to include script_instance.h directly in the
generated gdvirtual.gen.inc, and remove excessive includes
from the codebase.

This should also allow Resource to use GDVIRTUAL macros,
which wasn't possible previously due to a circular dependency.
2023-09-06 22:54:38 +02:00
Danil Alexeev
242d3d81e9
GDScript: Don't make array literal typed in weak type context 2023-09-05 11:32:16 +03:00
Danil Alexeev
462d8f4752
GDScript: Fix get_*_list() methods return incorrect info 2023-09-04 00:21:03 +03:00
Yuri Rubinsky
35802374ac Add coloring for completion of vector components 2023-08-30 21:13:25 +03:00
Markus Sauermann
c4705a590b Fix Object::notification order
Previously the `p_reversed` parameter didn't influence the order
in a correct way.
Also script overridden _notification functions were not called in
the correct order.

To fix this some `notification` functions had to add a `p_reversed`
parameter.

This made it necessary to adjust cpp-bindings.

Co-authored-by: David Snopek <dsnopek@gmail.com>
2023-08-30 00:15:55 +02:00
Rémi Verschelde
76d318dbd1
Merge pull request #75778 from KoBeWi/_vp
Expose `_validate_property()` for scripting
2023-08-29 12:41:27 +02:00
Rémi Verschelde
91c5273ec5
Merge pull request #75656 from YuriSizov/core-iconic-builtins
Add a script method to get its class icon
2023-08-29 12:41:03 +02:00
kobewi
67db4693eb Expose _validate_property() for scripting 2023-08-28 15:18:48 +02:00
Rémi Verschelde
fc37fd7b98
Merge pull request #81039 from MewPurPur/fix-hex-number-highlighting-after-separator
Fix highlighting of hex numbers with separators
2023-08-28 12:10:11 +02:00
MewPurPur
d3946242f4 Fix highlighting of hex numbers with separators 2023-08-28 09:52:40 +03:00
Yuri Sizov
b6c4efe1b1 Merge pull request #80964 from dalexeev/gds-allow-use-local-consts-as-types
GDScript: Allow use local constants as types
2023-08-25 21:26:44 +02:00
Danil Alexeev
68a567bd13
GDScript: Allow use local constants as types 2023-08-25 17:04:04 +03:00
Danil Alexeev
89429b0273
GDScript: Fix lambda resolution with cyclic references 2023-08-25 16:29:11 +03:00
Yuri Sizov
2c77f07aaa Add a script method to get its class icon
Co-authored-by: Danil Alexeev <danil@alexeev.xyz>
2023-08-24 13:05:41 +02:00
Rémi Verschelde
e43370d0fa
Merge pull request #80686 from azuloo/lsp-thread-connection-error
Fixes LSP connection error when launched in a separate thread
2023-08-21 19:26:43 +02:00
Rémi Verschelde
7d3bee73e4
Merge pull request #80247 from dalexeev/gds-for-loop-var-static-typing
GDScript: Add static typing for `for` loop variable
2023-08-21 19:26:32 +02:00
Rémi Verschelde
9becff0c54
Merge pull request #80745 from dalexeev/gds-improve-docgen
GDScript: Improve DocGen
2023-08-21 08:22:31 +02:00
Danil Alexeev
34d432807f
GDScript: Improve DocGen 2023-08-19 19:54:43 +03:00
Rémi Verschelde
a017e9c698
Merge pull request #80119 from MewPurPur/svg-opacities-standardization
Optimize and fix up some SVGs
2023-08-18 09:30:23 +02:00
Danil Alexeev
6c59ed9485
GDScript: Add static typing for for loop variable 2023-08-17 20:54:34 +03:00
Rémi Verschelde
e71ec0b5eb
Merge pull request #80365 from dalexeev/gds-allow-mix-indent-on-blank-lines
GDScript: Allow mixed indentation on blank lines
2023-08-17 11:25:04 +02:00
Rémi Verschelde
4f00f925b3
Merge pull request #78552 from dalexeev/gds-check-get-node-in-static-func
GDScript: Check `get_node()` shorthand in static functions
2023-08-17 11:20:32 +02:00
Danil Alexeev
00ad9e484e
GDScript: Allow mixed indentation on blank lines 2023-08-17 10:54:43 +03:00
azuloo
a5710d468b Fixes LSP connection error when launched in a separate thread 2023-08-16 16:29:28 +03:00
Rémi Verschelde
6b5e44f3ca
Merge pull request #80510 from dalexeev/gds-fix-access-inner-class-from-inside
GDScript: Fix "Identifier not found" error when accessing inner class from inside
2023-08-14 15:28:57 +02:00
Rémi Verschelde
e1bb9b523d
Merge pull request #80506 from sepTN/fix-lambda-get_method
Fix `get_method` from named lambda
2023-08-14 09:36:35 +02:00
MewPurPur
93318d2dd5 Optimize and fix up some SVGs 2023-08-13 17:48:17 +03:00
Markus Sauermann
fa8fec2cc1 Fix superfluous " in error message 2023-08-13 00:38:10 +02:00
Septian
793cc080cb Fix get_method from named lambda 2023-08-11 20:31:08 +07:00
Danil Alexeev
fb45cab133
GDScript: Fix "Identifier not found" error when accessing inner class from inside 2023-08-11 11:22:01 +03:00
Danil Alexeev
0f27c4ad80
GDScript: Check get_node() shorthand in static functions 2023-08-09 17:11:38 +03:00
Rémi Verschelde
40363a88bd
Merge pull request #80283 from ajreckof/fix-completion-option-location-not-found
Fix completion option location not found
2023-08-07 14:53:10 +02:00
Rémi Verschelde
87c91dc452
Merge pull request #79761 from dalexeev/gds-hl-comment-markers
GDScript: Highlight comment markers (`TODO`, `FIXME`, etc.)
2023-08-07 14:49:09 +02:00
Rémi Verschelde
faaf27f284
Fix various typos with codespell
Also includes typo fixes from #79993, #80068, #80276, and #80303.

Co-authored-by: betalars <contact@betalars.de>
Co-authored-by: spaceyjase <429978+spaceyjase@users.noreply.github.com>
Co-authored-by: Swarkin <102416174+Swarkin@users.noreply.github.com>
Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-08-07 13:09:47 +02:00
Danil Alexeev
54231682ba
GDScript: Highlight comment markers (TODO, FIXME, etc.) 2023-08-07 11:33:51 +03:00
ajreckof
4b724c9252 Fix completion option location not found 2023-08-05 02:15:45 +02:00
Rémi Verschelde
95d71dbad1
Merge pull request #80165 from dalexeev/gds-fix-native-signal-not-found
GDScript: Fix regression with native signal not found
2023-08-03 14:46:48 +02:00
Rémi Verschelde
5e1671afd9
Merge pull request #78540 from anvilfolk/gdresloaderr
GDScript: Add error message when a GDScript resource fails to load.
2023-08-03 14:46:33 +02:00
Danil Alexeev
f19377160c
GDScript: Fix regression with native signal not found 2023-08-02 15:42:36 +03:00
Yuri Sizov
f37d192860 Merge pull request #80109 from timothyqiu/not-markdown
Fix invalid use of markdown syntax in classref
2023-08-01 20:04:00 +02:00
Yuri Sizov
79e28e0914 Merge pull request #80020 from dalexeev/gds-pot-gen-const-string
GDScript: Add constant string support for POT generator
2023-08-01 20:03:56 +02:00
Yuri Sizov
f6e02dc437 Merge pull request #79990 from vnen/gdscript-assume-op-types
GDScript: Optimize operators by assuming the types
2023-08-01 17:25:52 +02:00
Yuri Sizov
68a49c4959 Merge pull request #79935 from dalexeev/gds-validate-node-path-annotation
GDScript: Add validation for `@export_node_path` annotation arguments
2023-08-01 17:25:44 +02:00
Haoyu Qiu
c4b5161ed1 Fix invalid use of markdown syntax in classref
Also:
* changed `[b]true[/b]` to `[code]true[/code]`
* use `[i]` for mathematical constant "e"
* use `[b]` for button text & menu item text
* improve markups about "tap1" and "tap2" in AudioEffectDelay
2023-08-01 22:44:31 +08:00
Yuri Sizov
3de7dd902c Merge pull request #79880 from dalexeev/gds-fix-id-shadowing-below
GDScript: Fix bug with identifier shadowed below in current scope
2023-07-31 21:01:36 +02:00
Yuri Sizov
41efc7cb86 Merge pull request #78941 from dalexeev/gds-doc-comments-deprecated-and-experimental
GDScript: Add `@deprecated` and `@experimental` doc comment tags
2023-07-31 21:01:08 +02:00
Yuri Sizov
efbff1369a Merge pull request #78254 from dalexeev/gds-fix-property-group-name-conflict
GDScript: Fix conflict between property and group names
2023-07-31 21:01:03 +02:00
Yuri Sizov
62b4643d85 Merge pull request #73226 from AThousandShips/gdscript_tok_improvement
Improve GDScript identifier tokenization
2023-07-31 21:00:57 +02:00
ocean (they/them)
cca57171c1 Add error message when a GDScript resource fails to load.
Currently, GDScripts who are only loaded through `ResourceLoader::load()`,
like Autoloads, do not have a pathway to announce there is an error in their
code. This contributes to significant confusion in error projects when
autoloads are involved. At least partially closes #78230.
2023-07-31 13:16:29 -04:00
Danil Alexeev
ae42c23e09
GDScript: Add constant string support for POT generator 2023-07-29 19:24:48 +03:00
George Marques
c1bca65d09
GDScript: Optimize operators by assuming the types
This assumes that operators are called usually with the same type of
operands as the first time. So it stores the types of the first run and
if matched it uses an optimized path by calling the validated operator
function directly. Otherwise it uses the regular untyped evaluator.

With this change, if operators do use the same type they run quite
faster. OTOH, if the types mismatch it takes longer to run than they
would with the previous code.
2023-07-28 13:08:21 -03:00
Danil Alexeev
5b4403c9a5
GDScript: Add validation for @export_node_path annotation arguments
Co-authored-by: George Marques <george@gmarqu.es>
2023-07-26 20:36:47 +03:00
Juan Linietsky
5e512b705e Support threads in the script debugger
* This implementation adds threads on the side of the client (script debugger).
* Some functions of the debugger are optimized.
* The profile is also now thread safe using atomics.
* The editor can switch between multiple threads when debugging.

This PR adds threaded support for the script language debugger. Every thread has its own thread local data and it will connect to the debugger using multiple thread IDs.
This means that, now, the editor can receive multiple threads entering debug mode at the same time.
2023-07-26 12:06:45 +02:00
Danil Alexeev
d53fc92b4c
GDScript: Fix bug with identifier shadowed below in current scope 2023-07-26 11:26:57 +03:00
Yuri Sizov
0e1c9531b5 Merge pull request #75620 from jpcerrone/fix_shadow_warnings_not_going_away_after_ignoring
Fix for not being able to ignore shadowing warnings on class scope
2023-07-25 21:25:45 +02:00
jpcerrone
13c73500ab Fix for not being able to ignore shadowing warnings on class scope 2023-07-24 17:22:12 -03:00
Yuri Sizov
74d20fe17e Merge pull request #75216 from rune-scape/rune-dependancy-errors
Script editor (GDScript): Show depended script errors
2023-07-24 19:32:20 +02:00
Yuri Sizov
2bd904e3db Merge pull request #73196 from Vilcrow/fix-lookup-symbol
Fix jumping to function definition using `Ctrl+LMB` or the "Lookup Symbol" button
2023-07-24 19:32:12 +02:00
rune-scape
83b01708b2 Script editor: Show depended script errors 2023-07-24 15:49:39 +02:00
Yuri Sizov
de0f7935dd Merge pull request #79524 from aaronfranke/gds-test-inst-placeholder
Change GDScript tests to use InstancePlaceholder as the example abstract class
2023-07-21 17:15:32 +02:00
Fredia Huya-Kouadio
d17811c814 Re-architect how Android plugins are packaged and handled at export time
The previous packaging format for Godot Android plugins consisted of the plugin's `gdap` config file accompanied by binaries defined in the `gdap` file.
This format is now deprecated (starting with Godot 4.2), and instead Godot Android plugins are now packaged as `EditorExportPlugin` plugins.

The `EditorExportPlugin` class has been updated with the following methods to provide the necessary set of functionality:
- `_supports_platform`: returns true if the plugin supports the given platform
- `_get_android_dependencies`: retrieve the set of android dependencies (e.g: `org.godot.example:my-plugin:0.0.0`) provided by the plugin
- `_get_android_dependencies_maven_repos`: retrieve the urls of the maven repos for the provided android dependencies
- `_get_android_libraries`: retrieve the local paths of the android libraries (AAR files) provided by the plugin
- `_get_android_manifest_activity_element_contents`: update the contents of the `<activity>` element in the generated Android manifest
- `_get_android_manifest_application_element_contents`: update the contents of the `<application>` element in the generated Android manifest
- `_get_android_manifest_element_contents`: update the contents of the `<manifest>` element in the generated Android manifest
2023-07-18 19:14:53 +02:00
Yuri Sizov
2c55214068
Merge pull request #79205 from anvilfolk/populate-class-members
GDScript: Solve `_populate_class_members()` cyclic dependency problem
2023-07-17 19:15:16 +02:00
Aaron Franke
6a8a9cd279
Change GDScript tests to use InstancePlaceholder as the example abstract 2023-07-15 18:28:08 -05:00
Yuri Sizov
d5a30f7af8 Merge pull request #79163 from anvilfolk/fullscripterror
GDScript: Add static analysis error reporting in GDScriptCache::get_full_script()
2023-07-14 18:49:32 +02:00
S.V.I. Vilcrow
56e2fad319 Fixed the jumping to function definition using 'Ctrl+LMB' and the 'Lookup Symbol' button. 2023-07-12 21:30:35 +03:00
George Marques
cbfe2b61b6
GDScript: Properly track extents of constants and patterns
Even in the case of errors.
2023-07-12 10:57:11 -03:00
Rémi Verschelde
8a06ec979e
Change explicit 'Godot 4.0' references to 'Godot 4'
Fixes #79276.
2023-07-10 13:08:11 +02:00
ocean (they/them)
7d29ac0bf2 GDScript: solve _populate_class_members() cyclic dependency problem 2023-07-08 15:34:20 -04:00
Danil Alexeev
c1b450566a
GDScript: Add @deprecated and @experimental doc comment tags 2023-07-08 18:13:19 +03:00
ocean (they/them)
955049670f GDScript: Add static analysis error reporting in GDScriptCache::get_full_script() 2023-07-07 11:16:22 -04:00
Rémi Verschelde
69dbbcc313
Merge pull request #79092 from akien-mga/doctool-remove-version-attribute
Doctool: Remove version attribute from XML header
2023-07-07 08:34:55 +02:00
Rémi Verschelde
b3c2b52025
Merge pull request #78953 from anvilfolk/enum-desc
Fix regression with GDScript enum descriptions now showing up in documentation.
2023-07-07 08:31:44 +02:00
Rémi Verschelde
81064cc239
Doctool: Remove version attribute from XML header
We don't use that info for anything, and it generates unnecessary diffs
every time we bump the minor version (and CI failures if we forget to
sync some files from opt-in modules (mono, text_server_fb).
2023-07-06 10:08:21 +02:00
Rémi Verschelde
346f1ab86b
Bump version to 4.2-dev
Keep on waitin'
2023-07-05 22:07:03 +02:00
ocean (they/them)
d48636c3bf Fix regression with enum descriptions now showing up in documentation. 2023-07-02 11:29:52 -04:00
Gilles Roudière
538c4b62b7 Explain a bit more RPCs options 2023-06-27 11:25:15 +02:00
Rémi Verschelde
af16013905
Merge pull request #78571 from MewPurPur/include-extension-info
Document file extensions of GDScript, CSharpScript, and Shader
2023-06-22 18:32:25 +02:00
MewPurPur
8848c395b6 Add information about file extension to GDScript, CSharpScript, and Shader 2023-06-22 18:56:08 +02:00
Danil Alexeev
84c8946565
GDScript: Remove unnecessary name check in _get_property_list() 2023-06-22 12:41:44 +03:00
Rémi Verschelde
f2ce0b6741
Merge pull request #78521 from jpcerrone/fix_static_vars_refs
Fix errors destroying script with static variables
2023-06-21 21:52:15 +02:00
Rémi Verschelde
faf3faa8c8
Merge pull request #77744 from dalexeev/gds-reset-block-locals-on-exit
GDScript: Reset local variables on exit from block
2023-06-21 21:51:05 +02:00
ocean (they/them)
6c28b8edd3 GDScript: fix regression when checking for virtual function implementation.
Unfortunately it appears the virtual function checks in #77324 are not
trustworthy at runtime, because objects can have scripts attached, but
this information is not always available at compile-time. These checks
need to be removed.

The rest of the PR is still useful, making all method flags available to
the analyzer, so a full revert isn't necessary/desirable.

This reopens #76938, which will need another solution.
2023-06-21 15:13:45 -04:00
jpcerrone
8ce8216d17 Fix errors destroying script with static variables
Fixes #78376
After #78138 'script_list' is now cleared in 'GDScriptLanguage::finish'
Because of that, we can safely remove the removal from that list that
happens on 'GDScript::~GDScript'.
2023-06-21 12:33:21 -03:00
今井きなみ
bf04c55175 Fix lambda parsing continuing on subsequent lines #73273 2023-06-21 12:56:57 +02:00
Yuri Sizov
f1e79e2581 Make container element type comparison safe 2023-06-20 17:04:57 +02:00
Rémi Verschelde
248e5245e4
Merge pull request #73540 from mashumafi/fix-typed-array-add
Fix: Typed arrays aren't working with +
2023-06-20 15:12:39 +02:00
Danil Alexeev
a0577eb23b
GDScript: Fix _get_script_name() function collision for SCU build 2023-06-20 12:03:54 +03:00
Danil Alexeev
5d3f5e8cf2
GDScript: Fix crash in disassembler 2023-06-19 23:50:33 +03:00
Rémi Verschelde
c211c22abc
Merge pull request #78389 from rune-scape/rune-match-stringnames
GDScript: Strings and StringNames match
2023-06-19 21:18:42 +02:00
Rémi Verschelde
ae00187b58
Merge pull request #77129 from dalexeev/gds-fix-static-var-bugs-part-1
GDScript: Fix some bugs with static variables and functions
2023-06-19 21:18:18 +02:00
Rémi Verschelde
5f9175f969
Merge pull request #76954 from Rindbee/return-null-on-fail-load-script
Returns null and does not cache when the source code of the script fails to load
2023-06-19 21:17:47 +02:00
Rémi Verschelde
cfae05094a
Merge pull request #72824 from dalexeev/gds-invalid-char-error
GDScript: Fix invalid character error message
2023-06-19 15:39:58 +02:00
Ben
0803467334
Fix "Go to definition" for GDScript type hints
Fixes #68475.
2023-06-19 15:29:25 +02:00