#pragma once

#include "LibLsp/JsonRpc/RequestInMessage.h"
#include "LibLsp/JsonRpc/lsResponseMessage.h"
#include <LibLsp/lsp/lsCodeAction.h>

#include "LibLsp/lsp/CodeActionParams.h"
#include "checkHashCodeEqualsStatus.h"

struct GenerateHashCodeEqualsParams
{
   lsCodeActionParams context;
   std::vector<LspVariableBinding> fields;
   bool regenerate = false;
   void swap(GenerateHashCodeEqualsParams& arg) noexcept
   {
       context.swap(arg.context);
       fields.swap(arg.fields);
       std::swap(regenerate, arg.regenerate);
   }
};
MAKE_REFLECT_STRUCT(GenerateHashCodeEqualsParams, context, fields, regenerate);

DEFINE_REQUEST_RESPONSE_TYPE(
   java_generateHashCodeEquals, GenerateHashCodeEqualsParams, lsWorkspaceEdit, "java/generateHashCodeEquals"
)