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: