#include "Dex.h"
#include "FileDistance.h"
#include "FuzzyMatch.h"
#include "Quality.h"
#include "URI.h"
#include "index/Index.h"
#include "index/dex/Iterator.h"
#include "index/dex/Token.h"
#include "index/dex/Trigram.h"
#include "support/Logger.h"
#include "support/Trace.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/ScopedPrinter.h"
#include <algorithm>
#include <optional>
#include <queue>
#include <utility>
#include <vector>
namespace clang {
namespace clangd {
namespace dex {
std::unique_ptr<SymbolIndex> Dex::build(SymbolSlab Symbols, RefSlab Refs,
RelationSlab Rels) { … }
namespace {
const Token RestrictedForCodeCompletion = …;
class IndexBuilder { … };
}
void Dex::buildIndex() { … }
std::unique_ptr<Iterator> Dex::iterator(const Token &Tok) const { … }
std::unique_ptr<Iterator> Dex::createFileProximityIterator(
llvm::ArrayRef<std::string> ProximityPaths) const { … }
std::unique_ptr<Iterator>
Dex::createTypeBoostingIterator(llvm::ArrayRef<std::string> Types) const { … }
bool Dex::fuzzyFind(const FuzzyFindRequest &Req,
llvm::function_ref<void(const Symbol &)> Callback) const { … }
void Dex::lookup(const LookupRequest &Req,
llvm::function_ref<void(const Symbol &)> Callback) const { … }
bool Dex::refs(const RefsRequest &Req,
llvm::function_ref<void(const Ref &)> Callback) const { … }
void Dex::relations(
const RelationsRequest &Req,
llvm::function_ref<void(const SymbolID &, const Symbol &)> Callback) const { … }
llvm::unique_function<IndexContents(llvm::StringRef) const>
Dex::indexedFiles() const { … }
size_t Dex::estimateMemoryUsage() const { … }
llvm::StringRef findPathInURI(llvm::StringRef S) { … }
constexpr unsigned ProximityURILimit = …;
llvm::SmallVector<llvm::StringRef, ProximityURILimit>
generateProximityURIs(llvm::StringRef URI) { … }
}
}
}