aboutsummaryrefslogtreecommitdiff
path: root/editor/plugins/script_editor_plugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/plugins/script_editor_plugin.cpp')
-rw-r--r--editor/plugins/script_editor_plugin.cpp77
1 files changed, 58 insertions, 19 deletions
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index 20ded1d8f..a99cd7a2d 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -530,6 +530,15 @@ void ScriptEditor::_resave_scripts(const String &p_str) {
if (trim_trailing_whitespace_on_save) {
se->trim_trailing_whitespace();
}
+
+ if (convert_indent_on_save) {
+ if (use_space_indentation) {
+ se->convert_indent_to_spaces();
+ } else {
+ se->convert_indent_to_tabs();
+ }
+ }
+
editor->save_resource(script);
se->tag_saved_version();
}
@@ -795,12 +804,28 @@ void ScriptEditor::_menu_option(int p_option) {
if (trim_trailing_whitespace_on_save)
current->trim_trailing_whitespace();
+
+ if (convert_indent_on_save) {
+ if (use_space_indentation) {
+ current->convert_indent_to_spaces();
+ } else {
+ current->convert_indent_to_tabs();
+ }
+ }
editor->save_resource(current->get_edited_script());
} break;
case FILE_SAVE_AS: {
current->trim_trailing_whitespace();
+
+ if (convert_indent_on_save) {
+ if (use_space_indentation) {
+ current->convert_indent_to_spaces();
+ } else {
+ current->convert_indent_to_tabs();
+ }
+ }
editor->push_item(current->get_edited_script()->cast_to<Object>());
editor->save_resource_as(current->get_edited_script());
@@ -878,28 +903,29 @@ void ScriptEditor::_menu_option(int p_option) {
}
}
}
- }
+ } else {
- EditorHelp *help = tab_container->get_current_tab_control()->cast_to<EditorHelp>();
- if (help) {
+ EditorHelp *help = tab_container->get_current_tab_control()->cast_to<EditorHelp>();
+ if (help) {
- switch (p_option) {
+ switch (p_option) {
- case HELP_SEARCH_FIND: {
- help->popup_search();
- } break;
- case HELP_SEARCH_FIND_NEXT: {
- help->search_again();
- } break;
- case FILE_CLOSE: {
- _close_current_tab();
- } break;
- case CLOSE_DOCS: {
- _close_docs_tab();
- } break;
- case CLOSE_ALL: {
- _close_all_tabs();
- } break;
+ case HELP_SEARCH_FIND: {
+ help->popup_search();
+ } break;
+ case HELP_SEARCH_FIND_NEXT: {
+ help->search_again();
+ } break;
+ case FILE_CLOSE: {
+ _close_current_tab();
+ } break;
+ case CLOSE_DOCS: {
+ _close_docs_tab();
+ } break;
+ case CLOSE_ALL: {
+ _close_all_tabs();
+ } break;
+ }
}
}
}
@@ -1515,6 +1541,14 @@ void ScriptEditor::save_all_scripts() {
se->trim_trailing_whitespace();
}
+ if (convert_indent_on_save) {
+ if (use_space_indentation) {
+ se->convert_indent_to_spaces();
+ } else {
+ se->convert_indent_to_tabs();
+ }
+ }
+
Ref<Script> script = se->get_edited_script();
if (script.is_valid())
se->apply_code();
@@ -1614,6 +1648,9 @@ void ScriptEditor::_save_layout() {
void ScriptEditor::_editor_settings_changed() {
trim_trailing_whitespace_on_save = EditorSettings::get_singleton()->get("text_editor/files/trim_trailing_whitespace_on_save");
+ convert_indent_on_save = EditorSettings::get_singleton()->get("text_editor/indent/convert_indent_on_save");
+ use_space_indentation = EditorSettings::get_singleton()->get("text_editor/indent/type") == "Tabs" ? 0 : 1;
+
float autosave_time = EditorSettings::get_singleton()->get("text_editor/files/autosave_interval_secs");
if (autosave_time > 0) {
autosave_timer->set_wait_time(autosave_time);
@@ -2186,6 +2223,8 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
edit_pass = 0;
trim_trailing_whitespace_on_save = false;
+ convert_indent_on_save = false;
+ use_space_indentation = false;
ScriptServer::edit_request_func = _open_script_request;
}