Script Editor: automatic indentation after a colon

This commit is contained in:
koalefant 2015-11-29 17:02:35 +01:00
parent b0dbcccb6c
commit c93a005fb6
3 changed files with 15 additions and 1 deletions

View file

@ -1610,6 +1610,13 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
else else
break; 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); _insert_text_at_cursor(ins);
_push_current_op(); _push_current_op();
@ -2869,6 +2876,10 @@ bool TextEdit::is_syntax_coloring_enabled() const {
return syntax_coloring; return syntax_coloring;
} }
void TextEdit::set_auto_indent(bool p_auto_indent) {
auto_indent = p_auto_indent;
}
void TextEdit::cut() { void TextEdit::cut() {
if (!selection.active) if (!selection.active)
@ -3836,7 +3847,7 @@ TextEdit::TextEdit() {
next_operation_is_complex=false; next_operation_is_complex=false;
auto_brace_completion_enabled=false; auto_brace_completion_enabled=false;
brace_matching_enabled=false; brace_matching_enabled=false;
auto_indent=false;
} }
TextEdit::~TextEdit() TextEdit::~TextEdit()

View file

@ -213,6 +213,7 @@ class TextEdit : public Control {
bool auto_brace_completion_enabled; bool auto_brace_completion_enabled;
bool brace_matching_enabled; bool brace_matching_enabled;
bool auto_indent;
bool cut_copy_line; bool cut_copy_line;
uint64_t last_dblclk; uint64_t last_dblclk;
@ -323,6 +324,7 @@ public:
brace_matching_enabled=p_enabled; brace_matching_enabled=p_enabled;
update(); update();
} }
void set_auto_indent(bool p_auto_indent);
void cursor_set_column(int p_col, bool p_adjust_viewport=true); void cursor_set_column(int p_col, bool p_adjust_viewport=true);
void cursor_set_line(int p_row, bool p_adjust_viewport=true); void cursor_set_line(int p_row, bool p_adjust_viewport=true);

View file

@ -614,6 +614,7 @@ CodeTextEditor::CodeTextEditor() {
text_editor->add_font_override("font",get_font("source","Fonts")); text_editor->add_font_override("font",get_font("source","Fonts"));
text_editor->set_show_line_numbers(true); text_editor->set_show_line_numbers(true);
text_editor->set_brace_matching(true); text_editor->set_brace_matching(true);
text_editor->set_auto_indent(true);
line_col = memnew( Label ); line_col = memnew( Label );
add_child(line_col); add_child(line_col);