forked from OSchip/llvm-project
46 lines
1.5 KiB
C++
46 lines
1.5 KiB
C++
//===-- YamlSymbolIndex.h ---------------------------------------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_YAMLSYMBOLINDEX_H
|
|
#define LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_YAMLSYMBOLINDEX_H
|
|
|
|
#include "SymbolIndex.h"
|
|
#include "find-all-symbols/SymbolInfo.h"
|
|
#include "llvm/Support/ErrorOr.h"
|
|
#include <map>
|
|
#include <vector>
|
|
|
|
namespace clang {
|
|
namespace include_fixer {
|
|
|
|
/// Yaml format database.
|
|
class YamlSymbolIndex : public SymbolIndex {
|
|
public:
|
|
/// Create a new Yaml db from a file.
|
|
static llvm::ErrorOr<std::unique_ptr<YamlSymbolIndex>>
|
|
createFromFile(llvm::StringRef FilePath);
|
|
/// Look for a file called \c Name in \c Directory and all parent directories.
|
|
static llvm::ErrorOr<std::unique_ptr<YamlSymbolIndex>>
|
|
createFromDirectory(llvm::StringRef Directory, llvm::StringRef Name);
|
|
|
|
std::vector<find_all_symbols::SymbolAndSignals>
|
|
search(llvm::StringRef Identifier) override;
|
|
|
|
private:
|
|
explicit YamlSymbolIndex(
|
|
std::vector<find_all_symbols::SymbolAndSignals> Symbols)
|
|
: Symbols(std::move(Symbols)) {}
|
|
|
|
std::vector<find_all_symbols::SymbolAndSignals> Symbols;
|
|
};
|
|
|
|
} // namespace include_fixer
|
|
} // namespace clang
|
|
|
|
#endif // LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_YAMLSYMBOLINDEX_H
|