Fix: auto brace complete for quoted strings

Fixes #36002

(cherry picked from commit 6a404a88e4)
This commit is contained in:
Dominik 'dreamsComeTrue' Jasiński 2020-02-10 23:09:07 +01:00 committed by Rémi Verschelde
parent 04b3e208fa
commit f328ac36d6
1 changed files with 36 additions and 0 deletions

View File

@ -1844,6 +1844,42 @@ void TextEdit::_consume_pair_symbol(CharType ch) {
} }
} }
String line = text[cursor.line];
bool in_single_quote = false;
bool in_double_quote = false;
int c = 0;
while (c < line.length()) {
if (line[c] == '\\') {
c++; // Skip quoted anything.
if (cursor.column == c) {
break;
}
} else {
if (line[c] == '\'' && !in_double_quote) {
in_single_quote = !in_single_quote;
} else if (line[c] == '"' && !in_single_quote) {
in_double_quote = !in_double_quote;
}
}
c++;
if (cursor.column == c) {
break;
}
}
// Disallow inserting duplicated quotes while already in string
if ((in_single_quote || in_double_quote) && (ch == '"' || ch == '\'')) {
insert_text_at_cursor(ch_single);
cursor_set_column(cursor_position_to_move);
return;
}
insert_text_at_cursor(ch_pair); insert_text_at_cursor(ch_pair);
cursor_set_column(cursor_position_to_move); cursor_set_column(cursor_position_to_move);
} }