#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)