From 4b8568006d1f83d518d98ef3c7354b7c25de46cc Mon Sep 17 00:00:00 2001 From: Ignacio Etcheverry Date: Sat, 15 Apr 2017 19:48:10 +0200 Subject: [PATCH] External editor improvements and fixes Notable changes: - Now ScriptLanguages have the option to override the global external editor setting. If `ScriptLanguage::open_in_external_editor()` returns `ERR_UNAVAILABLE` (which it does by default), then the global external editor option will be used. - Added formatting to the external editor execution arguments. Now it's possible to write something like this: `{project} -g {file}:{line}:{col}`. - `VisualScript::get_member_line()` now can return the line of functions (well, it returns the id of the _Function_ node of the function). I guess there is nothing else we can get a "line" from. Fixes: - Fixes a bug where `ScriptEditor::script_goto_method()` would not work if the script is not already open in the built-in editor. - Fixes wrong DEFVAL for `cursor_set_column` and `cursor_set_line` in TextEdit. - `Script::get_member_line()` now returns -1 ("found nothing") by default. --- core/script_language.h | 3 +- editor/connections_dialog.cpp | 2 +- editor/plugins/script_editor_plugin.cpp | 72 +++++++++++++------ editor/plugins/script_editor_plugin.h | 7 +- editor/plugins/script_text_editor.cpp | 22 +----- editor/plugins/script_text_editor.h | 1 - modules/visual_script/visual_script.cpp | 12 ++++ modules/visual_script/visual_script.h | 2 + .../visual_script/visual_script_editor.cpp | 14 +--- modules/visual_script/visual_script_editor.h | 1 - scene/gui/text_edit.cpp | 4 +- 11 files changed, 74 insertions(+), 66 deletions(-) diff --git a/core/script_language.h b/core/script_language.h index 905ac4eedaf..1ec02f5845c 100644 --- a/core/script_language.h +++ b/core/script_language.h @@ -119,7 +119,7 @@ public: virtual void get_script_method_list(List *p_list) const = 0; virtual void get_script_property_list(List *p_list) const = 0; - virtual int get_member_line(const StringName &p_member) const { return 0; } + virtual int get_member_line(const StringName &p_member) const { return -1; } Script() {} }; @@ -201,6 +201,7 @@ public: virtual bool has_named_classes() const = 0; virtual int find_function(const String &p_function, const String &p_code) const = 0; virtual String make_function(const String &p_class, const String &p_name, const PoolStringArray &p_args) const = 0; + virtual Error open_in_external_editor(const Ref