Commit Graph

385 Commits

Author SHA1 Message Date
5906d6de8e Fix line folding with multiple carets 2023-02-21 21:28:26 +01:00
b3c64675cc [macOS] Replace all Alt/Option+Letter/Number default shortcuts to avoid conflicts with special character input. 2023-02-20 22:02:47 +02:00
bdfb10fb98 Rework code editor multiline operations
Fix bugs if 2 selections were on same line.
Fix bugs when selection ended at new line.
Make carets stay in place after operation and on undo.

Affects: delete lines, move lines, toggle comments, bookmarks and breakpoints.
2023-02-12 20:53:49 +02:00
78ea4b2f0c Fix code editor's ColorPicker issue
ColorPicker now supports color constants.
Modify code comments.
2023-02-11 00:14:14 +01:00
b004f8180e GDScript: Allow constant expressions in annotations 2023-01-25 18:43:56 +03:00
80b9d9537c Fix script editor drag and drop 2023-01-22 17:07:55 +01:00
59ea36b87c Remove set_drag_forwarding_compat() 2023-01-14 15:16:51 +01:00
e6a4debede Change set_drag_forwarding() to use callables.
* This solution is much cleaner than the one in 3.x thanks to the use of callables.
* Works without issues in any language (no need to worry about camel or snake case).
* Editor code uses a compatibility function (too much work to redo).

Fixes #59899
2023-01-10 14:09:24 +01:00
d95794ec8a One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
94416e41c5 Fix various fringe issues with multi-carets and selections 2022-12-07 20:54:48 +01:00
c90d0bd84f Use forward-declarations in big editor classes 2022-11-29 09:59:43 +01:00
e791f4fce2 Double precision of String.split_floats 2022-11-20 12:29:50 +01:00
5947f22be9 Merge pull request #67578 from KoBeWi/GEDITOR
Unify usage of GLOBAL/EDITOR_GET
2022-10-31 13:15:58 +01:00
d499071e5b Set the shortcut context for the edit/search/goto menus to the ScriptEditor so that shortcuts continue to work when FindReplaceBar is focused. 2022-10-25 19:52:42 +10:00
8ebc8813d5 Merge pull request #67314 from anvilfolk/quote-fix
Fix single-quotes incorrectly escaped when dragging into script editor
2022-10-21 18:12:09 +02:00
e48c5daddf Unify usage of GLOBAL/EDITOR_GET 2022-10-18 19:01:48 +02:00
97bada99ee Fix single-quotes incorrectly escaped when dragging into script editor 2022-10-17 16:05:53 -04:00
af0ee8b0a0 Reorganize script editor menu 2022-10-14 18:41:01 +02:00
0103af1ddd Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
f5903215d0 Merge pull request #61902 from Paulb23/multi-caret
Add Multi-caret support to TextEdit
2022-10-06 08:56:34 +02:00
0cbe176ce6 Add multi caret support to Editor 2022-10-05 17:19:26 +01:00
121e1df55b Merge pull request #66300 from KoBeWi/📝🧭
Split script navigation state and edit state
2022-10-05 08:30:49 +02:00
72a7d874b4 Fix the flickering of the line gutter icon when saving 2022-10-03 19:19:28 +08:00
4c73e8ba1a Merge pull request #66632 from RedMser/script-override-gutter-docs-fix
Fix wrong docs opening in script override gutter
2022-09-30 09:58:30 +02:00
dc3990fea4 Fix wrong docs opening in script override gutter 2022-09-30 02:11:52 +02:00
ded10214bf Rename Indent Left/Right to Indent/Dedent 2022-09-29 14:42:46 +02:00
1e14795f75 Merge pull request #66382 from MewPurPur/replace-in-files-forever
Make Replace in Files always visible in Search
2022-09-26 15:51:01 +02:00
14435ebcee Split script navigation state and edit state 2022-09-25 23:06:39 +02:00
d456dce8af Merge pull request #65535 from RedMser/script-editor-inheritance-icon
Show override icon in script editor gutter
2022-09-25 17:08:45 +02:00
882a226d12 Make Replace in Files always visible in Search 2022-09-25 02:49:53 +02:00
7f7966e10a Fix checking if script is attached to any node belonging to scene 2022-09-21 15:46:30 +02:00
bdff928f6d Fix crash with drag and dropping nodes 2022-09-21 03:08:54 +02:00
a9b394d5bc Show method override icon in script editor gutter
Combines with the connection slot icon when both apply.
Can be clicked to jump to the method declaration (or documentation for
built-in classes).
2022-09-21 01:49:54 +02:00
6f4d233062 Fix key mapping changes when moving from macOS to other platform
Removes separate `Command` key (use `Meta` instead).
Adds an event flag to automatically remap `Command` <-> `Control` (cannot be set alongside `Control` or `Meta`).
2022-09-07 18:45:35 +02:00
841b4dfeeb Disable logic that triggers automatic focus gain as the Godot Editor is loaded
For the Godot Android Editor, this is an inconvenience as it causes the soft keyboard to show and block half of the view
2022-09-05 22:33:01 -07:00
ae349d8227 Merge pull request #64377 from Mickeon/rename-canvas-redraw
Rename `CanvasItem.update()` to `queue_redraw()`
2022-08-30 14:47:41 +02:00
d4555ef5fb Add String.to_{camel,pascal,snake}_case methods 2022-08-30 12:36:24 +03:00
10a56981dc Rename String plus_file to path_join 2022-08-29 19:38:13 -05:00
e31bb5ffeb Rename CanvasItem.update() to queue_redraw()
Affects a lot of classes. Very thoroughly checked signal connections and deferred calls to this method, add_do_method/add_undo_method calls, and so on.

Also renames the internal `_update_callback()` to `_redraw_callback()` for consistency.

Just a few comments have also been changed to say "redraw".

In CPUParticles2D, there was a private variable with the same name. It has been renamed to `do_redraw`.
2022-08-29 14:59:47 +02:00
fd6453c45e Revert "Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED"
This reverts commit 4b817a565c.

Fixes #64988.
Fixes #64997.

This caused several regressions (#64988, #64997,
https://github.com/godotengine/godot/issues/64997#issuecomment-1229970605)
which point at a flaw in the current logic:

- `Control::NOTIFICATION_ENTER_TREE` triggers a *deferred* notification with
  `NOTIFCATION_THEME_CHANGED` as introduced in #62845.
- Some classes use their `THEME_CHANGED` to cache theme items in
  member variables (e.g. `style_normal`, etc.), and use those member
  variables in `ENTER_TREE`, `READY`, `DRAW`, etc. Since the `THEME_CHANGE`
  notification is now deferred, they end up accessing invalid state and this
  can lead to not applying theme properly (e.g. for EditorHelp) or crashing
  (e.g. for EditorLog or CodeEdit).

So we need to go back to the drawing board and see if `THEME_CHANGED` can be
called earlier so that the previous logic still works?

Or can we refactor all engine code to make sure that:
- `ENTER_TREE` and similar do not depend on theme properties cached in member
  variables.
- Or `THEME_CHANGE` does trigger a general UI update to make sure that any
  bad theme handling in `ENTER_TREE` and co. gets fixed when `THEME_CHANGE`
  does arrive for the first time. But that means having a temporary invalid
  (and possibly still crashing) state, and doing some computations twice
  which might be heavy (e.g. `EditorHelp::_update_doc()`).
2022-08-29 11:11:29 +02:00
4b817a565c Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED 2022-08-27 11:52:29 -06:00
8be27dc59e Replace Array return types with TypedArray 2022-08-22 22:42:36 +02:00
d4433ae6d3 Remove Signal connect binds
Remove the optional argument p_binds from `Object::connect` since it was deprecated by Callable.bind().
Changed all uses of it to Callable.bind()
2022-07-29 16:26:13 +02:00
1b8652e86a Color Pickers Respect Settings
Updated editor_node with function that sets up color pickers throughout Godot to respect editor's settings.
2022-07-21 18:11:09 -04:00
8351d75b7f Merge pull request #63195 from Rindbee/fix-wrong-clear-edit-menu 2022-07-19 13:49:43 +02:00
8972dd8492 Fix incorrectly clearing edit menu
Delete only if `editor_enabled` is true, otherwise destructor may delete it repeatedly.
2022-07-19 19:09:27 +08:00
97dfbea6ad Rename Control PRESET_WIDE to PRESET_FULL_RECT 2022-07-18 20:08:11 -05:00
7d3ff927de Merge pull request #62075 from Vitika9/gsoc-colorpicker 2022-07-08 09:06:47 +02:00
0011d93c81 ColorPicker Refactor 2022-07-06 22:11:43 +05:30
a9098e6147 Add support for documenting built-in annotations 2022-07-04 20:21:39 +03:00