|
clang-tools 22.0.0git
|
#include <Headers.h>
Public Member Functions | |
| IncludeInserter (StringRef FileName, StringRef Code, const format::FormatStyle &Style, StringRef BuildDir, HeaderSearch *HeaderSearchInfo, HeaderFilter QuotedHeaders, HeaderFilter AngledHeaders) | |
| void | addExisting (const Inclusion &Inc) |
| bool | shouldInsertInclude (PathRef DeclaringHeader, const HeaderFile &InsertedHeader) const |
Checks whether to add an #include of the header into File. | |
| std::optional< std::string > | calculateIncludePath (const HeaderFile &InsertedHeader, llvm::StringRef IncludingFile) const |
| Determines the preferred way to #include a file, taking into account the search path. | |
| std::optional< TextEdit > | insert (llvm::StringRef VerbatimHeader, tooling::IncludeDirective Directive) const |
Calculates an edit that inserts VerbatimHeader into code. | |
|
inline |
| void clang::clangd::IncludeInserter::addExisting | ( | const Inclusion & | Inc | ) |
Definition at line 263 of file Headers.cpp.
References clang::clangd::Inclusion::Resolved, and clang::clangd::Inclusion::Written.
| std::optional< std::string > clang::clangd::IncludeInserter::calculateIncludePath | ( | const HeaderFile & | InsertedHeader, |
| llvm::StringRef | IncludingFile ) const |
Determines the preferred way to #include a file, taking into account the search path.
Usually this will prefer a shorter representation like 'Foo/Bar.h' over a longer one like 'Baz/include/Foo/Bar.h'.
| InsertedHeader | The preferred header to be inserted. |
| IncludingFile | is the absolute path of the file that InsertedHeader will be inserted. |
Definition at line 285 of file Headers.cpp.
References clang::clangd::elog(), clang::clangd::HeaderFile::File, clang::clangd::HeaderFile::valid(), and clang::clangd::HeaderFile::Verbatim.
| std::optional< TextEdit > clang::clangd::IncludeInserter::insert | ( | llvm::StringRef | VerbatimHeader, |
| tooling::IncludeDirective | Directive ) const |
Calculates an edit that inserts VerbatimHeader into code.
If the header is already included, this returns std::nullopt.
Definition at line 340 of file Headers.cpp.
References clang::clangd::replacementToEdit().
| bool clang::clangd::IncludeInserter::shouldInsertInclude | ( | PathRef | DeclaringHeader, |
| const HeaderFile & | InsertedHeader ) const |
Checks whether to add an #include of the header into File.
FIXME(ioeric): we might not want to insert an absolute include path if the path is not shortened.
An #include will not be added if:
DeclaringHeader or InsertedHeader is already (directly) in Inclusions (including those included via different paths).DeclaringHeader or InsertedHeader is the same as File.| DeclaringHeader | is path of the original header corresponding to InsertedHeader e.g. the header that declares a symbol. |
| InsertedHeader | The preferred header to be inserted. This could be the same as DeclaringHeader but must be provided. |
Definition at line 271 of file Headers.cpp.
References clang::clangd::HeaderFile::File, clang::clangd::HeaderFile::valid(), and clang::clangd::HeaderFile::Verbatim.