Fix autocomplete with autobrace completion not adding closing pair

This commit is contained in:
Paulb23
2022-12-19 14:20:52 +00:00
parent 2b056115ef
commit 29f7bea241
2 changed files with 94 additions and 9 deletions

View File

@@ -2871,6 +2871,89 @@ TEST_CASE("[SceneTree][CodeEdit] completion") {
CHECK(code_edit->get_text() == "\'\'\'");
}
SUBCASE("[CodeEdit] autocomplete with brace completion") {
code_edit->set_auto_brace_completion_enabled(true);
CHECK(code_edit->is_auto_brace_completion_enabled());
code_edit->insert_text_at_caret("(te)");
code_edit->set_caret_column(3);
// Full completion.
code_edit->add_code_completion_option(CodeEdit::CodeCompletionKind::KIND_FUNCTION, "test()", "test()");
code_edit->update_code_completion_options();
code_edit->confirm_code_completion();
CHECK(code_edit->get_line(0) == "(test())");
CHECK(code_edit->get_caret_column() == 7);
code_edit->undo();
// With "arg".
code_edit->add_code_completion_option(CodeEdit::CodeCompletionKind::KIND_FUNCTION, "test(", "test(");
code_edit->update_code_completion_options();
code_edit->confirm_code_completion();
CHECK(code_edit->get_line(0) == "(test())");
CHECK(code_edit->get_caret_column() == 6);
code_edit->undo();
// brace completion disbaled
code_edit->set_auto_brace_completion_enabled(false);
// Full completion.
code_edit->add_code_completion_option(CodeEdit::CodeCompletionKind::KIND_FUNCTION, "test()", "test()");
code_edit->update_code_completion_options();
code_edit->confirm_code_completion();
CHECK(code_edit->get_line(0) == "(test())");
CHECK(code_edit->get_caret_column() == 7);
code_edit->undo();
// With "arg".
code_edit->add_code_completion_option(CodeEdit::CodeCompletionKind::KIND_FUNCTION, "test(", "test(");
code_edit->update_code_completion_options();
code_edit->confirm_code_completion();
CHECK(code_edit->get_line(0) == "(test()");
CHECK(code_edit->get_caret_column() == 6);
// String
code_edit->set_auto_brace_completion_enabled(true);
code_edit->clear();
code_edit->insert_text_at_caret("\"\"");
code_edit->set_caret_column(1);
// Full completion.
code_edit->add_code_completion_option(CodeEdit::CodeCompletionKind::KIND_NODE_PATH, "\"test\"", "\"test\"");
code_edit->update_code_completion_options();
code_edit->confirm_code_completion();
CHECK(code_edit->get_line(0) == "\"test\"");
CHECK(code_edit->get_caret_column() == 6);
code_edit->undo();
// With "arg".
code_edit->add_code_completion_option(CodeEdit::CodeCompletionKind::KIND_NODE_PATH, "\"test", "\"test");
code_edit->update_code_completion_options();
code_edit->confirm_code_completion();
CHECK(code_edit->get_line(0) == "\"\"test\"\"");
CHECK(code_edit->get_caret_column() == 7);
code_edit->undo();
// brace completion disbaled
code_edit->set_auto_brace_completion_enabled(false);
// Full completion.
code_edit->add_code_completion_option(CodeEdit::CodeCompletionKind::KIND_NODE_PATH, "\"test\"", "\"test\"");
code_edit->update_code_completion_options();
code_edit->confirm_code_completion();
CHECK(code_edit->get_line(0) == "\"test\"");
CHECK(code_edit->get_caret_column() == 6);
code_edit->undo();
// With "arg".
code_edit->add_code_completion_option(CodeEdit::CodeCompletionKind::KIND_NODE_PATH, "\"test", "\"test");
code_edit->update_code_completion_options();
code_edit->confirm_code_completion();
CHECK(code_edit->get_line(0) == "\"\"test\"");
CHECK(code_edit->get_caret_column() == 7);
code_edit->undo();
}
SUBCASE("[CodeEdit] autocomplete") {
code_edit->set_code_completion_enabled(true);
CHECK(code_edit->is_code_completion_enabled());