Commit Graph

537 Commits

Author SHA1 Message Date
Paulb23
fcc4a3f96c 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
dd654ed572 Expose Syntax highlighter for editor plugins 2020-07-11 15:40:00 +01:00
Paulb23
04283a1668 Convert syntax highlighters into a resource 2020-07-11 15:26:58 +01:00
Marcel Admiraal
894bc9aa5a Add override keywords. 2020-07-10 13:56:54 +01:00
Rémi Verschelde
6e6fe53c1d Merge pull request #39622 from akien-mga/docdata-skip-empty-scripting-langs-builtins
DocData: Skip language-specific ClassDoc without methods/constants
2020-06-17 15:52:15 +02:00
Rémi Verschelde
a2a30f3c10 DocData: Skip language-specific ClassDoc without methods/constants
Removes the useless `@C#`, `@NativeScript` and `@VisualScript` entries.
2020-06-17 15:09:07 +02:00
Rémi Verschelde
6bc7579af5 Merge pull request #39041 from swarnimarun/patch-1
Fix crashing of VisualScript due to function change
2020-06-04 11:55:12 +02:00
Rémi Verschelde
2ae3f92cd6 Use translated docs in PropertySelector
And do the dedent and stripping for both translated and
non-translated strings for consistency, and so that we
don't need to do it at the call site.
2020-05-28 12:02:12 +02:00
Swarnim Arun
195f50b359 Fix crashing of VisualScript due to...
Attempting to move the function node to another function whose data connection is a dependency of the node the specific node being moved to a different function during changes to sequence connections.
By skipping, if the from_node is a function_node during the data connection dependencies scan.
Should fix #37991
2020-05-25 19:49:57 +05:30
Rémi Verschelde
61c72a6a78 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
05754f241e 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
7916419087 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
1c422ae529 Merge pull request #38736 from akien-mga/modernize-all-the-things
C++: Apply some `modernize-*` checks from clang-tidy (nullptr, bool literals, void args)
2020-05-14 14:50:17 +02:00
Rémi Verschelde
bfe576a1d2 Enforce use of bool literals instead of integers
Using clang-tidy's `modernize-use-bool-literals`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-bool-literals.html
2020-05-14 13:45:01 +02:00
Rémi Verschelde
c34ff742a8 Style: clang-format: Disable AllowShortCaseLabelsOnASingleLine
Part of #33027.
2020-05-10 13:13:54 +02:00
Rémi Verschelde
950027c9fa Rename InputFilter back to Input
It changed name as part of the DisplayServer and input refactoring
in #37317, with the rationale that input no longer goes through the
main loop, so the previous Input singleton now only does filtering.

But the gains in consistency are quite limited in the renaming, and
it breaks compatibility for all scripts and tutorials that access
the Input singleton via the scripting language. A temporary option
was suggested to keep the scripting singleton named `Input` even if
its type is `InputFilter`, but that adds inconsistency and breaks C#.

Fixes godotengine/godot-proposals#639.
Fixes #37319.
Fixes #37690.
2020-04-28 15:19:49 +02:00
Juan Linietsky
3dcee28bb2 Add ability to bind typed arrays to script API
Note: Only replaced 2 instances to test, Node.get_children and TileMap.get_used_cells
Note: Will do a mass replace on later PRs of whathever I can find, but probably need
a tool to grep through doc.
Warning: Mono will break, needs to be fixed (and so do TypeScript and NativeScript, need to ask respective maintainers)
2020-04-21 10:15:40 +02:00
Rémi Verschelde
f26b6c0f9e Merge pull request #37890 from nicomitchell/FixPosModTypeReturn
Change MATH_POSMOD return type back to INT
2020-04-15 00:05:35 +02:00
Nico Mitchell
9ea27c8c0c Change MATH_POSMOD return type back to INT 2020-04-14 17:23:35 -04:00
Rémi Verschelde
27d836488e Merge pull request #37851 from nicomitchell/FixMathRoundTypeReturn
Change visual script round function output type to float
2020-04-13 21:39:03 +02:00
Nico Mitchell
e1b48823b0 Change round return type to float 2020-04-13 13:02:40 -04:00
Rémi Verschelde
ca6c1f6fa9 Merge pull request #37542 from swarnimarun/patch_vs_02
Update visualscript graph nodes on visual script variable edit
2020-04-12 11:30:15 +02:00
Rémi Verschelde
e2677b8551 Merge pull request #37530 from swarnimarun/patch_vs_01
VisualScript support for newly added Variant types
2020-04-10 12:06:38 +02:00
Tomasz Chabora
db22f4548b Remove Node.get_position_in_parent() 2020-04-06 01:19:20 +02:00
Swarnim Arun
e0c774c92c Update vsnodes on editing vs variables 2020-04-03 15:05:51 +05:30
Swarnim Arun
0e1531ff29 VisualScript styling for new Variant Types 2020-04-03 05:07:35 +05:30
Swarnim Arun
5c69913666 Deconstruct VSNodes for new Variant types 2020-04-02 23:24:18 +05:30
Rémi Verschelde
e2f0f77322 Merge pull request #37338 from lupoDharkael/nullprt
Replace NULL with nullptr
2020-04-02 14:52:36 +02:00
lupoDharkael
93b9053b54 Replace NULL with nullptr 2020-04-02 13:38:00 +02:00
Rémi Verschelde
4927bac811 Merge pull request #37421 from akien-mga/python-format-black
SCons: Format buildsystem files with psf/black
2020-03-30 15:07:00 +02:00
Rémi Verschelde
3015876064 SCons: Format buildsystem files with psf/black
Configured for a max line length of 120 characters.

psf/black is very opinionated and purposely doesn't leave much room for
configuration. The output is mostly OK so that should be fine for us,
but some things worth noting:

- Manually wrapped strings will be reflowed, so by using a line length
  of 120 for the sake of preserving readability for our long command
  calls, it also means that some manually wrapped strings are back on
  the same line and should be manually merged again.

- Code generators using string concatenation extensively look awful,
  since black puts each operand on a single line. We need to refactor
  these generators to use more pythonic string formatting, for which
  many options are available (`%`, `format` or f-strings).

- CI checks and a pre-commit hook will be added to ensure that future
  buildsystem changes are well-formatted.
2020-03-30 09:05:53 +02:00
Rémi Verschelde
39122c8671 Merge pull request #37317 from akien-mga/display-server-rebased
Separate DisplayServer from OS and add multiple windows support
2020-03-26 17:23:11 +01:00
Juan Linietsky
1d3f44a694 Popups are now windows also (broken!) 2020-03-26 15:49:42 +01:00
Juan Linietsky
0e883a5e21 Working multiple window support, including editor 2020-03-26 15:49:40 +01:00
Juan Linietsky
2ddf49ff5e Refactored input, goes all via windows now.
Also renamed Input to InputFilter because all it does is filter events.
2020-03-26 15:49:39 +01:00
Juan Linietsky
57ca02499b Added a Window node, and made it the scene root.
Still a lot of work to do.
2020-03-26 15:49:38 +01:00
Juan Linietsky
30c7dc7b32 Refactored Input, create DisplayServer and DisplayServerX11 2020-03-26 15:49:32 +01:00
Rajat Goswami
c94fc4f330 Adding missing include guards to header files identified by LGTM.
This addresses the issue godotengine/godot#37143
2020-03-23 04:52:36 -04:00
Rémi Verschelde
e43b111923 Style: Set clang-format Standard to Cpp11
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-17 07:36:24 +01:00
Rémi Verschelde
283f8c48d8 Merge pull request #36723 from AndreaCatania/fix-rset
Fixed rset method for gdscript and visual script
2020-03-13 10:18:56 +01:00
Rémi Verschelde
c3c7343716 Merge pull request #36987 from luzpaz/typos
Fix various typos
2020-03-12 10:25:48 +01:00
luz.paz
126cae162e Fix various typos
Found via `codespell`
2020-03-11 13:59:18 -04:00
Rémi Verschelde
d5b4943ec9 Merge pull request #36751 from Faless/debugger/threads_and_profilers
ScriptDebugger refactor, threading, profilers.
2020-03-09 19:08:07 +01:00
Andrii Doroshenko (Xrayez)
1a11dbf677 Fix missing module editor icons
Module icons need to be renamed to PascalCase as well
for them to be registered in 4.0.

See godotengine/godot#36513.
2020-03-08 19:32:25 +02:00
Fabio Alessandrelli
e317586132 Refactor ScriptDebugger.
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-03-08 12:36:39 +01:00
Andrea Catania
ecbb2fef9e Fixed rset method for gdscript and visual script 2020-03-02 10:22:07 +01:00
Rémi Verschelde
f03240e365 Merge pull request #18020 from bruvzg/input_fix_non_latin_and_add_hw_scancodes
Fix non-latin layout scancodes on Linux, adds access to physical scancodes.
2020-03-01 23:00:42 +01:00
Rémi Verschelde
2e173556e8 Merge pull request #36426 from akien-mga/calling-all-stations
Signals: Port connect calls to use callable_mp
2020-02-28 17:19:08 +01:00
Rémi Verschelde
67b2e452d2 Signals: Port more uses of connect_compat
Those were problematic as they call a method of their parent class,
but callable_mp does not allow that unless it's public.

To solve it, we declare a local class that calls the parent class'
method, which now needs to be protected to be accessible in the
derived class.
2020-02-28 14:24:09 +01:00
Rémi Verschelde
006d63d0a8 Signals: Manually port most of remaining connect_compat uses
It's tedious work...

Some can't be ported as they depend on private or protected methods
of different classes, which is not supported by callable_mp (even if
it's a class inherited by the current one).
2020-02-28 14:24:09 +01:00