#include "StdLib.h"
#include <fstream>
#include <memory>
#include <optional>
#include <string>
#include <vector>
#include "Compiler.h"
#include "Config.h"
#include "SymbolCollector.h"
#include "index/IndexAction.h"
#include "support/Logger.h"
#include "support/ThreadsafeFS.h"
#include "support/Trace.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Frontend/CompilerInvocation.h"
#include "clang/Lex/PreprocessorOptions.h"
#include "clang/Tooling/Inclusions/StandardLibrary.h"
#include "llvm/ADT/IntrusiveRefCntPtr.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/Path.h"
namespace clang {
namespace clangd {
namespace {
enum Lang { … };
Lang langFromOpts(const LangOptions &LO) { … }
llvm::StringLiteral mandatoryHeader(Lang L) { … }
LangStandard::Kind standardFromOpts(const LangOptions &LO) { … }
std::string buildUmbrella(llvm::StringLiteral Mandatory,
llvm::ArrayRef<tooling::stdlib::Header> Headers) { … }
}
llvm::StringRef getStdlibUmbrellaHeader(const LangOptions &LO) { … }
namespace {
SymbolSlab filter(SymbolSlab Slab, const StdLibLocation &Loc) { … }
}
SymbolSlab indexStandardLibrary(llvm::StringRef HeaderSources,
std::unique_ptr<CompilerInvocation> CI,
const StdLibLocation &Loc,
const ThreadsafeFS &TFS) { … }
SymbolSlab indexStandardLibrary(std::unique_ptr<CompilerInvocation> Invocation,
const StdLibLocation &Loc,
const ThreadsafeFS &TFS) { … }
bool StdLibSet::isBest(const LangOptions &LO) const { … }
std::optional<StdLibLocation> StdLibSet::add(const LangOptions &LO,
const HeaderSearch &HS) { … }
}
}