Skip to content

Commit e9d4b25

Browse files
committed
Merge pull request godotengine#110942 from KoBeWi/the_what_array
Fix Script editor state types
2 parents fe9cdea + e68b171 commit e9d4b25

File tree

4 files changed

+26
-12
lines changed

4 files changed

+26
-12
lines changed

editor/gui/code_editor.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1466,23 +1466,23 @@ void CodeTextEditor::set_edit_state(const Variant &p_state) {
14661466
}
14671467

14681468
if (state.has("folded_lines")) {
1469-
Vector<int> folded_lines = state["folded_lines"];
1470-
for (int i = 0; i < folded_lines.size(); i++) {
1471-
text_editor->fold_line(folded_lines[i]);
1469+
const PackedInt32Array folded_lines = state["folded_lines"];
1470+
for (const int &line : folded_lines) {
1471+
text_editor->fold_line(line);
14721472
}
14731473
}
14741474

14751475
if (state.has("breakpoints")) {
1476-
Array breakpoints = state["breakpoints"];
1477-
for (int i = 0; i < breakpoints.size(); i++) {
1478-
text_editor->set_line_as_breakpoint(breakpoints[i], true);
1476+
const PackedInt32Array breakpoints = state["breakpoints"];
1477+
for (const int &line : breakpoints) {
1478+
text_editor->set_line_as_breakpoint(line, true);
14791479
}
14801480
}
14811481

14821482
if (state.has("bookmarks")) {
1483-
Array bookmarks = state["bookmarks"];
1484-
for (int i = 0; i < bookmarks.size(); i++) {
1485-
text_editor->set_line_as_bookmarked(bookmarks[i], true);
1483+
const PackedInt32Array bookmarks = state["bookmarks"];
1484+
for (const int &line : bookmarks) {
1485+
text_editor->set_line_as_bookmarked(line, true);
14861486
}
14871487
}
14881488

scene/gui/code_edit.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1871,7 +1871,7 @@ bool CodeEdit::is_line_folded(int p_line) const {
18711871
return p_line + 1 < get_line_count() && !_is_line_hidden(p_line) && _is_line_hidden(p_line + 1);
18721872
}
18731873

1874-
TypedArray<int> CodeEdit::get_folded_lines() const {
1874+
TypedArray<int> CodeEdit::get_folded_lines_bind() const {
18751875
TypedArray<int> folded_lines;
18761876
for (int i = 0; i < get_line_count(); i++) {
18771877
if (is_line_folded(i)) {
@@ -1881,6 +1881,16 @@ TypedArray<int> CodeEdit::get_folded_lines() const {
18811881
return folded_lines;
18821882
}
18831883

1884+
PackedInt32Array CodeEdit::get_folded_lines() const {
1885+
PackedInt32Array folded_lines;
1886+
for (int i = 0; i < get_line_count(); i++) {
1887+
if (is_line_folded(i)) {
1888+
folded_lines.push_back(i);
1889+
}
1890+
}
1891+
return folded_lines;
1892+
}
1893+
18841894
/* Code region */
18851895
void CodeEdit::create_code_region() {
18861896
// Abort if there is no selected text.
@@ -2809,7 +2819,7 @@ void CodeEdit::_bind_methods() {
28092819
ClassDB::bind_method(D_METHOD("toggle_foldable_lines_at_carets"), &CodeEdit::toggle_foldable_lines_at_carets);
28102820

28112821
ClassDB::bind_method(D_METHOD("is_line_folded", "line"), &CodeEdit::is_line_folded);
2812-
ClassDB::bind_method(D_METHOD("get_folded_lines"), &CodeEdit::get_folded_lines);
2822+
ClassDB::bind_method(D_METHOD("get_folded_lines"), &CodeEdit::get_folded_lines_bind);
28132823

28142824
/* Code region */
28152825
ClassDB::bind_method(D_METHOD("create_code_region"), &CodeEdit::create_code_region);

scene/gui/code_edit.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,8 @@ class CodeEdit : public TextEdit {
433433

434434
int get_folded_line_header(int p_line) const;
435435
bool is_line_folded(int p_line) const;
436-
TypedArray<int> get_folded_lines() const;
436+
TypedArray<int> get_folded_lines_bind() const;
437+
PackedInt32Array get_folded_lines() const;
437438

438439
/* Code region */
439440
void create_code_region();

tests/scene/test_code_edit.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2974,7 +2974,9 @@ TEST_CASE("[SceneTree][CodeEdit] folding") {
29742974

29752975
// Check metadata.
29762976
CHECK(code_edit->get_folded_lines().size() == 1);
2977+
CHECK(code_edit->get_folded_lines_bind().size() == 1);
29772978
CHECK((int)code_edit->get_folded_lines()[0] == 0);
2979+
CHECK((int)code_edit->get_folded_lines_bind()[0] == 0);
29782980

29792981
// Cannot unfold nested.
29802982
code_edit->unfold_line(1);
@@ -2990,6 +2992,7 @@ TEST_CASE("[SceneTree][CodeEdit] folding") {
29902992

29912993
// Check metadata.
29922994
CHECK(code_edit->get_folded_lines().size() == 0);
2995+
CHECK(code_edit->get_folded_lines_bind().size() == 0);
29932996

29942997
code_edit->fold_all_lines();
29952998
CHECK(code_edit->is_line_folded(0));

0 commit comments

Comments
 (0)