clang-tools 10.0.0

HeaderSourceSwitch.h
Go to the documentation of this file.
1 //===--- HeaderSourceSwitch.h - ----------------------------------*- C++-*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8
9 #ifndef LLVM_CLANG_TOOLS_EXTRA_UNITTESTS_CLANGD_HEADERSOURCESWITCH_H
10 #define LLVM_CLANG_TOOLS_EXTRA_UNITTESTS_CLANGD_HEADERSOURCESWITCH_H
11
12 #include "ParsedAST.h"
13 #include "llvm/ADT/Optional.h"
14
15 namespace clang {
16 namespace clangd {
17
18 /// Given a header file, returns the best matching source file, and vice visa.
19 /// It only uses the filename heuristics to do the inference.
20 llvm::Optional<Path> getCorrespondingHeaderOrSource(
21 const Path &OriginalFile,
22 llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS);
23
24 /// Given a header file, returns the best matching source file, and vice visa.
25 /// The heuristics incorporate with the AST and the index (if provided).
26 llvm::Optional<Path> getCorrespondingHeaderOrSource(const Path &OriginalFile,
27 ParsedAST &AST,
28 const SymbolIndex *Index);
29
30 /// Returns all indexable decls that are present in the main file of the AST.
31 /// Exposed for unittests.
32 std::vector<const Decl *> getIndexableLocalDecls(ParsedAST &AST);
33
34 } // namespace clangd
35 } // namespace clang
36
37 #endif // LLVM_CLANG_TOOLS_EXTRA_UNITTESTS_CLANGD_HEADERSOURCESWITCH_H
VFS
llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem > VFS
Definition: CodeComplete.cpp:1023
clang::clangd::getIndexableLocalDecls
std::vector< const Decl * > getIndexableLocalDecls(ParsedAST &AST)
Returns all indexable decls that are present in the main file of the AST.
Definition: HeaderSourceSwitch.cpp:127
clang::clangd::Path
std::string Path
A typedef to represent a file path.
Definition: Path.h:20
clang::clangd::getCorrespondingHeaderOrSource
llvm::Optional< Path > getCorrespondingHeaderOrSource(const Path &OriginalFile, llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem > VFS)
Given a header file, returns the best matching source file, and vice visa.
Definition: HeaderSourceSwitch.cpp:19
clang
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
Definition: ApplyReplacements.h:27
ParsedAST.h
Index
const SymbolIndex * Index
Definition: Dexp.cpp:84