#pragma once

#include "LibLsp/JsonRpc/serializer.h"
#include <string>
#include <vector>
#include "lsDocumentUri.h"

//An item to transfer a text document from the client to the server.
struct lsTextDocumentItem {
        // The text document's URI.
        lsDocumentUri uri;

        // The text document's language identifier.
        std::string languageId;

        // The version number of this document (it will strictly increase after each
        // change, including undo/redo).
        int version = 0;

        // The content of the opened text document.
        std::string text;

        MAKE_SWAP_METHOD(lsTextDocumentItem, uri, languageId, version, text)
};

MAKE_REFLECT_STRUCT(lsTextDocumentItem, uri, languageId, version, text)
