clang-tools  8.0.0
Public Types | Public Member Functions | Protected Attributes | List of all members
clang::clangd::GlobalCompilationDatabase Class Referenceabstract

Provides compilation arguments used for parsing C and C++ files. More...

#include <GlobalCompilationDatabase.h>

Inheritance diagram for clang::clangd::GlobalCompilationDatabase:
[legend]
Collaboration diagram for clang::clangd::GlobalCompilationDatabase:
[legend]

Public Types

using CommandChanged = Event< std::vector< std::string > >
 

Public Member Functions

virtual ~GlobalCompilationDatabase ()=default
 
virtual llvm::Optional< tooling::CompileCommand > getCompileCommand (PathRef File, ProjectInfo *=nullptr) const =0
 If there are any known-good commands for building this file, returns one. More...
 
virtual tooling::CompileCommand getFallbackCommand (PathRef File) const
 Makes a guess at how to build a file. More...
 
CommandChanged::Subscription watch (CommandChanged::Listener L) const
 The callback is notified when files may have new compile commands. More...
 

Protected Attributes

CommandChanged OnCommandChanged
 

Detailed Description

Provides compilation arguments used for parsing C and C++ files.

Definition at line 39 of file GlobalCompilationDatabase.h.

Member Typedef Documentation

◆ CommandChanged

Definition at line 53 of file GlobalCompilationDatabase.h.

Constructor & Destructor Documentation

◆ ~GlobalCompilationDatabase()

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

Member Function Documentation

◆ getCompileCommand()

virtual llvm::Optional<tooling::CompileCommand> clang::clangd::GlobalCompilationDatabase::getCompileCommand ( PathRef  File,
ProjectInfo = nullptr 
) const
pure virtual

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

If the ProjectInfo pointer is set, it will also be populated.

Implemented in clang::clangd::OverlayCDB, and clang::clangd::DirectoryBasedGlobalCompilationDatabase.

Referenced by clang::clangd::ClangdServer::findHover().

◆ getFallbackCommand()

tooling::CompileCommand clang::clangd::GlobalCompilationDatabase::getFallbackCommand ( PathRef  File) const
virtual

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 in clang::clangd::OverlayCDB.

Definition at line 54 of file GlobalCompilationDatabase.cpp.

References clang::clangd::DirectoryBasedGlobalCompilationDatabase::DirectoryBasedGlobalCompilationDatabase(), and clang::clangd::getFallbackClangPath().

Referenced by clang::clangd::ClangdServer::findHover(), and clang::clangd::OverlayCDB::getFallbackCommand().

◆ watch()

CommandChanged::Subscription clang::clangd::GlobalCompilationDatabase::watch ( CommandChanged::Listener  L) const
inline

The callback is notified when files may have new compile commands.

The argument is a list of full file paths.

Definition at line 56 of file GlobalCompilationDatabase.h.

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

Member Data Documentation

◆ OnCommandChanged

CommandChanged clang::clangd::GlobalCompilationDatabase::OnCommandChanged
mutableprotected

Definition at line 61 of file GlobalCompilationDatabase.h.

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


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