AngelscriptDebuggerServer/src/ASVariableFormatter.hpp

23 lines
1.3 KiB
C++
Raw Permalink Normal View History

2021-09-28 16:13:22 +00:00
#ifndef ANGELSCRIPTDEBUGGER_ASVARIABLEFORMATTER_HPP
#define ANGELSCRIPTDEBUGGER_ASVARIABLEFORMATTER_HPP
#include <angelscript.h>
2022-02-11 10:43:25 +00:00
#include <nlohmann/json.hpp>
2021-09-28 16:13:22 +00:00
#include "AngelscriptDebugger.hpp"
#include "DebugAdapterProtocol/Types.hpp"
class ASVariableFormatter {
public:
static nlohmann::json GetAsJsonValue(asIScriptEngine* engine, int, void*, int32_t depth = 0);
static DebugAdapterProtocol::Variable GetAsDAPVariable(asIScriptEngine* engine, asIScriptContext* ctx,
AngelscriptDebugger* debugger, const std::string& name, int,
void*);
2021-10-03 08:52:29 +00:00
template <typename T, int (asIScriptContext::*SetArg)(asUINT, T), T (asIScriptContext::*GetLength)()>
static void FormatArrayLike(std::vector<DebugAdapterProtocol::Variable>& vars, asIScriptEngine* engine,
asIScriptContext* ctx, void* address, AngelscriptDebugger* debugger,
asIScriptFunction* indexFunc);
2021-09-28 16:13:22 +00:00
static void GetChildDAPVariables(std::vector<DebugAdapterProtocol::Variable>&, asIScriptEngine* engine,
asIScriptContext* ctx, AngelscriptDebugger* debugger, int, void*);
};
#endif // ANGELSCRIPTDEBUGGER_ASVARIABLEFORMATTER_HPP