11 #include "llvm/ADT/SmallVector.h" 12 #include "llvm/Support/Errc.h" 13 #include "llvm/Support/FileSystem.h" 14 #include "llvm/Support/MemoryBuffer.h" 15 #include "llvm/Support/Path.h" 23 namespace include_fixer {
25 llvm::ErrorOr<std::unique_ptr<YamlSymbolIndex>>
27 auto Buffer = llvm::MemoryBuffer::getFile(FilePath);
29 return Buffer.getError();
35 llvm::ErrorOr<std::unique_ptr<YamlSymbolIndex>>
37 llvm::StringRef
Name) {
39 for (llvm::SmallString<128> PathStorage = Directory; !Directory.empty();
40 Directory = llvm::sys::path::parent_path(Directory)) {
41 assert(Directory.size() <= PathStorage.size());
42 PathStorage.resize(Directory.size());
43 llvm::sys::path::append(PathStorage, Name);
47 return llvm::make_error_code(llvm::errc::no_such_file_or_directory);
50 std::vector<SymbolAndSignals>
52 std::vector<SymbolAndSignals>
Results;
53 for (
const auto &Symbol : Symbols) {
54 if (Symbol.Symbol.getName() == Identifier)
55 Results.push_back(Symbol);
std::vector< CodeCompletionResult > Results
std::vector< SymbolAndSignals > ReadSymbolInfosFromYAML(llvm::StringRef Yaml)
Read SymbolInfos from a YAML document.
static cl::opt< std::string > Directory(cl::Positional, cl::Required, cl::desc("<Search Root Directory>"))
clang::find_all_symbols::SymbolInfo SymbolInfo
std::vector< find_all_symbols::SymbolAndSignals > search(llvm::StringRef Identifier) override
Search for all SymbolInfos corresponding to an identifier.
static llvm::ErrorOr< std::unique_ptr< YamlSymbolIndex > > createFromDirectory(llvm::StringRef Directory, llvm::StringRef Name)
Look for a file called Name in Directory and all parent directories.
static constexpr llvm::StringLiteral Name
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
static llvm::ErrorOr< std::unique_ptr< YamlSymbolIndex > > createFromFile(llvm::StringRef FilePath)
Create a new Yaml db from a file.