clang-tools 20.0.0git
Public Member Functions | List of all members
clang::clangd::ProjectModules Class Referenceabstract

An interface to query the modules information in the project. More...

#include <ProjectModules.h>

Inheritance diagram for clang::clangd::ProjectModules:
Inheritance graph
[legend]

Public Member Functions

virtual std::vector< std::string > getRequiredModules (PathRef File)=0
 
virtual PathRef getSourceForModuleName (llvm::StringRef ModuleName, PathRef RequiredSrcFile=PathRef())=0
 
virtual ~ProjectModules ()=default
 

Detailed Description

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 37 of file ProjectModules.h.

Constructor & Destructor Documentation

◆ ~ProjectModules()

virtual clang::clangd::ProjectModules::~ProjectModules ( )
virtualdefault

Member Function Documentation

◆ getRequiredModules()

virtual std::vector< std::string > clang::clangd::ProjectModules::getRequiredModules ( PathRef  File)
pure virtual

◆ getSourceForModuleName()

virtual PathRef clang::clangd::ProjectModules::getSourceForModuleName ( llvm::StringRef  ModuleName,
PathRef  RequiredSrcFile = PathRef() 
)
pure virtual

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