summaryrefslogtreecommitdiff
path: root/modules/gdscript/gdscript_editor.cpp
AgeCommit message (Collapse)Author
2021-04-05Fix infinite loop when guessing argument type from parent classJulien Nguyen
2021-04-05Style: Apply clang-tidy's `modernize-use-nullptr`Rémi Verschelde
2021-03-30Move GDSript annotation application after type-checkingGeorge Marques
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-01[script editor] Fix two special cases not being checked in code completionAndy Maloney
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-01-11Merge pull request #43980 from gvekan/fix-missing-function-hintsRémi Verschelde
Fix missing function hints
2021-01-01Update copyright statements to 2021Rémi Verschelde
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 🎆
2020-12-28Rename empty() to is_empty()Marcel Admiraal
2020-12-15Merge pull request #43890 from vnen/gdscript-builtin-functions-refactorRémi Verschelde
GDScript: Refactor builtin functions
2020-12-03Add bracket or space to some keyword completionsGustav
2020-12-02Refactor DocData into core and editor (DocTools) partsThakee Nathees
2020-11-30Fix missing function hintsGustav
2020-11-26GDScript: Refactor builtin functionsGeorge Marques
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-10Fix completion for built-in load functionGustav
2020-11-09Refactored variant constructor logicreduz
2020-11-07Reorganized core/ directory, it was too fatty alreadyreduz
-Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
2020-10-23Shows ColorRect in Color constants autocompletionYuri Roubinsky
2020-08-26GDScript: Add recursion depth limit for completionGeorge Marques
To avoid crashes when there's a dependency loop.
2020-08-26GDScript: Fix crash when completing code with signalsGeorge Marques
2020-08-13Merge pull request #41224 from ThakeeNathees/fix-ctrl+click-not-workingGeorge Marques
Fix: ctrl + click not working on script member
2020-08-13Fix: ctrl + click not workingThakee Nathees
2020-08-05Fixing null callee crash.Stephen Nichols
2020-07-22Wrap up GDScript 2.0 base implementationGeorge Marques
2020-07-20Reintroduce code completionGeorge Marques
2020-07-20Add warning checks in GDScript analyzerGeorge Marques
Reenable checking those when validating code.
2020-07-20Add new GDScript type checkerGeorge Marques
2020-07-20New GDScript tokenizer and parserGeorge Marques
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-06-16Merge pull request #39315 from ThakeeNathees/ctrl-click-fix-for-subclassesRémi Verschelde
Fix: Ctrl + Click not working for subclasses
2020-06-05Fix: Ctrl + Click not working for subclassesThakee Nathees
2020-05-24regression: dictionary key no autocomplete fixThakee Nathees
Fix: #38998
2020-05-14Style: Enforce braces around if blocks and loopsRémi Verschelde
Using clang-tidy's `readability-braces-around-statements`. https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14Style: Enforce separation line between function definitionsRémi Verschelde
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-14Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde
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-14Port member initialization from constructor to declaration (C++11)Rémi Verschelde
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-10Style: clang-format: Disable AllowShortCaseLabelsOnASingleLineRémi Verschelde
Part of #33027.
2020-05-05Merge pull request #37293 from Janglee123/ctrl-click-improvementsRémi Verschelde
Improved go-to definition (Ctrl + Click)
2020-05-05Improved go-to definition (Ctrl + Click)janglee
Co-Authored-By: Bojidar Marinov <bojidar.marinov.bg@gmail.com>
2020-04-24Merge pull request #37172 from theoway/autoCompletionBugRémi Verschelde
Fixed the auto-completion bug in gdscript_editor
2020-04-21Merge pull request #37954 from ThakeeNathees/autocomplete-indexing-native-typesRémi Verschelde
Autocompleting with indexing for builtin types added
2020-04-20Fix handling of PROPERTY_USAGE_SUBGROUP in DocData and editorRémi Verschelde
Subgroups were added in #37678 but not properly handled everywhere where PROPERTY_USAGE_GROUP is.
2020-04-17autocompleting with indexing for native types addedThakee Nathees
Fix: #37768
2020-04-16Fixed the bool _static logic Umang Kalra
2020-04-13autocomplete for disconnect, is_connected implementedThakee Nathees
2020-04-02Replace NULL with nullptrlupoDharkael
2020-03-31Add missing docs for assert message in GDScriptThomas ten Cate
Seems like this was overlooked in PR #31142. See also issue #17082.
2020-03-17Style: Set clang-format Standard to Cpp11Rémi Verschelde
For us, it practically only changes the fact that `A<A<int>>` is now used instead of the C++03 compatible `A<A<int> >`. Note: clang-format 10+ changed the `Standard` arguments to fully specified `c++11`, `c++14`, etc. versions, but we can't use `c++17` now if we want to preserve compatibility with clang-format 8 and 9. `Cpp11` is still supported as deprecated alias for `Latest`.
2020-03-08Refactor ScriptDebugger.Fabio Alessandrelli
EngineDebugger is the new interface to access the debugger. It tries to be as agnostic as possible on the data that various subsystems can expose. It allows 2 types of interactions: - Profilers: A subsystem can register a profiler, assigning it a unique name. That name can be used to activate the profiler or add data to it. The registered profiler can be composed of up to 3 functions: - Toggle: called when the profiler is activated/deactivated. - Add: called whenever data is added to the debugger (via `EngineDebugger::profiler_add_frame_data`) - Tick: called every frame (during idle), receives frame times. - Captures: (Only relevant in remote debugger for now) A subsystem can register a capture, assigning it a unique name. When receiving a message, the remote debugger will check if it starts with `[prefix]:` and call the associated capture with name `prefix`. Port MultiplayerAPI, Servers, Scripts, Visual, Performance to the new profiler system. Port SceneDebugger and RemoteDebugger to the new capture system. The LocalDebugger also uses the new profiler system for scripts profiling.
2020-02-26Fix autocomplete and GDScript Highlighting for typesnathanwfranke
Types include new integer types and others
2020-02-25Variant: Added 64-bit packed arrays, renamed Variant::REAL to FLOAT.Juan Linietsky
- Renames PackedIntArray to PackedInt32Array. - Renames PackedFloatArray to PackedFloat32Array. - Adds PackedInt64Array and PackedFloat64Array. - Renames Variant::REAL to Variant::FLOAT for consistency. Packed arrays are for storing large amount of data and creating stuff like meshes, buffers. textures, etc. Forcing them to be 64 is a huge waste of memory. That said, many users requested the ability to have 64 bits packed arrays for their games, so this is just an optional added type. For Variant, the float datatype is always 64 bits, and exposed as `float`. We still have `real_t` which is the datatype that can change from 32 to 64 bits depending on a compile flag (not entirely working right now, but that's the idea). It affects math related datatypes and code only. Neither Variant nor PackedArray make use of real_t, which is only intended for math precision, so the term is removed from there to keep only float.
2020-02-23Replace FALLTHROUGH macro by C++17 [[fallthrough]]Rémi Verschelde
This attribute is now part of the standard we target so we no longer need compiler-specific hacks. Also enables -Wimplicit-fallthrough for Clang now that we can properly support it. It's already on by default for GCC's -Wextra. Fixes new warnings raised by Clang's -Wimplicit-fallthrough.
2020-02-20Reworked signal connection system, added support for Callable and Signal ↵Juan Linietsky
objects and made them default.