mirror of
https://github.com/godotengine/godot.git
synced 2026-01-03 18:11:19 +03:00
With auto_brace_complete enabled, selected text now gets wrapped by braces
This commit is contained in:
@@ -2786,6 +2786,52 @@ TEST_CASE("[SceneTree][CodeEdit] completion") {
|
||||
SEND_GUI_KEY_EVENT(code_edit, Key::APOSTROPHE);
|
||||
SEND_GUI_KEY_EVENT(code_edit, Key::QUOTEDBL);
|
||||
CHECK(code_edit->get_line(0) == "'\"'");
|
||||
|
||||
/* Wrap single line selection with brackets */
|
||||
code_edit->clear();
|
||||
code_edit->insert_text_at_caret("abc");
|
||||
code_edit->select_all();
|
||||
SEND_GUI_KEY_EVENT(code_edit, Key::BRACKETLEFT);
|
||||
CHECK(code_edit->get_line(0) == "[abc]");
|
||||
|
||||
/* Caret should be after the last character of the single line selection */
|
||||
CHECK(code_edit->get_caret_column() == 4);
|
||||
|
||||
/* Wrap multi line selection with brackets */
|
||||
code_edit->clear();
|
||||
code_edit->insert_text_at_caret("abc\nabc");
|
||||
code_edit->select_all();
|
||||
SEND_GUI_KEY_EVENT(code_edit, Key::BRACKETLEFT);
|
||||
CHECK(code_edit->get_text() == "[abc\nabc]");
|
||||
|
||||
/* Caret should be after the last character of the multi line selection */
|
||||
CHECK(code_edit->get_caret_line() == 1);
|
||||
CHECK(code_edit->get_caret_column() == 3);
|
||||
|
||||
/* If inserted character is not a auto brace completion open key, replace selected text with the inserted character */
|
||||
code_edit->clear();
|
||||
code_edit->insert_text_at_caret("abc");
|
||||
code_edit->select_all();
|
||||
SEND_GUI_KEY_EVENT(code_edit, Key::KEY_1);
|
||||
CHECK(code_edit->get_text() == "1");
|
||||
|
||||
/* If potential multichar and single brace completion is matched, it should wrap the single. */
|
||||
code_edit->clear();
|
||||
code_edit->insert_text_at_caret("\'\'abc");
|
||||
code_edit->select(0, 2, 0, 5);
|
||||
SEND_GUI_KEY_EVENT(code_edit, Key::APOSTROPHE);
|
||||
CHECK(code_edit->get_text() == "\'\'\'abc\'");
|
||||
|
||||
/* If only the potential multichar brace completion is matched, it does not wrap or complete. */
|
||||
auto_brace_completion_pairs.erase("\'");
|
||||
code_edit->set_auto_brace_completion_pairs(auto_brace_completion_pairs);
|
||||
CHECK_FALSE(code_edit->has_auto_brace_completion_open_key("\'"));
|
||||
|
||||
code_edit->clear();
|
||||
code_edit->insert_text_at_caret("\'\'abc");
|
||||
code_edit->select(0, 2, 0, 5);
|
||||
SEND_GUI_KEY_EVENT(code_edit, Key::APOSTROPHE);
|
||||
CHECK(code_edit->get_text() == "\'\'\'");
|
||||
}
|
||||
|
||||
SUBCASE("[CodeEdit] autocomplete") {
|
||||
|
||||
Reference in New Issue
Block a user