#pragma once

#include "lsAny.h"
struct ExecuteCommandParams
{
    /**
         * The identifier of the actual command handler.
         */

    std::string command;

    /**
         * Arguments that the command should be invoked with.
         * The arguments are typically specified when a command is returned from the server to the client.
         * Example requests that return a command are textDocument/codeAction or textDocument/codeLens.
         */
    optional<std::vector<lsp::Any>> arguments;

    MAKE_SWAP_METHOD(ExecuteCommandParams, command, arguments);
};
MAKE_REFLECT_STRUCT(ExecuteCommandParams, command, arguments)
