// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
#pragma once
#include "Engine/Scripting/ScriptingType.h"
///
/// Debug commands and console variables system.
///
API_CLASS(static) class FLAXENGINE_API DebugCommands
{
DECLARE_SCRIPTING_TYPE_MINIMAL(DebugCommands);
public:
///
/// Executes the command.
///
/// The command line (optionally with arguments).
API_FUNCTION() static void Execute(StringView command);
///
/// Searches the list of commands to return candidates that match the given query text.
///
/// The query text.
/// The output list of commands that match a given query (unsorted).
/// True if filter commands that start with a specific search text, otherwise will return commands that contain a specific query.
API_FUNCTION() static void Search(StringView searchText, API_PARAM(Out) Array& matches, bool startsWith = false);
public:
static bool Iterate(const StringView& searchText, int32& index);
static StringView GetCommandName(int32 index);
};