summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkoalefant <mandarin.cake@gmail.com>2015-11-29 17:02:35 +0100
committerkoalefant <mandarin.cake@gmail.com>2015-11-29 17:13:29 +0100
commitc93a005fb61b19428c2da2a481a5a482c92b2e5d (patch)
treebe931ea8189e75b032b360b22070d0d1fa79b89a
parentb0dbcccb6c430cdf8a8f050676427f2414037ef7 (diff)
Script Editor: automatic indentation after a colon
-rw-r--r--scene/gui/text_edit.cpp13
-rw-r--r--scene/gui/text_edit.h2
-rw-r--r--tools/editor/code_editor.cpp1
3 files changed, 15 insertions, 1 deletions
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index 5415484009..78792dc785 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -1610,6 +1610,13 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
else
break;
}
+ if(auto_indent){
+ // indent once again if previous line will end with ':'
+ // (i.e. colon precedes current cursor position)
+ if(cursor.column>0 && text[cursor.line][cursor.column-1]==':') {
+ ins+="\t";
+ }
+ }
_insert_text_at_cursor(ins);
_push_current_op();
@@ -2869,6 +2876,10 @@ bool TextEdit::is_syntax_coloring_enabled() const {
return syntax_coloring;
}
+void TextEdit::set_auto_indent(bool p_auto_indent) {
+ auto_indent = p_auto_indent;
+}
+
void TextEdit::cut() {
if (!selection.active)
@@ -3836,7 +3847,7 @@ TextEdit::TextEdit() {
next_operation_is_complex=false;
auto_brace_completion_enabled=false;
brace_matching_enabled=false;
-
+ auto_indent=false;
}
TextEdit::~TextEdit()
diff --git a/scene/gui/text_edit.h b/scene/gui/text_edit.h
index 059e15dcff..91369309cf 100644
--- a/scene/gui/text_edit.h
+++ b/scene/gui/text_edit.h
@@ -213,6 +213,7 @@ class TextEdit : public Control {
bool auto_brace_completion_enabled;
bool brace_matching_enabled;
+ bool auto_indent;
bool cut_copy_line;
uint64_t last_dblclk;
@@ -323,6 +324,7 @@ public:
brace_matching_enabled=p_enabled;
update();
}
+ void set_auto_indent(bool p_auto_indent);
void cursor_set_column(int p_col, bool p_adjust_viewport=true);
void cursor_set_line(int p_row, bool p_adjust_viewport=true);
diff --git a/tools/editor/code_editor.cpp b/tools/editor/code_editor.cpp
index 685763cadb..0728b3b7c1 100644
--- a/tools/editor/code_editor.cpp
+++ b/tools/editor/code_editor.cpp
@@ -614,6 +614,7 @@ CodeTextEditor::CodeTextEditor() {
text_editor->add_font_override("font",get_font("source","Fonts"));
text_editor->set_show_line_numbers(true);
text_editor->set_brace_matching(true);
+ text_editor->set_auto_indent(true);
line_col = memnew( Label );
add_child(line_col);