clang-tools 22.0.0git
clang::clangd::DelegatingCDB Class Reference

#include <GlobalCompilationDatabase.h>

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

Public Member Functions

 DelegatingCDB (const GlobalCompilationDatabase *Base)
 DelegatingCDB (std::unique_ptr< GlobalCompilationDatabase > Base)
std::optional< tooling::CompileCommand > getCompileCommand (PathRef File) const override
 If there are any known-good commands for building this file, returns one.
std::optional< ProjectInfogetProjectInfo (PathRef File) const override
 Finds the closest project to File.
std::unique_ptr< ProjectModulesgetProjectModules (PathRef File) const override
 Get the modules in the closest project to File.
tooling::CompileCommand getFallbackCommand (PathRef File) const override
 Makes a guess at how to build a file.
bool blockUntilIdle (Deadline D) const override
 If the CDB does any asynchronous work, wait for it to complete.
Public Member Functions inherited from clang::clangd::GlobalCompilationDatabase
virtual ~GlobalCompilationDatabase ()=default
CommandChanged::Subscription watch (CommandChanged::Listener L) const
 The callback is notified when files may have new compile commands.

Additional Inherited Members

Public Types inherited from clang::clangd::GlobalCompilationDatabase
using CommandChanged = Event<std::vector<std::string>>
Protected Attributes inherited from clang::clangd::GlobalCompilationDatabase
CommandChanged OnCommandChanged

Detailed Description

Definition at line 76 of file GlobalCompilationDatabase.h.

Constructor & Destructor Documentation

◆ DelegatingCDB() [1/2]

clang::clangd::DelegatingCDB::DelegatingCDB ( const GlobalCompilationDatabase * Base)

◆ DelegatingCDB() [2/2]

clang::clangd::DelegatingCDB::DelegatingCDB ( std::unique_ptr< GlobalCompilationDatabase > Base)

Definition at line 855 of file GlobalCompilationDatabase.cpp.

References DelegatingCDB().

Member Function Documentation

◆ blockUntilIdle()

bool clang::clangd::DelegatingCDB::blockUntilIdle ( Deadline D) const
overridevirtual

If the CDB does any asynchronous work, wait for it to complete.

For use in tests.

Reimplemented from clang::clangd::GlobalCompilationDatabase.

Definition at line 886 of file GlobalCompilationDatabase.cpp.

◆ getCompileCommand()

std::optional< tooling::CompileCommand > clang::clangd::DelegatingCDB::getCompileCommand ( PathRef File) const
overridevirtual

If there are any known-good commands for building this file, returns one.

Implements clang::clangd::GlobalCompilationDatabase.

Reimplemented in clang::clangd::OverlayCDB.

Definition at line 861 of file GlobalCompilationDatabase.cpp.

References clang::clangd::File.

Referenced by clang::clangd::OverlayCDB::getCompileCommand().

◆ getFallbackCommand()

tooling::CompileCommand clang::clangd::DelegatingCDB::getFallbackCommand ( PathRef File) const
overridevirtual

Makes a guess at how to build a file.

The default implementation just runs clang on the file. Clangd should treat the results as unreliable.

Reimplemented from clang::clangd::GlobalCompilationDatabase.

Reimplemented in clang::clangd::OverlayCDB.

Definition at line 880 of file GlobalCompilationDatabase.cpp.

References clang::clangd::File, and clang::clangd::GlobalCompilationDatabase::getFallbackCommand().

Referenced by clang::clangd::OverlayCDB::getFallbackCommand().

◆ getProjectInfo()

std::optional< ProjectInfo > clang::clangd::DelegatingCDB::getProjectInfo ( PathRef File) const
overridevirtual

Finds the closest project to File.

Reimplemented from clang::clangd::GlobalCompilationDatabase.

Definition at line 867 of file GlobalCompilationDatabase.cpp.

References clang::clangd::File.

◆ getProjectModules()

std::unique_ptr< ProjectModules > clang::clangd::DelegatingCDB::getProjectModules ( PathRef File) const
overridevirtual

Get the modules in the closest project to File.

Reimplemented from clang::clangd::GlobalCompilationDatabase.

Reimplemented in clang::clangd::OverlayCDB.

Definition at line 874 of file GlobalCompilationDatabase.cpp.

References clang::clangd::File.

Referenced by clang::clangd::OverlayCDB::getProjectModules().


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