summaryrefslogtreecommitdiff
path: root/modules
AgeCommit message (Collapse)Author
2020-05-25Merge pull request #39015 from ↵Rémi Verschelde
ThakeeNathees/dict-key-autocomplete-regression-fix regression: dictionary key no autocomplete fix
2020-05-25Add `custom_modules` build option to compile external user modulesAndrii Doroshenko (Xrayez)
This patch adds ability to include external, user-defined C++ modules to be compiled as part of Godot via `custom_modules` build option which can be passed to `scons`. ``` scons platform=x11 tools=yes custom_modules="../project/modules" ``` Features: - detects all available modules under `custom_modules` directory the same way as it does for built-in modules (not recursive); - works with both relative and absolute paths on the filesystem; - multiple search paths can be specified as a comma-separated list. Module custom documentation and editor icons collection and generation process is adapted to work with absolute paths needed by such modules. Also fixed doctool bug mixing absolute and relative paths respectively. Implementation details: - `env.module_list` is a dictionary now, which holds both module name as key and either a relative or absolute path to a module as a value. - `methods.detect_modules` is run twice: once for built-in modules, and second for external modules, all combined later. - `methods.detect_modules` was not doing what it says on the tin. It is split into `detect_modules` which collects a list of available modules and `write_modules` which generates `register_types` sources for each. - whether a module is built-in or external is distinguished by relative or absolute paths respectively. `custom_modules` scons converter ensures that the path is absolute even if relative path is supplied, including expanding user paths and symbolic links. - treats the parent directory as if it was Godot's base directory, so that there's no need to change include paths in cases where custom modules are included as dependencies in other modules.
2020-05-24regression: dictionary key no autocomplete fixThakee Nathees
Fix: #38998
2020-05-22Merge pull request #38962 from neikeq/4.0-scons-option-build-cilRémi Verschelde
Add SCons option to not build C# solutions
2020-05-22Add SCons option to not build C# solutionsIgnacio Etcheverry
2020-05-22Merge pull request #38366 from akien-mga/xatlas-470576dRémi Verschelde
xatlas: Sync with upstream 470576d
2020-05-22Merge pull request #38943 from neikeq/yakamashiRémi Verschelde
Mono/C#: Don't try to load project assembly in project manager
2020-05-22Mono/C#: Don't try to load project assembly in project managerIgnacio Etcheverry
This was causing an error message when launching the manager, because there is no project assembly to load.
2020-05-22Mono/C#: Fix values not updated in remote inspectorIgnacio Etcheverry
2020-05-21Merge pull request #33689 from jbuck3/signal-errorRémi Verschelde
Trigger an error when trying to define a preexisting signal in GDScript
2020-05-21Merge pull request #35900 from yamgent/unreachableRémi Verschelde
Fix false positive "Unreachable code" warning for loops
2020-05-20xatlas: Sync with upstream 470576dRémi Verschelde
2020-05-19Merge pull request #38863 from neikeq/csharp-no-false-error-objtype-reloadRémi Verschelde
Mono/C#: Remove script load error about not a Godot.Object
2020-05-19Mono/C#: Remove script load error about not a Godot.ObjectIgnacio Etcheverry
Any C# file can be loaded as script and at load time we don't yet know if it's actually meant to be used as a script. As such, such an check can result in a lot of false errors. If the file is really meant to be used as a script, an error would be printed later when attempting to instantiate it any way.
2020-05-19Fix too eager GDScriptFunctionState stack cleanupPedro J. Estébanez
2020-05-19Style: Fix unnecessary semicolons that confused clang-formatRémi Verschelde
2020-05-18Merge pull request #38826 from bruvzg/gdnative_core_typesRémi Verschelde
Add new (and rename changed) core types to GDNative API.
2020-05-18Merge pull request #38723 from neikeq/initial-classdb-testRémi Verschelde
Added tests for ClassDB
2020-05-18GDNative add new core types.bruvzg
2020-05-18GLSL: Change shader type specifier from [vertex] to #[vertex]Rémi Verschelde
The added `#` prevents clang-format from misinterpreting the meaning of this statement and thus messing up the formatting of the next lines up until the first `layout` statement. Similarly, a semicolon is now enforced on `versions` defines to prevent clang-format from messing up formatting and putting them all on a single line. Note: In its current state the code will ignore chained statements on a single line separated by a semicolon. Also removed some extraneous lines missed in previous style changes or added by mistake with said changes (e.g. after uniform definitions that clang-format messes up somewhat too, but we live with it).
2020-05-16Added tests for ClassDBIgnacio Etcheverry
2020-05-16gdscript_parser: Fix "unreachable code" false positive for loopsTan Wang Leng
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-16Fix GDNative wrapper type sizes (RID, Variant, Packed*Array), add size ↵bruvzg
checking static asserts.
2020-05-16websocket: Fix crash at exit when not running the editorIgnacio Etcheverry
EditorDebuggerServer::register_protocol_handler must not be called before editor initialization. Otherwise, if the editor is never initialized, the added StringName will not be released until static destructors are called (instead of being release during editor deinitialization).
2020-05-15Fix incorrect capabilities notification in LSPOliver Frank
(cherry picked from commit 2173d041af711c111d60d1fc1f45f96f4f8c7271)
2020-05-15Improve jsonrpc error reportingOliver Frank
(cherry picked from commit dac8b7b6f4fec0136a3dc95afae0aa8aa8ce9fd9)
2020-05-15break, continue outside of a loop, match statement handledThakee Nathees
2020-05-14Merge pull request #38738 from akien-mga/cause-we-never-go-out-of-styleRémi Verschelde
Style: Remove new line at block start, enforce line between functions, enforce braces in if and loop blocks
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-14Merge pull request #38610 from ThakeeNathees/infer-type-null-errorRémi Verschelde
set parser error when infer type is null
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-14Style: Fix missing/invalid copyright headersRémi Verschelde
2020-05-14Merge pull request #38611 from ThakeeNathees/shadow-var-warning-bug-fixRémi Verschelde
shadowed var warning in nested block bug fix
2020-05-14Remove redundant void argument listsRémi Verschelde
Using clang-tidy's `modernize-redundant-void-arg`. https://clang.llvm.org/extra/clang-tidy/checks/modernize-redundant-void-arg.html
2020-05-14Enforce use of bool literals instead of integersRémi Verschelde
Using clang-tidy's `modernize-use-bool-literals`. https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-bool-literals.html
2020-05-14Modernize remaining uses of 0/NULL instead of nullptr (C++11)Rémi Verschelde
Using clang-tidy's `modernize-use-nullptr`. https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
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-13set parser error when infer type is nullThakee Nathees
2020-05-13Merge pull request #38609 from ↵Rémi Verschelde
ThakeeNathees/range-crash-with-non-numeric-const-fix range() with non-numeric const argument crash fix
2020-05-13Merge pull request #38708 from ThakeeNathees/init-assign-type-parser-bug-fixRémi Verschelde
regression: var declaration type info parser bug fix
2020-05-13regression: static func can't access const fixThakee Nathees
2020-05-13regression: var declaration type info parser bug fixThakee Nathees
2020-05-12Add WebSocket debugger, use it for Javascript.Fabio Alessandrelli
2020-05-12Remove WebSocket defaults from project settings.Fabio Alessandrelli
Can be manually set, let's not pollute them further. Should also be done for WebRTC.
2020-05-11Merge pull request #38672 from madmiraal/fix-physicsw-warningRémi Verschelde
Fix 'physicsw' may be used uninitialized warning in csg_shape.cpp
2020-05-11thirdparty: Cleanup after #38386, document provenance and copyrightRémi Verschelde
Also renamed `delaunay.h` to `delaunay_2d.h` to match the class name.
2020-05-11Merge pull request #38386 from reduz/new-lightmapperRémi Verschelde
New GPU lightmapper
2020-05-11Fix 'physicsw' may be used uninitialized warning in csg_shape.cppMarcel Admiraal
2020-05-11Merge pull request #38587 from Faless/js/improvementsRémi Verschelde
DisplayServerJavaScript, improvements to HTML5 build (still dummy renderer).