Explorar el Código

Merge pull request #76145 from manueldun/usability-auto-indent

Fix auto-indentation in typed arrays, comments, and after colon
Rémi Verschelde hace 2 años
padre
commit
c0ee2b4968
Se han modificado 2 ficheros con 12 adiciones y 1 borrados
  1. 1 1
      scene/gui/code_edit.cpp
  2. 11 0
      tests/scene/test_code_edit.h

+ 1 - 1
scene/gui/code_edit.cpp

@@ -1071,7 +1071,7 @@ void CodeEdit::_new_line(bool p_split_current_line, bool p_above) {
 
 			for (; line_col < cc; line_col++) {
 				char32_t c = line[line_col];
-				if (auto_indent_prefixes.has(c)) {
+				if (auto_indent_prefixes.has(c) && is_in_comment(cl, line_col) == -1) {
 					should_indent = true;
 					indent_char = c;
 					continue;

+ 11 - 0
tests/scene/test_code_edit.h

@@ -2300,6 +2300,17 @@ TEST_CASE("[SceneTree][CodeEdit] indent") {
 			SEND_GUI_ACTION("ui_text_newline_blank");
 			CHECK(code_edit->get_line(0) == "test{}");
 			CHECK(code_edit->get_line(1) == "");
+
+			/* If there is something after a colon
+			and there is a colon in the comment it
+			should not indent. */
+			code_edit->add_comment_delimiter("#", "");
+			code_edit->set_text("");
+			code_edit->insert_text_at_caret("test:test#:");
+			SEND_GUI_ACTION("ui_text_newline");
+			CHECK(code_edit->get_line(0) == "test:test#:");
+			CHECK(code_edit->get_line(1) == "");
+			code_edit->remove_comment_delimiter("#");
 		}
 	}