// Copyright 2017-2018 ccls Authors // SPDX-License-Identifier: Apache-2.0 #pragma once #include "position.h" #include "working_files.h" #include #include #include #include #include #include #include std::vector GetRemapped(const WorkingFiles::Snapshot &snapshot); Range FromCharSourceRange(const clang::SourceManager &SM, const clang::LangOptions &LangOpts, clang::CharSourceRange R, llvm::sys::fs::UniqueID *UniqueID = nullptr); Range FromCharRange(const clang::SourceManager &SM, const clang::LangOptions &LangOpts, clang::SourceRange R, llvm::sys::fs::UniqueID *UniqueID = nullptr); Range FromTokenRange(const clang::SourceManager &SM, const clang::LangOptions &LangOpts, clang::SourceRange R, llvm::sys::fs::UniqueID *UniqueID = nullptr); struct ClangTranslationUnit { static std::unique_ptr Create(const std::string &filepath, const std::vector &args, const WorkingFiles::Snapshot &snapshot, bool diagnostic); int Reparse(llvm::CrashRecoveryContext &CRC, const WorkingFiles::Snapshot &snapshot); std::shared_ptr PCHCO; std::unique_ptr Unit; };