#pragma once
#include <libsolidity/interface/FileReader.h>
#include <string>
#include <map>
namespace solidity::lsp
{
class FileRepository
{
public:
explicit FileRepository(boost::filesystem::path const& _basePath):
m_fileReader(_basePath) {}
boost::filesystem::path const& basePath() const { return m_fileReader.basePath(); }
std::string sourceUnitNameToClientPath(std::string const& _sourceUnitName) const;
std::string clientPathToSourceUnitName(std::string const& _uri) const;
std::map<std::string, std::string> const& sourceUnits() const;
void setSourceByClientPath(std::string const& _uri, std::string _text);
frontend::ReadCallback::Callback reader() { return m_fileReader.reader(); }
private:
std::map<std::string, std::string> m_sourceUnitNamesToClientPaths;
frontend::FileReader m_fileReader;
};
}