File tree 2 files changed +21
-1
lines changed
2 files changed +21
-1
lines changed Original file line number Diff line number Diff line change @@ -765,7 +765,7 @@ void CodeEdit::_backspace_internal(int p_caret) {
765
765
continue ;
766
766
}
767
767
768
- if (to_line > 0 && _is_line_hidden (to_line - 1 )) {
768
+ if (to_line > 0 && to_column == 0 && _is_line_hidden (to_line - 1 )) {
769
769
unfold_line (to_line - 1 );
770
770
}
771
771
Original file line number Diff line number Diff line change @@ -4609,6 +4609,26 @@ TEST_CASE("[SceneTree][CodeEdit] text manipulation") {
4609
4609
CHECK (code_edit->get_text () == " line 1\n line 2\n line 3" );
4610
4610
CHECK (code_edit->get_caret_line () == 0 );
4611
4611
CHECK (code_edit->get_caret_column () == 0 );
4612
+
4613
+ // Unfold previous folded line on backspace if the caret is at the first column.
4614
+ code_edit->set_line_folding_enabled (true );
4615
+ code_edit->set_text (" line 1\n\t line 2\n line 3" );
4616
+ code_edit->set_caret_line (2 );
4617
+ code_edit->set_caret_column (0 );
4618
+ code_edit->fold_line (0 );
4619
+ code_edit->backspace ();
4620
+ CHECK_FALSE (code_edit->is_line_folded (0 ));
4621
+ code_edit->set_line_folding_enabled (false );
4622
+
4623
+ // Do not unfold previous line on backspace if the caret is not at the first column.
4624
+ code_edit->set_line_folding_enabled (true );
4625
+ code_edit->set_text (" line 1\n\t line 2\n line 3" );
4626
+ code_edit->set_caret_line (2 );
4627
+ code_edit->set_caret_column (4 );
4628
+ code_edit->fold_line (0 );
4629
+ code_edit->backspace ();
4630
+ CHECK (code_edit->is_line_folded (0 ));
4631
+ code_edit->set_line_folding_enabled (false );
4612
4632
}
4613
4633
4614
4634
SUBCASE (" [TextEdit] cut" ) {
You can’t perform that action at this time.
0 commit comments