39 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANGD_FILEDISTANCE_H
40 #define LLVM_CLANG_TOOLS_EXTRA_CLANGD_FILEDISTANCE_H
43 #include "llvm/ADT/DenseMap.h"
44 #include "llvm/ADT/DenseMapInfo.h"
45 #include "llvm/ADT/SmallString.h"
46 #include "llvm/ADT/StringMap.h"
47 #include "llvm/ADT/StringRef.h"
48 #include "llvm/Support/Allocator.h"
49 #include "llvm/Support/Path.h"
50 #include "llvm/Support/StringSaver.h"
74 static constexpr
unsigned Unreachable = std::numeric_limits<unsigned>::max();
86 llvm::DenseMap<llvm::hash_code, unsigned> Cache;
98 : Sources(Sources), Opts(Opts) {}
102 unsigned distance(llvm::StringRef URI);
106 FileDistance &forScheme(llvm::StringRef Scheme);
109 llvm::DenseMap<llvm::hash_code, unsigned> Cache;
110 llvm::StringMap<SourceParams> Sources;
111 llvm::StringMap<std::unique_ptr<FileDistance>> ByScheme;
112 FileDistanceOptions Opts;
122 unsigned distance(llvm::StringRef SymbolScope);
131 #endif // LLVM_CLANG_TOOLS_EXTRA_CLANGD_FILEDISTANCE_H