2
0
Эх сурвалжийг харах

Fix incorrectly removing two characters by auto brace

In some situations when there were no braces auto brace still removed two
characters.  This has been fixed by adding a test that a brace is found.
William Deurwaarder 4 жил өмнө
parent
commit
b92347c220

+ 1 - 1
scene/gui/code_edit.cpp

@@ -1937,7 +1937,7 @@ void CodeEdit::confirm_code_completion(bool p_replace) {
 
 
 	if (pre_brace_pair == -1 && post_brace_pair == -1 && get_caret_column() > 0 && get_caret_column() < get_line(caret_line).length()) {
 	if (pre_brace_pair == -1 && post_brace_pair == -1 && get_caret_column() > 0 && get_caret_column() < get_line(caret_line).length()) {
 		pre_brace_pair = _get_auto_brace_pair_open_at_pos(caret_line, get_caret_column() + 1);
 		pre_brace_pair = _get_auto_brace_pair_open_at_pos(caret_line, get_caret_column() + 1);
-		if (pre_brace_pair == _get_auto_brace_pair_close_at_pos(caret_line, get_caret_column() - 1)) {
+		if (pre_brace_pair != -1 && pre_brace_pair == _get_auto_brace_pair_close_at_pos(caret_line, get_caret_column() - 1)) {
 			remove_text(caret_line, get_caret_column() - 2, caret_line, get_caret_column());
 			remove_text(caret_line, get_caret_column() - 2, caret_line, get_caret_column());
 			if (_get_auto_brace_pair_close_at_pos(caret_line, get_caret_column() - 1) != pre_brace_pair) {
 			if (_get_auto_brace_pair_close_at_pos(caret_line, get_caret_column() - 1) != pre_brace_pair) {
 				set_caret_column(get_caret_column() - 1);
 				set_caret_column(get_caret_column() - 1);