diff options
| author | Wenqiang <wenqiang.w@gmail.com> | 2024-09-19 22:35:51 -0700 |
|---|---|---|
| committer | Wenqiang <wenqiang.w@gmail.com> | 2024-09-28 13:28:07 -0700 |
| commit | 9a94353fa3644c8a99f35694c59d51708a496080 (patch) | |
| tree | 556b3375b029237d9869127a9f465c3b3575a997 /modules | |
| parent | 0a4aedb36065f66fc7e99cb2e6de3e55242f9dfb (diff) | |
| download | redot-engine-9a94353fa3644c8a99f35694c59d51708a496080.tar.gz | |
Added support for 'print' command in local (command line -d) debugger
Diffstat (limited to 'modules')
| -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 cf1cd55355..eed52d6ad3 100644 --- a/modules/gdscript/gdscript_editor.cpp +++ b/modules/gdscript/gdscript_editor.cpp @@ -43,6 +43,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" @@ -427,7 +428,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 { |
