Merge pull request #29664 from akien-mga/external-editor-default-flags
Always pass script path to external editor
This commit is contained in:
commit
5522d7c2b0
1 changed files with 12 additions and 2 deletions
|
@ -1976,10 +1976,11 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra
|
|||
String flags = EditorSettings::get_singleton()->get("text_editor/external/exec_flags");
|
||||
|
||||
List<String> args;
|
||||
bool has_file_flag = false;
|
||||
String script_path = ProjectSettings::get_singleton()->globalize_path(p_resource->get_path());
|
||||
|
||||
if (flags.size()) {
|
||||
String project_path = ProjectSettings::get_singleton()->get_resource_path();
|
||||
String script_path = ProjectSettings::get_singleton()->globalize_path(p_resource->get_path());
|
||||
|
||||
flags = flags.replacen("{line}", itos(p_line > 0 ? p_line : 0));
|
||||
flags = flags.replacen("{col}", itos(p_col));
|
||||
|
@ -2001,6 +2002,9 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra
|
|||
} else if (flags[i] == '\0' || (!inside_quotes && flags[i] == ' ')) {
|
||||
|
||||
String arg = flags.substr(from, num_chars);
|
||||
if (arg.find("{file}") != -1) {
|
||||
has_file_flag = true;
|
||||
}
|
||||
|
||||
// do path replacement here, else there will be issues with spaces and quotes
|
||||
arg = arg.replacen("{project}", project_path);
|
||||
|
@ -2015,6 +2019,11 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra
|
|||
}
|
||||
}
|
||||
|
||||
// Default to passing script path if no {file} flag is specified.
|
||||
if (!has_file_flag) {
|
||||
args.push_back(script_path);
|
||||
}
|
||||
|
||||
Error err = OS::get_singleton()->execute(path, args, false);
|
||||
if (err == OK)
|
||||
return false;
|
||||
|
@ -3437,7 +3446,8 @@ ScriptEditorPlugin::ScriptEditorPlugin(EditorNode *p_node) {
|
|||
EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT, "text_editor/open_scripts/list_script_names_as", PROPERTY_HINT_ENUM, "Name,Parent Directory And Name,Full Path"));
|
||||
EDITOR_DEF("text_editor/open_scripts/list_script_names_as", 0);
|
||||
EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING, "text_editor/external/exec_path", PROPERTY_HINT_GLOBAL_FILE));
|
||||
EDITOR_DEF("text_editor/external/exec_flags", "");
|
||||
EDITOR_DEF("text_editor/external/exec_flags", "{file}");
|
||||
EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING, "text_editor/external/exec_flags", PROPERTY_HINT_PLACEHOLDER_TEXT, "Call flags with placeholders: {project}, {file}, {col}, {line}."));
|
||||
|
||||
ED_SHORTCUT("script_editor/open_recent", TTR("Open Recent"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_T);
|
||||
ED_SHORTCUT("script_editor/clear_recent", TTR("Clear Recent Files"));
|
||||
|
|
Loading…
Reference in a new issue