Merge pull request #52443 from Paulb23/code-edit-indext-fixes

Fix brace placement with space auto indent
This commit is contained in:
Rémi Verschelde 2021-09-13 21:52:38 +02:00 committed by GitHub
commit 0b60b9f75c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 4 deletions

View File

@ -654,7 +654,7 @@ void CodeEdit::_backspace_internal() {
// For space indentation we need to do a simple unindent if there are no chars to the left, acting in the // For space indentation we need to do a simple unindent if there are no chars to the left, acting in the
// same way as tabs. // same way as tabs.
if (indent_using_spaces && cc != 0) { if (indent_using_spaces && cc != 0) {
if (get_first_non_whitespace_column(cl) > cc) { if (get_first_non_whitespace_column(cl) >= cc) {
prev_column = cc - _calculate_spaces_till_next_left_indent(cc); prev_column = cc - _calculate_spaces_till_next_left_indent(cc);
prev_line = cl; prev_line = cl;
} }
@ -987,10 +987,10 @@ void CodeEdit::_new_line(bool p_split_current_line, bool p_above) {
/* No need to move the brace below if we are not taking the text with us. */ /* No need to move the brace below if we are not taking the text with us. */
if (p_split_current_line) { if (p_split_current_line) {
brace_indent = true; brace_indent = true;
ins += "\n" + ins.substr(1, ins.length() - 2); ins += "\n" + ins.substr(indent_text.size(), ins.length() - 2);
} else { } else {
brace_indent = false; brace_indent = false;
ins = "\n" + ins.substr(1, ins.length() - 2); ins = "\n" + ins.substr(indent_text.size(), ins.length() - 2);
} }
} }
} }

View File

@ -2610,10 +2610,10 @@ void TextEdit::set_text(const String &p_text) {
set_caret_column(0); set_caret_column(0);
begin_complex_operation(); begin_complex_operation();
deselect();
_remove_text(0, 0, MAX(0, get_line_count() - 1), MAX(get_line(MAX(get_line_count() - 1, 0)).size() - 1, 0)); _remove_text(0, 0, MAX(0, get_line_count() - 1), MAX(get_line(MAX(get_line_count() - 1, 0)).size() - 1, 0));
insert_text_at_caret(p_text); insert_text_at_caret(p_text);
end_complex_operation(); end_complex_operation();
selection.active = false;
} }
set_caret_line(0); set_caret_line(0);