0ddd4097a6
Fix completion for built-in load function
2020-11-10 12:00:08 +01:00
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
221a2a1742
Refactored variant constructor logic
2020-11-09 08:54:43 -03:00
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
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
80b8eff6aa
[Complex Test Layouts] Change String to use UTF-32 encoding on all platforms.
2020-09-03 19:56:24 +03:00
745ca3059d
Change GDScript compiler to use codegen abstraction
2020-09-01 14:36:22 -03:00
edb4caf24e
GDScript: Allow "extends" to be used inside inner class
2020-09-01 09:26:27 -03:00
34dc689ad4
GDScript: Allow "self" to be used in class level
2020-09-01 09:26:27 -03:00
5033d5c71c
GDScript: Fix crash when parsing properties
2020-08-26 16:08:19 -03:00
8ccf88a206
GDScript: Fix issues when deriving from other scripts
2020-08-26 14:50:27 -03:00
846856728b
GDScript: Show error when function return type is missing
2020-08-19 14:09:45 -03:00
15b16ec0ce
GDScript: Fix signal parameters not respecting commas
2020-08-19 11:32:48 -03:00
cd3f51c67c
GDScript: Check duplicate keys in dictionaries and enums
2020-08-19 11:14:16 -03:00
f9ad0b30fa
GDScript: Allow preload() to be used with constant expressions
2020-08-19 10:45:00 -03:00
a52e457ada
GDScript: Allow keywords to be used in $ notation
2020-08-19 10:19:05 -03:00
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
0f9923e67f
GDScript: Allow empty files to be valid scripts
2020-08-17 21:32:49 -03:00
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
d06ce2f11e
GDScript: Fix editor crash when writing @tool annotation
2020-08-17 21:02:49 -03:00
9413446b2d
Merge pull request #41104 from vnen/gdscript-assignment-tidy
...
Tidy up assignment operator check
2020-08-12 08:54:48 -03:00
cf05486d8e
Merge pull request #41055 from snichols/null-callee-fix
...
Fix crash with null callee
2020-08-11 15:15:43 +02:00
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
fbd07bf3bf
Adding error message for empty grouping expression
2020-08-05 14:42:33 -05:00
8a13be50ab
Fixing null callee crash.
2020-08-05 14:41:46 -05:00
ee973f5b90
[GDScript] Add static HashMap cleanup.
2020-08-01 22:08:12 +03:00
a0f54cb95e
Wrap up GDScript 2.0 base implementation
2020-07-22 11:07:51 -03:00
aa09b4f85d
Reintroduce code completion
2020-07-20 11:38:40 -03:00
b6a2628c48
Reenable GDScript LSP server
2020-07-20 11:38:40 -03:00
dadfcd8aba
Added support for enums to be used as types in GDScript
2020-07-20 11:38:40 -03:00
95c0909290
Add warning checks in GDScript analyzer
...
Reenable checking those when validating code.
2020-07-20 11:38:40 -03:00
9a76ab8b6a
Add new GDScript type checker
2020-07-20 11:38:40 -03:00
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
886732ac2b
Add support for properties
2020-07-20 11:38:39 -03:00
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
023b3f2786
Fix: editor crash on super constructor called
...
Fix : #39909
2020-07-04 16:06:07 +05:30
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
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
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
fc89c5c76d
Debugger stepping to incorrect line fix
...
Fix : #39296
2020-06-05 12:15:37 +05:30
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
e153772de2
predefined var check for for loop counter
2020-06-04 10:37:22 +05:30
54835a5302
shodowed var warning for for loop counter
...
Fix : #39268
2020-06-04 10:28:09 +05:30
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
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
c076a2b7e9
break, continue outside of a loop, match statement handled
2020-05-15 03:16:50 +05:30
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
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
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
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