diff options
Diffstat (limited to 'editor/code_editor.cpp')
-rw-r--r-- | editor/code_editor.cpp | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index 5611605c27..01773a0bcd 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -675,14 +675,14 @@ void CodeTextEditor::_line_col_changed() { } } - StringBuilder *sb = memnew(StringBuilder); - sb->append("("); - sb->append(itos(text_editor->cursor_get_line() + 1).lpad(3)); - sb->append(","); - sb->append(itos(positional_column + 1).lpad(3)); - sb->append(")"); + StringBuilder sb; + sb.append("("); + sb.append(itos(text_editor->cursor_get_line() + 1).lpad(3)); + sb.append(","); + sb.append(itos(positional_column + 1).lpad(3)); + sb.append(")"); - line_and_col_txt->set_text(sb->as_string()); + line_and_col_txt->set_text(sb.as_string()); } void CodeTextEditor::_text_changed() { @@ -804,6 +804,24 @@ void CodeTextEditor::trim_trailing_whitespace() { } } +void CodeTextEditor::insert_final_newline() { + int final_line = text_editor->get_line_count() - 1; + + String line = text_editor->get_line(final_line); + + //length 0 means it's already an empty line, + //no need to add a newline + if (line.length() > 0 && !line.ends_with("\n")) { + text_editor->begin_complex_operation(); + + line += "\n"; + text_editor->set_line(final_line, line); + + text_editor->end_complex_operation(); + text_editor->update(); + } +} + void CodeTextEditor::convert_indent_to_spaces() { int indent_size = EditorSettings::get_singleton()->get("text_editor/indent/size"); String indent = ""; |