clang-tools 22.0.0git
|
An interface to query the modules information in the project. More...
#include <ProjectModules.h>
Public Types | |
using | CommandMangler |
Public Member Functions | |
virtual std::vector< std::string > | getRequiredModules (PathRef File)=0 |
virtual std::string | getModuleNameForSource (PathRef File)=0 |
virtual std::string | getSourceForModuleName (llvm::StringRef ModuleName, PathRef RequiredSrcFile)=0 |
virtual void | setCommandMangler (CommandMangler Mangler) |
virtual | ~ProjectModules ()=default |
An interface to query the modules information in the project.
Users should get instances of ProjectModules from GlobalCompilationDatabase::getProjectModules(PathRef).
Currently, the modules information includes:
Note that there can be multiple source files declaring the same module in a valid project. Although the language specification requires that every module unit's name must be unique in valid program, there can be multiple program in a project. And it is technically valid if these program doesn't interfere with each other.
A module name should be in the format: <primary-module-name>[:partition-name]. So module names covers partitions.
Definition at line 39 of file ProjectModules.h.
Definition at line 41 of file ProjectModules.h.
|
virtualdefault |
|
pure virtual |
Implemented in clang::clangd::ScanningAllProjectModules.
References clang::clangd::File.
|
pure virtual |
Implemented in clang::clangd::ScanningAllProjectModules.
References clang::clangd::File.
|
pure virtual |
Implemented in clang::clangd::ScanningAllProjectModules.
|
inlinevirtual |
Reimplemented in clang::clangd::ScanningAllProjectModules.
Definition at line 49 of file ProjectModules.h.