This change avoids the editor to freeze for several seconds when a
project with lots of scripts is loaded in the editor.
It focuses on a few heavy operations previously executed on all
previously loaded scripts:
- Initialize script resource (script validation/parsing) only
on focus
- ScriptTextEditor: code editor and edit menu are added to the
scene only on focus
- Add to recent scripts only when opening new scripts
(load/save scene metadata)
Ensures that when the `Selection Only` option is selected, the Replace
tool replaces occurrences of the search phrase only within the selected
region, and in order of occurrence.
(cherry picked from commit 2be3a33cc3)
Reduce repeated iteration through the full text
when counting the number of occurrences of whole
words while searching a file in the editor.
(cherry picked from commit 2433287871)
Happy new year to the wonderful Godot community!
We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.
Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
Also, match multi-line delete behavior in script with single line:
If there are four lines: A, B, C, D.
Before the change:
Delete C: Cursor lands on D
Delete B and C: Cursor lands on A
After the change:
Delete C: Cursor lands on D
Delete B and C: Cursor lands on D