clang-tools 8.0.0

Public Member Functions | List of all members
clang::clangd::CanonicalIncludes Class Reference

Maps a definition location onto an #include file, based on a set of filename rules. More...

`#include <CanonicalIncludes.h>`

## Public Member Functions
| CanonicalIncludes ()=default
void | addMapping (llvm::StringRef Path, llvm::StringRef CanonicalPath)
| Adds a string-to-string mapping from `Path` to `CanonicalPath`. More...
void | addPathSuffixMapping (llvm::StringRef Suffix, llvm::StringRef CanonicalPath)
| Maps files with last path components matching `Suffix` to `CanonicalPath`. More...
void | addSymbolMapping (llvm::StringRef QualifiedName, llvm::StringRef CanonicalPath)
| Sets the canonical include for any symbol with `QualifiedName`. More...
llvm::StringRef | mapHeader (llvm::ArrayRef< std::string > Headers, llvm::StringRef QualifiedName) const
| Returns the canonical include for symbol with `QualifiedName`. More...

## Detailed Description

Maps a definition location onto an #include file, based on a set of filename rules.

Only const methods (i.e. mapHeader) in this class are thread safe.

Definition at line 36 of file CanonicalIncludes.h.

## Constructor & Destructor Documentation

## ◆ CanonicalIncludes()

clang::clangd::CanonicalIncludes::CanonicalIncludes | ( |  | ) |
| default

## Member Function Documentation

## ◆ addMapping()

void clang::clangd::CanonicalIncludes::addMapping | ( | llvm::StringRef | Path,
|  | llvm::StringRef | CanonicalPath
| ) |  |

Adds a string-to-string mapping from `Path` to `CanonicalPath`.

Definition at line 30 of file CanonicalIncludes.cpp.

## ◆ addPathSuffixMapping()

void clang::clangd::CanonicalIncludes::addPathSuffixMapping | ( | llvm::StringRef | Suffix,
|  | llvm::StringRef | CanonicalPath
| ) |  |

Maps files with last path components matching `Suffix` to `CanonicalPath`.

Definition at line 22 of file CanonicalIncludes.cpp.

## ◆ addSymbolMapping()

void clang::clangd::CanonicalIncludes::addSymbolMapping | ( | llvm::StringRef | QualifiedName,
|  | llvm::StringRef | CanonicalPath
| ) |  |

Sets the canonical include for any symbol with `QualifiedName`.

Symbol mappings take precedence over header mappings.

Definition at line 35 of file CanonicalIncludes.cpp.

## ◆ mapHeader()

llvm::StringRef clang::clangd::CanonicalIncludes::mapHeader | ( | llvm::ArrayRef< std::string > | Headers,
|  | llvm::StringRef | QualifiedName
| ) |  | const

Returns the canonical include for symbol with `QualifiedName`.

`Headers` is the include stack: Headers.front() is the file declaring the symbol, and Headers.back() is the main file.

Definition at line 41 of file CanonicalIncludes.cpp.

The documentation for this class was generated from the following files:

- CanonicalIncludes.h
- CanonicalIncludes.cpp