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