#include "ProjectAware.h"
#include "Config.h"
#include "index/Index.h"
#include "index/Ref.h"
#include "index/Symbol.h"
#include "index/SymbolID.h"
#include "support/Threading.h"
#include "support/Trace.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/StringRef.h"
#include <map>
#include <memory>
#include <mutex>
#include <tuple>
namespace clang {
namespace clangd {
namespace {
class ProjectAwareIndex : public SymbolIndex { … };
size_t ProjectAwareIndex::estimateMemoryUsage() const { … }
void ProjectAwareIndex::lookup(
const LookupRequest &Req,
llvm::function_ref<void(const Symbol &)> Callback) const { … }
bool ProjectAwareIndex::refs(
const RefsRequest &Req,
llvm::function_ref<void(const Ref &)> Callback) const { … }
bool ProjectAwareIndex::fuzzyFind(
const FuzzyFindRequest &Req,
llvm::function_ref<void(const Symbol &)> Callback) const { … }
void ProjectAwareIndex::relations(
const RelationsRequest &Req,
llvm::function_ref<void(const SymbolID &, const Symbol &)> Callback) const { … }
llvm::unique_function<IndexContents(llvm::StringRef) const>
ProjectAwareIndex::indexedFiles() const { … }
SymbolIndex *ProjectAwareIndex::getIndex() const { … }
}
std::unique_ptr<SymbolIndex> createProjectAwareIndex(IndexFactory Gen,
bool Sync) { … }
}
}