clang-tools 10.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
void | addMapping (llvm::StringRef Path, llvm::StringRef CanonicalPath)
| Adds a string-to-string mapping from `Path` to `CanonicalPath`. More...
llvm::StringRef | mapHeader (llvm::StringRef Header, llvm::StringRef QualifiedName) const
| Returns the canonical include for symbol with `QualifiedName`. More...
void | addSystemHeadersMapping (const LangOptions &Language)
| Adds mapping for system headers and some special symbols (e.g. 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.

## 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 22 of file CanonicalIncludes.cpp.

## ◆ addSystemHeadersMapping()

void clang::clangd::CanonicalIncludes::addSystemHeadersMapping | ( | const LangOptions & | Language | ) |

Adds mapping for system headers and some special symbols (e.g.

STL symbols in <iosfwd> need to be mapped individually). Approximately, the following system headers are handled:

- C++ standard library e.g. bits/basic_string.h$ -> <string>
- Posix library e.g. bits/pthreadtypes.h$ -> <pthread.h>
- Compiler extensions, e.g. include/avx512bwintrin.h$ -> <immintrin.h> The mapping is hardcoded and hand-maintained, so it might not cover all headers.

Definition at line 88 of file CanonicalIncludes.cpp.

References clang::clangd::MaxSuffixComponents, and Symbols.

## ◆ mapHeader()

llvm::StringRef clang::clangd::CanonicalIncludes::mapHeader | ( | llvm::StringRef | Header,
|  | llvm::StringRef | QualifiedName
| ) |  | const

Returns the canonical include for symbol with `QualifiedName`.

`Header` is the file the declaration was reachable from. Header itself will be returned if there is no relevant mapping.

Definition at line 32 of file CanonicalIncludes.cpp.

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

- CanonicalIncludes.h
- CanonicalIncludes.cpp