feat: modules moved and engine moved to submodule

This commit is contained in:
Jan van der Weide 2025-04-12 18:40:44 +02:00
parent dfb5e645cd
commit c33d2130cc
5136 changed files with 225275 additions and 64485 deletions

View file

@ -28,8 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef TEST_CODE_EDIT_H
#define TEST_CODE_EDIT_H
#pragma once
#include "scene/gui/code_edit.h"
@ -906,8 +905,7 @@ TEST_CASE("[SceneTree][CodeEdit] delimiters") {
CHECK(code_edit->get_string_delimiters().size() == 2);
/* Set should override existing, and test multiline */
TypedArray<String> delimiters;
delimiters.push_back("^^ ^^");
TypedArray<String> delimiters = { "^^ ^^" };
code_edit->set_string_delimiters(delimiters);
CHECK_FALSE(code_edit->has_string_delimiter("\""));
@ -972,8 +970,7 @@ TEST_CASE("[SceneTree][CodeEdit] delimiters") {
CHECK(code_edit->get_comment_delimiters().size() == 2);
/* Set should override existing, and test multiline. */
TypedArray<String> delimiters;
delimiters.push_back("^^ ^^");
TypedArray<String> delimiters = { "^^ ^^" };
code_edit->set_comment_delimiters(delimiters);
CHECK_FALSE(code_edit->has_comment_delimiter("\""));
@ -1771,10 +1768,7 @@ TEST_CASE("[SceneTree][CodeEdit] indent") {
CHECK(code_edit->is_indent_using_spaces());
/* Only the first char is registered. */
TypedArray<String> auto_indent_prefixes;
auto_indent_prefixes.push_back("::");
auto_indent_prefixes.push_back("s");
auto_indent_prefixes.push_back("1");
TypedArray<String> auto_indent_prefixes = { "::", "s", "1" };
code_edit->set_auto_indent_prefixes(auto_indent_prefixes);
auto_indent_prefixes = code_edit->get_auto_indent_prefixes();
@ -3275,6 +3269,47 @@ TEST_CASE("[SceneTree][CodeEdit] folding") {
CHECK(code_edit->get_next_visible_line_offset_from(1, 1) == 4);
}
SUBCASE("[CodeEdit] folding comments including and/or adjacent to code regions") {
code_edit->add_comment_delimiter("#", "", true);
// Single line comment directly above a code region tag is not foldable.
code_edit->set_text("#line0\n#region a\nnothing\n#line3\n#endregion");
CHECK_FALSE(code_edit->can_fold_line(0));
CHECK_FALSE(code_edit->can_fold_line(3));
// Comment blocks.
// Foldable even when directly below a code region start tag.
code_edit->set_text("#line0\n#line1\n#region a\n#line3\n#line4\nnothing\n#endregion");
CHECK(code_edit->can_fold_line(3));
// Doesn't fold beyond region start tag.
code_edit->fold_line(0);
CHECK(code_edit->is_line_folded(0));
CHECK_EQ(code_edit->get_visible_line_count_in_range(0, 1), 1);
CHECK_EQ(code_edit->get_visible_line_count_in_range(2, 2), 1);
// Foldable even when directly below a code region end tag.
code_edit->set_text("#region a\nnothing\n#line2\n#line3\n#endregion\n#line5\n#line6");
CHECK(code_edit->can_fold_line(5));
// Doesn't fold beyond region end tag.
code_edit->fold_line(2);
CHECK(code_edit->is_line_folded(2));
CHECK_EQ(code_edit->get_visible_line_count_in_range(2, 3), 1);
CHECK_EQ(code_edit->get_visible_line_count_in_range(4, 4), 1);
code_edit->add_comment_delimiter("/*", "*/", false);
// Multiline comments.
// Folds a region tag inside it.
code_edit->set_text("/*\nnothing\n#region a\n*/\n#endregion");
CHECK(code_edit->can_fold_line(0));
code_edit->fold_line(0);
CHECK(code_edit->is_line_folded(0));
CHECK_EQ(code_edit->get_visible_line_count_in_range(0, 3), 1);
CHECK_EQ(code_edit->get_visible_line_count_in_range(4, 4), 1);
}
SUBCASE("[CodeEdit] folding carets") {
// Folding a line moves all carets that would be hidden.
code_edit->set_text("test\n\tline1\n\t\tline 2\n");
@ -3937,11 +3972,7 @@ TEST_CASE("[SceneTree][CodeEdit] completion") {
CHECK(code_edit->is_code_completion_enabled());
/* Set prefixes, single char only, disallow empty. */
TypedArray<String> completion_prefixes;
completion_prefixes.push_back("");
completion_prefixes.push_back(".");
completion_prefixes.push_back(".");
completion_prefixes.push_back(",,");
TypedArray<String> completion_prefixes = { "", ".", ".", ",," };
ERR_PRINT_OFF;
code_edit->set_code_completion_prefixes(completion_prefixes);
@ -3959,8 +3990,7 @@ TEST_CASE("[SceneTree][CodeEdit] completion") {
SIGNAL_WATCH(code_edit, "code_completion_requested");
code_edit->set_code_completion_enabled(true);
Array signal_args;
signal_args.push_back(Array());
Array signal_args = { {} };
/* Force request. */
code_edit->request_code_completion();
@ -3973,8 +4003,7 @@ TEST_CASE("[SceneTree][CodeEdit] completion") {
SIGNAL_CHECK("code_completion_requested", signal_args);
/* Insert prefix. */
TypedArray<String> completion_prefixes;
completion_prefixes.push_back(".");
TypedArray<String> completion_prefixes = { "." };
code_edit->set_code_completion_prefixes(completion_prefixes);
code_edit->insert_text_at_caret(".");
@ -4119,10 +4148,10 @@ TEST_CASE("[SceneTree][CodeEdit] completion") {
Point2 caret_pos = code_edit->get_caret_draw_pos();
caret_pos.y += code_edit->get_line_height();
SEND_GUI_MOUSE_BUTTON_EVENT(caret_pos, MouseButton::WHEEL_DOWN, 0, Key::NONE);
SEND_GUI_MOUSE_BUTTON_EVENT(caret_pos, MouseButton::WHEEL_DOWN, MouseButtonMask::NONE, Key::NONE);
CHECK(code_edit->get_code_completion_selected_index() == 1);
SEND_GUI_MOUSE_BUTTON_EVENT(caret_pos, MouseButton::WHEEL_UP, 0, Key::NONE);
SEND_GUI_MOUSE_BUTTON_EVENT(caret_pos, MouseButton::WHEEL_UP, MouseButtonMask::NONE, Key::NONE);
CHECK(code_edit->get_code_completion_selected_index() == 0);
/* Single click selects. */
@ -4492,7 +4521,8 @@ TEST_CASE("[SceneTree][CodeEdit] symbol lookup") {
Point2 caret_pos = code_edit->get_caret_draw_pos();
caret_pos.x += 60;
SEND_GUI_MOUSE_BUTTON_EVENT(caret_pos, MouseButton::NONE, 0, Key::NONE);
SEND_GUI_MOUSE_MOTION_EVENT(caret_pos, MouseButtonMask::NONE, Key::NONE);
CHECK(code_edit->get_text_for_symbol_lookup() == "this is s" + String::chr(0xFFFF) + "ome text");
SIGNAL_WATCH(code_edit, "symbol_validate");
@ -5675,5 +5705,3 @@ func _ready():
}
} // namespace TestCodeEdit
#endif // TEST_CODE_EDIT_H