clang-tools 23.0.0git
clang::clangd::CompoundProjectModules Class Reference

Combines the compile-commands backend with the scanning backend. More...

Inheritance diagram for clang::clangd::CompoundProjectModules:
[legend]

Public Member Functions

 CompoundProjectModules (std::shared_ptr< const clang::tooling::CompilationDatabase > CDB, const ThreadsafeFS &TFS)
std::vector< std::string > getRequiredModules (PathRef File) override
std::string getModuleNameForSource (PathRef File) override
std::string getSourceForModuleName (llvm::StringRef ModuleName, PathRef RequiredSourceFile) override
ModuleNameState getModuleNameState (llvm::StringRef ModuleName) override
void setCommandMangler (CommandMangler Mangler) override
Public Member Functions inherited from clang::clangd::ProjectModules
virtual ~ProjectModules ()=default

Additional Inherited Members

Public Types inherited from clang::clangd::ProjectModules
enum class  ModuleNameState { Unknown , Unique , Multiple }
using CommandMangler

Detailed Description

Combines the compile-commands backend with the scanning backend.

For getSourceForModuleName, it prefers compile-command-derived results when available to avoid scanning the whole project, but validates them against scanning results to avoid returning stale information. For other queries, it returns scanning results directly as scanning information is update to date.

Definition at line 525 of file ProjectModules.cpp.

Constructor & Destructor Documentation

◆ CompoundProjectModules()

clang::clangd::CompoundProjectModules::CompoundProjectModules ( std::shared_ptr< const clang::tooling::CompilationDatabase > CDB,
const ThreadsafeFS & TFS )
inline

Definition at line 527 of file ProjectModules.cpp.

Member Function Documentation

◆ getModuleNameForSource()

std::string clang::clangd::CompoundProjectModules::getModuleNameForSource ( PathRef File)
inlineoverridevirtual

Implements clang::clangd::ProjectModules.

Definition at line 540 of file ProjectModules.cpp.

References clang::clangd::File.

◆ getModuleNameState()

ModuleNameState clang::clangd::CompoundProjectModules::getModuleNameState ( llvm::StringRef ModuleName)
inlineoverridevirtual

Reimplemented from clang::clangd::ProjectModules.

Definition at line 560 of file ProjectModules.cpp.

References clang::clangd::ProjectModules::Unknown.

◆ getRequiredModules()

std::vector< std::string > clang::clangd::CompoundProjectModules::getRequiredModules ( PathRef File)
inlineoverridevirtual

Implements clang::clangd::ProjectModules.

Definition at line 535 of file ProjectModules.cpp.

References clang::clangd::File.

◆ getSourceForModuleName()

std::string clang::clangd::CompoundProjectModules::getSourceForModuleName ( llvm::StringRef ModuleName,
PathRef RequiredSourceFile )
inlineoverridevirtual

Implements clang::clangd::ProjectModules.

Definition at line 545 of file ProjectModules.cpp.

◆ setCommandMangler()

void clang::clangd::CompoundProjectModules::setCommandMangler ( CommandMangler Mangler)
inlineoverridevirtual

Reimplemented from clang::clangd::ProjectModules.

Definition at line 567 of file ProjectModules.cpp.


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