clang-tools 19.0.0git
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
clang::clangd::Config Struct Reference

Settings that express user/project preferences and control clangd behavior. More...

#include <Config.h>

Classes

struct  CDBSearchSpec
 
struct  ExternalIndexSpec
 Describes an external index configuration. More...
 

Public Types

enum class  BackgroundPolicy { Build , Skip }
 
enum class  IncludesPolicy { Strict , None }
 
enum class  FastCheckPolicy { Strict , Loose , None }
 

Public Member Functions

 Config ()=default
 
 Config (const Config &)=delete
 
Configoperator= (const Config &)=delete
 
 Config (Config &&)=default
 
Configoperator= (Config &&)=default
 

Static Public Member Functions

static const Configcurrent ()
 Returns the Config of the current Context, or an empty configuration.
 

Public Attributes

struct {
   std::vector< llvm::unique_function< void(std::vector< std::string > &) const > >   Edits
 Edits to apply to the compile command, in sequence. More...
 
   CDBSearchSpec   CDBSearch = {CDBSearchSpec::Ancestors, std::nullopt}
 Where to search for compilation databases for this file's flags. More...
 
CompileFlags
 Controls how the compile command for the current file is determined.
 
struct {
   BackgroundPolicy   Background = BackgroundPolicy::Build
 Whether this TU should be background-indexed. More...
 
   ExternalIndexSpec   External
 
   bool   StandardLibrary = true
 
Index
 Controls index behavior.
 
struct {
   bool   SuppressAll = false
 
   llvm::StringSet   Suppress
 
   struct {
      std::string   Checks
 
      llvm::StringMap< std::string >   CheckOptions
 
      FastCheckPolicy   FastCheckFilter = FastCheckPolicy::Strict
 
   }   ClangTidy
 Configures what clang-tidy checks to run and options to use with them. More...
 
   IncludesPolicy   UnusedIncludes = IncludesPolicy::Strict
 
   IncludesPolicy   MissingIncludes = IncludesPolicy::None
 
   struct {
      std::vector< std::function< bool(llvm::StringRef)> >   IgnoreHeader
 
   }   Includes
 IncludeCleaner will not diagnose usages of these headers matched by these regexes. More...
 
Diagnostics
 Controls warnings and errors when parsing code.
 
struct {
   std::vector< std::string >   FullyQualifiedNamespaces
 
Style
 Style of the codebase.
 
struct {
   bool   AllScopes = true
 Whether code completion includes results that are not visible in current scopes. More...
 
Completion
 Configures code completion feature.
 
struct {
   bool   ShowAKA = true
 Whether hover show a.k.a type. More...
 
Hover
 Configures hover feature.
 
struct {
   bool   Enabled = true
 If false, inlay hints are completely disabled. More...
 
   bool   Parameters = true
 
   bool   DeducedTypes = true
 
   bool   Designators = true
 
   bool   BlockEnd = false
 
   uint32_t   TypeNameLimit = 32
 
InlayHints
 
struct {
   std::vector< std::string >   DisabledKinds
 Controls highlighting kinds that are disabled. More...
 
   std::vector< std::string >   DisabledModifiers
 Controls highlighting modifiers that are disabled. More...
 
SemanticTokens
 

Static Public Attributes

static clangd::Key< ConfigKey
 Context key which can be used to set the current Config.
 

Detailed Description

Settings that express user/project preferences and control clangd behavior.

Generally, features should consume Config::current() and the caller is responsible for setting it appropriately. In practice these callers are ClangdServer, TUScheduler, and BackgroundQueue.

Definition at line 44 of file Config.h.

Member Enumeration Documentation

◆ BackgroundPolicy

Enumerator
Build 
Skip 

Definition at line 71 of file Config.h.

◆ FastCheckPolicy

Enumerator
Strict 
Loose 
None 

Definition at line 96 of file Config.h.

◆ IncludesPolicy

Enumerator
Strict 

Diagnose missing and unused includes.

None 

Definition at line 91 of file Config.h.

Constructor & Destructor Documentation

◆ Config() [1/3]

clang::clangd::Config::Config ( )
default

◆ Config() [2/3]

clang::clangd::Config::Config ( const Config )
delete

◆ Config() [3/3]

clang::clangd::Config::Config ( Config &&  )
default

Member Function Documentation

◆ current()

const Config & clang::clangd::Config::current ( )
static

◆ operator=() [1/2]

Config & clang::clangd::Config::operator= ( Config &&  )
default

◆ operator=() [2/2]

Config & clang::clangd::Config::operator= ( const Config )
delete

Member Data Documentation

◆ AllScopes

bool clang::clangd::Config::AllScopes = true

Whether code completion includes results that are not visible in current scopes.

Definition at line 132 of file Config.h.

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

◆ Background

BackgroundPolicy clang::clangd::Config::Background = BackgroundPolicy::Build

Whether this TU should be background-indexed.

Definition at line 86 of file Config.h.

◆ BlockEnd

bool clang::clangd::Config::BlockEnd = false

Definition at line 149 of file Config.h.

◆ CDBSearch

CDBSearchSpec clang::clangd::Config::CDBSearch = {CDBSearchSpec::Ancestors, std::nullopt}

Where to search for compilation databases for this file's flags.

Definition at line 68 of file Config.h.

Referenced by clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread::Filter::filter().

◆ CheckOptions

llvm::StringMap<std::string> clang::clangd::Config::CheckOptions

Definition at line 106 of file Config.h.

◆ Checks

std::string clang::clangd::Config::Checks

Definition at line 105 of file Config.h.

◆ 

struct { ... } clang::clangd::Config::ClangTidy

Configures what clang-tidy checks to run and options to use with them.

◆ 

struct { ... } clang::clangd::Config::CompileFlags

Controls how the compile command for the current file is determined.

Referenced by clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread::Filter::filter().

◆ 

struct { ... } clang::clangd::Config::Completion

Configures code completion feature.

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

◆ DeducedTypes

bool clang::clangd::Config::DeducedTypes = true

Definition at line 147 of file Config.h.

◆ Designators

bool clang::clangd::Config::Designators = true

Definition at line 148 of file Config.h.

◆ 

struct { ... } clang::clangd::Config::Diagnostics

Controls warnings and errors when parsing code.

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

◆ DisabledKinds

std::vector<std::string> clang::clangd::Config::DisabledKinds

Controls highlighting kinds that are disabled.

Definition at line 156 of file Config.h.

◆ DisabledModifiers

std::vector<std::string> clang::clangd::Config::DisabledModifiers

Controls highlighting modifiers that are disabled.

Definition at line 158 of file Config.h.

◆ Edits

std::vector<llvm::unique_function<void(std::vector<std::string> &) const> > clang::clangd::Config::Edits

Edits to apply to the compile command, in sequence.

Definition at line 66 of file Config.h.

Referenced by clang::clangd::CommandMangler::operator()().

◆ Enabled

bool clang::clangd::Config::Enabled = true

If false, inlay hints are completely disabled.

Definition at line 143 of file Config.h.

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

◆ External

ExternalIndexSpec clang::clangd::Config::External

Definition at line 87 of file Config.h.

◆ FastCheckFilter

FastCheckPolicy clang::clangd::Config::FastCheckFilter = FastCheckPolicy::Strict

Definition at line 107 of file Config.h.

◆ FullyQualifiedNamespaces

std::vector<std::string> clang::clangd::Config::FullyQualifiedNamespaces

Definition at line 125 of file Config.h.

◆ 

struct { ... } clang::clangd::Config::Hover

Configures hover feature.

◆ IgnoreHeader

std::vector<std::function<bool(llvm::StringRef)> > clang::clangd::Config::IgnoreHeader

Definition at line 116 of file Config.h.

◆ 

struct { ... } clang::clangd::Config::Includes

IncludeCleaner will not diagnose usages of these headers matched by these regexes.

◆ 

struct { ... } clang::clangd::Config::Index

Controls index behavior.

◆ 

struct { ... } clang::clangd::Config::InlayHints

◆ Key

Key< Config > clang::clangd::Config::Key
static

Context key which can be used to set the current Config.

Definition at line 48 of file Config.h.

Referenced by clang::clangd::TEST(), and clang::clangd::TEST_F().

◆ MissingIncludes

IncludesPolicy clang::clangd::Config::MissingIncludes = IncludesPolicy::None

Definition at line 111 of file Config.h.

◆ Parameters

bool clang::clangd::Config::Parameters = true

Definition at line 146 of file Config.h.

◆ 

struct { ... } clang::clangd::Config::SemanticTokens

◆ ShowAKA

bool clang::clangd::Config::ShowAKA = true

Whether hover show a.k.a type.

Definition at line 138 of file Config.h.

◆ StandardLibrary

bool clang::clangd::Config::StandardLibrary = true

Definition at line 88 of file Config.h.

◆ 

struct { ... } clang::clangd::Config::Style

Style of the codebase.

◆ Suppress

llvm::StringSet clang::clangd::Config::Suppress

Definition at line 100 of file Config.h.

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

◆ SuppressAll

bool clang::clangd::Config::SuppressAll = false

Definition at line 99 of file Config.h.

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

◆ TypeNameLimit

uint32_t clang::clangd::Config::TypeNameLimit = 32

Definition at line 151 of file Config.h.

◆ UnusedIncludes

IncludesPolicy clang::clangd::Config::UnusedIncludes = IncludesPolicy::Strict

Definition at line 110 of file Config.h.


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