#pragma once

#include "LibLsp/JsonRpc/serializer.h"
#include <vector>
#include "LibLsp/JsonRpc/message.h"
#include "lsVersionedTextDocumentIdentifier.h"
#include "lsTextEdit.h"


struct lsTextDocumentEdit {
                // The text document to change.
                lsVersionedTextDocumentIdentifier textDocument;

                /**
                 * The edits to be applied.
                 *
                 * @since 3.16.0 - support for AnnotatedTextEdit. This is guarded by the
                 * client capability `workspace.workspaceEdit.changeAnnotationSupport`
                 */
                // The edits to be applied.
                std::vector< lsAnnotatedTextEdit > edits;
                MAKE_SWAP_METHOD(lsTextDocumentEdit, textDocument, edits);
};
MAKE_REFLECT_STRUCT(lsTextDocumentEdit, textDocument, edits);
