diff options
| author | Spartan322 <Megacake1234@gmail.com> | 2024-11-12 13:46:08 -0500 |
|---|---|---|
| committer | Spartan322 <Megacake1234@gmail.com> | 2024-11-12 13:46:59 -0500 |
| commit | 3a73c6ebd18bff0fa125be58d3ac9c7a63bab61d (patch) | |
| tree | c7341bd56c977259578b127886c9a88eeef11820 /modules/gdscript/gdscript_editor.cpp | |
| parent | 5094c2a5f7d506b0e685120f14d1df42e1e9d495 (diff) | |
| parent | cb411fa960f0b7fdbd97dcdb4c90f9346360ee0e (diff) | |
| download | redot-engine-3a73c6ebd18bff0fa125be58d3ac9c7a63bab61d.tar.gz | |
Merge commit godotengine/godot@cb411fa960f0b7fdbd97dcdb4c90f9346360ee0e
Diffstat (limited to 'modules/gdscript/gdscript_editor.cpp')
| -rw-r--r-- | modules/gdscript/gdscript_editor.cpp | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp index c3bd326c3f..3f17f9d80f 100644 --- a/modules/gdscript/gdscript_editor.cpp +++ b/modules/gdscript/gdscript_editor.cpp @@ -45,6 +45,7 @@ #include "core/config/engine.h" #include "core/core_constants.h" #include "core/io/file_access.h" +#include "core/math/expression.h" #ifdef TOOLS_ENABLED #include "core/config/project_settings.h" @@ -429,7 +430,30 @@ void GDScriptLanguage::debug_get_globals(List<String> *p_globals, List<Variant> } String GDScriptLanguage::debug_parse_stack_level_expression(int p_level, const String &p_expression, int p_max_subitems, int p_max_depth) { - return ""; + List<String> names; + List<Variant> values; + debug_get_stack_level_locals(p_level, &names, &values, p_max_subitems, p_max_depth); + + Vector<String> name_vector; + for (const String &name : names) { + name_vector.push_back(name); + } + + Array value_array; + for (const Variant &value : values) { + value_array.push_back(value); + } + + Expression expression; + if (expression.parse(p_expression, name_vector) == OK) { + ScriptInstance *instance = debug_get_stack_level_instance(p_level); + if (instance) { + Variant return_val = expression.execute(value_array, instance->get_owner()); + return return_val.get_construct_string(); + } + } + + return String(); } void GDScriptLanguage::get_recognized_extensions(List<String> *p_extensions) const { |
