mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 07:53:26 +00:00
Add column boundary check in the autocompletion.
This commit is contained in:
parent
6d33ad2917
commit
1c50f8660a
1 changed files with 4 additions and 2 deletions
|
@ -2381,6 +2381,7 @@ void CodeEdit::confirm_code_completion(bool p_replace) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle merging of symbols eg strings, brackets.
|
// Handle merging of symbols eg strings, brackets.
|
||||||
|
caret_line = get_caret_line(i);
|
||||||
const String line = get_line(caret_line);
|
const String line = get_line(caret_line);
|
||||||
char32_t next_char = line[get_caret_column(i)];
|
char32_t next_char = line[get_caret_column(i)];
|
||||||
char32_t last_completion_char = insert_text[insert_text.length() - 1];
|
char32_t last_completion_char = insert_text[insert_text.length() - 1];
|
||||||
|
@ -3024,17 +3025,18 @@ void CodeEdit::_bind_methods() {
|
||||||
/* Auto brace completion */
|
/* Auto brace completion */
|
||||||
int CodeEdit::_get_auto_brace_pair_open_at_pos(int p_line, int p_col) {
|
int CodeEdit::_get_auto_brace_pair_open_at_pos(int p_line, int p_col) {
|
||||||
const String &line = get_line(p_line);
|
const String &line = get_line(p_line);
|
||||||
|
int caret_col = MIN(p_col, line.length());
|
||||||
|
|
||||||
/* Should be fast enough, expecting low amount of pairs... */
|
/* Should be fast enough, expecting low amount of pairs... */
|
||||||
for (int i = 0; i < auto_brace_completion_pairs.size(); i++) {
|
for (int i = 0; i < auto_brace_completion_pairs.size(); i++) {
|
||||||
const String &open_key = auto_brace_completion_pairs[i].open_key;
|
const String &open_key = auto_brace_completion_pairs[i].open_key;
|
||||||
if (p_col - open_key.length() < 0) {
|
if (caret_col < open_key.length()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool is_match = true;
|
bool is_match = true;
|
||||||
for (int j = 0; j < open_key.length(); j++) {
|
for (int j = 0; j < open_key.length(); j++) {
|
||||||
if (line[(p_col - 1) - j] != open_key[(open_key.length() - 1) - j]) {
|
if (line[(caret_col - 1) - j] != open_key[(open_key.length() - 1) - j]) {
|
||||||
is_match = false;
|
is_match = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue