#pragma once
#include "../base/provider_interface.hpp"

namespace lsp::providers::initialize
{
    using namespace lsp;
    class InitializeProvider : public IRequestProvider
    {
    public:
        InitializeProvider() = default;
        std::string ProvideResponse(const protocol::RequestMessage& request, ProviderContext& context) override;
        std::string GetMethod() const override;
        std::string GetProviderName() const override;

    private:
        protocol::InitializeResult BuildInitializeResult();
    };
}
