summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/Headers.h
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/Headers.h')
-rw-r--r--clang-tools-extra/clangd/Headers.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/Headers.h b/clang-tools-extra/clangd/Headers.h
index 5358c34efc8..e29f7f6be45 100644
--- a/clang-tools-extra/clangd/Headers.h
+++ b/clang-tools-extra/clangd/Headers.h
@@ -12,10 +12,12 @@
#include "Path.h"
#include "Protocol.h"
#include "SourceCode.h"
+#include "index/Index.h"
#include "clang/Format/Format.h"
#include "clang/Lex/HeaderSearch.h"
#include "clang/Lex/PPCallbacks.h"
#include "clang/Tooling/Inclusions/HeaderIncludes.h"
+#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/Support/Error.h"
@@ -37,6 +39,15 @@ struct HeaderFile {
bool valid() const;
};
+/// Creates a `HeaderFile` from \p Header which can be either a URI or a literal
+/// include.
+llvm::Expected<HeaderFile> toHeaderFile(llvm::StringRef Header,
+ llvm::StringRef HintPath);
+
+// Returns include headers for \p Sym sorted by popularity. If two headers are
+// equally popular, prefer the shorter one.
+llvm::SmallVector<llvm::StringRef, 1> getRankedIncludes(const Symbol &Sym);
+
// An #include directive that we found in the main file.
struct Inclusion {
Range R; // Inclusion range.
OpenPOWER on IntegriCloud